Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2d05ac35 authored by Beverly's avatar Beverly
Browse files

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
parent cb1226d6
Loading
Loading
Loading
Loading
+20 −13
Original line number Diff line number Diff line
@@ -634,21 +634,23 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
        Optional.ofNullable(BiometricUiEvent.FAILURE_EVENT_BY_SOURCE_TYPE.get(biometricSourceType))
                .ifPresent(UI_EVENT_LOGGER::log);

        if (biometricSourceType == BiometricSourceType.FINGERPRINT
                && mUpdateMonitor.isUdfpsSupported()) {
            long currUptimeMillis = SystemClock.uptimeMillis();
        if (currUptimeMillis - mLastFpFailureUptimeMillis < 2000) { // attempt within 2 seconds
            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) {
            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);
        }
    }

    /**