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

Commit 6201c2ac authored by Craig Mautner's avatar Craig Mautner
Browse files

Put animation background behind visible wallpaper

The new wallpaper positioning associated with multiple activity stacks
put animation backgrounds in front of the wallpaper. This caused
hideous jank. Testing for visible wallpaper and moving the background
behind it fixes the jank.

Fixes bug 10078282.
Possibly fixes bug 10247094.

Change-Id: I3f4e07accd7276d59725192081904b791f77781f
parent 7a605df3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -210,7 +210,7 @@ public final class ActivityManagerService extends ActivityManagerNative
    static final boolean DEBUG_BACKGROUND_BROADCAST = DEBUG_BROADCAST || false;
    static final boolean DEBUG_CLEANUP = localLOGV || false;
    static final boolean DEBUG_CONFIGURATION = localLOGV || false;
    static final boolean DEBUG_FOCUS = true;
    static final boolean DEBUG_FOCUS = false;
    static final boolean DEBUG_IMMERSIVE = localLOGV || false;
    static final boolean DEBUG_MU = localLOGV || false;
    static final boolean DEBUG_OOM_ADJ = localLOGV || false;
+7 −14
Original line number Diff line number Diff line
@@ -194,9 +194,6 @@ public class WindowManagerService extends IWindowManager.Stub
    static final boolean PROFILE_ORIENTATION = false;
    static final boolean localLOGV = DEBUG;

    final static boolean REVERSE_ITERATOR = true;
    final static boolean FORWARD_ITERATOR = false;

    /** How much to multiply the policy's type layer, to reserve room
     * for multiple windows of the same type and Z-ordering adjustment
     * with TYPE_LAYER_OFFSET. */
@@ -9574,21 +9571,17 @@ public class WindowManagerService extends IWindowManager.Stub
        return doRequest;
    }

    /** If a window that has an animation specifying a colored background is the current wallpaper
     * target, then the color goes *below* the wallpaper so we don't cause the wallpaper to
    /** If a window that has an animation specifying a colored background and the current wallpaper
     * is visible, then the color goes *below* the wallpaper so we don't cause the wallpaper to
     * suddenly disappear. */
    int adjustAnimationBackground(WindowStateAnimator winAnimator) {
        final WindowState win = winAnimator.mWin;
        if (mWallpaperTarget == win || mLowerWallpaperTarget == win
                || mUpperWallpaperTarget == win) {
            WindowList windows = win.getWindowList();
        WindowList windows = winAnimator.mWin.getWindowList();
        for (int i = windows.size() - 1; i >= 0; --i) {
            WindowState testWin = windows.get(i);
                if (testWin.mIsWallpaper) {
            if (testWin.mIsWallpaper && testWin.isVisibleNow()) {
                return testWin.mWinAnimator.mAnimLayer;
            }
        }
        }
        return winAnimator.mAnimLayer;
    }