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))
if wasAdded {
self.selectedLineNode.frame = lineFrame
self.selectedLineNode.alpha = 0.0
} else {
transition.updateFrame(node: self.selectedLineNode, frame: lineFrame)
}

View File

@ -961,7 +961,7 @@ public final class ContactListNode: ASDisplayNode {
self?.suppressPermissionWarning?()
}, openPeer: { [weak self] peer, action in
if let strongSelf = self {
if multipleSelection {
if strongSelf.multipleSelection {
var updated = false
strongSelf.updateSelectionState({ state in
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()
|> 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 {
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 {
self._ready.set(.never())
self.tabContainerNode = ChatListFilterTabContainerNode()
self.navigationBar?.setSecondaryContentNode(self.tabContainerNode, animated: false)
self.reloadFilters()
@ -339,7 +341,9 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon
self.displayNodeDidLoad()
self._ready.set(self.peerSelectionNode.ready)
if !self.hasFilters {
self._ready.set(self.peerSelectionNode.ready)
}
}
public override func viewDidAppear(_ animated: Bool) {
@ -490,21 +494,22 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon
}
strongSelf.peerSelectionNode.mainContainerNode?.updateAvailableFilters(availableFilters, limit: filtersLimit)
// if isPremium == nil && items.isEmpty {
// strongSelf.ready.set(strongSelf.chatListDisplayNode.mainContainerNode.currentItemNode.ready)
// } else if !strongSelf.initializedFilters {
// if selectedEntryId != strongSelf.chatListDisplayNode.mainContainerNode.currentItemFilter {
// strongSelf.chatListDisplayNode.mainContainerNode.switchToFilter(id: selectedEntryId, animated: false, completion: { [weak self] in
// if let strongSelf = self {
// strongSelf.ready.set(strongSelf.chatListDisplayNode.mainContainerNode.currentItemNode.ready)
// }
// })
// } else {
// strongSelf.ready.set(strongSelf.chatListDisplayNode.mainContainerNode.currentItemNode.ready)
// }
// strongSelf.initializedFilters = true
// }
strongSelf.initializedFilters = true
if let mainContainerNode = strongSelf.peerSelectionNode.mainContainerNode {
if isPremium == nil && items.isEmpty {
strongSelf.ready.set(mainContainerNode.currentItemNode.ready)
} else if !strongSelf.initializedFilters {
if selectedEntryId != mainContainerNode.currentItemFilter {
mainContainerNode.switchToFilter(id: selectedEntryId, animated: false, completion: { [weak self] in
if let strongSelf = self {
strongSelf.ready.set(mainContainerNode.currentItemNode.ready)
}
})
} else {
strongSelf.ready.set(mainContainerNode.currentItemNode.ready)
}
strongSelf.initializedFilters = true
}
}
let isEmpty = resolvedItems.count <= 1

View File

@ -203,11 +203,8 @@ final class PeerSelectionControllerNode: ASDisplayNode {
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
//filterBecameEmpty?(filter)
}, filterEmptyAction: { _ in
//filterEmptyAction?(filter)
}, secondaryEmptyAction: {
})
self.chatListNode = nil
} else {
@ -498,9 +495,6 @@ final class PeerSelectionControllerNode: ASDisplayNode {
return nil
}, statuses: nil)
if let mainContainerNode = self.mainContainerNode {
self.readyValue.set(mainContainerNode.ready)
}
if let chatListNode = self.chatListNode {
self.readyValue.set(chatListNode.ready)
}
@ -603,6 +597,7 @@ final class PeerSelectionControllerNode: ASDisplayNode {
}
if self.contactListActive {
self.contactListNode?.multipleSelection = true
self.contactListNode?.updateSelectionState({ _ in
return ContactListNodeGroupSelectionState()
})
@ -893,7 +888,15 @@ final class PeerSelectionControllerNode: ASDisplayNode {
}
var updated = false
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 {
updated = true
var state = state