From 00ec45f4ec907e83dd509783024a1b85d8259be4 Mon Sep 17 00:00:00 2001 From: Chandru Date: Wed, 31 Aug 2022 17:11:14 +0000 Subject: [PATCH] Stop face auth when bouncerWillBeShown instead of bouncerFullyShown Fixes: 243749080 Test: atest KeyguardUpdateMonitor passes Change-Id: I1bcba8641030917a207265f77128b27acdfd5bc1 --- .../src/com/android/keyguard/KeyguardListenModel.kt | 1 + .../src/com/android/keyguard/KeyguardUpdateMonitor.java | 5 +++-- .../src/com/android/keyguard/KeyguardListenQueueTest.kt | 1 + .../com/android/keyguard/KeyguardUpdateMonitorTest.java | 7 ++++++- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardListenModel.kt b/packages/SystemUI/src/com/android/keyguard/KeyguardListenModel.kt index 0ea196537e725..919b71bbf8794 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardListenModel.kt +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardListenModel.kt @@ -52,6 +52,7 @@ data class KeyguardFaceListenModel( val becauseCannotSkipBouncer: Boolean, val biometricSettingEnabledForUser: Boolean, val bouncerFullyShown: Boolean, + val bouncerIsOrWillShow: Boolean, val faceAuthenticated: Boolean, val faceDisabled: Boolean, val goingToSleep: Boolean, diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java index 167d8af5ce795..cb88f325e9267 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -2494,7 +2494,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab // on bouncer if both fp and fingerprint are enrolled. final boolean awakeKeyguardExcludingBouncerShowing = mKeyguardIsVisible && mDeviceInteractive && !mGoingToSleep - && !statusBarShadeLocked && !mBouncerFullyShown; + && !statusBarShadeLocked && !mBouncerIsOrWillBeShowing; final int user = getCurrentUser(); final int strongAuth = mStrongAuthTracker.getStrongAuthForUser(user); final boolean isLockDown = @@ -2563,6 +2563,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab becauseCannotSkipBouncer, biometricEnabledForUser, mBouncerFullyShown, + mBouncerIsOrWillBeShowing, faceAuthenticated, faceDisabledForUser, mGoingToSleep, @@ -3131,7 +3132,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab cb.onKeyguardBouncerStateChanged(mBouncerIsOrWillBeShowing); } } - updateFingerprintListeningState(BIOMETRIC_ACTION_UPDATE); + updateBiometricListeningState(BIOMETRIC_ACTION_UPDATE); } if (wasBouncerFullyShown != mBouncerFullyShown) { diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardListenQueueTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardListenQueueTest.kt index bb455da92ba2b..0bf038d45af09 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardListenQueueTest.kt +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardListenQueueTest.kt @@ -86,6 +86,7 @@ private fun faceModel(user: Int) = KeyguardFaceListenModel( becauseCannotSkipBouncer = false, biometricSettingEnabledForUser = false, bouncerFullyShown = false, + bouncerIsOrWillShow = false, onlyFaceEnrolled = false, faceAuthenticated = false, faceDisabled = false, diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java index c281965550e4b..f5b95031dacba 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java @@ -1511,7 +1511,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase { anyBoolean()); CancellationSignal cancelSignal = mCancellationSignalCaptor.getValue(); - bouncerFullyVisible(); + bouncerWillBeVisibleSoon(); mTestableLooper.processAllMessages(); assertThat(cancelSignal.isCanceled()).isTrue(); @@ -1669,6 +1669,11 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase { setKeyguardBouncerVisibility(true); } + private void bouncerWillBeVisibleSoon() { + mKeyguardUpdateMonitor.sendKeyguardBouncerChanged(true, false); + mTestableLooper.processAllMessages(); + } + private void setKeyguardBouncerVisibility(boolean isVisible) { mKeyguardUpdateMonitor.sendKeyguardBouncerChanged(isVisible, isVisible); mTestableLooper.processAllMessages();