Merge "Reset mAssistantVisible state whenever device starts going to sleep" into tm-qpr-dev am: dd37c73b3b am: eb59f7d7ba

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

Change-Id: I62687cb5637a2353733cb8473468e220b37b2cc3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Chandru S
2023-01-26 17:59:47 +00:00
committed by Automerger Merge Worker
2 changed files with 33 additions and 1 deletions

View File

@@ -1938,6 +1938,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
}
}
mGoingToSleep = true;
// Resetting assistant visibility state as the device is going to sleep now.
// TaskStackChangeListener gets triggered a little late when we transition to AoD,
// which results in face auth running once on AoD.
mAssistantVisible = false;
mLogger.d("Started going to sleep, mGoingToSleep=true, mAssistantVisible=false");
updateBiometricListeningState(BIOMETRIC_ACTION_UPDATE, FACE_AUTH_UPDATED_GOING_TO_SLEEP);
}
@@ -3332,7 +3337,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
/**
* Handle {@link #MSG_KEYGUARD_RESET}
*/
private void handleKeyguardReset() {
@VisibleForTesting
protected void handleKeyguardReset() {
mLogger.d("handleKeyguardReset");
updateBiometricListeningState(BIOMETRIC_ACTION_UPDATE,
FACE_AUTH_UPDATED_KEYGUARD_RESET);

View File

@@ -853,6 +853,32 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
verify(mFaceManager).authenticate(any(), any(), any(), any(), anyInt(), anyBoolean());
}
@Test
public void faceUnlockDoesNotRunWhenDeviceIsGoingToSleepWithAssistantVisible() {
mKeyguardUpdateMonitor.setKeyguardShowing(true, true);
mKeyguardUpdateMonitor.setAssistantVisible(true);
verify(mFaceManager).authenticate(any(), any(), any(), any(), anyInt(), anyBoolean());
mTestableLooper.processAllMessages();
clearInvocations(mFaceManager);
// Device going to sleep while assistant is visible
mKeyguardUpdateMonitor.handleStartedGoingToSleep(0);
mKeyguardUpdateMonitor.handleFinishedGoingToSleep(0);
mTestableLooper.moveTimeForward(DEFAULT_CANCEL_SIGNAL_TIMEOUT);
mTestableLooper.processAllMessages();
mKeyguardUpdateMonitor.handleKeyguardReset();
assertThat(mKeyguardUpdateMonitor.isFaceDetectionRunning()).isFalse();
verify(mFaceManager, never()).authenticate(any(),
any(),
any(),
any(),
anyInt(),
anyBoolean());
}
@Test
public void testIgnoresAuth_whenTrustAgentOnKeyguard_withoutBypass() {
mKeyguardUpdateMonitor.dispatchStartedWakingUp(PowerManager.WAKE_REASON_POWER_BUTTON);