From 16f11a726ae349829bd28588bdf094a79650d4fc Mon Sep 17 00:00:00 2001
From: Bruno Muniz Azevedo Filho <bruno@elixxir.io>
Date: Thu, 1 Dec 2022 02:33:56 -0300
Subject: [PATCH] Fixes biometric authentication

---
 Sources/LaunchFeature/LaunchViewModel.swift | 32 +++++++++++++++++----
 1 file changed, 26 insertions(+), 6 deletions(-)

diff --git a/Sources/LaunchFeature/LaunchViewModel.swift b/Sources/LaunchFeature/LaunchViewModel.swift
index bbb68e5d..30ac8e24 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()
-- 
GitLab