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

Commit f12100e0 authored by Craig Mautner's avatar Craig Mautner
Browse files

Eliminate jank by setting force hiding differently

Only force hide windows when the keyguard is animating in.

Fixes bug 6721572.

Change-Id: Iad7b8b811bcf0840726cbf6c6f279dabd08a3aba
parent 10943335
Loading
Loading
Loading
Loading
+4 −2
Original line number Original line Diff line number Diff line
@@ -3,6 +3,7 @@
package com.android.server.wm;
package com.android.server.wm;


import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;


import static com.android.server.wm.WindowManagerService.LayoutFields.SET_UPDATE_ROTATION;
import static com.android.server.wm.WindowManagerService.LayoutFields.SET_UPDATE_ROTATION;
import static com.android.server.wm.WindowManagerService.LayoutFields.SET_WALLPAPER_MAY_CHANGE;
import static com.android.server.wm.WindowManagerService.LayoutFields.SET_WALLPAPER_MAY_CHANGE;
@@ -300,7 +301,7 @@ public class WindowAnimator {
                        }
                        }
                        mService.mFocusMayChange = true;
                        mService.mFocusMayChange = true;
                    }
                    }
                    if (win.isReadyForDisplay() && !winAnimator.isAnimating()) {
                    if (win.isReadyForDisplay() && winAnimator.mAnimationIsEntrance) {
                        mInner.mForceHiding = true;
                        mInner.mForceHiding = true;
                    }
                    }
                    if (WindowManagerService.DEBUG_VISIBILITY) Slog.v(TAG,
                    if (WindowManagerService.DEBUG_VISIBILITY) Slog.v(TAG,
@@ -314,7 +315,8 @@ public class WindowAnimator {
                            + " anim=" + win.mWinAnimator.mAnimation);
                            + " anim=" + win.mWinAnimator.mAnimation);
                } else if (mPolicy.canBeForceHidden(win, win.mAttrs)) {
                } else if (mPolicy.canBeForceHidden(win, win.mAttrs)) {
                    final boolean changed;
                    final boolean changed;
                    if (mInner.mForceHiding && !winAnimator.isAnimating()) {
                    if (mInner.mForceHiding && (!winAnimator.isAnimating()
                            || (winAnimator.mAttrFlags & FLAG_SHOW_WHEN_LOCKED) == 0)) {
                        changed = win.hideLw(false, false);
                        changed = win.hideLw(false, false);
                        if (WindowManagerService.DEBUG_VISIBILITY && changed) Slog.v(TAG,
                        if (WindowManagerService.DEBUG_VISIBILITY && changed) Slog.v(TAG,
                                "Now policy hidden: " + win);
                                "Now policy hidden: " + win);