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

Commit 44018e9f authored by Diya Bera's avatar Diya Bera
Browse files

Add null check in FingerprintDetectClient

Bug: 299980418
Test: atest FingerprintDetectClientTest
Change-Id: I9b8c7203552f3c3addbc6bf372972db54356a8ab
parent 1b2195f6
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -128,7 +128,11 @@ class FingerprintDetectClient extends AcquisitionClient<AidlSession> implements
        vibrateSuccess();

        try {
            if (getListener() != null) {
                getListener().onDetected(getSensorId(), getTargetUserId(), mIsStrongBiometric);
            } else {
                Slog.e(TAG, "Listener is null!");
            }
            mCallback.onClientFinished(this, true /* success */);
        } catch (RemoteException e) {
            Slog.e(TAG, "Remote exception when sending onDetected", e);
+19 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.server.biometrics.sensors.fingerprint.aidl;
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.never;
@@ -147,6 +148,24 @@ public class FingerprintDetectClientTest {
        verify(mBiometricContext).unsubscribe(same(mOperationContextCaptor.getValue()));
    }

    @Test
    public void testWhenListenerIsNull() {
        final AidlSession aidl = new AidlSession(0, mHal, USER_ID, mHalSessionCallback);
        final FingerprintDetectClient client =  new FingerprintDetectClient(mContext, () -> aidl,
                mToken, 6 /* requestId */, null /* listener */,
                new FingerprintAuthenticateOptions.Builder()
                        .setUserId(2)
                        .setSensorId(1)
                        .setOpPackageName("a-test")
                        .build(),
                mBiometricLogger, mBiometricContext,
                mUdfpsOverlayController, true /* isStrongBiometric */);
        client.start(mCallback);
        client.onInteractionDetected();

        verify(mCallback).onClientFinished(eq(client), anyBoolean());
    }

    private FingerprintDetectClient createClient() throws RemoteException {
        return createClient(200 /* version */);
    }