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

Commit d197486f authored by Jim Miller's avatar Jim Miller
Browse files

Send FINGERPRINT_ERROR_LOCKOUT on some devices

For devices that don't support hardware lockout, send
FINGERPRINT_ERROR_LOCKOUT after the last unsuccessful
authentication attempt.

Fixes bug 28346640

Change-Id: Iae3eb8e422f09100a0229c350df9983af5fd8762
parent b2e36d79
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -74,12 +74,23 @@ public abstract class AuthenticationClient extends ClientMonitor {
        } else {
            result = true; // client not listening
        }
        if (fingerId == 0) {
        if (!authenticated) {
            if (receiver != null) {
                FingerprintUtils.vibrateFingerprintError(getContext());
            }
            // allow system-defined limit of number of attempts before giving up
            result |= handleFailedAttempt();
            boolean inLockoutMode =  handleFailedAttempt();
            // send lockout event in case driver doesn't enforce it.
            if (inLockoutMode) {
                try {
                    Slog.w(TAG, "Forcing lockout (fp driver code should do this!)");
                    receiver.onError(getHalDeviceId(),
                            FingerprintManager.FINGERPRINT_ERROR_LOCKOUT);
                } catch (RemoteException e) {
                    Slog.w(TAG, "Failed to notify lockout:", e);
                }
            }
            result |= inLockoutMode;
        } else {
            if (receiver != null) {
                FingerprintUtils.vibrateFingerprintSuccess(getContext());