From 0fdd8f16d1409f4919931dbe8137077003770ea1 Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Wed, 17 Jul 2019 15:28:18 -0700 Subject: Do not play "lock" anim right after showing kg Let's not play the lock icon animation if the keyguard had just become visible. Otherwise it will look like we're locking the phone, and it was already locked earlier. Test: manual Fixes: 137691015 Change-Id: I2486cfff3efbbb30d23ce4b68962dd352a2e60b7 --- .../src/com/android/systemui/statusbar/phone/LockIcon.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java index 49afae7415ae..1360a084207b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java @@ -102,6 +102,7 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange private boolean mWakeAndUnlockRunning; private boolean mKeyguardShowing; private boolean mShowingLaunchAffordance; + private boolean mKeyguardJustShown; private boolean mUpdatePending; private final KeyguardMonitor.Callback mKeyguardMonitorCallback = @@ -115,6 +116,9 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange mBlockUpdates = false; force = true; } + if (!wasShowing && mKeyguardShowing) { + mKeyguardJustShown = true; + } update(force); } @@ -273,8 +277,10 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange int state = getState(); int lastState = mLastState; + boolean keyguardJustShown = mKeyguardJustShown; mIsFaceUnlockState = state == STATE_SCANNING_FACE; mLastState = state; + mKeyguardJustShown = false; boolean shouldUpdate = lastState != state || mForceUpdate; if (mBlockUpdates && canBlockUpdates()) { @@ -283,7 +289,7 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange if (shouldUpdate) { mForceUpdate = false; @LockAnimIndex final int lockAnimIndex = getAnimationIndexForTransition(lastState, - state, mPulsing, mDozing); + state, mPulsing, mDozing, keyguardJustShown); boolean isAnim = lockAnimIndex != -1; int iconRes = isAnim ? getThemedAnimationResId(lockAnimIndex) : getIconForState(state); @@ -412,7 +418,7 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange } private static int getAnimationIndexForTransition(int oldState, int newState, boolean pulsing, - boolean dozing) { + boolean dozing, boolean keyguardJustShown) { // Never animate when screen is off if (dozing && !pulsing) { @@ -423,7 +429,7 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange return ERROR; } else if (oldState != STATE_LOCK_OPEN && newState == STATE_LOCK_OPEN) { return UNLOCK; - } else if (oldState == STATE_LOCK_OPEN && newState == STATE_LOCKED) { + } else if (oldState == STATE_LOCK_OPEN && newState == STATE_LOCKED && !keyguardJustShown) { return LOCK; } else if (newState == STATE_SCANNING_FACE) { return SCANNING; -- cgit v1.2.3-59-g8ed1b