Loading core/java/android/window/TaskFragmentAnimationParams.java +129 −7 Original line number Diff line number Diff line Loading @@ -16,17 +16,21 @@ package android.window; import static android.window.TransitionInfo.AnimationOptions.DEFAULT_ANIMATION_RESOURCES_ID; import android.annotation.AnimRes; import android.annotation.ColorInt; import android.annotation.NonNull; import android.annotation.Nullable; import android.os.Parcel; import android.os.Parcelable; import java.util.Objects; /** * Data object for animation related override of TaskFragment. * @hide */ // TODO(b/206557124): Add more animation customization options. public final class TaskFragmentAnimationParams implements Parcelable { /** The default {@link TaskFragmentAnimationParams} to use when there is no app override. */ Loading @@ -43,8 +47,22 @@ public final class TaskFragmentAnimationParams implements Parcelable { @ColorInt private final int mAnimationBackgroundColor; private TaskFragmentAnimationParams(@ColorInt int animationBackgroundColor) { @AnimRes private final int mOpenAnimationResId; @AnimRes private final int mChangeAnimationResId; @AnimRes private final int mCloseAnimationResId; private TaskFragmentAnimationParams(@ColorInt int animationBackgroundColor, @AnimRes int openAnimationResId, @AnimRes int changeAnimationResId, @AnimRes int closeAnimationResId) { mAnimationBackgroundColor = animationBackgroundColor; mOpenAnimationResId = openAnimationResId; mChangeAnimationResId = changeAnimationResId; mCloseAnimationResId = closeAnimationResId; } /** Loading @@ -58,13 +76,52 @@ public final class TaskFragmentAnimationParams implements Parcelable { return mAnimationBackgroundColor; } /** * Returns the resources ID of open animation that applies to this TaskFragment. * <p> * The default value is {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system * default animation. */ @AnimRes public int getOpenAnimationResId() { return mOpenAnimationResId; } /** * Returns the resources ID of change animation that applies to this TaskFragment. * <p> * The default value is {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system * default animation. */ @AnimRes public int getChangeAnimationResId() { return mChangeAnimationResId; } /** * Returns the resources ID of close animation that applies to this TaskFragment. * <p> * The default value is {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system * default animation. */ @AnimRes public int getCloseAnimationResId() { return mCloseAnimationResId; } private TaskFragmentAnimationParams(Parcel in) { mAnimationBackgroundColor = in.readInt(); mOpenAnimationResId = in.readInt(); mChangeAnimationResId = in.readInt(); mCloseAnimationResId = in.readInt(); } @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mAnimationBackgroundColor); dest.writeInt(mOpenAnimationResId); dest.writeInt(mChangeAnimationResId); dest.writeInt(mCloseAnimationResId); } @NonNull Loading @@ -85,21 +142,37 @@ public final class TaskFragmentAnimationParams implements Parcelable { public String toString() { return "TaskFragmentAnimationParams{" + " animationBgColor=" + Integer.toHexString(mAnimationBackgroundColor) + " openAnimResId=" + mOpenAnimationResId + " changeAnimResId=" + mChangeAnimationResId + " closeAnimResId=" + mCloseAnimationResId + "}"; } @Override public int hashCode() { return mAnimationBackgroundColor; return Objects.hash(mAnimationBackgroundColor, mOpenAnimationResId, mChangeAnimationResId, mCloseAnimationResId); } @Override public boolean equals(@Nullable Object obj) { if (!(obj instanceof TaskFragmentAnimationParams)) { if (!(obj instanceof TaskFragmentAnimationParams other)) { return false; } final TaskFragmentAnimationParams other = (TaskFragmentAnimationParams) obj; return mAnimationBackgroundColor == other.mAnimationBackgroundColor; return mAnimationBackgroundColor == other.mAnimationBackgroundColor && mOpenAnimationResId == other.mOpenAnimationResId && mChangeAnimationResId == other.mChangeAnimationResId && mCloseAnimationResId == other.mCloseAnimationResId; } /** * Returns {@code true} if one of {@link #getOpenAnimationResId()}, * {@link #getChangeAnimationResId()} or {@link #getCloseAnimationResId()} is specified. */ public boolean hasOverrideAnimation() { return mOpenAnimationResId != DEFAULT_ANIMATION_RESOURCES_ID || mChangeAnimationResId != DEFAULT_ANIMATION_BACKGROUND_COLOR || mCloseAnimationResId != DEFAULT_ANIMATION_RESOURCES_ID; } @Override Loading @@ -113,6 +186,15 @@ public final class TaskFragmentAnimationParams implements Parcelable { @ColorInt private int mAnimationBackgroundColor = DEFAULT_ANIMATION_BACKGROUND_COLOR; @AnimRes private int mOpenAnimationResId = DEFAULT_ANIMATION_RESOURCES_ID; @AnimRes private int mChangeAnimationResId = DEFAULT_ANIMATION_RESOURCES_ID; @AnimRes private int mCloseAnimationResId = DEFAULT_ANIMATION_RESOURCES_ID; /** * Sets the {@link ColorInt} to use for the background during the animation with this * TaskFragment if the animation requires a background. The default value is Loading @@ -128,10 +210,50 @@ public final class TaskFragmentAnimationParams implements Parcelable { return this; } /** * Sets the open animation resources ID this TaskFragment. The default value is * {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system default animation. * * @param resId the open animation resources ID. * @return this {@link Builder}. */ @NonNull public Builder setOpenAnimationResId(@AnimRes int resId) { mOpenAnimationResId = resId; return this; } /** * Sets the change animation resources ID this TaskFragment. The default value is * {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system default animation. * * @param resId the change animation resources ID. * @return this {@link Builder}. */ @NonNull public Builder setChangeAnimationResId(@AnimRes int resId) { mChangeAnimationResId = resId; return this; } /** * Sets the close animation resources ID this TaskFragment. The default value is * {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system default animation. * * @param resId the close animation resources ID. * @return this {@link Builder}. */ @NonNull public Builder setCloseAnimationResId(@AnimRes int resId) { mCloseAnimationResId = resId; return this; } /** Constructs the {@link TaskFragmentAnimationParams}. */ @NonNull public TaskFragmentAnimationParams build() { return new TaskFragmentAnimationParams(mAnimationBackgroundColor); return new TaskFragmentAnimationParams(mAnimationBackgroundColor, mOpenAnimationResId, mChangeAnimationResId, mCloseAnimationResId); } } } core/java/android/window/TransitionInfo.java +29 −0 Original line number Diff line number Diff line Loading @@ -1107,6 +1107,7 @@ public final class TransitionInfo implements Parcelable { private int mType; private @AnimRes int mEnterResId = DEFAULT_ANIMATION_RESOURCES_ID; private @AnimRes int mChangeResId = DEFAULT_ANIMATION_RESOURCES_ID; private @AnimRes int mExitResId = DEFAULT_ANIMATION_RESOURCES_ID; private boolean mOverrideTaskTransition; private String mPackageName; Loading @@ -1126,6 +1127,7 @@ public final class TransitionInfo implements Parcelable { private AnimationOptions(Parcel in) { mType = in.readInt(); mEnterResId = in.readInt(); mChangeResId = in.readInt(); mExitResId = in.readInt(); mBackgroundColor = in.readInt(); mOverrideTaskTransition = in.readBoolean(); Loading Loading @@ -1189,9 +1191,27 @@ public final class TransitionInfo implements Parcelable { public static AnimationOptions makeCustomAnimOptions(@NonNull String packageName, @AnimRes int enterResId, @AnimRes int exitResId, @ColorInt int backgroundColor, boolean overrideTaskTransition) { return makeCustomAnimOptions(packageName, enterResId, DEFAULT_ANIMATION_RESOURCES_ID, exitResId, backgroundColor, overrideTaskTransition); } /** * Creates a {@link android.app.ActivityOptions#ANIM_CUSTOM} {@link AnimationOptions}. * * @param packageName the package name that includes the animation resources. * @param enterResId the resources ID of open animation. * @param changeResId the resources ID of change animation. * @param exitResId the resources ID of close animation. * @param overrideTaskTransition indicates whether to override task transition. */ @NonNull public static AnimationOptions makeCustomAnimOptions(@NonNull String packageName, @AnimRes int enterResId, @AnimRes int changeResId, @AnimRes int exitResId, @ColorInt int backgroundColor, boolean overrideTaskTransition) { AnimationOptions options = new AnimationOptions(ANIM_CUSTOM); options.mPackageName = packageName; options.mEnterResId = enterResId; options.mChangeResId = changeResId; options.mExitResId = exitResId; options.mBackgroundColor = backgroundColor; options.mOverrideTaskTransition = overrideTaskTransition; Loading Loading @@ -1250,6 +1270,11 @@ public final class TransitionInfo implements Parcelable { return mEnterResId; } @AnimRes public int getChangeResId() { return mChangeResId; } @AnimRes public int getExitResId() { return mExitResId; Loading Loading @@ -1292,6 +1317,7 @@ public final class TransitionInfo implements Parcelable { public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mType); dest.writeInt(mEnterResId); dest.writeInt(mChangeResId); dest.writeInt(mExitResId); dest.writeInt(mBackgroundColor); dest.writeBoolean(mOverrideTaskTransition); Loading Loading @@ -1352,6 +1378,9 @@ public final class TransitionInfo implements Parcelable { if (mEnterResId != DEFAULT_ANIMATION_RESOURCES_ID) { sb.append(" enterResId=").append(mEnterResId); } if (mChangeResId != DEFAULT_ANIMATION_RESOURCES_ID) { sb.append(" changeResId=").append(mChangeResId); } if (mExitResId != DEFAULT_ANIMATION_RESOURCES_ID) { sb.append(" exitResId=").append(mExitResId); } Loading services/core/java/com/android/server/wm/Transition.java +29 −8 Original line number Diff line number Diff line Loading @@ -95,6 +95,7 @@ import android.view.Display; import android.view.SurfaceControl; import android.view.WindowManager; import android.window.ScreenCapture; import android.window.TaskFragmentAnimationParams; import android.window.TransitionInfo; import android.window.WindowContainerTransaction; Loading Loading @@ -2728,10 +2729,10 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { return out; } final AnimationOptions animOptions = calculateAnimationOptionsForActivityTransition(type, sortedTargets); if (!Flags.moveAnimationOptionsToChange() && animOptions != null) { out.setAnimationOptions(animOptions); final AnimationOptions animOptionsForActivityTransition = calculateAnimationOptionsForActivityTransition(type, sortedTargets); if (!Flags.moveAnimationOptionsToChange() && animOptionsForActivityTransition != null) { out.setAnimationOptions(animOptionsForActivityTransition); } // Convert all the resolved ChangeInfos into TransactionInfo.Change objects in order. Loading Loading @@ -2759,6 +2760,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { final Task task = target.asTask(); final TaskFragment taskFragment = target.asTaskFragment(); final boolean isEmbeddedTaskFragment = taskFragment != null && taskFragment.isEmbedded(); final ActivityRecord activityRecord = target.asActivityRecord(); if (task != null) { Loading Loading @@ -2798,7 +2801,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { change.setEndAbsBounds(bounds); } if (activityRecord != null || (taskFragment != null && taskFragment.isEmbedded())) { if (activityRecord != null || isEmbeddedTaskFragment) { final int backgroundColor; final TaskFragment organizedTf = activityRecord != null ? activityRecord.getOrganizedTaskFragment() Loading @@ -2823,10 +2826,28 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { change.setBackgroundColor(ColorUtils.setAlphaComponent(backgroundColor, 255)); } if (Flags.moveAnimationOptionsToChange() && activityRecord != null && animOptions != null) { AnimationOptions animOptions = null; if (Flags.moveAnimationOptionsToChange()) { if (activityRecord != null && animOptionsForActivityTransition != null) { animOptions = animOptionsForActivityTransition; } else if (Flags.activityEmbeddingOverlayPresentationFlag() && isEmbeddedTaskFragment) { final TaskFragmentAnimationParams params = taskFragment.getAnimationParams(); if (params.hasOverrideAnimation()) { // Only set AnimationOptions if there's any animation override. // We use separated field for backgroundColor, and // AnimationOptions#backgroundColor will be removed in long term. animOptions = AnimationOptions.makeCustomAnimOptions( taskFragment.getTask().getBasePackageName(), params.getOpenAnimationResId(), params.getChangeAnimationResId(), params.getCloseAnimationResId(), 0 /* backgroundColor */, false /* overrideTaskTransition */); } } if (animOptions != null) { change.setAnimationOptions(animOptions); } } if (activityRecord != null) { change.setActivityComponent(activityRecord.mActivityComponent); Loading Loading
core/java/android/window/TaskFragmentAnimationParams.java +129 −7 Original line number Diff line number Diff line Loading @@ -16,17 +16,21 @@ package android.window; import static android.window.TransitionInfo.AnimationOptions.DEFAULT_ANIMATION_RESOURCES_ID; import android.annotation.AnimRes; import android.annotation.ColorInt; import android.annotation.NonNull; import android.annotation.Nullable; import android.os.Parcel; import android.os.Parcelable; import java.util.Objects; /** * Data object for animation related override of TaskFragment. * @hide */ // TODO(b/206557124): Add more animation customization options. public final class TaskFragmentAnimationParams implements Parcelable { /** The default {@link TaskFragmentAnimationParams} to use when there is no app override. */ Loading @@ -43,8 +47,22 @@ public final class TaskFragmentAnimationParams implements Parcelable { @ColorInt private final int mAnimationBackgroundColor; private TaskFragmentAnimationParams(@ColorInt int animationBackgroundColor) { @AnimRes private final int mOpenAnimationResId; @AnimRes private final int mChangeAnimationResId; @AnimRes private final int mCloseAnimationResId; private TaskFragmentAnimationParams(@ColorInt int animationBackgroundColor, @AnimRes int openAnimationResId, @AnimRes int changeAnimationResId, @AnimRes int closeAnimationResId) { mAnimationBackgroundColor = animationBackgroundColor; mOpenAnimationResId = openAnimationResId; mChangeAnimationResId = changeAnimationResId; mCloseAnimationResId = closeAnimationResId; } /** Loading @@ -58,13 +76,52 @@ public final class TaskFragmentAnimationParams implements Parcelable { return mAnimationBackgroundColor; } /** * Returns the resources ID of open animation that applies to this TaskFragment. * <p> * The default value is {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system * default animation. */ @AnimRes public int getOpenAnimationResId() { return mOpenAnimationResId; } /** * Returns the resources ID of change animation that applies to this TaskFragment. * <p> * The default value is {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system * default animation. */ @AnimRes public int getChangeAnimationResId() { return mChangeAnimationResId; } /** * Returns the resources ID of close animation that applies to this TaskFragment. * <p> * The default value is {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system * default animation. */ @AnimRes public int getCloseAnimationResId() { return mCloseAnimationResId; } private TaskFragmentAnimationParams(Parcel in) { mAnimationBackgroundColor = in.readInt(); mOpenAnimationResId = in.readInt(); mChangeAnimationResId = in.readInt(); mCloseAnimationResId = in.readInt(); } @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mAnimationBackgroundColor); dest.writeInt(mOpenAnimationResId); dest.writeInt(mChangeAnimationResId); dest.writeInt(mCloseAnimationResId); } @NonNull Loading @@ -85,21 +142,37 @@ public final class TaskFragmentAnimationParams implements Parcelable { public String toString() { return "TaskFragmentAnimationParams{" + " animationBgColor=" + Integer.toHexString(mAnimationBackgroundColor) + " openAnimResId=" + mOpenAnimationResId + " changeAnimResId=" + mChangeAnimationResId + " closeAnimResId=" + mCloseAnimationResId + "}"; } @Override public int hashCode() { return mAnimationBackgroundColor; return Objects.hash(mAnimationBackgroundColor, mOpenAnimationResId, mChangeAnimationResId, mCloseAnimationResId); } @Override public boolean equals(@Nullable Object obj) { if (!(obj instanceof TaskFragmentAnimationParams)) { if (!(obj instanceof TaskFragmentAnimationParams other)) { return false; } final TaskFragmentAnimationParams other = (TaskFragmentAnimationParams) obj; return mAnimationBackgroundColor == other.mAnimationBackgroundColor; return mAnimationBackgroundColor == other.mAnimationBackgroundColor && mOpenAnimationResId == other.mOpenAnimationResId && mChangeAnimationResId == other.mChangeAnimationResId && mCloseAnimationResId == other.mCloseAnimationResId; } /** * Returns {@code true} if one of {@link #getOpenAnimationResId()}, * {@link #getChangeAnimationResId()} or {@link #getCloseAnimationResId()} is specified. */ public boolean hasOverrideAnimation() { return mOpenAnimationResId != DEFAULT_ANIMATION_RESOURCES_ID || mChangeAnimationResId != DEFAULT_ANIMATION_BACKGROUND_COLOR || mCloseAnimationResId != DEFAULT_ANIMATION_RESOURCES_ID; } @Override Loading @@ -113,6 +186,15 @@ public final class TaskFragmentAnimationParams implements Parcelable { @ColorInt private int mAnimationBackgroundColor = DEFAULT_ANIMATION_BACKGROUND_COLOR; @AnimRes private int mOpenAnimationResId = DEFAULT_ANIMATION_RESOURCES_ID; @AnimRes private int mChangeAnimationResId = DEFAULT_ANIMATION_RESOURCES_ID; @AnimRes private int mCloseAnimationResId = DEFAULT_ANIMATION_RESOURCES_ID; /** * Sets the {@link ColorInt} to use for the background during the animation with this * TaskFragment if the animation requires a background. The default value is Loading @@ -128,10 +210,50 @@ public final class TaskFragmentAnimationParams implements Parcelable { return this; } /** * Sets the open animation resources ID this TaskFragment. The default value is * {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system default animation. * * @param resId the open animation resources ID. * @return this {@link Builder}. */ @NonNull public Builder setOpenAnimationResId(@AnimRes int resId) { mOpenAnimationResId = resId; return this; } /** * Sets the change animation resources ID this TaskFragment. The default value is * {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system default animation. * * @param resId the change animation resources ID. * @return this {@link Builder}. */ @NonNull public Builder setChangeAnimationResId(@AnimRes int resId) { mChangeAnimationResId = resId; return this; } /** * Sets the close animation resources ID this TaskFragment. The default value is * {@link DEFAULT_ANIMATION_RESOURCES_ID}, which is to use the system default animation. * * @param resId the close animation resources ID. * @return this {@link Builder}. */ @NonNull public Builder setCloseAnimationResId(@AnimRes int resId) { mCloseAnimationResId = resId; return this; } /** Constructs the {@link TaskFragmentAnimationParams}. */ @NonNull public TaskFragmentAnimationParams build() { return new TaskFragmentAnimationParams(mAnimationBackgroundColor); return new TaskFragmentAnimationParams(mAnimationBackgroundColor, mOpenAnimationResId, mChangeAnimationResId, mCloseAnimationResId); } } }
core/java/android/window/TransitionInfo.java +29 −0 Original line number Diff line number Diff line Loading @@ -1107,6 +1107,7 @@ public final class TransitionInfo implements Parcelable { private int mType; private @AnimRes int mEnterResId = DEFAULT_ANIMATION_RESOURCES_ID; private @AnimRes int mChangeResId = DEFAULT_ANIMATION_RESOURCES_ID; private @AnimRes int mExitResId = DEFAULT_ANIMATION_RESOURCES_ID; private boolean mOverrideTaskTransition; private String mPackageName; Loading @@ -1126,6 +1127,7 @@ public final class TransitionInfo implements Parcelable { private AnimationOptions(Parcel in) { mType = in.readInt(); mEnterResId = in.readInt(); mChangeResId = in.readInt(); mExitResId = in.readInt(); mBackgroundColor = in.readInt(); mOverrideTaskTransition = in.readBoolean(); Loading Loading @@ -1189,9 +1191,27 @@ public final class TransitionInfo implements Parcelable { public static AnimationOptions makeCustomAnimOptions(@NonNull String packageName, @AnimRes int enterResId, @AnimRes int exitResId, @ColorInt int backgroundColor, boolean overrideTaskTransition) { return makeCustomAnimOptions(packageName, enterResId, DEFAULT_ANIMATION_RESOURCES_ID, exitResId, backgroundColor, overrideTaskTransition); } /** * Creates a {@link android.app.ActivityOptions#ANIM_CUSTOM} {@link AnimationOptions}. * * @param packageName the package name that includes the animation resources. * @param enterResId the resources ID of open animation. * @param changeResId the resources ID of change animation. * @param exitResId the resources ID of close animation. * @param overrideTaskTransition indicates whether to override task transition. */ @NonNull public static AnimationOptions makeCustomAnimOptions(@NonNull String packageName, @AnimRes int enterResId, @AnimRes int changeResId, @AnimRes int exitResId, @ColorInt int backgroundColor, boolean overrideTaskTransition) { AnimationOptions options = new AnimationOptions(ANIM_CUSTOM); options.mPackageName = packageName; options.mEnterResId = enterResId; options.mChangeResId = changeResId; options.mExitResId = exitResId; options.mBackgroundColor = backgroundColor; options.mOverrideTaskTransition = overrideTaskTransition; Loading Loading @@ -1250,6 +1270,11 @@ public final class TransitionInfo implements Parcelable { return mEnterResId; } @AnimRes public int getChangeResId() { return mChangeResId; } @AnimRes public int getExitResId() { return mExitResId; Loading Loading @@ -1292,6 +1317,7 @@ public final class TransitionInfo implements Parcelable { public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mType); dest.writeInt(mEnterResId); dest.writeInt(mChangeResId); dest.writeInt(mExitResId); dest.writeInt(mBackgroundColor); dest.writeBoolean(mOverrideTaskTransition); Loading Loading @@ -1352,6 +1378,9 @@ public final class TransitionInfo implements Parcelable { if (mEnterResId != DEFAULT_ANIMATION_RESOURCES_ID) { sb.append(" enterResId=").append(mEnterResId); } if (mChangeResId != DEFAULT_ANIMATION_RESOURCES_ID) { sb.append(" changeResId=").append(mChangeResId); } if (mExitResId != DEFAULT_ANIMATION_RESOURCES_ID) { sb.append(" exitResId=").append(mExitResId); } Loading
services/core/java/com/android/server/wm/Transition.java +29 −8 Original line number Diff line number Diff line Loading @@ -95,6 +95,7 @@ import android.view.Display; import android.view.SurfaceControl; import android.view.WindowManager; import android.window.ScreenCapture; import android.window.TaskFragmentAnimationParams; import android.window.TransitionInfo; import android.window.WindowContainerTransaction; Loading Loading @@ -2728,10 +2729,10 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { return out; } final AnimationOptions animOptions = calculateAnimationOptionsForActivityTransition(type, sortedTargets); if (!Flags.moveAnimationOptionsToChange() && animOptions != null) { out.setAnimationOptions(animOptions); final AnimationOptions animOptionsForActivityTransition = calculateAnimationOptionsForActivityTransition(type, sortedTargets); if (!Flags.moveAnimationOptionsToChange() && animOptionsForActivityTransition != null) { out.setAnimationOptions(animOptionsForActivityTransition); } // Convert all the resolved ChangeInfos into TransactionInfo.Change objects in order. Loading Loading @@ -2759,6 +2760,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { final Task task = target.asTask(); final TaskFragment taskFragment = target.asTaskFragment(); final boolean isEmbeddedTaskFragment = taskFragment != null && taskFragment.isEmbedded(); final ActivityRecord activityRecord = target.asActivityRecord(); if (task != null) { Loading Loading @@ -2798,7 +2801,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { change.setEndAbsBounds(bounds); } if (activityRecord != null || (taskFragment != null && taskFragment.isEmbedded())) { if (activityRecord != null || isEmbeddedTaskFragment) { final int backgroundColor; final TaskFragment organizedTf = activityRecord != null ? activityRecord.getOrganizedTaskFragment() Loading @@ -2823,10 +2826,28 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { change.setBackgroundColor(ColorUtils.setAlphaComponent(backgroundColor, 255)); } if (Flags.moveAnimationOptionsToChange() && activityRecord != null && animOptions != null) { AnimationOptions animOptions = null; if (Flags.moveAnimationOptionsToChange()) { if (activityRecord != null && animOptionsForActivityTransition != null) { animOptions = animOptionsForActivityTransition; } else if (Flags.activityEmbeddingOverlayPresentationFlag() && isEmbeddedTaskFragment) { final TaskFragmentAnimationParams params = taskFragment.getAnimationParams(); if (params.hasOverrideAnimation()) { // Only set AnimationOptions if there's any animation override. // We use separated field for backgroundColor, and // AnimationOptions#backgroundColor will be removed in long term. animOptions = AnimationOptions.makeCustomAnimOptions( taskFragment.getTask().getBasePackageName(), params.getOpenAnimationResId(), params.getChangeAnimationResId(), params.getCloseAnimationResId(), 0 /* backgroundColor */, false /* overrideTaskTransition */); } } if (animOptions != null) { change.setAnimationOptions(animOptions); } } if (activityRecord != null) { change.setActivityComponent(activityRecord.mActivityComponent); Loading