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
This commit is contained in:
Beverly
2022-01-04 13:35:32 -05:00
parent cb1226d6de
commit 2d05ac352c

View File

@@ -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);
}
}
/**