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

Commit bbbc5aed authored by Diya Bera's avatar Diya Bera
Browse files

Finish client when cancelled

Flag: N/A EXEMPT Bug Fix
Fixes: 354675874
Test: atest FingerprintAuthenticationClientTest
FaceAuthenticationClientTest

Change-Id: I5c26ed40f7c1fceeed83fc329904cb8c2c5d5a5d
parent c46b6a5b
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -227,6 +227,9 @@ public class FaceAuthenticationClient
                onError(BiometricFaceConstants.FACE_ERROR_HW_UNAVAILABLE, 0 /* vendorCode */);
                mCallback.onClientFinished(this, false /* success */);
            }
        } else {
            Slog.e(TAG, "Cancellation signal is null");
            mCallback.onClientFinished(this, false /* success */);
        }
    }

+2 −1
Original line number Diff line number Diff line
@@ -359,7 +359,8 @@ public class FingerprintAuthenticationClient
                mCallback.onClientFinished(this, false /* success */);
            }
        } else {
            Slog.e(TAG, "cancellation signal was null");
            Slog.e(TAG, "Cancellation signal was null");
            mCallback.onClientFinished(this, false /* success */);
        }
    }

+9 −0
Original line number Diff line number Diff line
@@ -479,6 +479,15 @@ public class FaceAuthenticationClientTest {
                eq(mContext.getOpPackageName()), anyInt(), anyInt(), any());
    }

    @Test
    public void testCancelAuth_whenClientWaitingForCookie() throws RemoteException {
        final FaceAuthenticationClient client = createClient(true);
        client.waitForCookie(mCallback);
        client.cancel();

        verify(mCallback).onClientFinished(client, false);
    }

    private FaceAuthenticationClient createClient() throws RemoteException {
        return createClient(2 /* version */, mClientMonitorCallbackConverter,
                false /* allowBackgroundAuthentication */, true /* isBiometricPrompt */,
+13 −1
Original line number Diff line number Diff line
@@ -117,7 +117,6 @@ public class FingerprintAuthenticationClientTest {
    private static final int TOUCH_Y = 20;
    private static final float TOUCH_MAJOR = 4.4f;
    private static final float TOUCH_MINOR = 5.5f;
    private static final int FINGER_UP = 111;

    @Rule
    public final TestableContext mContext = new TestableContext(
@@ -383,6 +382,8 @@ public class FingerprintAuthenticationClientTest {

    @Test
    public void subscribeContextAndStartHal() throws RemoteException {
        when(mHal.authenticateWithContext(anyLong(), any())).thenReturn(mCancellationSignal);

        final FingerprintAuthenticationClient client = createClient();
        client.start(mCallback);

@@ -691,6 +692,17 @@ public class FingerprintAuthenticationClientTest {
        verify(mLockoutTracker).addFailedAttemptForUser(USER_ID);
    }

    @Test
    public void testCancelAuth_whenClientWaitingForCookie() throws RemoteException {
        final FingerprintAuthenticationClient client = createClientWithoutBackgroundAuth();
        client.waitForCookie(mCallback);
        client.cancel();
        mLooper.moveTimeForward(10);
        mLooper.dispatchAll();

        verify(mCallback).onClientFinished(client, false);
    }

    private FingerprintAuthenticationClient createClient() throws RemoteException {
        return createClient(100 /* version */, true /* allowBackgroundAuthentication */,
                true /* isBiometricPrompt */,