From 83fce8a0aa2f22f2f75a9db29994340b9b23e816 Mon Sep 17 00:00:00 2001 From: Grace Cheng Date: Thu, 19 Jan 2023 00:31:26 +0000 Subject: [PATCH] Prevents retrying fingerprint after lockout reset if user exits FingerprintSettings Fingerprint auth is active on the enrolled fingerprints page to indicate to users which fingers are enrolled. Tapping 5x with unenrolled finger on this page sends FINGERPRINT_ERROR_LOCKOUT, which posts a mFingerprintLockoutReset runnable to retry fingerprint auth after LOCKOUT_DURATION. If a user turns off their device and unlocks via pin/pattern/password, this resets lockout, triggering the runnable and causing fingerprint auth to be retried upon device entry. This change prevents this by removing the runnable callback in FingerprintSettingsFragment#onPause. Test: Navigate to enrolled fingerprints page (Settings > Security > Face & Fingerprint Unlock > Fingerprint Unlock). Tap 5x with unenrolled finger, then turn off screen and unlock via pin/pattern/password. Ensure indicator does not appear upon device entry. Fixes: 261366312 Change-Id: I4190669286461e9ce884685a9929313da953476d --- .../settings/biometrics/fingerprint/FingerprintSettings.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java index 2721c773af2..a1d84da2176 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java @@ -641,6 +641,7 @@ public class FingerprintSettings extends SubSettings { if (mAuthenticateSidecar != null) { mAuthenticateSidecar.setListener(null); mAuthenticateSidecar.stopAuthentication(); + mHandler.removeCallbacks(mFingerprintLockoutReset); } }