Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 004849d2 authored by Robin Lee's avatar Robin Lee
Browse files

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
parent f93199cb
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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) {