Skip launcher return for custom task transitions
Overriding the task exit transition requires a permission that indicates the exiting task already knows more than the launcher about what its exit is supposed to look like, so we
will let it play the animation it likes instead of the default return-to-launcher one.
Change-Id: I8f4b7292ae0863d378ec6319816e1b9cc7735c24
Test: atest transition-hotlaunch-phone
Flag: EXEMPT bugfix
Bug: 350712843
diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java
index 44601b7..fe1b403 100644
--- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java
+++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java
@@ -1252,15 +1252,25 @@
TransitionFilter homeCheck = new TransitionFilter();
// No need to handle the transition that also dismisses keyguard.
homeCheck.mNotFlags = TRANSIT_FLAG_KEYGUARD_GOING_AWAY;
+
homeCheck.mRequirements =
new TransitionFilter.Requirement[]{new TransitionFilter.Requirement(),
+ new TransitionFilter.Requirement(),
new TransitionFilter.Requirement()};
+
homeCheck.mRequirements[0].mActivityType = ACTIVITY_TYPE_HOME;
homeCheck.mRequirements[0].mTopActivity = mLauncher.getComponentName();
homeCheck.mRequirements[0].mModes = new int[]{TRANSIT_OPEN, TRANSIT_TO_FRONT};
homeCheck.mRequirements[0].mOrder = CONTAINER_ORDER_TOP;
+
homeCheck.mRequirements[1].mActivityType = ACTIVITY_TYPE_STANDARD;
homeCheck.mRequirements[1].mModes = new int[]{TRANSIT_CLOSE, TRANSIT_TO_BACK};
+
+ homeCheck.mRequirements[2].mNot = true;
+ homeCheck.mRequirements[2].mCustomAnimation = true;
+ homeCheck.mRequirements[2].mMustBeTask = true;
+ homeCheck.mRequirements[2].mMustBeIndependent = true;
+
SystemUiProxy.INSTANCE.get(mLauncher)
.registerRemoteTransition(mLauncherOpenTransition, homeCheck);
if (mBackAnimationController != null) {