Don't delay bouncer if face + fp enrolled

Only delay the bouncer if face is the only biometric enrolled
and face auth is set to non-bypass.

Test: manual
Test: atest KeyguardBouncerTest
Fixes: 232798977
Change-Id: I63b36a9b37769765fdb5837894feb5cb135ed83a
This commit is contained in:
Beverly
2022-05-16 18:30:05 +00:00
parent a95c26478f
commit 181b2c1706
2 changed files with 17 additions and 5 deletions

View File

@@ -216,9 +216,12 @@ public class KeyguardBouncer {
// Split up the work over multiple frames.
DejankUtils.removeCallbacks(mResetRunnable);
if (mKeyguardStateController.isFaceAuthEnabled() && !needsFullscreenBouncer()
&& !mKeyguardUpdateMonitor.userNeedsStrongAuth()
&& !mKeyguardBypassController.getBypassEnabled()) {
if (mKeyguardStateController.isFaceAuthEnabled()
&& !mKeyguardUpdateMonitor.getCachedIsUnlockWithFingerprintPossible(
KeyguardUpdateMonitor.getCurrentUser())
&& !needsFullscreenBouncer()
&& !mKeyguardUpdateMonitor.userNeedsStrongAuth()
&& !mKeyguardBypassController.getBypassEnabled()) {
mHandler.postDelayed(mShowRunnable, BOUNCER_FACE_DELAY);
} else {
DejankUtils.postAfterTraversal(mShowRunnable);

View File

@@ -399,9 +399,8 @@ public class KeyguardBouncerTest extends SysuiTestCase {
mBouncer.hide(false /* destroyView */);
verify(mHandler).removeCallbacks(eq(showRunnable.getValue()));
}
@Test
public void testShow_delaysIfFaceAuthIsRunning_unlessBypass() {
public void testShow_delaysIfFaceAuthIsRunning_unlessBypassEnabled() {
when(mKeyguardStateController.isFaceAuthEnabled()).thenReturn(true);
when(mKeyguardBypassController.getBypassEnabled()).thenReturn(true);
mBouncer.show(true /* reset */);
@@ -409,6 +408,16 @@ public class KeyguardBouncerTest extends SysuiTestCase {
verify(mHandler, never()).postDelayed(any(), anyLong());
}
@Test
public void testShow_delaysIfFaceAuthIsRunning_unlessFingerprintEnrolled() {
when(mKeyguardStateController.isFaceAuthEnabled()).thenReturn(true);
when(mKeyguardUpdateMonitor.getCachedIsUnlockWithFingerprintPossible(0))
.thenReturn(true);
mBouncer.show(true /* reset */);
verify(mHandler, never()).postDelayed(any(), anyLong());
}
@Test
public void testRegisterUpdateMonitorCallback() {
verify(mKeyguardUpdateMonitor).registerCallback(any());