Refactoring

This commit is contained in:
Ali
2021-09-23 19:57:25 +03:00
parent 3eead87254
commit 49279a33f0
20 changed files with 387 additions and 239 deletions

View File

@@ -2901,42 +2901,6 @@ final class PostboxImpl {
}
}
public func contactPeersView(accountPeerId: PeerId?, includePresences: Bool) -> Signal<ContactPeersView, NoError> {
return self.transactionSignal { subscriber, transaction in
var peers: [PeerId: Peer] = [:]
var peerPresences: [PeerId: PeerPresence] = [:]
for peerId in self.contactsTable.get() {
if let peer = self.peerTable.get(peerId) {
peers[peerId] = peer
}
if includePresences {
if let presence = self.peerPresenceTable.get(peerId) {
peerPresences[peerId] = presence
}
}
}
let view = MutableContactPeersView(peers: peers, peerPresences: peerPresences, accountPeer: accountPeerId.flatMap(self.peerTable.get), includePresences: includePresences)
let (index, signal) = self.viewTracker.addContactPeersView(view)
subscriber.putNext(ContactPeersView(view))
let disposable = signal.start(next: { next in
subscriber.putNext(next)
})
return ActionDisposable {
[weak self] in
disposable.dispose()
if let strongSelf = self {
strongSelf.queue.async {
strongSelf.viewTracker.removeContactPeersView(index)
}
}
}
}
}
public func searchContacts(query: String) -> Signal<([Peer], [PeerId: PeerPresence]), NoError> {
return self.transaction { transaction -> Signal<([Peer], [PeerId: PeerPresence]), NoError> in
let (_, contactPeerIds) = self.peerNameIndexTable.matchingPeerIds(tokens: (regular: stringIndexTokens(query, transliteration: .none), transliterated: stringIndexTokens(query, transliteration: .transliterated)), categories: [.contacts], chatListIndexTable: self.chatListIndexTable, contactTable: self.contactsTable)
@@ -3902,18 +3866,6 @@ public class Postbox {
}
}
public func contactPeersView(accountPeerId: PeerId?, includePresences: Bool) -> Signal<ContactPeersView, NoError> {
return Signal { subscriber in
let disposable = MetaDisposable()
self.impl.with { impl in
disposable.set(impl.contactPeersView(accountPeerId: accountPeerId, includePresences: includePresences).start(next: subscriber.putNext, error: subscriber.putError, completed: subscriber.putCompletion))
}
return disposable
}
}
public func searchContacts(query: String) -> Signal<([Peer], [PeerId: PeerPresence]), NoError> {
return Signal { subscriber in
let disposable = MetaDisposable()