Updated folder pinned chats interaction

This commit is contained in:
Ali
2020-03-16 23:42:12 +05:30
parent 899e00fc9e
commit b69ce50986
7 changed files with 146 additions and 76 deletions

View File

@@ -30,12 +30,12 @@ struct ChatListNodeViewUpdate {
}
func chatListFilterPredicate(filter: ChatListFilterData) -> ChatListFilterPredicate {
var includePeers = Set(filter.includePeers)
var includePeers = Set(filter.includePeers.peers)
var excludePeers = Set(filter.excludePeers)
if !filter.pinnedPeers.isEmpty {
includePeers.subtract(filter.pinnedPeers)
excludePeers.subtract(filter.pinnedPeers)
if !filter.includePeers.pinnedPeers.isEmpty {
includePeers.subtract(filter.includePeers.pinnedPeers)
excludePeers.subtract(filter.includePeers.pinnedPeers)
}
var includeAdditionalPeerGroupIds: [PeerGroupId] = []
@@ -47,7 +47,7 @@ func chatListFilterPredicate(filter: ChatListFilterData) -> ChatListFilterPredic
if filter.excludeRead {
messageTagSummary = ChatListMessageTagSummaryResultCalculation(addCount: ChatListMessageTagSummaryResultComponent(tag: .unseenPersonalMessage, namespace: Namespaces.Message.Cloud), subtractCount: ChatListMessageTagActionsSummaryResultComponent(type: PendingMessageActionType.consumeUnseenPersonalMessage, namespace: Namespaces.Message.Cloud))
}
return ChatListFilterPredicate(includePeerIds: includePeers, excludePeerIds: excludePeers, pinnedPeerIds: filter.pinnedPeers, messageTagSummary: messageTagSummary, includeAdditionalPeerGroupIds: includeAdditionalPeerGroupIds, include: { peer, isMuted, isUnread, isContact, messageTagSummaryResult in
return ChatListFilterPredicate(includePeerIds: includePeers, excludePeerIds: excludePeers, pinnedPeerIds: filter.includePeers.pinnedPeers, messageTagSummary: messageTagSummary, includeAdditionalPeerGroupIds: includeAdditionalPeerGroupIds, include: { peer, isMuted, isUnread, isContact, messageTagSummaryResult in
if filter.excludeRead {
var effectiveUnread = isUnread
if let messageTagSummaryResult = messageTagSummaryResult, messageTagSummaryResult {

View File

@@ -189,11 +189,10 @@ func preparedChatListNodeViewTransition(from fromView: ChatListNodeView?, to toV
}
} else if fromView.filteredEntries.isEmpty || fromView.filter != toView.filter {
var updateEmpty = true
if !fromView.filteredEntries.isEmpty, let fromFilter = fromView.filter, let toFilter = toView.filter, fromFilter.data.pinnedPeers != toFilter.data.pinnedPeers {
if !fromView.filteredEntries.isEmpty, let fromFilter = fromView.filter, let toFilter = toView.filter, fromFilter.data.includePeers.pinnedPeers != toFilter.data.includePeers.pinnedPeers {
var fromData = fromFilter.data
var toData = toFilter.data
fromData.pinnedPeers = []
toData.pinnedPeers = []
let toData = toFilter.data
fromData.includePeers = toData.includePeers
if fromData == toData {
options.insert(.AnimateInsertion)
updateEmpty = false