Merge "Preemptively hide UDPFS icon on biometric authenticated" into udc-dev am: 5889aa779d

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22383268

Change-Id: Id2f3cfe9396d1e274adac753eb4bea3d4e2fe8d7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Beverly Tai
2023-04-03 14:10:37 +00:00
committed by Automerger Merge Worker
2 changed files with 29 additions and 0 deletions

View File

@@ -167,6 +167,9 @@ constructor(
private val keyguardStateControllerCallback: KeyguardStateController.Callback =
object : KeyguardStateController.Callback {
override fun onUnlockedChanged() {
updatePauseAuth()
}
override fun onLaunchTransitionFadingAwayChanged() {
launchTransitionFadingAway = keyguardStateController.isLaunchTransitionFadingAway
updatePauseAuth()
@@ -403,6 +406,15 @@ constructor(
if (isBouncerExpansionGreaterThan(.5f)) {
return true
}
if (
keyguardUpdateMonitor.getUserUnlockedWithBiometric(
KeyguardUpdateMonitor.getCurrentUser()
)
) {
// If the device was unlocked by a biometric, immediately hide the UDFPS icon to avoid
// overlap with the LockIconView. Shortly afterwards, UDFPS will stop running.
return true
}
return view.unpausedAlpha < 255 * .1
}

View File

@@ -19,6 +19,7 @@ package com.android.systemui.biometrics;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.never;
@@ -156,6 +157,22 @@ public class UdfpsKeyguardViewControllerTest extends UdfpsKeyguardViewController
assertFalse(mController.shouldPauseAuth());
}
@Test
public void onBiometricAuthenticated_pauseAuth() {
// GIVEN view is attached and we're on the keyguard (see testShouldNotPauseAuthOnKeyguard)
mController.onViewAttached();
captureStatusBarStateListeners();
sendStatusBarStateChanged(StatusBarState.KEYGUARD);
// WHEN biometric is authenticated
captureKeyguardStateControllerCallback();
when(mKeyguardUpdateMonitor.getUserUnlockedWithBiometric(anyInt())).thenReturn(true);
mKeyguardStateControllerCallback.onUnlockedChanged();
// THEN pause auth
assertTrue(mController.shouldPauseAuth());
}
@Test
public void testShouldPauseAuthIsLaunchTransitionFadingAway() {
// GIVEN view is attached and we're on the keyguard (see testShouldNotPauseAuthOnKeyguard)