diff options
| author | 2021-12-14 17:01:00 +0000 | |
|---|---|---|
| committer | 2021-12-14 17:01:00 +0000 | |
| commit | 2a70bccaae2892cfd59a8df46145e1ca1e742fec (patch) | |
| tree | f450a90b59052aadd7a2ac58cb81e9305b99c676 | |
| parent | ddae9c92a22d8ad9f411013fe5a9f27fc32cfdef (diff) | |
| parent | 30942b58dabd1d41f3e8c1e25e3d2ee04d147bf2 (diff) | |
Only show UDFPS bouncer if it can be used to auth am: e805f2b12f am: 30942b58da
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16456313
Change-Id: Ic2b49120d898db878481ffd08798067ef0572191
2 files changed, 40 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index a4aeae9c0307..875b7e59d15a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -410,7 +410,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb * dragging it and translation should be deferred {@see KeyguardBouncer#show(boolean, boolean)} */ public void showGenericBouncer(boolean scrimmed) { - if (mAlternateAuthInterceptor != null) { + if (shouldShowAltAuth()) { updateAlternateAuthShowing(mAlternateAuthInterceptor.showAlternateAuthBouncer()); return; } @@ -418,6 +418,11 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb showBouncer(scrimmed); } + private boolean shouldShowAltAuth() { + return mAlternateAuthInterceptor != null + && mKeyguardUpdateManager.isUnlockingWithBiometricAllowed(true); + } + /** * Hides the input bouncer (pin/password/pattern). */ @@ -473,7 +478,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb // If there is an an alternate auth interceptor (like the UDFPS), show that one instead // of the bouncer. - if (mAlternateAuthInterceptor != null) { + if (shouldShowAltAuth()) { if (!afterKeyguardGone) { mBouncer.setDismissAction(mAfterKeyguardGoneAction, mKeyguardGoneCancelAction); mAfterKeyguardGoneAction = null; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java index cbaa460d711b..5d80bca03e03 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java @@ -375,6 +375,39 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { } @Test + public void testShowAltAuth_unlockingWithBiometricNotAllowed() { + // GIVEN alt auth exists, unlocking with biometric isn't allowed + mStatusBarKeyguardViewManager.setAlternateAuthInterceptor(mAlternateAuthInterceptor); + when(mBouncer.isShowing()).thenReturn(false); + when(mKeyguardUpdateMonitor.isUnlockingWithBiometricAllowed(anyBoolean())) + .thenReturn(false); + + // WHEN showGenericBouncer is called + final boolean scrimmed = true; + mStatusBarKeyguardViewManager.showGenericBouncer(scrimmed); + + // THEN regular bouncer is shown + verify(mBouncer).show(anyBoolean(), eq(scrimmed)); + verify(mAlternateAuthInterceptor, never()).showAlternateAuthBouncer(); + } + + @Test + public void testShowAltAuth_unlockingWithBiometricAllowed() { + // GIVEN alt auth exists, unlocking with biometric is allowed + mStatusBarKeyguardViewManager.setAlternateAuthInterceptor(mAlternateAuthInterceptor); + when(mBouncer.isShowing()).thenReturn(false); + when(mKeyguardUpdateMonitor.isUnlockingWithBiometricAllowed(anyBoolean())) + .thenReturn(true); + + // WHEN showGenericBouncer is called + mStatusBarKeyguardViewManager.showGenericBouncer(true); + + // THEN alt auth bouncer is shown + verify(mAlternateAuthInterceptor).showAlternateAuthBouncer(); + verify(mBouncer, never()).show(anyBoolean(), anyBoolean()); + } + + @Test public void testUpdateResources_delegatesToBouncer() { mStatusBarKeyguardViewManager.updateResources(); |