From e4baad0fcc557a3dcbee568c5b9ea09677417510 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 6 Dec 2019 10:43:17 +0400 Subject: [PATCH] Fix history preload --- submodules/Postbox/Sources/MessageHistoryHolesView.swift | 4 +++- submodules/Postbox/Sources/MessageHistoryTable.swift | 2 +- .../TelegramCore/Sources/ChatHistoryPreloadManager.swift | 9 ++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/submodules/Postbox/Sources/MessageHistoryHolesView.swift b/submodules/Postbox/Sources/MessageHistoryHolesView.swift index 540b1b8317..14c65efea0 100644 --- a/submodules/Postbox/Sources/MessageHistoryHolesView.swift +++ b/submodules/Postbox/Sources/MessageHistoryHolesView.swift @@ -4,11 +4,13 @@ public struct MessageHistoryHolesViewEntry: Equatable, Hashable { public let hole: MessageHistoryViewHole public let direction: MessageHistoryViewRelativeHoleDirection public let space: MessageHistoryHoleSpace + public let count: Int - public init(hole: MessageHistoryViewHole, direction: MessageHistoryViewRelativeHoleDirection, space: MessageHistoryHoleSpace) { + public init(hole: MessageHistoryViewHole, direction: MessageHistoryViewRelativeHoleDirection, space: MessageHistoryHoleSpace, count: Int) { self.hole = hole self.direction = direction self.space = space + self.count = count } } diff --git a/submodules/Postbox/Sources/MessageHistoryTable.swift b/submodules/Postbox/Sources/MessageHistoryTable.swift index 5f40bd055b..aaa1a50247 100644 --- a/submodules/Postbox/Sources/MessageHistoryTable.swift +++ b/submodules/Postbox/Sources/MessageHistoryTable.swift @@ -1387,7 +1387,7 @@ final class MessageHistoryTable: Table { } } - if previousMessage.globalTags != message.globalTags || (previousMessage.index != message.index && (!previousMessage.globalTags.isEmpty || !message.globalTags.isEmpty)) { + if !previousMessage.globalTags.isEmpty || !message.globalTags.isEmpty { if !previousMessage.globalTags.isEmpty { for tag in previousMessage.globalTags { self.globalTagsTable.remove(tag, index: index) diff --git a/submodules/TelegramCore/Sources/ChatHistoryPreloadManager.swift b/submodules/TelegramCore/Sources/ChatHistoryPreloadManager.swift index 907ded383c..b7bfcbce89 100644 --- a/submodules/TelegramCore/Sources/ChatHistoryPreloadManager.swift +++ b/submodules/TelegramCore/Sources/ChatHistoryPreloadManager.swift @@ -99,7 +99,7 @@ private final class HistoryPreloadEntry: Comparable { |> mapToSignal { download -> Signal in switch hole.hole { case let .peer(peerHole): - return fetchMessageHistoryHole(accountPeerId: accountPeerId, source: .download(download), postbox: postbox, peerId: peerHole.peerId, namespace: peerHole.namespace, direction: hole.direction, space: .everywhere, limit: 60) + return fetchMessageHistoryHole(accountPeerId: accountPeerId, source: .download(download), postbox: postbox, peerId: peerHole.peerId, namespace: peerHole.namespace, direction: hole.direction, space: .everywhere, count: 60) } } ) @@ -320,10 +320,9 @@ final class ChatHistoryPreloadManager { return } #if DEBUG - if true { - //return - } + return #endif + var indices: [(ChatHistoryPreloadIndex, Bool, Bool)] = [] for entry in view.0.entries { if case let .MessageEntry(index, _, readState, notificationSettings, _, _, _, _) = entry { @@ -396,7 +395,7 @@ final class ChatHistoryPreloadManager { let key: PostboxViewKey switch index.entity { case let .peer(peerId): - key = .messageOfInterestHole(location: .peer(peerId), namespace: Namespaces.Message.Cloud, count: 60) + key = .messageOfInterestHole(location: .peer(peerId), namespace: Namespaces.Message.Cloud, count: 70) } view.disposable.set((self.postbox.combinedView(keys: [key]) |> deliverOn(self.queue)).start(next: { [weak self] next in