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

Commit 2635f2ab authored by Chavi Weingarten's avatar Chavi Weingarten Committed by android-build-merger
Browse files

Merge "Don't animate dim layer exit when recents animation finishes." into pi-dev am: ce61d118

am: d8aa9f68

Change-Id: I95dc8aa8a4908a2fefa34325d56d3ca8cec0b7d6
parents 6a48d993 d8aa9f68
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -168,7 +168,7 @@ class RecentsAnimation implements RecentsAnimationCallbacks {
                        "RecentsAnimation#onAnimationFinished_inSurfaceTransaction");
                mWindowManager.deferSurfaceLayout();
                try {
                    mWindowManager.cleanupRecentsAnimation();
                    mWindowManager.cleanupRecentsAnimation(moveHomeToTop);

                    // Move the home stack to the front
                    final ActivityRecord homeActivity = mStackSupervisor.getHomeActivity();
+16 −1
Original line number Diff line number Diff line
@@ -109,6 +109,11 @@ class Dimmer {
        boolean isVisible;
        SurfaceAnimator mSurfaceAnimator;

        /**
         * Determines whether the dim layer should animate before destroying.
         */
        boolean mAnimateExit = true;

        /**
         * Used for Dims not associated with a WindowContainer. See {@link Dimmer#dimAbove} for
         * details on Dim lifecycle.
@@ -260,6 +265,12 @@ class Dimmer {
        }
    }

    void dontAnimateExit() {
        if (mDimState != null) {
            mDimState.mAnimateExit = false;
        }
    }

    /**
     * Call after invoking {@link WindowContainer#prepareSurfaces} on children as
     * described in {@link #resetDimStates}.
@@ -274,7 +285,11 @@ class Dimmer {
        }

        if (!mDimState.mDimming) {
            if (!mDimState.mAnimateExit) {
                t.destroy(mDimState.mDimLayer);
            } else {
                startDimExit(mLastRequestedDimContainer, mDimState.mSurfaceAnimator, t);
            }
            mDimState = null;
            return false;
        } else {
+4 −2
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@ import android.util.Log;
import android.util.Slog;import android.util.proto.ProtoOutputStream;
import android.util.SparseBooleanArray;
import android.util.SparseIntArray;
import android.util.proto.ProtoOutputStream;
import android.view.IRecentsAnimationController;
import android.view.IRecentsAnimationRunner;
import android.view.RemoteAnimationTarget;
@@ -309,12 +308,15 @@ public class RecentsAnimationController {
        mCallbacks.onAnimationFinished(false /* moveHomeToTop */);
    }

    void cleanupAnimation() {
    void cleanupAnimation(boolean moveHomeToTop) {
        if (DEBUG) Log.d(TAG, "cleanupAnimation(): mPendingAnimations="
                + mPendingAnimations.size());
        for (int i = mPendingAnimations.size() - 1; i >= 0; i--) {
            final TaskAnimationAdapter adapter = mPendingAnimations.get(i);
            adapter.mTask.setCanAffectSystemUiFlags(true);
            if (moveHomeToTop) {
                adapter.mTask.dontAnimateDimExit();
            }
            adapter.mCapturedFinishCallback.onAnimationFinished(adapter);
        }
        mPendingAnimations.clear();
+4 −0
Original line number Diff line number Diff line
@@ -645,6 +645,10 @@ class Task extends WindowContainer<AppWindowToken> {
        return mCanAffectSystemUiFlags;
    }

    void dontAnimateDimExit() {
        mDimmer.dontAnimateExit();
    }

    @Override
    public String toString() {
        return "{taskId=" + mTaskId + " appTokens=" + mChildren + " mdr=" + mDeferRemoval + "}";
+2 −2
Original line number Diff line number Diff line
@@ -2700,10 +2700,10 @@ public class WindowManagerService extends IWindowManager.Stub
        }
    }

    public void cleanupRecentsAnimation() {
    public void cleanupRecentsAnimation(boolean moveHomeToTop) {
        synchronized (mWindowMap) {
            if (mRecentsAnimationController != null) {
                mRecentsAnimationController.cleanupAnimation();
                mRecentsAnimationController.cleanupAnimation(moveHomeToTop);
                mRecentsAnimationController = null;
                mAppTransition.updateBooster();
            }
Loading