diff --git a/apps/ios/Shared/AppDelegate.swift b/apps/ios/Shared/AppDelegate.swift index 2aab207d8..30a4d5de1 100644 --- a/apps/ios/Shared/AppDelegate.swift +++ b/apps/ios/Shared/AppDelegate.swift @@ -16,7 +16,7 @@ class AppDelegate: NSObject, UIApplicationDelegate { application.registerForRemoteNotifications() if #available(iOS 17.0, *) { trackKeyboard() } NotificationCenter.default.addObserver(self, selector: #selector(pasteboardChanged), name: UIPasteboard.changedNotification, object: nil) - removePasswordsIfReinstalled() + changeAuthDetailsIfReinstalled() return true } @@ -128,14 +128,18 @@ class AppDelegate: NSObject, UIApplicationDelegate { BGManager.shared.receiveMessages(complete) } - private func removePasswordsIfReinstalled() { + private func changeAuthDetailsIfReinstalled() { // check for database existence is needed because app password and self destruct password will be saved and restored // by iOS when a user deletes the app and installs it again. In this case database will be deleted but passwords are not. // This check ensures that the user will not stack on "Opening app..." screen if (kcAppPassword.get() != nil || kcSelfDestructPassword.get() != nil) && !UserDefaults.standard.bool(forKey: DEFAULT_PERFORM_LA) && !(hasDatabase() || hasLegacyDatabase()) { - _ = kcAppPassword.remove() - _ = kcSelfDestructPassword.remove() - _ = kcDatabasePassword.remove() + if kcAppPassword.get() != nil { + UserDefaults.standard.setValue(true, forKey: DEFAULT_PERFORM_LA) + privacyLocalAuthModeDefault.set(.passcode) + } + if kcSelfDestructPassword.get() != nil { + UserDefaults.standard.setValue(true, forKey: DEFAULT_LA_SELF_DESTRUCT) + } } }