summaryrefslogtreecommitdiffstats
path: root/packages/Keyguard/src
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2015-07-28 13:19:38 -0700
committerJorim Jaggi <jjaggi@google.com>2015-08-11 22:35:50 +0000
commit959431bcca9fc7b3491b1501957b1f4b45efee65 (patch)
tree27ce79303c89139ca51442d4c41a0eef37cd01e0 /packages/Keyguard/src
parent5ace41f50ba202e34012863012d7cfc910acc7b7 (diff)
downloadframeworks_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.java19
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() {