ActiveUnlock dismisses keyguard on trigger from assistant
The Assistant visibility doesn't change until the assistant is attempting to address a query that requires auth. In this case, without ActiveUnlock, the bouncer would show for the user to proceed, and if the user enters their pin/patttern/password or biometric success, then the user is brought to the secure assistant activity over the home screen (keyguard is dismissed). To align with this CUJ, also make ActiveUnlock dismiss the keyguard on successfull auth from a AU request coming from the assistant visible signal. Test: without biometrics enrolled, launch the assistant with a query that requires auth to trigger active unlock. When active unlock is triggered, the device will proceed to enter the device (dismiss keyguard). Test: atest KeyguardUpdateMonitorTest Fixes: 269207635 Change-Id: Ic4f41b0705fb680691f7a3472853e76778cb9dfa
This commit is contained in:
@@ -1601,7 +1601,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
||||
requestActiveUnlock(
|
||||
ActiveUnlockConfig.ActiveUnlockRequestOrigin.ASSISTANT,
|
||||
"assistant",
|
||||
false);
|
||||
/* dismissKeyguard */ true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2244,6 +2244,26 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
|
||||
assertThat(mKeyguardUpdateMonitor.shouldListenForFace()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void assistantVisible_requestActiveUnlock() {
|
||||
// GIVEN active unlock requests from the assistant are allowed
|
||||
when(mActiveUnlockConfig.shouldAllowActiveUnlockFromOrigin(
|
||||
ActiveUnlockConfig.ActiveUnlockRequestOrigin.ASSISTANT)).thenReturn(true);
|
||||
|
||||
// GIVEN should trigger active unlock
|
||||
keyguardIsVisible();
|
||||
keyguardNotGoingAway();
|
||||
statusBarShadeIsNotLocked();
|
||||
when(mLockPatternUtils.isSecure(KeyguardUpdateMonitor.getCurrentUser())).thenReturn(true);
|
||||
|
||||
// WHEN the assistant is visible
|
||||
mKeyguardUpdateMonitor.setAssistantVisible(true);
|
||||
|
||||
// THEN request unlock with keyguard dismissal
|
||||
verify(mTrustManager).reportUserRequestedUnlock(eq(KeyguardUpdateMonitor.getCurrentUser()),
|
||||
eq(true));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fingerprintFailure_requestActiveUnlock_dismissKeyguard()
|
||||
throws RemoteException {
|
||||
|
||||
Reference in New Issue
Block a user