summaryrefslogtreecommitdiffstats
path: root/services/core/java/com/android/server/fingerprint
diff options
context:
space:
mode:
authorJim Miller <jaggies@google.com>2015-08-12 20:30:34 -0700
committerJim Miller <jaggies@google.com>2015-08-18 13:01:31 -0700
commite0507bbbf95ae6d958c900f32122baf078d47d71 (patch)
treea0d876b47cc26bea24ba78bf25a41b570206397c /services/core/java/com/android/server/fingerprint
parent2ad94499697d79dc41489ab873527411f88b3f15 (diff)
downloadframeworks_base-e0507bbbf95ae6d958c900f32122baf078d47d71.zip
frameworks_base-e0507bbbf95ae6d958c900f32122baf078d47d71.tar.gz
frameworks_base-e0507bbbf95ae6d958c900f32122baf078d47d71.tar.bz2
Reset fingerprint lockout timer when strong auth is used.
Fixes bug 22565462 Change-Id: I4842877839845e7fe103396d8ca8104928568c04
Diffstat (limited to 'services/core/java/com/android/server/fingerprint')
-rw-r--r--services/core/java/com/android/server/fingerprint/FingerprintService.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/fingerprint/FingerprintService.java b/services/core/java/com/android/server/fingerprint/FingerprintService.java
index 17607ff..befa311 100644
--- a/services/core/java/com/android/server/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/fingerprint/FingerprintService.java
@@ -54,6 +54,7 @@ import android.hardware.fingerprint.IFingerprintServiceReceiver;
import android.view.Display;
import static android.Manifest.permission.MANAGE_FINGERPRINT;
+import static android.Manifest.permission.RESET_FINGERPRINT_LOCKOUT;
import static android.Manifest.permission.USE_FINGERPRINT;
import java.io.File;
@@ -255,6 +256,9 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe
Slog.v(TAG, "Reset fingerprint lockout");
}
mFailedAttempts = 0;
+ // If we're asked to reset failed attempts externally (i.e. from Keyguard), the runnable
+ // may still be in the queue; remove it.
+ mHandler.removeCallbacks(mLockoutReset);
}
private boolean handleFailedAttempt(ClientMonitor clientMonitor) {
@@ -878,6 +882,12 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe
Binder.restoreCallingIdentity(ident);
}
}
+ @Override // Binder call
+ public void resetTimeout(byte [] token) {
+ checkPermission(RESET_FINGERPRINT_LOCKOUT);
+ // TODO: confirm security token when we move timeout management into the HAL layer.
+ mLockoutReset.run();
+ }
}
private void dumpInternal(PrintWriter pw) {