From f90ca9e7dd053c33ef94b10ff9c99a3c2ecafcbc Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Wed, 21 Feb 2024 13:59:06 +0000 Subject: [PATCH] Various fixes --- .../Sources/ContactsController.swift | 32 ++++--------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/submodules/ContactListUI/Sources/ContactsController.swift b/submodules/ContactListUI/Sources/ContactsController.swift index 5f95d9bf26..c24b039122 100644 --- a/submodules/ContactListUI/Sources/ContactsController.swift +++ b/submodules/ContactListUI/Sources/ContactsController.swift @@ -682,37 +682,16 @@ public class ContactsController: ViewController { let deleteContactsFromDevice: Signal if let contactDataManager = self.context.sharedContext.contactDataManager { - deleteContactsFromDevice = contactDataManager.deleteContactWithAppSpecificReference(peerId: peerIds.first!) + deleteContactsFromDevice = combineLatest(peerIds.map { contactDataManager.deleteContactWithAppSpecificReference(peerId: $0) } + ) + |> ignoreValues } else { deleteContactsFromDevice = .complete() } - var deleteSignal = self.context.engine.contacts.deleteContacts(peerIds: peerIds) + let deleteSignal = self.context.engine.contacts.deleteContacts(peerIds: peerIds) |> then(deleteContactsFromDevice) - let progressSignal = Signal { [weak self] subscriber in - guard let self else { - return EmptyDisposable - } - let statusController = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: nil)) - self.present(statusController, in: .window(.root)) - return ActionDisposable { [weak statusController] in - Queue.mainQueue().async() { - statusController?.dismiss() - } - } - } - |> runOn(Queue.mainQueue()) - |> delay(0.15, queue: Queue.mainQueue()) - let progressDisposable = progressSignal.start() - - deleteSignal = deleteSignal - |> afterDisposed { - Queue.mainQueue().async { - progressDisposable.dispose() - } - } - for peerId in peerIds { deleteSendMessageIntents(peerId: peerId) } @@ -724,6 +703,9 @@ public class ContactsController: ViewController { } return state } + + let _ = deleteSignal.start() + return true } else if value == .undo { self.contactsNode.contactListNode.updatePendingRemovalPeerIds { state in