diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java | 10 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java | 58 |
2 files changed, 61 insertions, 7 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java index 7ced45abc960..c11a5c17309c 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -1394,16 +1394,12 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab && !mFingerprintLockedOut; } - private boolean isUnlockingWithFaceAllowed() { - return mStrongAuthTracker.isUnlockingWithBiometricAllowed(false); - } - /** * Whether fingerprint is allowed ot be used for unlocking based on the strongAuthTracker * and temporary lockout state (tracked by FingerprintManager via error codes). */ public boolean isUnlockingWithFingerprintAllowed() { - return isUnlockingWithBiometricAllowed(true); + return isUnlockingWithBiometricAllowed(FINGERPRINT); } /** @@ -1413,9 +1409,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab @NonNull BiometricSourceType biometricSourceType) { switch (biometricSourceType) { case FINGERPRINT: - return isUnlockingWithFingerprintAllowed(); + return isUnlockingWithBiometricAllowed(true); case FACE: - return isUnlockingWithFaceAllowed(); + return isUnlockingWithBiometricAllowed(false); default: return false; } diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java index c81bb3443700..c87a66467608 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java @@ -609,6 +609,64 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase { } @Test + public void testUnlockingWithFaceAllowed_strongAuthTrackerUnlockingWithBiometricAllowed() { + // GIVEN unlocking with biometric is allowed + when(mStrongAuthTracker.isUnlockingWithBiometricAllowed(anyBoolean())).thenReturn(true); + + // THEN unlocking with face and fp is allowed + Assert.assertTrue(mKeyguardUpdateMonitor.isUnlockingWithBiometricAllowed( + BiometricSourceType.FACE)); + Assert.assertTrue(mKeyguardUpdateMonitor.isUnlockingWithBiometricAllowed( + BiometricSourceType.FINGERPRINT)); + } + + @Test + public void testUnlockingWithFaceAllowed_strongAuthTrackerUnlockingWithBiometricNotAllowed() { + // GIVEN unlocking with biometric is not allowed + when(mStrongAuthTracker.isUnlockingWithBiometricAllowed(anyBoolean())).thenReturn(false); + + // THEN unlocking with face is not allowed + Assert.assertFalse(mKeyguardUpdateMonitor.isUnlockingWithBiometricAllowed( + BiometricSourceType.FACE)); + } + + @Test + public void testUnlockingWithFaceAllowed_fingerprintLockout() { + // GIVEN unlocking with biometric is allowed + when(mStrongAuthTracker.isUnlockingWithBiometricAllowed(anyBoolean())).thenReturn(true); + + // WHEN fingerprint is locked out + fingerprintErrorLockedOut(); + + // THEN unlocking with face is not allowed + Assert.assertFalse(mKeyguardUpdateMonitor.isUnlockingWithBiometricAllowed( + BiometricSourceType.FACE)); + } + + @Test + public void testUnlockingWithFpAllowed_strongAuthTrackerUnlockingWithBiometricNotAllowed() { + // GIVEN unlocking with biometric is not allowed + when(mStrongAuthTracker.isUnlockingWithBiometricAllowed(anyBoolean())).thenReturn(false); + + // THEN unlocking with fingerprint is not allowed + Assert.assertFalse(mKeyguardUpdateMonitor.isUnlockingWithBiometricAllowed( + BiometricSourceType.FINGERPRINT)); + } + + @Test + public void testUnlockingWithFpAllowed_fingerprintLockout() { + // GIVEN unlocking with biometric is allowed + when(mStrongAuthTracker.isUnlockingWithBiometricAllowed(anyBoolean())).thenReturn(true); + + // WHEN fingerprint is locked out + fingerprintErrorLockedOut(); + + // THEN unlocking with fingeprint is not allowed + Assert.assertFalse(mKeyguardUpdateMonitor.isUnlockingWithBiometricAllowed( + BiometricSourceType.FINGERPRINT)); + } + + @Test public void testTriesToAuthenticate_whenBouncer() { setKeyguardBouncerVisibility(true); |