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

Commit a586bb3e authored by Shawn Lin's avatar Shawn Lin Committed by Android (Google) Code Review
Browse files

Merge "Log fingerprint LOE error" into main

parents e6622338 e71d37a0
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -241,6 +241,14 @@ public class BiometricFrameworkStatsLogger {
                -1 /* sensorId */);
    }

    /** {@see FrameworkStatsLog.BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED}. */
    public void reportFingerprintsLoe(int statsModality) {
        FrameworkStatsLog.write(FrameworkStatsLog.BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED,
                statsModality,
                BiometricsProtoEnums.ISSUE_FINGERPRINTS_LOE,
                -1 /* sensorId */);
    }

    /** {@see FrameworkStatsLog.BIOMETRIC_FRR_NOTIFICATION}. */
    public void logFrameworkNotification(int action, int modality) {
        FrameworkStatsLog.write(FrameworkStatsLog.BIOMETRIC_FRR_NOTIFICATION,
+9 −0
Original line number Diff line number Diff line
@@ -296,6 +296,15 @@ public class BiometricLogger {
        mSink.reportUnknownTemplateEnrolledFramework(mStatsModality);
    }

    /** Report unknown enrollment in framework settings */
    public void logFingerprintsLoe() {
        if (shouldSkipLogging()) {
            return;
        }

        mSink.reportFingerprintsLoe(mStatsModality);
    }

    /**
     * Get a callback to start/stop ALS capture when the client runs. Do not create
     * multiple callbacks since there is at most one light sensor (they will all share
+5 −0
Original line number Diff line number Diff line
@@ -161,6 +161,11 @@ public abstract class InternalCleanupClient<S extends BiometricAuthenticator.Ide

        getLogger().logUnknownEnrollmentInHal();

        if (mBiometricUtils.hasValidBiometricUserState(getContext(), getTargetUserId())
                && Flags.notifyFingerprintsLoe()) {
            getLogger().logFingerprintsLoe();
        }

        mCurrentTask.start(mRemoveCallback);
    }

+7 −0
Original line number Diff line number Diff line
@@ -235,6 +235,13 @@ public class BiometricLoggerTest {
        verify(mSink).reportUnknownTemplateEnrolledFramework(eq(DEFAULT_MODALITY));
    }

    @Test
    public void testFingerprintsLoe() {
        mLogger = createLogger();
        mLogger.logFingerprintsLoe();
        verify(mSink).reportFingerprintsLoe(eq(DEFAULT_MODALITY));
    }

    @Test
    public void testALSCallback() {
        mLogger = createLogger();
+10 −1
Original line number Diff line number Diff line
@@ -182,13 +182,22 @@ public class FingerprintInternalCleanupClientTest {
    public void invalidBiometricUserState() throws Exception {
        mClient =  createClient();

        final List<Fingerprint> templates = List.of(
                new Fingerprint("one", 1, 1),
                new Fingerprint("two", 2, 1),
                new Fingerprint("three", 3, 1)
        );

        final List<Fingerprint> list = new ArrayList<>();
        doReturn(true).when(mFingerprintUtils)
                .hasValidBiometricUserState(mContext, 2);
        doReturn(list).when(mFingerprintUtils).getBiometricsForUser(mContext, 2);

        mClient.start(mCallback);
        mClient.onEnumerationResult(null, 0);
        for (int i = templates.size() - 1; i >= 0; i--) {
            mClient.getCurrentEnumerateClient().onEnumerationResult(templates.get(i), i);
        }
        verify(mLogger).logFingerprintsLoe();
        verify(mFingerprintUtils).deleteStateForUser(2);
    }