From 2d05ac352c727afc77cdb31286bacc047a3a0ca7 Mon Sep 17 00:00:00 2001 From: Beverly Date: Tue, 4 Jan 2022 13:35:32 -0500 Subject: [PATCH] Increase time b/w UDFPS fails on AOD for bouncer When UDFPS is attempted (and failed) within x seconds, we bring up the bouncer after 2 consecutive failures. Since UDFPS authentication takes longer on AOD: - on AOD, consecutive attempts is considered failures within 3.5 seconds * on LS, consecutive attempts is considered failures within 2 seconds Test: manual Fixes: 212534920 Change-Id: Id693896d53a9f7287fce1de985c28ba8a437f9ee --- .../phone/BiometricUnlockController.java | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java index 98b5dcc25730e..bfa4a245070c7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java @@ -634,20 +634,22 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp Optional.ofNullable(BiometricUiEvent.FAILURE_EVENT_BY_SOURCE_TYPE.get(biometricSourceType)) .ifPresent(UI_EVENT_LOGGER::log); - long currUptimeMillis = SystemClock.uptimeMillis(); - if (currUptimeMillis - mLastFpFailureUptimeMillis < 2000) { // attempt within 2 seconds - mNumConsecutiveFpFailures += 1; - } else { - mNumConsecutiveFpFailures = 1; - } - mLastFpFailureUptimeMillis = currUptimeMillis; + if (biometricSourceType == BiometricSourceType.FINGERPRINT + && mUpdateMonitor.isUdfpsSupported()) { + long currUptimeMillis = SystemClock.uptimeMillis(); + if (currUptimeMillis - mLastFpFailureUptimeMillis + < (mStatusBarStateController.isDozing() ? 3500 : 2000)) { + mNumConsecutiveFpFailures += 1; + } else { + mNumConsecutiveFpFailures = 1; + } + mLastFpFailureUptimeMillis = currUptimeMillis; - if (biometricSourceType.equals(BiometricSourceType.FINGERPRINT) - && mUpdateMonitor.isUdfpsSupported() - && mNumConsecutiveFpFailures >= FP_ATTEMPTS_BEFORE_SHOW_BOUNCER) { - startWakeAndUnlock(MODE_SHOW_BOUNCER); - UI_EVENT_LOGGER.log(BiometricUiEvent.BIOMETRIC_BOUNCER_SHOWN); - mNumConsecutiveFpFailures = 0; + if (mNumConsecutiveFpFailures >= FP_ATTEMPTS_BEFORE_SHOW_BOUNCER) { + startWakeAndUnlock(MODE_SHOW_BOUNCER); + UI_EVENT_LOGGER.log(BiometricUiEvent.BIOMETRIC_BOUNCER_SHOWN); + mNumConsecutiveFpFailures = 0; + } } cleanup(); } @@ -736,6 +738,11 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp pw.println(" BiometricUnlockController:"); pw.print(" mMode="); pw.println(mMode); pw.print(" mWakeLock="); pw.println(mWakeLock); + if (mUpdateMonitor.isUdfpsSupported()) { + pw.print(" mNumConsecutiveFpFailures="); pw.println(mNumConsecutiveFpFailures); + pw.print(" time since last failure="); + pw.println(SystemClock.uptimeMillis() - mLastFpFailureUptimeMillis); + } } /**