diff options
| author | 2025-02-11 17:18:27 +0800 | |
|---|---|---|
| committer | 2025-02-20 13:59:17 +0800 | |
| commit | 6b2953431f644bb3114e843926b9c97652c84fc7 (patch) | |
| tree | 98226198b7698db053f3329197c88819c564a632 | |
| parent | 6b3d33e24ae86cb283670f590e4290d3ed71ebc6 (diff) | |
Clean up move_animation_options_to_change
Bug: 327332488
Test: presubmit
Flag: EXEMPT remove flag
Change-Id: I2b4d8c93be50bf013e1863f1b95507013973d24e
14 files changed, 62 insertions, 276 deletions
diff --git a/core/java/android/window/TransitionFilter.java b/core/java/android/window/TransitionFilter.java index 61fc6226f822..d8d20119a602 100644 --- a/core/java/android/window/TransitionFilter.java +++ b/core/java/android/window/TransitionFilter.java @@ -31,8 +31,6 @@ import android.os.Parcel; import android.os.Parcelable; import android.view.WindowManager; -import com.android.window.flags.Flags; - /** * A parcelable filter that can be used for rerouting transitions to a remote. This is a local * representation so that the transition system doesn't need to make blocking queries over @@ -261,9 +259,7 @@ public final class TransitionFilter implements Parcelable { // only applies to activity/task && (change.getTaskInfo() != null || change.getActivityComponent() != null)) { - final TransitionInfo.AnimationOptions opts = - Flags.moveAnimationOptionsToChange() ? change.getAnimationOptions() - : info.getAnimationOptions(); + final TransitionInfo.AnimationOptions opts = change.getAnimationOptions(); if (opts != null) { boolean canActuallyOverride = change.getTaskInfo() == null || opts.getOverrideTaskTransition(); diff --git a/core/java/android/window/TransitionInfo.java b/core/java/android/window/TransitionInfo.java index 4f34aa36a204..32175f122d61 100644 --- a/core/java/android/window/TransitionInfo.java +++ b/core/java/android/window/TransitionInfo.java @@ -57,8 +57,6 @@ import android.view.Surface; import android.view.SurfaceControl; import android.view.WindowManager; -import com.android.window.flags.Flags; - import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; @@ -220,10 +218,6 @@ public final class TransitionInfo implements Parcelable { private final ArrayList<Change> mChanges = new ArrayList<>(); private final ArrayList<Root> mRoots = new ArrayList<>(); - // TODO(b/327332488): Clean-up usages after the flag is fully enabled. - @Deprecated - private AnimationOptions mOptions; - /** This is only a BEST-EFFORT id used for log correlation. DO NOT USE for any real work! */ private int mDebugId = -1; @@ -238,7 +232,6 @@ public final class TransitionInfo implements Parcelable { mFlags = in.readInt(); in.readTypedList(mChanges, Change.CREATOR); in.readTypedList(mRoots, Root.CREATOR); - mOptions = in.readTypedObject(AnimationOptions.CREATOR); mDebugId = in.readInt(); mTrack = in.readInt(); } @@ -250,7 +243,6 @@ public final class TransitionInfo implements Parcelable { dest.writeInt(mFlags); dest.writeTypedList(mChanges); dest.writeTypedList(mRoots, flags); - dest.writeTypedObject(mOptions, flags); dest.writeInt(mDebugId); dest.writeInt(mTrack); } @@ -286,18 +278,6 @@ public final class TransitionInfo implements Parcelable { mRoots.add(other); } - /** - * @deprecated Set {@link AnimationOptions} to change. This method is only used if - * {@link Flags#FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE} is disabled. - */ - @Deprecated - public void setAnimationOptions(@Nullable AnimationOptions options) { - if (Flags.moveAnimationOptionsToChange()) { - return; - } - mOptions = options; - } - public @TransitionType int getType() { return mType; } @@ -360,16 +340,6 @@ public final class TransitionInfo implements Parcelable { } /** - * @deprecated Use {@link Change#getAnimationOptions()} instead. This method is called only - * if {@link Flags#FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE} is disabled. - */ - @Deprecated - @Nullable - public AnimationOptions getAnimationOptions() { - return mOptions; - } - - /** * @return the list of {@link Change}s in this transition. The list is sorted top-to-bottom * in Z (meaning index 0 is the top-most container). */ @@ -455,9 +425,6 @@ public final class TransitionInfo implements Parcelable { StringBuilder sb = new StringBuilder(); sb.append("{id=").append(mDebugId).append(" t=").append(transitTypeToString(mType)) .append(" f=0x").append(Integer.toHexString(mFlags)).append(" trk=").append(mTrack); - if (mOptions != null) { - sb.append(" opt=").append(mOptions); - } sb.append(" r=["); for (int i = 0; i < mRoots.size(); ++i) { if (i > 0) { @@ -656,8 +623,6 @@ public final class TransitionInfo implements Parcelable { for (int i = 0; i < mRoots.size(); ++i) { out.mRoots.add(mRoots.get(i).localRemoteCopy()); } - // Doesn't have any native stuff, so no need for actual copy - out.mOptions = mOptions; return out; } @@ -860,9 +825,6 @@ public final class TransitionInfo implements Parcelable { * Sets {@link AnimationOptions} to override animation. */ public void setAnimationOptions(@Nullable AnimationOptions options) { - if (!Flags.moveAnimationOptionsToChange()) { - return; - } mAnimationOptions = options; } diff --git a/core/java/android/window/flags/windowing_sdk.aconfig b/core/java/android/window/flags/windowing_sdk.aconfig index 54d0eeffc9bb..6e45d3dc659f 100644 --- a/core/java/android/window/flags/windowing_sdk.aconfig +++ b/core/java/android/window/flags/windowing_sdk.aconfig @@ -62,16 +62,6 @@ flag { flag { namespace: "windowing_sdk" - name: "move_animation_options_to_change" - description: "Move AnimationOptions from TransitionInfo to each Change" - bug: "327332488" - metadata { - purpose: PURPOSE_BUGFIX - } -} - -flag { - namespace: "windowing_sdk" name: "rear_display_disable_force_desktop_system_decorations" description: "Block system decorations from being added to a rear display when desktop mode is forced" bug: "346103150" diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java index eb59d6efdeff..7ab9e2e65b76 100644 --- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java +++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java @@ -705,8 +705,7 @@ class SplitPresenter extends JetpackTaskFragmentOrganizer { } private static boolean isOverlayTransitionSupported() { - return Flags.moveAnimationOptionsToChange() - && Flags.activityEmbeddingOverlayPresentationFlag(); + return Flags.activityEmbeddingOverlayPresentationFlag(); } @NonNull diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java index f269b3831aab..78f5154c0ecb 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java @@ -364,7 +364,7 @@ class ActivityEmbeddingAnimationRunner { @NonNull SurfaceControl.Transaction finishTransaction, @NonNull List<ActivityEmbeddingAnimationAdapter> adapters) { for (ActivityEmbeddingAnimationAdapter adapter : adapters) { - final int backgroundColor = getTransitionBackgroundColorIfSet(info, adapter.mChange, + final int backgroundColor = getTransitionBackgroundColorIfSet(adapter.mChange, adapter.mAnimation, 0 /* defaultColor */); if (backgroundColor != 0) { // We only need to show one color. @@ -436,8 +436,8 @@ class ActivityEmbeddingAnimationRunner { final TransitionInfo.AnimationOptions options = boundsAnimationChange .getAnimationOptions(); if (options != null) { - final Animation overrideAnimation = mAnimationSpec.loadCustomAnimationFromOptions( - options, TRANSIT_CHANGE); + final Animation overrideAnimation = + mAnimationSpec.loadCustomAnimation(options, TRANSIT_CHANGE); if (overrideAnimation != null) { overrideShowBackdrop = overrideAnimation.getShowBackdrop(); } @@ -447,7 +447,7 @@ class ActivityEmbeddingAnimationRunner { // There are two animations in the array. The first one is for the start leash // (snapshot), and the second one is for the end leash (TaskFragment). final Animation[] animations = - mAnimationSpec.createChangeBoundsChangeAnimations(info, change, parentBounds); + mAnimationSpec.createChangeBoundsChangeAnimations(change, parentBounds); // Jump cut if either animation has zero for duration. for (Animation animation : animations) { if (shouldUseJumpCutForAnimation(animation)) { @@ -500,12 +500,10 @@ class ActivityEmbeddingAnimationRunner { // window without bounds change. animation = ActivityEmbeddingAnimationSpec.createNoopAnimation(change); } else if (TransitionUtil.isClosingType(change.getMode())) { - animation = - mAnimationSpec.createChangeBoundsCloseAnimation(info, change, parentBounds); + animation = mAnimationSpec.createChangeBoundsCloseAnimation(change, parentBounds); shouldShowBackgroundColor = false; } else { - animation = - mAnimationSpec.createChangeBoundsOpenAnimation(info, change, parentBounds); + animation = mAnimationSpec.createChangeBoundsOpenAnimation(change, parentBounds); shouldShowBackgroundColor = false; } if (shouldUseJumpCutForAnimation(animation)) { diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationSpec.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationSpec.java index 77799e99607b..2b9eda40cdbb 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationSpec.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationSpec.java @@ -42,7 +42,6 @@ import android.view.animation.TranslateAnimation; import android.window.TransitionInfo; import com.android.internal.policy.TransitionAnimation; -import com.android.window.flags.Flags; import com.android.wm.shell.shared.TransitionUtil; /** Animation spec for ActivityEmbedding transition. */ @@ -94,9 +93,10 @@ class ActivityEmbeddingAnimationSpec { /** Animation for window that is opening in a change transition. */ @NonNull - Animation createChangeBoundsOpenAnimation(@NonNull TransitionInfo info, - @NonNull TransitionInfo.Change change, @NonNull Rect parentBounds) { - final Animation customAnimation = loadCustomAnimation(info, change, TRANSIT_CHANGE); + Animation createChangeBoundsOpenAnimation(@NonNull TransitionInfo.Change change, + @NonNull Rect parentBounds) { + final Animation customAnimation = + loadCustomAnimation(change.getAnimationOptions(), TRANSIT_CHANGE); if (customAnimation != null) { return customAnimation; } @@ -126,9 +126,10 @@ class ActivityEmbeddingAnimationSpec { /** Animation for window that is closing in a change transition. */ @NonNull - Animation createChangeBoundsCloseAnimation(@NonNull TransitionInfo info, - @NonNull TransitionInfo.Change change, @NonNull Rect parentBounds) { - final Animation customAnimation = loadCustomAnimation(info, change, TRANSIT_CHANGE); + Animation createChangeBoundsCloseAnimation(@NonNull TransitionInfo.Change change, + @NonNull Rect parentBounds) { + final Animation customAnimation = + loadCustomAnimation(change.getAnimationOptions(), TRANSIT_CHANGE); if (customAnimation != null) { return customAnimation; } @@ -162,12 +163,13 @@ class ActivityEmbeddingAnimationSpec { * the second one is for the end leash. */ @NonNull - Animation[] createChangeBoundsChangeAnimations(@NonNull TransitionInfo info, - @NonNull TransitionInfo.Change change, @NonNull Rect parentBounds) { + Animation[] createChangeBoundsChangeAnimations(@NonNull TransitionInfo.Change change, + @NonNull Rect parentBounds) { // TODO(b/293658614): Support more complicated animations that may need more than a noop // animation as the start leash. final Animation noopAnimation = createNoopAnimation(change); - final Animation customAnimation = loadCustomAnimation(info, change, TRANSIT_CHANGE); + final Animation customAnimation = + loadCustomAnimation(change.getAnimationOptions(), TRANSIT_CHANGE); if (customAnimation != null) { return new Animation[]{noopAnimation, customAnimation}; } @@ -221,7 +223,8 @@ class ActivityEmbeddingAnimationSpec { Animation loadOpenAnimation(@NonNull TransitionInfo info, @NonNull TransitionInfo.Change change, @NonNull Rect wholeAnimationBounds) { final boolean isEnter = TransitionUtil.isOpeningType(change.getMode()); - final Animation customAnimation = loadCustomAnimation(info, change, change.getMode()); + final Animation customAnimation = + loadCustomAnimation(change.getAnimationOptions(), change.getMode()); final Animation animation; if (customAnimation != null) { animation = customAnimation; @@ -248,7 +251,8 @@ class ActivityEmbeddingAnimationSpec { Animation loadCloseAnimation(@NonNull TransitionInfo info, @NonNull TransitionInfo.Change change, @NonNull Rect wholeAnimationBounds) { final boolean isEnter = TransitionUtil.isOpeningType(change.getMode()); - final Animation customAnimation = loadCustomAnimation(info, change, change.getMode()); + final Animation customAnimation = + loadCustomAnimation(change.getAnimationOptions(), change.getMode()); final Animation animation; if (customAnimation != null) { animation = customAnimation; @@ -280,20 +284,8 @@ class ActivityEmbeddingAnimationSpec { } @Nullable - private Animation loadCustomAnimation(@NonNull TransitionInfo info, - @NonNull TransitionInfo.Change change, @WindowManager.TransitionType int mode) { - final TransitionInfo.AnimationOptions options; - if (Flags.moveAnimationOptionsToChange()) { - options = change.getAnimationOptions(); - } else { - options = info.getAnimationOptions(); - } - return loadCustomAnimationFromOptions(options, mode); - } - - @Nullable - Animation loadCustomAnimationFromOptions(@Nullable TransitionInfo.AnimationOptions options, - @WindowManager.TransitionType int mode) { + Animation loadCustomAnimation(@Nullable TransitionInfo.AnimationOptions options, + @WindowManager.TransitionType int mode) { if (options == null || options.getType() != ANIM_CUSTOM) { return null; } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java index 55ed5fa4b56f..3a95333309ac 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java @@ -40,7 +40,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.internal.annotations.VisibleForTesting; -import com.android.window.flags.Flags; import com.android.wm.shell.shared.TransitionUtil; import com.android.wm.shell.sysui.ShellInit; import com.android.wm.shell.transition.Transitions; @@ -123,9 +122,6 @@ public class ActivityEmbeddingController implements Transitions.TransitionHandle } private boolean shouldAnimateAnimationOptions(@NonNull TransitionInfo info) { - if (!Flags.moveAnimationOptionsToChange()) { - return shouldAnimateAnimationOptions(info.getAnimationOptions()); - } for (TransitionInfo.Change change : info.getChanges()) { if (!shouldAnimateAnimationOptions(change.getAnimationOptions())) { // If any of override animation is not supported, don't animate the transition. diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java index 743bd052995e..347dcff86529 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java @@ -40,7 +40,6 @@ import android.window.WindowContainerToken; import android.window.WindowContainerTransaction; import com.android.internal.protolog.ProtoLog; -import com.android.window.flags.Flags; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.activityembedding.ActivityEmbeddingController; import com.android.wm.shell.common.ComponentUtils; @@ -439,9 +438,6 @@ public class DefaultMixedHandler implements MixedTransitionHandler, for (int i = 0; i < info.getRootCount(); ++i) { out.addRoot(info.getRoot(i)); } - if (!Flags.moveAnimationOptionsToChange()) { - out.setAnimationOptions(info.getAnimationOptions()); - } return out; } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java index 01428e60582e..e9c6adec75d7 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java @@ -539,7 +539,7 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler { cornerRadius = 0; } - backgroundColorForTransition = getTransitionBackgroundColorIfSet(info, change, a, + backgroundColorForTransition = getTransitionBackgroundColorIfSet(change, a, backgroundColorForTransition); if (!isTask && a.getExtensionEdges() != 0x0) { @@ -606,12 +606,7 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler { mTransactionPool, mMainExecutor, animRelOffset, cornerRadius, clipRect); - final TransitionInfo.AnimationOptions options; - if (Flags.moveAnimationOptionsToChange()) { - options = change.getAnimationOptions(); - } else { - options = info.getAnimationOptions(); - } + final TransitionInfo.AnimationOptions options = change.getAnimationOptions(); if (options != null) { attachThumbnail(animations, onAnimFinish, change, options, cornerRadius); } @@ -834,12 +829,7 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler { final boolean isOpeningType = TransitionUtil.isOpeningType(type); final boolean enter = TransitionUtil.isOpeningType(changeMode); final boolean isTask = change.getTaskInfo() != null; - final TransitionInfo.AnimationOptions options; - if (Flags.moveAnimationOptionsToChange()) { - options = change.getAnimationOptions(); - } else { - options = info.getAnimationOptions(); - } + final TransitionInfo.AnimationOptions options = change.getAnimationOptions(); final int overrideType = options != null ? options.getType() : ANIM_NONE; final int userId = options != null ? options.getUserId() : UserHandle.USER_CURRENT; final Rect endBounds = TransitionUtil.isClosingType(changeMode) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/TransitionAnimationHelper.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/TransitionAnimationHelper.java index 4feb4753096e..7984bcedc4e5 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/TransitionAnimationHelper.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/TransitionAnimationHelper.java @@ -58,7 +58,6 @@ import android.window.TransitionInfo; import com.android.internal.R; import com.android.internal.policy.TransitionAnimation; import com.android.internal.protolog.ProtoLog; -import com.android.window.flags.Flags; import com.android.wm.shell.protolog.ShellProtoLogGroup; import com.android.wm.shell.shared.TransitionUtil; @@ -78,12 +77,7 @@ public class TransitionAnimationHelper { final boolean isFreeform = isTask && change.getTaskInfo().isFreeform(); final boolean isCoveredByOpaqueFullscreenChange = isCoveredByOpaqueFullscreenChange(info, change); - final TransitionInfo.AnimationOptions options; - if (Flags.moveAnimationOptionsToChange()) { - options = change.getAnimationOptions(); - } else { - options = info.getAnimationOptions(); - } + final TransitionInfo.AnimationOptions options = change.getAnimationOptions(); final int overrideType = options != null ? options.getType() : ANIM_NONE; int animAttr = 0; boolean translucent = false; @@ -279,16 +273,10 @@ public class TransitionAnimationHelper { * the given transition animation. */ @ColorInt - public static int getTransitionBackgroundColorIfSet(@NonNull TransitionInfo info, - @NonNull TransitionInfo.Change change, @NonNull Animation a, - @ColorInt int defaultColor) { + public static int getTransitionBackgroundColorIfSet(@NonNull TransitionInfo.Change change, + @NonNull Animation a, @ColorInt int defaultColor) { if (!a.getShowBackdrop()) { return defaultColor; - } - if (!Flags.moveAnimationOptionsToChange() && info.getAnimationOptions() != null - && info.getAnimationOptions().getBackgroundColor() != 0) { - // If available use the background color provided through AnimationOptions - return info.getAnimationOptions().getBackgroundColor(); } else if (a.getBackdropColor() != 0) { // Otherwise fallback on the background color provided through the animation // definition. diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java index 94dc774a6737..d4d8d93abf7d 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java @@ -39,7 +39,6 @@ import android.animation.Animator; import android.annotation.NonNull; import android.graphics.Point; import android.graphics.Rect; -import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; @@ -77,7 +76,6 @@ public class ActivityEmbeddingAnimationRunnerTests extends ActivityEmbeddingAnim doNothing().when(mController).onAnimationFinished(any()); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testStartAnimation() { final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0) @@ -103,7 +101,6 @@ public class ActivityEmbeddingAnimationRunnerTests extends ActivityEmbeddingAnim verify(mController).onAnimationFinished(mTransition); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testChangesBehindStartingWindow() { final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0) @@ -118,7 +115,6 @@ public class ActivityEmbeddingAnimationRunnerTests extends ActivityEmbeddingAnim assertEquals(0, animator.getDuration()); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testTransitionTypeDragResize() { final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_TASK_FRAGMENT_DRAG_RESIZE, 0) @@ -133,25 +129,6 @@ public class ActivityEmbeddingAnimationRunnerTests extends ActivityEmbeddingAnim assertEquals(0, animator.getDuration()); } - @DisableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) - @Test - public void testInvalidCustomAnimation_disableAnimationOptionsPerChange() { - final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0) - .addChange(createChange(FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY, TRANSIT_OPEN)) - .build(); - info.setAnimationOptions(TransitionInfo.AnimationOptions - .makeCustomAnimOptions("packageName", 0 /* enterResId */, 0 /* exitResId */, - 0 /* backgroundColor */, false /* overrideTaskTransition */)); - final Animator animator = mAnimRunner.createAnimator( - info, mStartTransaction, mFinishTransaction, - () -> mFinishCallback.onTransitionFinished(null /* wct */), - new ArrayList<>()); - - // An invalid custom animation is equivalent to jump-cut. - assertEquals(0, animator.getDuration()); - } - - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testInvalidCustomAnimation_enableAnimationOptionsPerChange() { final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0) @@ -169,36 +146,6 @@ public class ActivityEmbeddingAnimationRunnerTests extends ActivityEmbeddingAnim assertEquals(0, animator.getDuration()); } - @DisableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG) - @Test - public void testCalculateParentBounds_flagDisabled() { - final Rect parentBounds = new Rect(0, 0, 2000, 2000); - final Rect primaryBounds = new Rect(); - final Rect secondaryBounds = new Rect(); - parentBounds.splitVertically(primaryBounds, secondaryBounds); - - final TransitionInfo.Change change = createChange(0 /* flags */); - change.setStartAbsBounds(secondaryBounds); - - final TransitionInfo.Change boundsAnimationChange = createChange(0 /* flags */); - boundsAnimationChange.setStartAbsBounds(primaryBounds); - boundsAnimationChange.setEndAbsBounds(primaryBounds); - final Rect actualParentBounds = new Rect(); - - calculateParentBounds(change, boundsAnimationChange, actualParentBounds); - - assertEquals(parentBounds, actualParentBounds); - - actualParentBounds.setEmpty(); - - boundsAnimationChange.setStartAbsBounds(secondaryBounds); - boundsAnimationChange.setEndAbsBounds(primaryBounds); - - calculateParentBounds(boundsAnimationChange, boundsAnimationChange, actualParentBounds); - - assertEquals(parentBounds, actualParentBounds); - } - // TODO(b/243518738): Rewrite with TestParameter @EnableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG) @Test diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingControllerTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingControllerTests.java index 9f29ef71930a..53a13d0d4ffd 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingControllerTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingControllerTests.java @@ -32,8 +32,6 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; import android.animation.Animator; import android.animation.ValueAnimator; import android.graphics.Rect; -import android.platform.test.annotations.DisableFlags; -import android.platform.test.annotations.EnableFlags; import android.view.SurfaceControl; import android.window.TransitionInfo; @@ -41,7 +39,6 @@ import androidx.test.annotation.UiThreadTest; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; -import com.android.window.flags.Flags; import com.android.wm.shell.transition.TransitionInfoBuilder; import org.junit.Before; @@ -69,13 +66,11 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation any()); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testInstantiate() { verify(mShellInit).addInitCallback(any(), any()); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testOnInit() { mController.onInit(); @@ -83,7 +78,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation verify(mTransitions).addHandler(mController); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testSetAnimScaleSetting() { mController.setAnimScaleSetting(1.0f); @@ -92,7 +86,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation verify(mAnimSpec).setAnimScaleSetting(1.0f); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testStartAnimation_containsNonActivityEmbeddingChange() { final TransitionInfo.Change nonEmbeddedOpen = createChange(0 /* flags */); @@ -129,7 +122,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation assertFalse(info2.getChanges().contains(nonEmbeddedClose)); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testStartAnimation_containsOnlyFillTaskActivityEmbeddingChange() { final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0) @@ -146,7 +138,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation verifyNoMoreInteractions(mFinishCallback); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testStartAnimation_containsActivityEmbeddingSplitChange() { // Change that occupies only part of the Task. @@ -164,7 +155,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation verifyNoMoreInteractions(mFinishTransaction); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testStartAnimation_containsChangeEnterActivityEmbeddingSplit() { // Change that is entering ActivityEmbedding split. @@ -181,7 +171,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation verifyNoMoreInteractions(mFinishTransaction); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testStartAnimation_containsChangeExitActivityEmbeddingSplit() { // Change that is exiting ActivityEmbedding split. @@ -198,27 +187,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation verifyNoMoreInteractions(mFinishTransaction); } - @DisableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) - @Test - public void testShouldAnimate_containsAnimationOptions_disableAnimOptionsPerChange() { - final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_CLOSE, 0) - .addChange(createEmbeddedChange(EMBEDDED_RIGHT_BOUNDS, TASK_BOUNDS, TASK_BOUNDS)) - .build(); - - info.setAnimationOptions(TransitionInfo.AnimationOptions - .makeCustomAnimOptions("packageName", 0 /* enterResId */, 0 /* exitResId */, - 0 /* backgroundColor */, false /* overrideTaskTransition */)); - assertTrue(mController.shouldAnimate(info)); - - info.setAnimationOptions(TransitionInfo.AnimationOptions - .makeSceneTransitionAnimOptions()); - assertFalse(mController.shouldAnimate(info)); - - info.setAnimationOptions(TransitionInfo.AnimationOptions.makeCrossProfileAnimOptions()); - assertFalse(mController.shouldAnimate(info)); - } - - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testShouldAnimate_containsAnimationOptions_enableAnimOptionsPerChange() { final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_CLOSE, 0) @@ -239,7 +207,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation assertFalse(mController.shouldAnimate(info)); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @UiThreadTest @Test public void testMergeAnimation() { @@ -278,7 +245,6 @@ public class ActivityEmbeddingControllerTests extends ActivityEmbeddingAnimation verify(mFinishCallback).onTransitionFinished(any()); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testOnAnimationFinished() { // Should not call finish when there is no transition. diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index 5217a759c6ae..d04135f6c55d 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -2026,23 +2026,18 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { if (mOverrideOptions == null) { return; } - - if (!Flags.moveAnimationOptionsToChange()) { - info.setAnimationOptions(mOverrideOptions); - } else { - final List<TransitionInfo.Change> changes = info.getChanges(); - for (int i = changes.size() - 1; i >= 0; --i) { - final WindowContainer<?> container = mTargets.get(i).mContainer; - if (container.asActivityRecord() != null - || shouldApplyAnimOptionsToTask(container.asTask())) { - changes.get(i).setAnimationOptions(mOverrideOptions); - // TODO(b/295805497): Extract mBackgroundColor from AnimationOptions. - changes.get(i).setBackgroundColor(mOverrideOptions.getBackgroundColor()); - } else if (shouldApplyAnimOptionsToEmbeddedTf(container.asTaskFragment())) { - // We only override AnimationOptions because backgroundColor should be from - // TaskFragmentAnimationParams. - changes.get(i).setAnimationOptions(mOverrideOptions); - } + final List<TransitionInfo.Change> changes = info.getChanges(); + for (int i = changes.size() - 1; i >= 0; --i) { + final WindowContainer<?> container = mTargets.get(i).mContainer; + if (container.asActivityRecord() != null + || shouldApplyAnimOptionsToTask(container.asTask())) { + changes.get(i).setAnimationOptions(mOverrideOptions); + // TODO(b/295805497): Extract mBackgroundColor from AnimationOptions. + changes.get(i).setBackgroundColor(mOverrideOptions.getBackgroundColor()); + } else if (shouldApplyAnimOptionsToEmbeddedTf(container.asTaskFragment())) { + // We only override AnimationOptions because backgroundColor should be from + // TaskFragmentAnimationParams. + changes.get(i).setAnimationOptions(mOverrideOptions); } } updateActivityTargetForCrossProfileAnimation(info); @@ -2933,9 +2928,6 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { final AnimationOptions animOptionsForActivityTransition = calculateAnimationOptionsForActivityTransition(type, sortedTargets); - if (!Flags.moveAnimationOptionsToChange() && animOptionsForActivityTransition != null) { - out.setAnimationOptions(animOptionsForActivityTransition); - } final ArraySet<WindowContainer> occludedAtEndContainers = new ArraySet<>(); // Convert all the resolved ChangeInfos into TransactionInfo.Change objects in order. @@ -3059,28 +3051,26 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { } 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 */); - animOptions.setUserId(taskFragment.getTask().mUserId); - } - } - if (animOptions != null) { - change.setAnimationOptions(animOptions); + 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 */); + animOptions.setUserId(taskFragment.getTask().mUserId); } } + if (animOptions != null) { + change.setAnimationOptions(animOptions); + } if (activityRecord != null) { change.setActivityComponent(activityRecord.mActivityComponent); diff --git a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java index 2ee34d3a4b36..b9f88cd73e9d 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java @@ -82,8 +82,6 @@ import android.graphics.Color; import android.graphics.Point; import android.graphics.Rect; import android.os.IBinder; -import android.platform.test.annotations.DisableFlags; -import android.platform.test.annotations.EnableFlags; import android.platform.test.annotations.Presubmit; import android.util.ArrayMap; import android.util.ArraySet; @@ -104,7 +102,6 @@ import androidx.annotation.NonNull; import androidx.test.filters.SmallTest; import com.android.internal.graphics.ColorUtils; -import com.android.window.flags.Flags; import org.junit.Test; import org.junit.runner.RunWith; @@ -2009,21 +2006,6 @@ public class TransitionTests extends WindowTestsBase { assertEquals(expectedBackgroundColor, info.getChanges().get(1).getBackgroundColor()); } - @DisableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) - @Test - public void testOverrideAnimationOptionsToInfoIfNecessary_disableAnimOptionsPerChange() { - ActivityRecord r = initializeOverrideAnimationOptionsTest(); - TransitionInfo.AnimationOptions options = TransitionInfo.AnimationOptions - .makeCommonAnimOptions("testPackage"); - mTransition.setOverrideAnimation(options, r, null /* startCallback */, - null /* finishCallback */); - - mTransition.overrideAnimationOptionsToInfoIfNecessary(mInfo); - - assertEquals(options, mInfo.getAnimationOptions()); - } - - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testOverrideAnimationOptionsToInfoIfNecessary_fromStyleAnimOptions() { ActivityRecord r = initializeOverrideAnimationOptionsTest(); @@ -2049,7 +2031,6 @@ public class TransitionTests extends WindowTestsBase { options, activityChange.getAnimationOptions()); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testOverrideAnimationOptionsToInfoIfNecessary_sceneAnimOptions() { ActivityRecord r = initializeOverrideAnimationOptionsTest(); @@ -2075,7 +2056,6 @@ public class TransitionTests extends WindowTestsBase { options, activityChange.getAnimationOptions()); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testOverrideAnimationOptionsToInfoIfNecessary_crossProfileAnimOptions() { ActivityRecord r = initializeOverrideAnimationOptionsTest(); @@ -2103,7 +2083,6 @@ public class TransitionTests extends WindowTestsBase { assertTrue(activityChange.hasFlags(FLAG_CROSS_PROFILE_OWNER_THUMBNAIL)); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testOverrideAnimationOptionsToInfoIfNecessary_customAnimOptions() { ActivityRecord r = initializeOverrideAnimationOptionsTest(); @@ -2136,7 +2115,6 @@ public class TransitionTests extends WindowTestsBase { options.getBackgroundColor(), activityChange.getBackgroundColor()); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testOverrideAnimationOptionsToInfoIfNecessary_haveTaskFragmentAnimParams() { ActivityRecord r = initializeOverrideAnimationOptionsTest(); @@ -2185,7 +2163,6 @@ public class TransitionTests extends WindowTestsBase { options.getBackgroundColor(), activityChange.getBackgroundColor()); } - @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE) @Test public void testOverrideAnimationOptionsToInfoIfNecessary_customAnimOptionsWithTaskOverride() { ActivityRecord r = initializeOverrideAnimationOptionsTest(); @@ -2415,7 +2392,6 @@ public class TransitionTests extends WindowTestsBase { } @Test - @EnableFlags(Flags.FLAG_ENABLE_DISPLAY_FOCUS_IN_SHELL_TRANSITIONS) public void testMoveDisplayToTop() { // Set up two displays, each of which has a task. DisplayContent otherDisplay = createNewDisplay(); |