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
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -374,6 +374,39 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
|
||||
verify(mAlternateAuthInterceptor).hideAlternateAuthBouncer();
|
||||
}
|
||||
|
||||
@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();
|
||||
|
||||
Reference in New Issue
Block a user