diff --git a/Sources/LaunchFeature/LaunchViewModel.swift b/Sources/LaunchFeature/LaunchViewModel.swift index bbb68e5dc47560b8542113565e198eb12c96e1bf..30ac8e249af08f34a2e281b1ed190f5e28f8a06b 100644 --- a/Sources/LaunchFeature/LaunchViewModel.swift +++ b/Sources/LaunchFeature/LaunchViewModel.swift @@ -202,20 +202,40 @@ extension LaunchViewModel { try dummyTrafficManager.setStatus(dummyTrafficOn) + var shouldPushChats = false + var shouldPushOnboarding = false + + defer { + hudManager.hide() + if shouldPushChats { + if isBiometricsOn, permissions.biometrics.status() { + permissions.biometrics.request { [weak self] granted in + guard let self else { return } + if granted { + self.stateSubject.value.shouldPushChats = true + } else { + // DO WHAT? + } + } + } else { + stateSubject.value.shouldPushChats = true + } + } else { + stateSubject.value.shouldPushOnboarding = shouldPushOnboarding + } + } + if messenger.isLoggedIn() == false { if try messenger.isRegistered() { try messenger.logIn() - hudManager.hide() - stateSubject.value.shouldPushChats = true + shouldPushChats = true } else { try? sftpManager.unlink() try? dropboxManager.unlink() - hudManager.hide() - stateSubject.value.shouldPushOnboarding = true + shouldPushOnboarding = true } } else { - hudManager.hide() - stateSubject.value.shouldPushChats = true + shouldPushChats = true } if !messenger.isBackupRunning() { try? messenger.resumeBackup()