diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-06-19 03:53:32 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-06-19 03:53:32 +0000 |
commit | 33643dd3de9b34cee8a33efab9d161c62d940c59 (patch) | |
tree | b9608d9c107abbf4cea6ef8e7b1961545d0d89ff | |
parent | c8f77be5604c3c66a2c29e753ce42cf54710305e (diff) | |
parent | 68829b2d18070d9c517b47df76e183b9e8169573 (diff) | |
download | base-android13-qpr3-c-s8-release.tar.gz |
Merge cherrypicks of ['googleplex-android-review.googlesource.com/23661867'] into sparse-10339990-L58300000961395368.android-13.0.0_r73android-13.0.0_r72android13-qpr3-c-s8-releaseandroid13-qpr3-c-s7-release
SPARSE_CHANGE: Ifcdac241bfe33f44f5f03f1a6db682c57f0cd388
Change-Id: I8e5d219304f0ebcd575a15cd78fdb9800e0e107a
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java | 19 | ||||
-rw-r--r-- | services/core/java/com/android/server/policy/PhoneWindowManager.java | 18 |
2 files changed, 19 insertions, 18 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index d608abc3b008..58ed3aae233e 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -963,14 +963,7 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable, mOccludeByDreamAnimator.cancel(); } }); - // The value of isKeyguardOccluded here may come from mergeAnimation, which - // isn't reliable. In all cases, after running or cancelling this animation, - // keyguard should be occluded. - setOccluded(true /* isOccluded */, false /* animate */); - if (DEBUG) { - Log.d(TAG, "Occlude by Dream animation cancelled. Occluded state is now: " - + mOccluded); - } + Log.d(TAG, "Occlude by Dream animation cancelled."); } @Override @@ -1076,10 +1069,7 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable, } }); - setOccluded(isKeyguardOccluded /* isOccluded */, false /* animate */); - Log.d(TAG, "Unocclude animation cancelled. Occluded state is now: " - + mOccluded); - + Log.d(TAG, "Unocclude animation cancelled."); mInteractionJankMonitor.cancel(CUJ_LOCKSCREEN_OCCLUSION); } @@ -3446,10 +3436,7 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable, public void onAnimationCancelled(boolean isKeyguardOccluded) throws RemoteException { super.onAnimationCancelled(isKeyguardOccluded); - Log.d(TAG, "Occlude animation cancelled by WM. " - + "Setting occluded state to: " + isKeyguardOccluded); - setOccluded(isKeyguardOccluded /* occluded */, false /* animate */); - + Log.d(TAG, "Occlude animation cancelled by WM."); mInteractionJankMonitor.cancel(CUJ_LOCKSCREEN_OCCLUSION); } } diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 74d87cd60b68..2426a882dadd 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -2134,10 +2134,14 @@ public class PhoneWindowManager implements WindowManagerPolicy { } mWindowManagerInternal.registerAppTransitionListener(new AppTransitionListener() { + private boolean mOccludeChangingInTransition = false; + @Override public int onAppTransitionStartingLocked(boolean keyguardGoingAway, boolean keyguardOccluding, long duration, long statusBarAnimationStartTime, long statusBarAnimationDuration) { + mOccludeChangingInTransition = keyguardGoingAway || keyguardOccluding; + // When remote animation is enabled for KEYGUARD_GOING_AWAY transition, SysUI // receives IRemoteAnimationRunner#onAnimationStart to start animation, so we don't // need to call IKeyguardService#keyguardGoingAway here. @@ -2153,6 +2157,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { 0 /* duration */); synchronized (mLock) { + if (mOccludeChangingInTransition) { + mKeyguardOccludedChanged = true; + mOccludeChangingInTransition = false; + } + applyKeyguardOcclusionChange(false); mLockAfterAppTransitionFinished = false; } } @@ -2160,12 +2169,16 @@ public class PhoneWindowManager implements WindowManagerPolicy { @Override public void onAppTransitionFinishedLocked(IBinder token) { synchronized (mLock) { + if (mOccludeChangingInTransition) { + mKeyguardOccludedChanged = true; + mOccludeChangingInTransition = false; + } + applyKeyguardOcclusionChange(false /* transitionStarted */); if (!mLockAfterAppTransitionFinished) { return; } mLockAfterAppTransitionFinished = false; } - lockNow(null); } }); @@ -3355,7 +3368,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (mKeyguardOccludedChanged) { if (DEBUG_KEYGUARD) Slog.d(TAG, "transition/occluded changed occluded=" + mPendingKeyguardOccluded); - if (setKeyguardOccludedLw(mPendingKeyguardOccluded, false /* force */, + if (setKeyguardOccludedLw(mPendingKeyguardOccluded, true /* force */, transitionStarted)) { return FINISH_LAYOUT_REDO_LAYOUT | FINISH_LAYOUT_REDO_WALLPAPER; } @@ -3616,6 +3629,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { private boolean setKeyguardOccludedLw(boolean isOccluded, boolean force, boolean transitionStarted) { if (DEBUG_KEYGUARD) Slog.d(TAG, "setKeyguardOccluded occluded=" + isOccluded); + mPendingKeyguardOccluded = isOccluded; mKeyguardOccludedChanged = false; if (isKeyguardOccluded() == isOccluded && !force) { return false; |