summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android/systemui/keyguard
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2014-11-07 20:33:51 +0100
committerJorim Jaggi <jjaggi@google.com>2014-11-12 15:02:05 +0100
commit44f60cca7bb31e2f9b4b7bf25bb2e0cfb0e3e1e1 (patch)
tree33aad8cb8be2d3a27276600f0b1cb3ef42560299 /packages/SystemUI/src/com/android/systemui/keyguard
parentccfe6bd479acc41e018bd38c4021614dc9326fbf (diff)
downloadframeworks_base-44f60cca7bb31e2f9b4b7bf25bb2e0cfb0e3e1e1.zip
frameworks_base-44f60cca7bb31e2f9b4b7bf25bb2e0cfb0e3e1e1.tar.gz
frameworks_base-44f60cca7bb31e2f9b4b7bf25bb2e0cfb0e3e1e1.tar.bz2
Fix lockscreen launch animations once and for all
In SysUI, make sure not to dismiss Keyguard multiple times when just waiting for a deferred dismissal, so WindowManager doesn't get multiple calls to keyguardGoingAway. Change heuristics how notifying Keyguard about activity drawn works. Always notify Keyguard after executing an app transition, and notify it also when not doing a transition after a startActivity call. For that to work, update AppWindowToken.startingDisplayed also when the window is displayed, but force hidden because of Keyguard. Further, handle the case correctly when a window gets added during the Keyguard exit animation by overriding the start time for the animation of that new window. Also don't apply a transition animation for a window when executing keyguard exit animation, so by removing a starting window we don't break this animation. Last but not least, tell Keyguard to start exiting immediately if animations for exiting are disabled, like when going to phone/camera on lockscreen. Before, we always had a delay of 1 second because we waited for the timeout. Bug: 1599196 Bug: 18272544 Change-Id: I596b2489f814b934abd256e16079d3d3f326e209
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/keyguard')
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java11
1 files changed, 7 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index 172aaf6..7ca8fc1 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -426,7 +426,9 @@ public class KeyguardViewMediator extends SystemUI {
}
public void keyguardDone(boolean authenticated) {
- KeyguardViewMediator.this.keyguardDone(authenticated, true);
+ if (!mKeyguardDonePending) {
+ KeyguardViewMediator.this.keyguardDone(authenticated, true);
+ }
}
public void keyguardDoneDrawing() {
@@ -1049,9 +1051,6 @@ public class KeyguardViewMediator extends SystemUI {
public void keyguardDone(boolean authenticated, boolean wakeup) {
if (DEBUG) Log.d(TAG, "keyguardDone(" + authenticated + ")");
EventLog.writeEvent(70000, 2);
- synchronized (this) {
- mKeyguardDonePending = false;
- }
Message msg = mHandler.obtainMessage(KEYGUARD_DONE, authenticated ? 1 : 0, wakeup ? 1 : 0);
mHandler.sendMessage(msg);
}
@@ -1122,6 +1121,9 @@ public class KeyguardViewMediator extends SystemUI {
*/
private void handleKeyguardDone(boolean authenticated, boolean wakeup) {
if (DEBUG) Log.d(TAG, "handleKeyguardDone");
+ synchronized (this) {
+ mKeyguardDonePending = false;
+ }
if (authenticated) {
mUpdateMonitor.clearFailedUnlockAttempts();
@@ -1297,6 +1299,7 @@ public class KeyguardViewMediator extends SystemUI {
}
private void handleOnActivityDrawn() {
+ if (DEBUG) Log.d(TAG, "handleOnActivityDrawn: mKeyguardDonePending=" + mKeyguardDonePending);
if (mKeyguardDonePending) {
mStatusBarKeyguardViewManager.onActivityDrawn();
}