diff options
| author | Jorim Jaggi <jjaggi@google.com> | 2015-09-09 21:59:23 +0000 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2015-09-09 21:59:23 +0000 |
| commit | 21bb7a3e38cc790ffc2735ef28bd5cd729b32e1a (patch) | |
| tree | 9c9404b6845609cb025784bd699b53880294aea0 /core/java/android | |
| parent | 8b4d28a3b70b53178986313e4f271b4e78ae10d3 (diff) | |
| parent | 463bf7cc36660174166ad2aab7d1814bf35c8066 (diff) | |
am 463bf7cc: am 46154b8f: am b5304547: am 5e354223: Use AlarmManager for lockout reset
* commit '463bf7cc36660174166ad2aab7d1814bf35c8066':
Use AlarmManager for lockout reset
Diffstat (limited to 'core/java/android')
| -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); } |
