diff options
| author | Jorim Jaggi <jjaggi@google.com> | 2015-09-09 21:00:49 +0000 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2015-09-09 21:00:49 +0000 |
| commit | 46154b8fa50c4e8176225981500ad95a5b667cea (patch) | |
| tree | 7bff2d9d88bf56841eaab25f41d987b52e7d65e4 /core/java/android | |
| parent | 63d94e4c3be9190554ed51f2b00eb764707fd848 (diff) | |
| parent | b53045476ce228d510b045276f84f004d3b9eeb8 (diff) | |
am b5304547: am 5e354223: Use AlarmManager for lockout reset
* commit 'b53045476ce228d510b045276f84f004d3b9eeb8':
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); } |
