RESTRICT AUTOMERGE Revert "Hold onto occluded change until it's committed"
This reverts commit 8a8169dae5.
Reason for revert: Calling setOccluded twice causes a flicker (b/275730458)
Bug: 275730458
Change-Id: I4c98076826cb2092351bfc380bd4bb08dbdf3bed
This commit is contained in:
committed by
Android (Google) Code Review
parent
8a8169dae5
commit
98dc39863e
@@ -3341,7 +3341,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
mPendingKeyguardOccluded = occluded;
|
||||
mKeyguardOccludedChanged = true;
|
||||
} else {
|
||||
setKeyguardOccludedLw(occluded, false /* transitionStarted */);
|
||||
setKeyguardOccludedLw(occluded, false /* force */,
|
||||
false /* transitionStarted */);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3350,7 +3351,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
if (mKeyguardOccludedChanged) {
|
||||
if (DEBUG_KEYGUARD) Slog.d(TAG, "transition/occluded changed occluded="
|
||||
+ mPendingKeyguardOccluded);
|
||||
if (setKeyguardOccludedLw(mPendingKeyguardOccluded, transitionStarted)) {
|
||||
if (setKeyguardOccludedLw(mPendingKeyguardOccluded, false /* force */,
|
||||
transitionStarted)) {
|
||||
return FINISH_LAYOUT_REDO_LAYOUT | FINISH_LAYOUT_REDO_WALLPAPER;
|
||||
}
|
||||
}
|
||||
@@ -3599,15 +3601,22 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the occluded state of the Keyguard immediately via
|
||||
* {@link com.android.internal.policy.IKeyguardService}.
|
||||
* Updates the occluded state of the Keyguard.
|
||||
*
|
||||
* @param isOccluded Whether the Keyguard is occluded by another window.
|
||||
* @param force notify the occluded status to KeyguardService and update flags even though
|
||||
* occlude status doesn't change.
|
||||
* @param transitionStarted {@code true} if keyguard (un)occluded transition started.
|
||||
* @return Whether the flags have changed and we have to redo the layout.
|
||||
*/
|
||||
private boolean setKeyguardOccludedLw(boolean isOccluded, boolean transitionStarted) {
|
||||
private boolean setKeyguardOccludedLw(boolean isOccluded, boolean force,
|
||||
boolean transitionStarted) {
|
||||
if (DEBUG_KEYGUARD) Slog.d(TAG, "setKeyguardOccluded occluded=" + isOccluded);
|
||||
mKeyguardOccludedChanged = false;
|
||||
if (isKeyguardOccluded() == isOccluded && !force) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final boolean showing = mKeyguardDelegate.isShowing();
|
||||
final boolean animate = showing && !isOccluded;
|
||||
// When remote animation is enabled for keyguard (un)occlude transition, KeyguardService
|
||||
@@ -3615,10 +3624,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
// to notify here.
|
||||
final boolean notify = !WindowManagerService.sEnableRemoteKeyguardOccludeAnimation
|
||||
|| !transitionStarted;
|
||||
if (notify) {
|
||||
mKeyguardOccludedChanged = false;
|
||||
mKeyguardDelegate.setOccluded(isOccluded, animate, notify);
|
||||
}
|
||||
mKeyguardDelegate.setOccluded(isOccluded, animate, notify);
|
||||
return showing;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user