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

Commit caeae903 authored by An An Yu's avatar An An Yu Committed by Automerger Merge Worker
Browse files

Merge "Allow custom animations to run on ActivityEmbeddings and propagate...

Merge "Allow custom animations to run on ActivityEmbeddings and propagate custom backdrop color." into tm-qpr-dev am: 9c50f7af am: 3952497c

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18705127



Change-Id: I132f08d3fb6d0f838626ccefe343fb8c921d87d3
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents f830fac3 3952497c
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -307,6 +307,10 @@ public class AppTransition implements Dump {
        setAppTransitionState(APP_STATE_TIMEOUT);
    }

    @ColorInt int getNextAppTransitionBackgroundColor() {
        return mNextAppTransitionBackgroundColor;
    }

    HardwareBuffer getAppTransitionThumbnailHeader(WindowContainer container) {
        AppTransitionAnimationSpec spec = mNextAppTransitionAnimationsSpecs.get(
                container.hashCode());
+12 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import static com.android.server.wm.RemoteAnimationAdapterWrapperProto.TARGET;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;

import android.annotation.ColorInt;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.graphics.Point;
@@ -431,6 +432,7 @@ class RemoteAnimationController implements DeathRecipient {
        final WindowContainer mWindowContainer;
        final Rect mStartBounds;
        final boolean mShowBackdrop;
        @ColorInt int mBackdropColor = 0;
        private @RemoteAnimationTarget.Mode int mMode = RemoteAnimationTarget.MODE_CHANGING;

        RemoteAnimationRecord(WindowContainer windowContainer, Point endPos, Rect localBounds,
@@ -456,6 +458,10 @@ class RemoteAnimationController implements DeathRecipient {
            }
        }

        void setBackDropColor(@ColorInt int backdropColor) {
            mBackdropColor = backdropColor;
        }

        RemoteAnimationTarget createRemoteAnimationTarget() {
            if (mAdapter == null
                    || mAdapter.mCapturedFinishCallback == null
@@ -509,6 +515,12 @@ class RemoteAnimationController implements DeathRecipient {
            mShowBackdrop = showBackdrop;
        }

        @Override
        @ColorInt
        public int getBackgroundColor() {
            return mRecord.mBackdropColor;
        }

        @Override
        public boolean getShowBackground() {
            return mShowBackdrop;
+7 −0
Original line number Diff line number Diff line
@@ -2953,11 +2953,15 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
        if (controller != null && !mSurfaceAnimator.isAnimationStartDelayed()) {
            // Here we load App XML in order to read com.android.R.styleable#Animation_showBackdrop.
            boolean showBackdrop = false;
            // Optionally set backdrop color if App explicitly provides it through
            // {@link Activity#overridePendingTransition(int, int, int)}.
            @ColorInt int backdropColor = 0;
            if (controller.isFromActivityEmbedding()) {
                final int animAttr = AppTransition.mapOpenCloseTransitTypes(transit, enter);
                final Animation a = animAttr != 0
                        ? appTransition.loadAnimationAttr(lp, animAttr, transit) : null;
                showBackdrop = a != null && a.getShowBackdrop();
                backdropColor = appTransition.getNextAppTransitionBackgroundColor();
            }
            final Rect localBounds = new Rect(mTmpRect);
            localBounds.offsetTo(mTmpPoint.x, mTmpPoint.y);
@@ -2965,6 +2969,9 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
                    controller.createRemoteAnimationRecord(
                            this, mTmpPoint, localBounds, screenBounds,
                            (isChanging ? mSurfaceFreezer.mFreezeBounds : null), showBackdrop);
            if (backdropColor != 0) {
                adapters.setBackDropColor(backdropColor);
            }
            if (!isChanging) {
                adapters.setMode(enter
                        ? RemoteAnimationTarget.MODE_OPENING