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

Commit 08697a3b authored by Joshua Mccloskey's avatar Joshua Mccloskey Committed by Android Build Coastguard Worker
Browse files

Revert "Restart fingerprint auth on cancel."

This reverts commit 4efd4c16.

Reason for revert: Breaks auth behavior

Fixes: 347858844
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:16f973b8364171116ce16b951113d64beefe506c)
Merged-In: Ie1b8be9dfae2cba7e2b37187f08cf1360aedf29f
Change-Id: Ie1b8be9dfae2cba7e2b37187f08cf1360aedf29f
parent a524b8c3
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -356,6 +356,11 @@ public class FingerprintSettings extends SubSettings {
         */
        protected void handleError(int errMsgId, CharSequence msg) {
            switch (errMsgId) {
                case FingerprintManager.FINGERPRINT_ERROR_CANCELED:
                case FingerprintManager.FINGERPRINT_ERROR_USER_CANCELED:
                    // Only happens if we get preempted by another activity, or canceled by the
                    // user (e.g. swipe up to home). Ignored.
                    return;
                case FingerprintManager.FINGERPRINT_ERROR_LOCKOUT:
                    mInFingerprintLockout = true;
                    // We've been locked out.  Reset after 30s.
+1 −29
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.settings.biometrics.fingerprint;

import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON;
import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_REAR;
import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;

import static com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment;
@@ -34,16 +33,13 @@ import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.Intent;
import android.content.pm.UserInfo;
import android.hardware.biometrics.ComponentInfoInternal;
import android.hardware.biometrics.SensorProperties;
import android.hardware.fingerprint.Fingerprint;
import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.FingerprintSensorProperties;
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
@@ -84,7 +80,6 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;

import java.util.ArrayList;
import java.util.List;

@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowSettingsPreferenceFragment.class, ShadowUtils.class, ShadowFragment.class,
@@ -152,6 +147,7 @@ public class FingerprintSettingsFragmentTest {
    public void testCancellationSignalLifeCycle() {
        setUpFragment(false);

        mFingerprintAuthenticateSidecar.setFingerprintManager(mFingerprintManager);

        doNothing().when(mFingerprintManager).authenticate(any(),
                mCancellationSignalArgumentCaptor.capture(),
@@ -217,7 +213,6 @@ public class FingerprintSettingsFragmentTest {
        doReturn(fragmentManager).when(mActivity).getSupportFragmentManager();

        mFingerprintAuthenticateSidecar = new FingerprintAuthenticateSidecar();
        mFingerprintAuthenticateSidecar.setFingerprintManager(mFingerprintManager);
        doReturn(mFingerprintAuthenticateSidecar).when(fragmentManager).findFragmentByTag(
                "authenticate_sidecar");

@@ -251,27 +246,4 @@ public class FingerprintSettingsFragmentTest {
                true /* resetLockoutRequiresHardwareAuthToken */));
        doReturn(props).when(mFingerprintManager).getSensorPropertiesInternal();
    }

    @Test
    public void testAuthOnFragmentSetup() {
        doReturn(List.of(new Fingerprint("Finger 1", 1, 2, 3)))
                .when(mFingerprintManager).getEnrolledFingerprints(anyInt());
        setUpFragment(false, 1, TYPE_REAR);

        verify(mFingerprintManager).authenticate(any(), any(),
                any(), any(), anyInt());
    }

    @Test
    public void testErrorCancelledRestartsAuth() {
        doReturn(List.of(new Fingerprint("Finger 1", 1, 2, 3)))
                .when(mFingerprintManager).getEnrolledFingerprints(anyInt());
        setUpFragment(false, 1, TYPE_REAR);

        // When we receive a cancel, we should restart auth.
        mFragment.handleError(FingerprintManager.FINGERPRINT_ERROR_CANCELED, "blah");

        verify(mFingerprintManager, times(2)).authenticate(any(), any(),
                any(), any(), anyInt());
    }
}