Various fixes

This commit is contained in:
Ilya Laktyushin 2023-03-05 23:16:50 +04:00
parent ce5053c6ff
commit 4b1f86bfdb
5 changed files with 43 additions and 26 deletions

View File

@ -928,7 +928,6 @@ public final class ChatListFilterTabContainerNode: ASDisplayNode {
let lineFrame = CGRect(origin: CGPoint(x: selectedFrame.minX, y: size.height - 3.0), size: CGSize(width: selectedFrame.width, height: 3.0)) let lineFrame = CGRect(origin: CGPoint(x: selectedFrame.minX, y: size.height - 3.0), size: CGSize(width: selectedFrame.width, height: 3.0))
if wasAdded { if wasAdded {
self.selectedLineNode.frame = lineFrame self.selectedLineNode.frame = lineFrame
self.selectedLineNode.alpha = 0.0
} else { } else {
transition.updateFrame(node: self.selectedLineNode, frame: lineFrame) transition.updateFrame(node: self.selectedLineNode, frame: lineFrame)
} }

View File

@ -961,7 +961,7 @@ public final class ContactListNode: ASDisplayNode {
self?.suppressPermissionWarning?() self?.suppressPermissionWarning?()
}, openPeer: { [weak self] peer, action in }, openPeer: { [weak self] peer, action in
if let strongSelf = self { if let strongSelf = self {
if multipleSelection { if strongSelf.multipleSelection {
var updated = false var updated = false
strongSelf.updateSelectionState({ state in strongSelf.updateSelectionState({ state in
if let state = state { if let state = state {

View File

@ -6739,7 +6739,17 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
let isTopReplyThreadMessageShown: Signal<Bool, NoError> = self.chatDisplayNode.historyNode.isTopReplyThreadMessageShown.get() let isTopReplyThreadMessageShown: Signal<Bool, NoError> = self.chatDisplayNode.historyNode.isTopReplyThreadMessageShown.get()
|> distinctUntilChanged |> distinctUntilChanged
let topPinnedMessage: Signal<ChatPinnedMessage?, NoError> = self.topPinnedMessageSignal(latest: false) let topPinnedMessage: Signal<ChatPinnedMessage?, NoError>
if let subject = self.subject {
switch subject {
case .forwardedMessages, .pinnedMessages, .scheduledMessages:
topPinnedMessage = .single(nil)
default:
topPinnedMessage = self.topPinnedMessageSignal(latest: false)
}
} else {
topPinnedMessage = self.topPinnedMessageSignal(latest: false)
}
if let peerId = self.chatLocation.peerId { if let peerId = self.chatLocation.peerId {
self.themeEmoticonPromise.set(self.context.engine.data.get(TelegramEngine.EngineData.Item.Peer.ThemeEmoticon(id: peerId))) self.themeEmoticonPromise.set(self.context.engine.data.get(TelegramEngine.EngineData.Item.Peer.ThemeEmoticon(id: peerId)))

View File

@ -172,6 +172,8 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon
} }
if params.hasFilters { if params.hasFilters {
self._ready.set(.never())
self.tabContainerNode = ChatListFilterTabContainerNode() self.tabContainerNode = ChatListFilterTabContainerNode()
self.navigationBar?.setSecondaryContentNode(self.tabContainerNode, animated: false) self.navigationBar?.setSecondaryContentNode(self.tabContainerNode, animated: false)
self.reloadFilters() self.reloadFilters()
@ -339,8 +341,10 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon
self.displayNodeDidLoad() self.displayNodeDidLoad()
if !self.hasFilters {
self._ready.set(self.peerSelectionNode.ready) self._ready.set(self.peerSelectionNode.ready)
} }
}
public override func viewDidAppear(_ animated: Bool) { public override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated) super.viewDidAppear(animated)
@ -490,21 +494,22 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon
} }
strongSelf.peerSelectionNode.mainContainerNode?.updateAvailableFilters(availableFilters, limit: filtersLimit) strongSelf.peerSelectionNode.mainContainerNode?.updateAvailableFilters(availableFilters, limit: filtersLimit)
// if isPremium == nil && items.isEmpty { if let mainContainerNode = strongSelf.peerSelectionNode.mainContainerNode {
// strongSelf.ready.set(strongSelf.chatListDisplayNode.mainContainerNode.currentItemNode.ready) if isPremium == nil && items.isEmpty {
// } else if !strongSelf.initializedFilters { strongSelf.ready.set(mainContainerNode.currentItemNode.ready)
// if selectedEntryId != strongSelf.chatListDisplayNode.mainContainerNode.currentItemFilter { } else if !strongSelf.initializedFilters {
// strongSelf.chatListDisplayNode.mainContainerNode.switchToFilter(id: selectedEntryId, animated: false, completion: { [weak self] in if selectedEntryId != mainContainerNode.currentItemFilter {
// if let strongSelf = self { mainContainerNode.switchToFilter(id: selectedEntryId, animated: false, completion: { [weak self] in
// strongSelf.ready.set(strongSelf.chatListDisplayNode.mainContainerNode.currentItemNode.ready) if let strongSelf = self {
// } strongSelf.ready.set(mainContainerNode.currentItemNode.ready)
// }) }
// } else { })
// strongSelf.ready.set(strongSelf.chatListDisplayNode.mainContainerNode.currentItemNode.ready) } else {
// } strongSelf.ready.set(mainContainerNode.currentItemNode.ready)
// strongSelf.initializedFilters = true }
// }
strongSelf.initializedFilters = true strongSelf.initializedFilters = true
}
}
let isEmpty = resolvedItems.count <= 1 let isEmpty = resolvedItems.count <= 1

View File

@ -203,11 +203,8 @@ final class PeerSelectionControllerNode: ASDisplayNode {
if hasFilters { if hasFilters {
self.mainContainerNode = ChatListContainerNode(context: context, location: chatListLocation, chatListMode: chatListMode, previewing: false, controlsHistoryPreload: false, isInlineMode: false, presentationData: presentationData, animationCache: self.animationCache, animationRenderer: self.animationRenderer, filterBecameEmpty: { _ in self.mainContainerNode = ChatListContainerNode(context: context, location: chatListLocation, chatListMode: chatListMode, previewing: false, controlsHistoryPreload: false, isInlineMode: false, presentationData: presentationData, animationCache: self.animationCache, animationRenderer: self.animationRenderer, filterBecameEmpty: { _ in
//filterBecameEmpty?(filter)
}, filterEmptyAction: { _ in }, filterEmptyAction: { _ in
//filterEmptyAction?(filter)
}, secondaryEmptyAction: { }, secondaryEmptyAction: {
}) })
self.chatListNode = nil self.chatListNode = nil
} else { } else {
@ -498,9 +495,6 @@ final class PeerSelectionControllerNode: ASDisplayNode {
return nil return nil
}, statuses: nil) }, statuses: nil)
if let mainContainerNode = self.mainContainerNode {
self.readyValue.set(mainContainerNode.ready)
}
if let chatListNode = self.chatListNode { if let chatListNode = self.chatListNode {
self.readyValue.set(chatListNode.ready) self.readyValue.set(chatListNode.ready)
} }
@ -603,6 +597,7 @@ final class PeerSelectionControllerNode: ASDisplayNode {
} }
if self.contactListActive { if self.contactListActive {
self.contactListNode?.multipleSelection = true
self.contactListNode?.updateSelectionState({ _ in self.contactListNode?.updateSelectionState({ _ in
return ContactListNodeGroupSelectionState() return ContactListNodeGroupSelectionState()
}) })
@ -893,7 +888,15 @@ final class PeerSelectionControllerNode: ASDisplayNode {
} }
var updated = false var updated = false
var count = 0 var count = 0
strongSelf.chatListNode?.updateState { state in
let chatListNode: ChatListNode?
if let mainContainerNode = strongSelf.mainContainerNode {
chatListNode = mainContainerNode.currentItemNode
} else {
chatListNode = strongSelf.chatListNode
}
chatListNode?.updateState { state in
if state.editing { if state.editing {
updated = true updated = true
var state = state var state = state