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

Commit 3c52b43f authored by Craig Mautner's avatar Craig Mautner Committed by Android Git Automerger
Browse files

am 4fe5ebcc: Merge "Update DimAnimator layer when its window changes." into jb-dev

* commit '4fe5ebcc':
  Update DimAnimator layer when its window changes.
parents b53bc725 4fe5ebcc
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -551,6 +551,10 @@ public class WindowAnimator {
        return mDimParams != null;
    }

    boolean isDimming(final WindowStateAnimator winAnimator) {
        return mDimParams != null && mDimParams.mDimWinAnimator == winAnimator;
    }

    public void dump(PrintWriter pw, String prefix, boolean dumpAll) {
        if (mWindowDetachedWallpaper != null) {
            pw.print("  mWindowDetachedWallpaper="); pw.println(mWindowDetachedWallpaper);
+24 −9
Original line number Diff line number Diff line
@@ -7542,7 +7542,10 @@ public class WindowManagerService extends IWindowManager.Stub
        }

        for (i=0; i<N; i++) {
            WindowState w = mWindows.get(i);
            final WindowState w = mWindows.get(i);
            final WindowStateAnimator winAnimator = w.mWinAnimator;
            boolean layerChanged = false;
            int oldLayer = w.mLayer;
            if (w.mBaseLayer == curBaseLayer || w.mIsImWindow
                    || (i > 0 && w.mIsWallpaper)) {
                curLayer += WINDOW_LAYER_MULTIPLIER;
@@ -7551,22 +7554,33 @@ public class WindowManagerService extends IWindowManager.Stub
                curBaseLayer = curLayer = w.mBaseLayer;
                w.mLayer = curLayer;
            }
            if (w.mLayer != oldLayer) {
                layerChanged = true;
            }
            oldLayer = winAnimator.mAnimLayer;
            if (w.mTargetAppToken != null) {
                w.mWinAnimator.mAnimLayer =
                winAnimator.mAnimLayer =
                        w.mLayer + w.mTargetAppToken.mAppAnimator.animLayerAdjustment;
            } else if (w.mAppToken != null) {
                w.mWinAnimator.mAnimLayer =
                winAnimator.mAnimLayer =
                        w.mLayer + w.mAppToken.mAppAnimator.animLayerAdjustment;
            } else {
                w.mWinAnimator.mAnimLayer = w.mLayer;
                winAnimator.mAnimLayer = w.mLayer;
            }
            if (w.mIsImWindow) {
                w.mWinAnimator.mAnimLayer += mInputMethodAnimLayerAdjustment;
                winAnimator.mAnimLayer += mInputMethodAnimLayerAdjustment;
            } else if (w.mIsWallpaper) {
                w.mWinAnimator.mAnimLayer += mWallpaperAnimLayerAdjustment;
                winAnimator.mAnimLayer += mWallpaperAnimLayerAdjustment;
            }
            if (winAnimator.mAnimLayer != oldLayer) {
                layerChanged = true;
            }
            if (layerChanged && mAnimator.isDimming(winAnimator)) {
                // Force an animation pass just to update the mDimAnimator layer.
                scheduleAnimationLocked();
            }
            if (DEBUG_LAYERS) Slog.v(TAG, "Assign layer " + w + ": "
                    + w.mWinAnimator.mAnimLayer);
                    + winAnimator.mAnimLayer);
            //System.out.println(
            //    "Assigned layer " + curLayer + " to " + w.mClient.asBinder());
        }
@@ -8270,7 +8284,8 @@ public class WindowManagerService extends IWindowManager.Stub
            if (!mInnerFields.mDimming) {
                //Slog.i(TAG, "DIM BEHIND: " + w);
                mInnerFields.mDimming = true;
                if (!mAnimator.isDimming()) {
                final WindowStateAnimator winAnimator = w.mWinAnimator;
                if (!mAnimator.isDimming(winAnimator)) {
                    final int width, height;
                    if (attrs.type == WindowManager.LayoutParams.TYPE_BOOT_PROGRESS) {
                        width = mCurDisplayWidth;
@@ -8279,7 +8294,7 @@ public class WindowManagerService extends IWindowManager.Stub
                        width = innerDw;
                        height = innerDh;
                    }
                    mAnimator.startDimming(w.mWinAnimator, w.mExiting ? 0 : w.mAttrs.dimAmount,
                    mAnimator.startDimming(winAnimator, w.mExiting ? 0 : w.mAttrs.dimAmount,
                            width, height);
                }
            }