diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 64d9f5cedabd0..86d24f7998940 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -9787,11 +9787,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A super.finishSync(outMergedTransaction, cancel); } - @Override - boolean canBeAnimationTarget() { - return true; - } - @Nullable Point getMinDimensions() { final ActivityInfo.WindowLayout windowLayout = info.windowLayout; diff --git a/services/core/java/com/android/server/wm/AppTransitionController.java b/services/core/java/com/android/server/wm/AppTransitionController.java index abb3f3af66fbe..6d279d620d52a 100644 --- a/services/core/java/com/android/server/wm/AppTransitionController.java +++ b/services/core/java/com/android/server/wm/AppTransitionController.java @@ -928,7 +928,6 @@ public class AppTransitionController { // TODO(b/213312721): Remove this once ShellTransition is enabled. continue; } else if (parent == null || !parent.canCreateRemoteAnimationTarget() - || !parent.canBeAnimationTarget() // We cannot promote the animation on Task's parent when the task is in // clearing task in case the animating get stuck when performing the opening // task that behind it. diff --git a/services/core/java/com/android/server/wm/TaskDisplayArea.java b/services/core/java/com/android/server/wm/TaskDisplayArea.java index 02e796904b16a..1327e50cd710d 100644 --- a/services/core/java/com/android/server/wm/TaskDisplayArea.java +++ b/services/core/java/com/android/server/wm/TaskDisplayArea.java @@ -1778,7 +1778,9 @@ final class TaskDisplayArea extends DisplayArea { @Override boolean canCreateRemoteAnimationTarget() { - return true; + // In the legacy transition system, promoting animation target from TaskFragment to + // TaskDisplayArea prevents running finish animation. See b/194649929. + return WindowManagerService.sEnableShellTransitions; } /** diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java index 391077636654c..43e02d9f35b4e 100644 --- a/services/core/java/com/android/server/wm/TaskFragment.java +++ b/services/core/java/com/android/server/wm/TaskFragment.java @@ -2568,11 +2568,6 @@ class TaskFragment extends WindowContainer { } } - @Override - boolean canBeAnimationTarget() { - return true; - } - @Override boolean fillsParent() { // From the perspective of policy, we still want to report that this task fills parent diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java index eb15cf22a70a7..a5533925efd26 100644 --- a/services/core/java/com/android/server/wm/WindowContainer.java +++ b/services/core/java/com/android/server/wm/WindowContainer.java @@ -3156,14 +3156,6 @@ class WindowContainer extends ConfigurationContainer< return false; } - /** - * {@code true} to indicate that this container can be a candidate of - * {@link AppTransitionController#getAnimationTargets(ArraySet, ArraySet, boolean) animation - * target}. */ - boolean canBeAnimationTarget() { - return false; - } - boolean okToDisplay() { final DisplayContent dc = getDisplayContent(); return dc != null && dc.okToDisplay(); 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 ab72a0f726715..53595a5b066f6 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java @@ -45,6 +45,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeFalse; +import static org.junit.Assume.assumeTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; @@ -210,6 +211,8 @@ public class TransitionTests extends WindowTestsBase { @Test public void testCreateInfo_DisplayArea() { + assumeTrue(mDisplayContent.mTransitionController.useShellTransitionsRotation()); + final Transition transition = createTestTransition(TRANSIT_OPEN); ArrayMap changes = transition.mChanges; ArraySet participants = transition.mParticipants;