diff options
author | Joshua Mccloskey <joshmccloskey@google.com> | 2021-07-19 20:00:57 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-07-19 20:00:57 +0000 |
commit | 4438cf6799554ebe69088252c6da87d06063d1f7 (patch) | |
tree | 2d8f99d38806969b687a7481bc653325b9dc69dd | |
parent | c4815d0f2d03ad5e08e1053d2f3431a788dc97ab (diff) | |
parent | 5afa7487dfe14e2272a7cf0f201c4f326dfe435f (diff) |
Merge "Fixed double face auth on swipe" into sc-dev
-rw-r--r-- | packages/SystemUI/src/com/android/keyguard/KeyguardFaceListenModel.kt | 3 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java | 20 |
2 files changed, 19 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardFaceListenModel.kt b/packages/SystemUI/src/com/android/keyguard/KeyguardFaceListenModel.kt index ff20805c5ea4..0785cc3c04d2 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardFaceListenModel.kt +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardFaceListenModel.kt @@ -23,5 +23,6 @@ data class KeyguardFaceListenModel( val isLockIconPressed: Boolean, val isScanningAllowedByStrongAuth: Boolean, val isPrimaryUser: Boolean, - val isSecureCameraLaunched: Boolean + val isSecureCameraLaunched: Boolean, + val isFaceAuthenticated: Boolean ) diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java index 3412c18e3103..8032839318e0 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -1058,9 +1058,18 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab || isSimPinSecure()); } + private boolean getIsFaceAuthenticated() { + boolean faceAuthenticated = false; + BiometricAuthenticated bioFaceAuthenticated = mUserFaceAuthenticated.get(getCurrentUser()); + if (bioFaceAuthenticated != null) { + faceAuthenticated = bioFaceAuthenticated.mAuthenticated; + } + return faceAuthenticated; + } + private void requireStrongAuthIfAllLockedOut() { final boolean faceLock = - mFaceLockedOutPermanent || !shouldListenForFace(); + (mFaceLockedOutPermanent || !shouldListenForFace()) && !getIsFaceAuthenticated(); final boolean fpLock = mFingerprintLockedOutPermanent || !shouldListenForFingerprint(isUdfpsEnrolled()); @@ -2240,6 +2249,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab strongAuthAllowsScanning = false; } + // If the face has recently been authenticated do not attempt to authenticate again. + boolean faceAuthenticated = getIsFaceAuthenticated(); + // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware. final boolean shouldListen = @@ -2248,7 +2260,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab && !mSwitchingUser && !isFaceDisabled(user) && becauseCannotSkipBouncer && !mKeyguardGoingAway && mBiometricEnabledForUser.get(user) && !mLockIconPressed && strongAuthAllowsScanning && mIsPrimaryUser - && (!mSecureCameraLaunched || mOccludingAppRequestingFace); + && (!mSecureCameraLaunched || mOccludingAppRequestingFace) + && !faceAuthenticated; // Aggregate relevant fields for debug logging. if (DEBUG_FACE || DEBUG_SPEW) { @@ -2269,7 +2282,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab mLockIconPressed, strongAuthAllowsScanning, mIsPrimaryUser, - mSecureCameraLaunched); + mSecureCameraLaunched, + faceAuthenticated); maybeLogFaceListenerModelData(model); } |