Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd7dcc59 authored by Chandru's avatar Chandru
Browse files

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
parent eda61eee
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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);
    }

    /**
+18 −0
Original line number Diff line number Diff line
@@ -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);