Bouncer should dismiss if being tracked when face unlocked
When the user is tracking the bouncer with their finger and a successful face unlock occurs, the bouncer should always be immediately dismissed. Prior to this, it was possible for the user to continue tracking the bouncer over the homescreen after unlock, leading to shade problems, including missing lock/udfps icons and lockscreen over homescreen/activity. The primary issue was BiometricUnlockController was returning MODE_NONE, and is now returning MODE_DISMISS_BOUNCER. Fixes: 237822716 Test: atest StatusBarKeyguardViewManagerTest Change-Id: I364d8e61a61138d79240b5baefed295493678063
This commit is contained in:
@@ -2692,7 +2692,7 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable,
|
||||
/** Hides the surface behind the keyguard by re-showing the keyguard/activity lock screen. */
|
||||
public void hideSurfaceBehindKeyguard() {
|
||||
mSurfaceBehindRemoteAnimationRequested = false;
|
||||
|
||||
mKeyguardStateController.notifyKeyguardGoingAway(false);
|
||||
if (mShowing) {
|
||||
setShowingLocked(true, true);
|
||||
}
|
||||
|
||||
@@ -397,10 +397,6 @@ public class KeyguardBouncer {
|
||||
return mShowingSoon || mExpansion != EXPANSION_HIDDEN && mExpansion != EXPANSION_VISIBLE;
|
||||
}
|
||||
|
||||
public boolean getShowingSoon() {
|
||||
return mShowingSoon;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {@code true} when bouncer's pre-hide animation already started but isn't completely
|
||||
* hidden yet, {@code false} otherwise.
|
||||
|
||||
@@ -963,7 +963,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
|
||||
|
||||
@Override
|
||||
public boolean bouncerIsOrWillBeShowing() {
|
||||
return isBouncerShowing() || mBouncer.getShowingSoon();
|
||||
return isBouncerShowing() || mBouncer.inTransit();
|
||||
}
|
||||
|
||||
public boolean isFullscreenBouncer() {
|
||||
|
||||
@@ -380,6 +380,16 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
|
||||
verify(mAlternateAuthInterceptor).hideAlternateAuthBouncer();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBouncerIsOrWillBeShowing_whenBouncerIsInTransit() {
|
||||
when(mBouncer.isShowing()).thenReturn(false);
|
||||
when(mBouncer.inTransit()).thenReturn(true);
|
||||
|
||||
assertTrue(
|
||||
"Is or will be showing should be true when bouncer is in transit",
|
||||
mStatusBarKeyguardViewManager.bouncerIsOrWillBeShowing());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testShowAltAuth_unlockingWithBiometricNotAllowed() {
|
||||
// GIVEN alt auth exists, unlocking with biometric isn't allowed
|
||||
|
||||
Reference in New Issue
Block a user