summaryrefslogtreecommitdiffstats
path: root/packages/Keyguard
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2015-07-29 00:07:24 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-07-29 00:07:24 +0000
commitce58fa9593ae9b0d5e29485019876bde5c54848b (patch)
treed17e6319dcab330c73340ec4667177e51bcd2684 /packages/Keyguard
parentf9f837faa6a9fa242610a620caee185a8d1826cf (diff)
parentfed9b2817ffec229baed7c7ea378fae98254b4dd (diff)
downloadframeworks_base-ce58fa9593ae9b0d5e29485019876bde5c54848b.zip
frameworks_base-ce58fa9593ae9b0d5e29485019876bde5c54848b.tar.gz
frameworks_base-ce58fa9593ae9b0d5e29485019876bde5c54848b.tar.bz2
am fed9b281: am 353fe1c6: am 0d210f63: Animation for touch, wake and unlock
* commit 'fed9b2817ffec229baed7c7ea378fae98254b4dd': Animation for touch, wake and unlock
Diffstat (limited to 'packages/Keyguard')
-rw-r--r--packages/Keyguard/src/com/android/keyguard/CarrierText.java9
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java8
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java8
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java74
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java8
5 files changed, 69 insertions, 38 deletions
diff --git a/packages/Keyguard/src/com/android/keyguard/CarrierText.java b/packages/Keyguard/src/com/android/keyguard/CarrierText.java
index e89caf7..159ac4c 100644
--- a/packages/Keyguard/src/com/android/keyguard/CarrierText.java
+++ b/packages/Keyguard/src/com/android/keyguard/CarrierText.java
@@ -23,7 +23,6 @@ import java.util.Objects;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
-import android.content.res.Resources;
import android.content.res.TypedArray;
import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
@@ -59,11 +58,11 @@ public class CarrierText extends TextView {
updateCarrierText();
}
- public void onScreenTurnedOff(int why) {
+ public void onFinishedGoingToSleep(int why) {
setSelected(false);
};
- public void onScreenTurnedOn() {
+ public void onStartedWakingUp() {
setSelected(true);
};
};
@@ -193,8 +192,8 @@ public class CarrierText extends TextView {
super.onFinishInflate();
mSeparator = getResources().getString(
com.android.internal.R.string.kg_text_message_separator);
- final boolean screenOn = KeyguardUpdateMonitor.getInstance(mContext).isScreenOn();
- setSelected(screenOn); // Allow marquee to work.
+ boolean shouldMarquee = KeyguardUpdateMonitor.getInstance(mContext).isDeviceInteractive();
+ setSelected(shouldMarquee); // Allow marquee to work.
}
@Override
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java b/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java
index 301b171..2951af9 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java
@@ -58,10 +58,10 @@ class KeyguardMessageArea extends TextView implements SecurityMessageDisplay {
};
private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() {
- public void onScreenTurnedOff(int why) {
+ public void onFinishedGoingToSleep(int why) {
setSelected(false);
};
- public void onScreenTurnedOn() {
+ public void onStartedWakingUp() {
setSelected(true);
};
};
@@ -126,8 +126,8 @@ class KeyguardMessageArea extends TextView implements SecurityMessageDisplay {
@Override
protected void onFinishInflate() {
- final boolean screenOn = KeyguardUpdateMonitor.getInstance(mContext).isScreenOn();
- setSelected(screenOn); // This is required to ensure marquee works
+ boolean shouldMarquee = KeyguardUpdateMonitor.getInstance(mContext).isDeviceInteractive();
+ setSelected(shouldMarquee); // This is required to ensure marquee works
}
private void securityMessageChanged(CharSequence message) {
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java
index 4e9621a..f95b0ae 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java
@@ -67,12 +67,12 @@ public class KeyguardStatusView extends GridLayout {
}
@Override
- public void onScreenTurnedOn() {
+ public void onStartedWakingUp() {
setEnableMarquee(true);
}
@Override
- public void onScreenTurnedOff(int why) {
+ public void onFinishedGoingToSleep(int why) {
setEnableMarquee(false);
}
@@ -113,8 +113,8 @@ public class KeyguardStatusView extends GridLayout {
mClockView.setShowCurrentUserTime(true);
mOwnerInfo = (TextView) findViewById(R.id.owner_info);
- final boolean screenOn = KeyguardUpdateMonitor.getInstance(mContext).isScreenOn();
- setEnableMarquee(screenOn);
+ boolean shouldMarquee = KeyguardUpdateMonitor.getInstance(mContext).isDeviceInteractive();
+ setEnableMarquee(shouldMarquee);
refresh();
updateOwnerInfo();
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
index a90d084..29aca54 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -103,6 +103,23 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
= "com.android.facelock.FACE_UNLOCK_STOPPED";
private static final String FINGERPRINT_WAKE_LOCK_NAME = "wake-and-unlock wakelock";
+ /**
+ * Mode in which we don't need to wake up the device when we get a fingerprint.
+ */
+ private static final int FP_WAKE_NONE = 0;
+
+ /**
+ * Mode in which we wake up the device, and directly dismiss Keyguard. Active when we acquire
+ * a fingerprint while the screen is off and the device was sleeping.
+ */
+ private static final int FP_WAKE_DIRECT_UNLOCK = 1;
+
+ /**
+ * 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;
+
// Callback messages
private static final int MSG_TIME_UPDATE = 301;
private static final int MSG_BATTERY_UPDATE = 302;
@@ -118,8 +135,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
private static final int MSG_USER_SWITCH_COMPLETE = 314;
private static final int MSG_USER_INFO_CHANGED = 317;
private static final int MSG_REPORT_EMERGENCY_CALL_ACTION = 318;
- private static final int MSG_SCREEN_TURNED_ON = 319;
- private static final int MSG_SCREEN_TURNED_OFF = 320;
+ private static final int MSG_STARTED_WAKING_UP = 319;
+ private static final int MSG_FINISHED_GOING_TO_SLEEP = 320;
private static final int MSG_KEYGUARD_BOUNCER_CHANGED = 322;
private static final int MSG_FACE_UNLOCK_STATE_CHANGED = 327;
private static final int MSG_SIM_SUBSCRIPTION_INFO_CHANGED = 328;
@@ -156,6 +173,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
private boolean mSwitchingUser;
+ private boolean mDeviceInteractive;
private boolean mScreenOn;
private SubscriptionManager mSubscriptionManager;
private List<SubscriptionInfo> mSubscriptionInfo;
@@ -212,11 +230,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
case MSG_REPORT_EMERGENCY_CALL_ACTION:
handleReportEmergencyCallAction();
break;
- case MSG_SCREEN_TURNED_OFF:
- handleScreenTurnedOff(msg.arg1);
+ case MSG_FINISHED_GOING_TO_SLEEP:
+ handleFinishedGoingToSleep(msg.arg1);
break;
- case MSG_SCREEN_TURNED_ON:
- handleScreenTurnedOn();
+ case MSG_STARTED_WAKING_UP:
+ handleStartedWakingUp();
break;
case MSG_FACE_UNLOCK_STATE_CHANGED:
handleFaceUnlockStateChanged(msg.arg1 != 0, msg.arg2);
@@ -249,7 +267,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
private static int sCurrentUser;
- private boolean mWakeAndUnlocking;
+ private int mFpWakeMode;
public synchronized static void setCurrentUser(int currentUser) {
sCurrentUser = currentUser;
@@ -372,19 +390,21 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
if (acquireInfo != FingerprintManager.FINGERPRINT_ACQUIRED_GOOD) {
return;
}
- if (!mScreenOn) {
+ if (!mDeviceInteractive && !mScreenOn) {
releaseFingerprintWakeLock();
mWakeLock = mPowerManager.newWakeLock(
PowerManager.PARTIAL_WAKE_LOCK, FINGERPRINT_WAKE_LOCK_NAME);
mWakeLock.acquire();
- mWakeAndUnlocking = true;
+ mFpWakeMode = FP_WAKE_DIRECT_UNLOCK;
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;
} else {
- mWakeAndUnlocking = false;
+ mFpWakeMode = FP_WAKE_NONE;
}
}
@@ -410,7 +430,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
}
private void handleFingerprintAuthenticated() {
- if (mWakeAndUnlocking) {
+ if (mFpWakeMode == FP_WAKE_WAKE_TO_BOUNCER || mFpWakeMode == FP_WAKE_DIRECT_UNLOCK) {
if (DEBUG_FP_WAKELOCK) {
Log.i(TAG, "fp wakelock: Authenticated, waking up...");
}
@@ -429,7 +449,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
Log.d(TAG, "Fingerprint disabled by DPM for userId: " + userId);
return;
}
- onFingerprintAuthenticated(userId, mWakeAndUnlocking);
+ onFingerprintAuthenticated(userId, mFpWakeMode == FP_WAKE_DIRECT_UNLOCK);
} finally {
setFingerprintRunningDetectionRunning(false);
}
@@ -765,24 +785,24 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
return sInstance;
}
- protected void handleScreenTurnedOn() {
+ protected void handleStartedWakingUp() {
updateFingerprintListeningState();
final int count = mCallbacks.size();
for (int i = 0; i < count; i++) {
KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
if (cb != null) {
- cb.onScreenTurnedOn();
+ cb.onStartedWakingUp();
}
}
}
- protected void handleScreenTurnedOff(int arg1) {
+ protected void handleFinishedGoingToSleep(int arg1) {
clearFingerprintRecognized();
final int count = mCallbacks.size();
for (int i = 0; i < count; i++) {
KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
if (cb != null) {
- cb.onScreenTurnedOff(arg1);
+ cb.onFinishedGoingToSleep(arg1);
}
}
updateFingerprintListeningState();
@@ -1450,22 +1470,34 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
// TODO: use these callbacks elsewhere in place of the existing notifyScreen*()
// (KeyguardViewMediator, KeyguardHostView)
+ public void dispatchStartedWakingUp() {
+ synchronized (this) {
+ mDeviceInteractive = true;
+ }
+ mHandler.sendEmptyMessage(MSG_STARTED_WAKING_UP);
+ }
+
+ public void dispatchFinishedGoingToSleep(int why) {
+ synchronized(this) {
+ mDeviceInteractive = false;
+ }
+ mHandler.sendMessage(mHandler.obtainMessage(MSG_FINISHED_GOING_TO_SLEEP, why, 0));
+ }
+
public void dispatchScreenTurnedOn() {
synchronized (this) {
mScreenOn = true;
}
- mHandler.sendEmptyMessage(MSG_SCREEN_TURNED_ON);
}
- public void dispatchScreenTurnedOff(int why) {
+ public void dispatchScreenTurnedOff() {
synchronized(this) {
mScreenOn = false;
}
- mHandler.sendMessage(mHandler.obtainMessage(MSG_SCREEN_TURNED_OFF, why, 0));
}
- public boolean isScreenOn() {
- return mScreenOn;
+ public boolean isDeviceInteractive() {
+ return mDeviceInteractive;
}
/**
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
index 9fd8d30..0cdf999 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
@@ -148,17 +148,17 @@ public class KeyguardUpdateMonitorCallback {
}
/**
- * Called when the screen turns on
+ * Called when the device has started waking up.
*/
- public void onScreenTurnedOn() { }
+ public void onStartedWakingUp() { }
/**
- * Called when the screen turns off
+ * Called when the device has finished going to sleep.
* @param why either {@link WindowManagerPolicy#OFF_BECAUSE_OF_ADMIN},
* {@link WindowManagerPolicy#OFF_BECAUSE_OF_USER}, or
* {@link WindowManagerPolicy#OFF_BECAUSE_OF_TIMEOUT}.
*/
- public void onScreenTurnedOff(int why) { }
+ public void onFinishedGoingToSleep(int why) { }
/**
* Called when trust changes for a user.