From 31866487d25c0f5f93d10936b2498b19d957f8f4 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Tue, 30 Jul 2019 16:50:57 +0300 Subject: [PATCH] Pass through current found remote peers while updating search results --- .../TelegramUI/ChatListSearchContainerNode.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/submodules/TelegramUI/TelegramUI/ChatListSearchContainerNode.swift b/submodules/TelegramUI/TelegramUI/ChatListSearchContainerNode.swift index 5e40158776..546a05ce87 100644 --- a/submodules/TelegramUI/TelegramUI/ChatListSearchContainerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatListSearchContainerNode.swift @@ -611,10 +611,13 @@ final class ChatListSearchContainerNode: SearchDisplayControllerContentNode { } self.recentListNode.isHidden = filter.contains(.excludeRecent) + let currentRemotePeers = Atomic<([FoundPeer], [FoundPeer])?>(value: nil) + let presentationDataPromise = self.presentationDataPromise let foundItems = self.searchQuery.get() |> mapToSignal { query -> Signal<([ChatListSearchEntry], Bool)?, NoError> in guard let query = query, !query.isEmpty else { + let _ = currentRemotePeers.swap(nil) return .single(nil) } @@ -651,8 +654,9 @@ final class ChatListSearchContainerNode: SearchDisplayControllerContentNode { } let foundRemotePeers: Signal<([FoundPeer], [FoundPeer], Bool), NoError> + let currentRemotePeersValue = currentRemotePeers.with { $0 } ?? ([], []) foundRemotePeers = ( - .single(([], [], true)) + .single((currentRemotePeersValue.0, currentRemotePeersValue.1, true)) |> then( searchPeers(account: context.account, query: query) |> map { ($0.0, $0.1, false) } @@ -717,6 +721,8 @@ final class ChatListSearchContainerNode: SearchDisplayControllerContentNode { let isSearching = foundRemotePeers.2 || foundRemoteMessages.1 var index = 0 + let _ = currentRemotePeers.swap((foundRemotePeers.0, foundRemotePeers.1)) + let filteredPeer:(Peer, Peer) -> Bool = { peer, accountPeer in guard !filter.contains(.excludeSavedMessages) || peer.id != accountPeer.id else { return false } guard !filter.contains(.excludeSecretChats) || peer.id.namespace != Namespaces.Peer.SecretChat else { return false }