From 210e47df003dec2b969cbedc7a7a144c6a7c84ea Mon Sep 17 00:00:00 2001 From: overtake <> Date: Wed, 22 Apr 2020 15:42:15 +0400 Subject: [PATCH] fix dialogs [skip ci] --- .../Sources/AccountStateManagementUtils.swift | 6 ++++++ submodules/TelegramCore/Sources/ApplyUpdateMessage.swift | 2 ++ submodules/TelegramCore/Sources/UpdateGroup.swift | 8 +++++--- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift b/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift index f9dff4046a..f25fa4e3c2 100644 --- a/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift +++ b/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift @@ -109,6 +109,12 @@ private func peerIdsRequiringLocalChatStateFromUpdateGroups(_ groups: [UpdateGro for group in groups { peerIds.formUnion(peerIdsRequiringLocalChatStateFromUpdates(group.updates)) + switch group { + case let .ensurePeerHasLocalState(peerId): + peerIds.insert(peerId) + default: + break + } } return peerIds diff --git a/submodules/TelegramCore/Sources/ApplyUpdateMessage.swift b/submodules/TelegramCore/Sources/ApplyUpdateMessage.swift index 10e51ef71a..1b71864765 100644 --- a/submodules/TelegramCore/Sources/ApplyUpdateMessage.swift +++ b/submodules/TelegramCore/Sources/ApplyUpdateMessage.swift @@ -219,6 +219,7 @@ func applyUpdateMessage(postbox: Postbox, stateManager: AccountStateManager, mes } stateManager.addUpdates(result) + stateManager.addUpdateGroups([.ensurePeerHasLocalState(id: message.id.peerId)]) } } @@ -355,5 +356,6 @@ func applyUpdateGroupMessages(postbox: Postbox, stateManager: AccountStateManage transaction.addOrMoveToFirstPositionOrderedItemListItem(collectionId: Namespaces.OrderedItemList.CloudRecentGifs, item: OrderedItemListEntry(id: RecentMediaItemId(file.fileId).rawValue, contents: RecentMediaItem(file)), removeTailIfCountExceeds: 200) } stateManager.addUpdates(result) + stateManager.addUpdateGroups([.ensurePeerHasLocalState(id: messages[0].id.peerId)]) } } diff --git a/submodules/TelegramCore/Sources/UpdateGroup.swift b/submodules/TelegramCore/Sources/UpdateGroup.swift index 4613303c83..8145e9d2e9 100644 --- a/submodules/TelegramCore/Sources/UpdateGroup.swift +++ b/submodules/TelegramCore/Sources/UpdateGroup.swift @@ -1,5 +1,6 @@ import Foundation import TelegramApi +import Postbox enum UpdateGroup { case withPts(updates: [Api.Update], users: [Api.User], chats: [Api.Chat]) @@ -9,6 +10,7 @@ enum UpdateGroup { case reset case updatePts(pts: Int32, ptsCount: Int32) case updateChannelPts(channelId: Int32, pts: Int32, ptsCount: Int32) + case ensurePeerHasLocalState(id: PeerId) var updates: [Api.Update] { switch self { @@ -20,7 +22,7 @@ enum UpdateGroup { return updates case let .withSeq(updates, _, _, _, _): return updates - case .reset, .updatePts, .updateChannelPts: + case .reset, .updatePts, .updateChannelPts, .ensurePeerHasLocalState: return [] } } @@ -35,7 +37,7 @@ enum UpdateGroup { return users case let .withSeq(_, _, _, users, _): return users - case .reset, .updatePts, .updateChannelPts: + case .reset, .updatePts, .updateChannelPts, .ensurePeerHasLocalState: return [] } } @@ -50,7 +52,7 @@ enum UpdateGroup { return chats case let .withSeq(_, _, _, _, chats): return chats - case .reset, .updatePts, .updateChannelPts: + case .reset, .updatePts, .updateChannelPts, .ensurePeerHasLocalState: return [] } }