Bladeren bron

KeychainCoordinator: don't prompt for TouchID if it's disabled in the settings

(cherry picked from commit c5a1cbc920abba601168390ab8129365a94bcd9a)
Carola Nitz 7 jaren geleden
bovenliggende
commit
ab09092daf
1 gewijzigde bestanden met toevoegingen van 12 en 4 verwijderingen
  1. 12 4
      Sources/KeychainCoordinator.swift

+ 12 - 4
Sources/KeychainCoordinator.swift

@@ -19,12 +19,20 @@ class KeychainCoordinator:NSObject, PAPasscodeViewControllerDelegate {
     @objc class var passcodeLockEnabled:Bool {
         return UserDefaults.standard.bool(forKey:kVLCSettingPasscodeOnKey)
     }
-
+    private var laContext = LAContext()
     private var touchIDEnabled:Bool {
-        return UserDefaults.standard.bool(forKey:kVLCSettingPasscodeAllowTouchID)
+        var touchIDEnabled = UserDefaults.standard.bool(forKey:kVLCSettingPasscodeAllowTouchID)
+        if #available(iOS 11.0, *) {
+            touchIDEnabled = touchIDEnabled && laContext.biometryType == .touchID
+        }
+        return touchIDEnabled
     }
     private var faceIDEnabled:Bool {
-        return UserDefaults.standard.bool(forKey:kVLCSettingPasscodeAllowFaceID)
+        var faceIDEnabled = UserDefaults.standard.bool(forKey:kVLCSettingPasscodeAllowFaceID)
+        if #available(iOS 11.0, *) {
+            faceIDEnabled = faceIDEnabled && laContext.biometryType == .faceID
+        }
+        return faceIDEnabled
     }
 
     static let passcodeService = "org.videolan.vlc-ios.passcode"
@@ -96,7 +104,7 @@ class KeychainCoordinator:NSObject, PAPasscodeViewControllerDelegate {
         if (avoidPromptingTouchOrFaceID || UIApplication.shared.applicationState != .active) {
             return
         }
-        let laContext = LAContext()
+
         if laContext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: nil){
             avoidPromptingTouchOrFaceID = true
             laContext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics,