mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-02 00:17:02 +00:00
Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios
This commit is contained in:
commit
248b9d3d66
@ -2122,11 +2122,11 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController
|
||||
}
|
||||
|
||||
override public func updateNavigationBarLayout(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
if self.chatListDisplayNode.searchDisplayController?.contentNode != nil {
|
||||
/*if self.chatListDisplayNode.searchDisplayController?.contentNode != nil {
|
||||
self.navigationBar?.secondaryContentNodeDisplayFraction = 1.0
|
||||
} else {
|
||||
self.navigationBar?.secondaryContentNodeDisplayFraction = 1.0 - self.chatListDisplayNode.inlineStackContainerTransitionFraction
|
||||
}
|
||||
}*/
|
||||
|
||||
self.updateHeaderContent(layout: layout, transition: transition)
|
||||
|
||||
@ -2159,11 +2159,12 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController
|
||||
tabContainerOffset += layout.statusBarHeight ?? 0.0
|
||||
tabContainerOffset += 44.0 + 20.0
|
||||
}
|
||||
tabContainerOffset += self.chatListDisplayNode.inlineStackContainerTransitionFraction * NavigationBar.defaultSecondaryContentHeight
|
||||
//tabContainerOffset += self.chatListDisplayNode.inlineStackContainerTransitionFraction * NavigationBar.defaultSecondaryContentHeight
|
||||
|
||||
let navigationBarHeight = self.navigationBar?.frame.maxY ?? 0.0
|
||||
|
||||
transition.updateAlpha(node: self.tabContainerNode, alpha: 1.0 - self.chatListDisplayNode.inlineStackContainerTransitionFraction)
|
||||
transition.updateAlpha(node: self.tabContainerNode, alpha: self.chatListDisplayNode.inlineStackContainerTransitionFraction * 0.5 + (1.0 - self.chatListDisplayNode.inlineStackContainerTransitionFraction) * 1.0)
|
||||
self.tabContainerNode.isUserInteractionEnabled = self.chatListDisplayNode.inlineStackContainerNode == nil
|
||||
|
||||
transition.updateFrame(node: self.tabContainerNode, frame: CGRect(origin: CGPoint(x: 0.0, y: navigationBarHeight - self.additionalNavigationBarHeight - 46.0 + tabContainerOffset), size: CGSize(width: layout.size.width, height: 46.0)))
|
||||
self.tabContainerNode.update(size: CGSize(width: layout.size.width, height: 46.0), sideInset: layout.safeInsets.left, filters: self.tabContainerData?.0 ?? [], selectedFilter: self.chatListDisplayNode.containerNode.currentItemFilter, isReordering: self.chatListDisplayNode.isReorderingFilters || (self.chatListDisplayNode.containerNode.currentItemNode.currentState.editing && !self.chatListDisplayNode.didBeginSelectingChatsWhileEditing), isEditing: self.chatListDisplayNode.containerNode.currentItemNode.currentState.editing, canReorderAllChats: self.isPremium, filtersLimit: self.tabContainerData?.2, transitionFraction: self.chatListDisplayNode.containerNode.transitionFraction, presentationData: self.presentationData, transition: .animated(duration: 0.4, curve: .spring))
|
||||
@ -3653,6 +3654,7 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController
|
||||
}
|
||||
|
||||
if isHidden {
|
||||
//TODO:localize
|
||||
strongSelf.present(UndoOverlayController(presentationData: strongSelf.context.sharedContext.currentPresentationData.with { $0 }, content: .hidArchive(title: "General hidden", text: "Pull down to see the general topic.", undo: false), elevatedLayout: false, animateInAsReplacement: true, action: { [weak self] value in
|
||||
guard let strongSelf = self else {
|
||||
return false
|
||||
|
@ -665,6 +665,20 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
|
||||
}
|
||||
}
|
||||
|
||||
func assignParentNode(parentNode: ASDisplayNode?) {
|
||||
for (id, topicNode) in self.topicNodes {
|
||||
if id == self.topicNodeOrder.first, let parentNode {
|
||||
if topicNode.supernode !== parentNode {
|
||||
parentNode.addSubnode(topicNode)
|
||||
}
|
||||
} else {
|
||||
if topicNode.supernode !== self {
|
||||
self.addSubnode(topicNode)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func asyncLayout() -> (_ context: AccountContext, _ constrainedWidth: CGFloat, _ theme: PresentationTheme, _ authorTitle: NSAttributedString?, _ topics: [(id: Int64, title: NSAttributedString, iconId: Int64?, iconColor: Int32)]) -> (CGSize, () -> CGRect?) {
|
||||
let makeAuthorLayout = TextNode.asyncLayout(self.authorNode)
|
||||
var makeExistingTopicLayouts: [Int64: (_ constrainedWidth: CGFloat, _ context: AccountContext, _ theme: PresentationTheme, _ threadId: Int64, _ title: NSAttributedString, _ iconId: Int64?, _ iconColor: Int32) -> (CGSize, () -> TopicItemNode)] = [:]
|
||||
@ -755,7 +769,6 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
|
||||
if self.topicNodes[item.0] != itemNode {
|
||||
self.topicNodes[item.0]?.removeFromSupernode()
|
||||
self.topicNodes[item.0] = itemNode
|
||||
self.addSubnode(itemNode)
|
||||
}
|
||||
let itemFrame = CGRect(origin: CGPoint(x: nextX - 1.0, y: 0.0), size: item.1)
|
||||
itemNode.frame = itemFrame
|
||||
@ -1124,10 +1137,12 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
|
||||
return false
|
||||
}
|
||||
|
||||
strongSelf.contextContainer.additionalActivationProgressLayer = nil
|
||||
if item.interaction.inlineNavigationLocation != nil {
|
||||
strongSelf.contextContainer.targetNodeForActivationProgress = strongSelf.avatarContainerNode
|
||||
} else if let value = strongSelf.hitTest(location, with: nil), value === strongSelf.compoundTextButtonNode?.view {
|
||||
strongSelf.contextContainer.targetNodeForActivationProgress = strongSelf.compoundHighlightingNode
|
||||
strongSelf.contextContainer.targetNodeForActivationProgress = strongSelf.compoundTextButtonNode
|
||||
strongSelf.contextContainer.additionalActivationProgressLayer = strongSelf.compoundHighlightingNode?.layer
|
||||
} else {
|
||||
strongSelf.contextContainer.targetNodeForActivationProgress = nil
|
||||
}
|
||||
@ -2775,7 +2790,6 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
|
||||
let authorNodeFrame = CGRect(origin: CGPoint(x: contentRect.origin.x - 1.0, y: contentRect.minY + titleLayout.size.height), size: authorLayout)
|
||||
strongSelf.authorNode.frame = authorNodeFrame
|
||||
let textNodeFrame = CGRect(origin: CGPoint(x: contentRect.origin.x - 1.0, y: contentRect.minY + titleLayout.size.height - 1.0 + UIScreenPixel + (authorLayout.height.isZero ? 0.0 : (authorLayout.height - 3.0))), size: textLayout.size)
|
||||
strongSelf.textNode.textNode.frame = textNodeFrame
|
||||
|
||||
if let topForumTopicRect, !isSearching {
|
||||
let compoundHighlightingNode: LinkHighlightingNode
|
||||
@ -2879,6 +2893,22 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
|
||||
}
|
||||
}
|
||||
|
||||
if let compoundTextButtonNode = strongSelf.compoundTextButtonNode {
|
||||
if strongSelf.textNode.textNode.supernode !== compoundTextButtonNode {
|
||||
compoundTextButtonNode.addSubnode(strongSelf.textNode.textNode)
|
||||
}
|
||||
strongSelf.textNode.textNode.frame = textNodeFrame.offsetBy(dx: -compoundTextButtonNode.frame.minX, dy: -compoundTextButtonNode.frame.minY)
|
||||
|
||||
strongSelf.authorNode.assignParentNode(parentNode: compoundTextButtonNode)
|
||||
} else {
|
||||
if strongSelf.textNode.textNode.supernode !== strongSelf.mainContentContainerNode {
|
||||
strongSelf.mainContentContainerNode.addSubnode(strongSelf.textNode.textNode)
|
||||
}
|
||||
strongSelf.textNode.textNode.frame = textNodeFrame
|
||||
|
||||
strongSelf.authorNode.assignParentNode(parentNode: nil)
|
||||
}
|
||||
|
||||
if !textLayout.spoilers.isEmpty {
|
||||
let dustNode: InvisibleInkDustNode
|
||||
if let current = strongSelf.dustNode {
|
||||
|
Loading…
x
Reference in New Issue
Block a user