Reset fingerprint lockout upon successful unlock
FingerprintSettings should not start listening for fingerprints until
after Pin/Pattern/Pass is entered
Fixes: 63437524
Fixes: 63739006
Test: open FP settings, touch an invalid finger 5 times
close FP settings, re-enter FP settings, enter Pin/Pattern/Pass
touch FP with valid finger, should not be in lockout mode
Change-Id: Ia2e219824c33169a5610b36123c42aa3d6ff22c5
diff --git a/src/com/android/settings/fingerprint/FingerprintSettings.java b/src/com/android/settings/fingerprint/FingerprintSettings.java
index 2425c61..1d427fc 100644
--- a/src/com/android/settings/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/fingerprint/FingerprintSettings.java
@@ -129,7 +129,6 @@
public static class FingerprintSettingsFragment extends SettingsPreferenceFragment
implements OnPreferenceChangeListener, FingerprintPreference.OnDeleteClickListener {
- private static final int MAX_RETRY_ATTEMPTS = 20;
private static final int RESET_HIGHLIGHT_DELAY_MS = 500;
private static final String TAG = "FingerprintSettings";
@@ -284,6 +283,11 @@
if (mRemovalSidecar.inProgress()) {
return;
}
+ // Don't start authentication if ChooseLockGeneric is showing, otherwise if the user
+ // is in FP lockout, a toast will show on top
+ if (mLaunchedConfirm) {
+ return;
+ }
if (!mInFingerprintLockout) {
mFingerprintCancel = new CancellationSignal();
mFingerprintManager.authenticate(null, mFingerprintCancel, 0 /* flags */,
@@ -432,6 +436,7 @@
@Override
public void onResume() {
super.onResume();
+ mInFingerprintLockout = false;
// Make sure we reload the preference hierarchy since fingerprints may be added,
// deleted or renamed.
updatePreferences();
@@ -545,6 +550,7 @@
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CHOOSE_LOCK_GENERIC_REQUEST
|| requestCode == CONFIRM_REQUEST) {
+ mLaunchedConfirm = false;
if (resultCode == RESULT_FINISHED || resultCode == RESULT_OK) {
// The lock pin/pattern/password was set. Start enrolling!
if (data != null) {