From 8cf5bcdfa7531ee9f5ead37b890f4eee3655dcf6 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Wed, 26 Jul 2017 17:35:23 -0700 Subject: [PATCH] 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 --- .../android/settings/fingerprint/FingerprintSettings.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/fingerprint/FingerprintSettings.java b/src/com/android/settings/fingerprint/FingerprintSettings.java index 2425c61dcce..1d427fc7913 100644 --- a/src/com/android/settings/fingerprint/FingerprintSettings.java +++ b/src/com/android/settings/fingerprint/FingerprintSettings.java @@ -129,7 +129,6 @@ public class FingerprintSettings extends SubSettings { 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 @@ public class FingerprintSettings extends SubSettings { 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 @@ public class FingerprintSettings extends SubSettings { @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 @@ public class FingerprintSettings extends SubSettings { 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) {