diff options
| author | Jorim Jaggi <jjaggi@google.com> | 2015-09-09 20:54:42 +0000 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2015-09-09 20:54:42 +0000 |
| commit | b53045476ce228d510b045276f84f004d3b9eeb8 (patch) | |
| tree | 724883be747b4a07d2e9f5aa531179de98a48913 /core/java | |
| parent | 95198ee9ce374582e71b5a29e740e97b7b7b198b (diff) | |
| parent | 5e354223d817477efac9a6a2e3ce3d9161e046a4 (diff) | |
am 5e354223: Use AlarmManager for lockout reset
* commit '5e354223d817477efac9a6a2e3ce3d9161e046a4':
Use AlarmManager for lockout reset
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/hardware/fingerprint/FingerprintManager.java | 11 | ||||
| -rw-r--r-- | core/java/android/hardware/fingerprint/IFingerprintServiceLockoutResetCallback.aidl | 4 |
2 files changed, 13 insertions, 2 deletions
diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java index 1f23c0a6ba3f..7fef5e17c5cb 100644 --- a/core/java/android/hardware/fingerprint/FingerprintManager.java +++ b/core/java/android/hardware/fingerprint/FingerprintManager.java @@ -27,6 +27,7 @@ import android.os.CancellationSignal.OnCancelListener; import android.os.Handler; import android.os.IBinder; import android.os.Looper; +import android.os.PowerManager; import android.os.RemoteException; import android.os.UserHandle; import android.security.keystore.AndroidKeyStoreProvider; @@ -705,15 +706,23 @@ public class FingerprintManager { public void addLockoutResetCallback(final LockoutResetCallback callback) { if (mService != null) { try { + final PowerManager powerManager = mContext.getSystemService(PowerManager.class); mService.addLockoutResetCallback( new IFingerprintServiceLockoutResetCallback.Stub() { @Override public void onLockoutReset(long deviceId) throws RemoteException { + final PowerManager.WakeLock wakeLock = powerManager.newWakeLock( + PowerManager.PARTIAL_WAKE_LOCK, "lockoutResetCallback"); + wakeLock.acquire(); mHandler.post(new Runnable() { @Override public void run() { - callback.onLockoutReset(); + try { + callback.onLockoutReset(); + } finally { + wakeLock.release(); + } } }); } diff --git a/core/java/android/hardware/fingerprint/IFingerprintServiceLockoutResetCallback.aidl b/core/java/android/hardware/fingerprint/IFingerprintServiceLockoutResetCallback.aidl index c9a5d59874f2..e027a2b3d260 100644 --- a/core/java/android/hardware/fingerprint/IFingerprintServiceLockoutResetCallback.aidl +++ b/core/java/android/hardware/fingerprint/IFingerprintServiceLockoutResetCallback.aidl @@ -23,6 +23,8 @@ import android.os.UserHandle; * Callback when lockout period expired and clients are allowed to authenticate again. * @hide */ -oneway interface IFingerprintServiceLockoutResetCallback { +interface IFingerprintServiceLockoutResetCallback { + + /** Method is synchronous so wakelock is held when this is called from a WAKEUP alarm. */ void onLockoutReset(long deviceId); } |
