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

Commit 75587638 authored by joshmccloskey's avatar joshmccloskey
Browse files

Updated Fingerprint enrollment logging

Test: Verified regular fingerprint enrollment correctly logged
enrollment.
Test: Verified that the find fingerprint sensor activity no longer
falsely reports a failed enrollment.
Bug: 175316123

Fingerprint enrollment shows a find sensor screen which makes a call to
FingerprintManager.enroll(), the purpose is to get the user to locate
the sensor. The consequence was that logging built into the framework
was incorrectly logging a failed enrollment after cancellation.

Change-Id: I4777613fe521f04cc97c471e0a1e85e5809d7f06
parent 26474eb0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -109,6 +109,7 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase {
                FingerprintEnrollEnrolling.TAG_SIDECAR);
        if (mSidecar == null) {
            mSidecar = new FingerprintEnrollSidecar();
            mSidecar.logMetrics(false);
            getSupportFragmentManager().beginTransaction()
                    .add(mSidecar, FingerprintEnrollEnrolling.TAG_SIDECAR)
                    .commitAllowingStateLoss();
+13 −2
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.settings.biometrics.fingerprint;
import android.app.Activity;
import android.app.settings.SettingsEnums;
import android.hardware.fingerprint.FingerprintManager;
import android.os.UserHandle;

import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricEnrollSidecar;
@@ -30,6 +29,7 @@ import com.android.settings.biometrics.BiometricEnrollSidecar;
public class FingerprintEnrollSidecar extends BiometricEnrollSidecar {

    private FingerprintManager mFingerprintManager;
    private boolean mShouldLogMetrics = true;

    @Override
    public void onAttach(Activity activity) {
@@ -40,7 +40,18 @@ public class FingerprintEnrollSidecar extends BiometricEnrollSidecar {
    @Override
    protected void startEnrollment() {
        super.startEnrollment();
        mFingerprintManager.enroll(mToken, mEnrollmentCancel, mUserId, mEnrollmentCallback);
        mFingerprintManager.enroll(mToken, mEnrollmentCancel, mUserId, mEnrollmentCallback,
                mShouldLogMetrics);
    }

    /**
     * Sets the flag mShouldLogMetrics which controls whether or not
     * logging of enrollment successes/failures will be recorded for
     * this particular instance of enrollment. This is primarily used by
     * the find sensor activity so that false negatives are not reported.
     */
    public void logMetrics(boolean shouldLogMetrics) {
        mShouldLogMetrics = shouldLogMetrics;
    }

    private FingerprintManager.EnrollmentCallback mEnrollmentCallback
+3 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.verify;

import android.content.Intent;
@@ -95,7 +96,8 @@ public class FingerprintEnrollEnrollingTest {
                any(byte[].class),
                any(CancellationSignal.class),
                anyInt(),
                callbackCaptor.capture());
                callbackCaptor.capture(),
                eq(true));

        return callbackCaptor.getValue();
    }
+3 −2
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertWithMessage;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.verify;
import static org.robolectric.RuntimeEnvironment.application;

@@ -30,7 +31,6 @@ import android.content.Intent;
import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.FingerprintManager.EnrollmentCallback;
import android.os.CancellationSignal;
import android.widget.Button;

import com.android.settings.R;
import com.android.settings.biometrics.BiometricEnrollBase;
@@ -152,7 +152,8 @@ public class FingerprintEnrollFindSensorTest {
                any(byte[].class),
                any(CancellationSignal.class),
                anyInt(),
                callbackCaptor.capture());
                callbackCaptor.capture(),
                eq(false));

        return callbackCaptor.getValue();
    }