Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 428c2dcb authored by tiger_huang's avatar tiger_huang Committed by Gerrit Code Review
Browse files

Prevent infinite layout and wallpaper flashing

The original logic would cause mTopFullscreenOpaqueWindowState to be
hidden in PhoneWindowManager.finishPostLayoutPolicyLw(), and to be
shown in WindowAnimator.updateWindowsLocked() continuously if there
is a show-when-locked dialog.

The wallpaper would be hidden after the original wallpaper target is
hidden, before the new wallpaper target is shown.

https://code.google.com/p/android/issues/detail?id=162495

Change-Id: I918e0fa03eec38d9f0c07150c17013c6c21683cb
(cherry picked from commit 15a50b1d)
parent ce9b1f51
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -4525,8 +4525,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    /** {@inheritDoc} */
    @Override
    public int finishPostLayoutPolicyLw() {
        if (mWinShowWhenLocked != null &&
                mWinShowWhenLocked != mTopFullscreenOpaqueWindowState) {
        if (mWinShowWhenLocked != null && mTopFullscreenOpaqueWindowState != null &&
                mWinShowWhenLocked.getAppToken() != mTopFullscreenOpaqueWindowState.getAppToken()
                && isKeyguardLocked()) {
            // A dialog is dismissing the keyguard. Put the wallpaper behind it and hide the
            // fullscreen window.
            // TODO: Make sure FLAG_SHOW_WALLPAPER is restored when dialog is dismissed. Or not.