From e3814d6454b3c7a853ee14140d299f7c95ae93b5 Mon Sep 17 00:00:00 2001 From: Bruno Muniz Azevedo Filho <bruno@elixxir.io> Date: Thu, 1 Dec 2022 01:08:48 -0300 Subject: [PATCH] Fix hud not showing up when deleting account --- .../ViewModels/SettingsDeleteViewModel.swift | 39 +++++++++++-------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/Sources/SettingsFeature/ViewModels/SettingsDeleteViewModel.swift b/Sources/SettingsFeature/ViewModels/SettingsDeleteViewModel.swift index 05073def..2bf7d1f0 100644 --- a/Sources/SettingsFeature/ViewModels/SettingsDeleteViewModel.swift +++ b/Sources/SettingsFeature/ViewModels/SettingsDeleteViewModel.swift @@ -8,6 +8,7 @@ import XXMessengerClient final class SettingsDeleteViewModel { @Dependency(\.keychain) var keychain + @Dependency(\.app.bgQueue) var bgQueue @Dependency(\.app.dbManager) var dbManager @Dependency(\.app.messenger) var messenger @Dependency(\.app.hudManager) var hudManager @@ -20,25 +21,29 @@ final class SettingsDeleteViewModel { isCurrentlyDeleting = true hudManager.show() - - do { - try cleanUD() - try messenger.destroy() - try keychain.destroy() - try dbManager.removeDB() - UserDefaults.resetStandardUserDefaults() - UserDefaults.standard.removePersistentDomain(forName: Bundle.main.bundleIdentifier!) - UserDefaults.standard.synchronize() + bgQueue.schedule { [weak self] in + guard let self else { return } - hudManager.show(.init( - title: Localized.Settings.Delete.Success.title, - content: Localized.Settings.Delete.Success.subtitle - )) - } catch { - DispatchQueue.main.async { [weak self] in - guard let self else { return } - self.hudManager.show(.init(error: error)) + do { + try self.cleanUD() + try self.messenger.destroy() + try self.keychain.destroy() + try self.dbManager.removeDB() + + UserDefaults.resetStandardUserDefaults() + UserDefaults.standard.removePersistentDomain(forName: Bundle.main.bundleIdentifier!) + UserDefaults.standard.synchronize() + + self.hudManager.show(.init( + title: Localized.Settings.Delete.Success.title, + content: Localized.Settings.Delete.Success.subtitle + )) + } catch { + DispatchQueue.main.async { [weak self] in + guard let self else { return } + self.hudManager.show(.init(error: error)) + } } } } -- GitLab