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

Commit 16f973b8 authored by Joshua Mccloskey's avatar Joshua Mccloskey
Browse files

Revert "Restart fingerprint auth on cancel."

This reverts commit 4efd4c16.

Reason for revert: Breaks auth behavior

Fixes: 347858844

Change-Id: Ie1b8be9dfae2cba7e2b37187f08cf1360aedf29f
parent 4efd4c16
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -352,6 +352,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());
    }
}