Stop face auth if occluding app doesn't want face auth.

Fixes: 259521464
Test: atest KeyguardUpdateMonitorTest
Test: manually,
    1. Enroll face auth (Bypass or non-bypass doesn't matter)
    2. Lock the phone
    3. Open bouncer to unlock (face auth lock out state doesn't matter).
    4. Enter the pin/pattern/password to unlock
    5. Camera protection ring should not grow in size, scanning animation should not show up.

Change-Id: Ic35d8538a97bdab3ed22456f5055cbe20f1b56a1
This commit is contained in:
Chandru
2022-11-17 12:08:47 +00:00
parent eda61eeeeb
commit cd7dcc5983
2 changed files with 20 additions and 2 deletions

View File

@@ -751,8 +751,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
*/
public void requestFaceAuthOnOccludingApp(boolean request) {
mOccludingAppRequestingFace = request;
updateFaceListeningState(BIOMETRIC_ACTION_UPDATE,
FACE_AUTH_TRIGGERED_OCCLUDING_APP_REQUESTED);
int action = mOccludingAppRequestingFace ? BIOMETRIC_ACTION_UPDATE : BIOMETRIC_ACTION_STOP;
updateFaceListeningState(action, FACE_AUTH_TRIGGERED_OCCLUDING_APP_REQUESTED);
}
/**

View File

@@ -1284,6 +1284,24 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
assertThat(mKeyguardUpdateMonitor.isFaceDetectionRunning()).isEqualTo(true);
}
@Test
public void testRequestFaceAuthFromOccludingApp_whenInvoked_startsFaceAuth() {
mKeyguardUpdateMonitor.requestFaceAuthOnOccludingApp(true);
assertThat(mKeyguardUpdateMonitor.isFaceDetectionRunning()).isTrue();
}
@Test
public void testRequestFaceAuthFromOccludingApp_whenInvoked_stopsFaceAuth() {
mKeyguardUpdateMonitor.requestFaceAuthOnOccludingApp(true);
assertThat(mKeyguardUpdateMonitor.isFaceDetectionRunning()).isTrue();
mKeyguardUpdateMonitor.requestFaceAuthOnOccludingApp(false);
assertThat(mKeyguardUpdateMonitor.isFaceDetectionRunning()).isFalse();
}
@Test
public void testRequireUnlockForNfc_Broadcast() {
KeyguardUpdateMonitorCallback callback = mock(KeyguardUpdateMonitorCallback.class);