diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java index db87c0facac..46461340c10 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java @@ -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. diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java index 6407f648acb..58e7e2d4003 100644 --- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java +++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java @@ -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()); - } }