diff options
author | Jorim Jaggi <jjaggi@google.com> | 2015-07-28 13:19:38 -0700 |
---|---|---|
committer | Jorim Jaggi <jjaggi@google.com> | 2015-08-11 22:35:50 +0000 |
commit | 959431bcca9fc7b3491b1501957b1f4b45efee65 (patch) | |
tree | 27ce79303c89139ca51442d4c41a0eef37cd01e0 /packages/Keyguard/src | |
parent | 5ace41f50ba202e34012863012d7cfc910acc7b7 (diff) | |
download | frameworks_base-959431bcca9fc7b3491b1501957b1f4b45efee65.zip frameworks_base-959431bcca9fc7b3491b1501957b1f4b45efee65.tar.gz frameworks_base-959431bcca9fc7b3491b1501957b1f4b45efee65.tar.bz2 |
Wake device when Keyguard invisible and getting fingerprint
Also fixes a bug where we didn't listen for fingerprint after
rebooting the device.
Bug: 22644634
Bug: 23046263
Change-Id: Ide85a01d9d4cfcc880fbc29ca4f3cc6eef47da2d
Diffstat (limited to 'packages/Keyguard/src')
-rw-r--r-- | packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java index 55d8520..0ee68fd 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -118,7 +118,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Mode in which we wake up the device, but play the normal dismiss animation. Active when we * acquire a fingerprint pulsing in doze mode. * */ - private static final int FP_WAKE_WAKE_TO_BOUNCER = 2; + private static final int FP_WAKE_TO_BOUNCER = 2; + + /** + * Mode in which we only wake up the device, and keyguard was not showing when we acquired a + * fingerprint. + * */ + private static final int FP_ONLY_WAKE = 3; // Callback messages private static final int MSG_TIME_UPDATE = 301; @@ -401,14 +407,14 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { mWakeLock = mPowerManager.newWakeLock( PowerManager.PARTIAL_WAKE_LOCK, FINGERPRINT_WAKE_LOCK_NAME); mWakeLock.acquire(); - mFpWakeMode = FP_WAKE_DIRECT_UNLOCK; + mFpWakeMode = mKeyguardIsVisible ? FP_WAKE_DIRECT_UNLOCK : FP_ONLY_WAKE; if (DEBUG_FP_WAKELOCK) { Log.i(TAG, "fingerprint acquired, grabbing fp wakelock"); } mHandler.postDelayed(mReleaseFingerprintWakeLockRunnable, FINGERPRINT_WAKELOCK_TIMEOUT_MS); } else if (!mDeviceInteractive) { - mFpWakeMode = FP_WAKE_WAKE_TO_BOUNCER; + mFpWakeMode = FP_WAKE_TO_BOUNCER; } else { mFpWakeMode = FP_WAKE_NONE; } @@ -436,7 +442,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleFingerprintAuthenticated() { - if (mFpWakeMode == FP_WAKE_WAKE_TO_BOUNCER || mFpWakeMode == FP_WAKE_DIRECT_UNLOCK) { + if (mFpWakeMode == FP_WAKE_TO_BOUNCER || mFpWakeMode == FP_WAKE_DIRECT_UNLOCK + || mFpWakeMode == FP_ONLY_WAKE) { if (DEBUG_FP_WAKELOCK) { Log.i(TAG, "fp wakelock: Authenticated, waking up..."); } @@ -942,9 +949,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private boolean shouldListenForFingerprint() { - return mKeyguardIsVisible && !mSwitchingUser && - mTrustManager.hasUserAuthenticatedSinceBoot( - ActivityManager.getCurrentUser()); + return (mKeyguardIsVisible || !mDeviceInteractive) && !mSwitchingUser; } private void startListeningForFingerprint() { |