From 004849d2ec2c2fbaa2375fb621c7225be105dfb2 Mon Sep 17 00:00:00 2001 From: Robin Lee Date: Wed, 24 Jul 2024 20:49:39 +0000 Subject: [PATCH] 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 --- .../android/launcher3/QuickstepTransitionManager.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index 44601b73f1..fe1b403a7a 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -1252,15 +1252,25 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener 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) {