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

Commit 4950d052 authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Run normal finish for entering standalone recents activity

(This is to reland with fixing FallbackRecentsTest#testOverview)
After adding the behavior to finish recents transition when recents
activity is launched on top of home, the case of launching home
again no longer finishes from shell:merge -> recents:onTasksAppeared
-> shell:finish.

The behavior will be like a regular launch, so just make home invisible
after recents activity is launched. And when launching home again,
it will be a new regular task-open transition which is handled by
DefaultTransitionHandler.

Bug: 302703228
Bug: 294029838
Test: WindowInsetsBehaviorTests

Change-Id: Ibcb68f12172379e9e79a9774aa27c5d3d966c6ba
parent 2f3bd578
Loading
Loading
Loading
Loading
+11 −13
Original line number Diff line number Diff line
@@ -922,19 +922,8 @@ public class RecentsTransitionHandler implements Transitions.TransitionHandler {
                if (toHome) wct.reorder(mRecentsTask, true /* toTop */);
                else wct.restoreTransientOrder(mRecentsTask);
            }
            if (!toHome
                    // If a recents gesture starts on the 3p launcher, then the 3p launcher is the
                    // live tile (pausing app). If the gesture is "cancelled" we need to return to
                    // 3p launcher instead of "task-switching" away from it.
                    && (!mWillFinishToHome || mPausingSeparateHome)
                    && mPausingTasks != null && mState == STATE_NORMAL) {
                if (mPausingSeparateHome) {
                    ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
                            "  returning to 3p home");
                } else {
                    ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
                            "  returning to app");
                }
            if (!toHome && !mWillFinishToHome && mPausingTasks != null && mState == STATE_NORMAL) {
                ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION, "  returning to app");
                // The gesture is returning to the pausing-task(s) rather than continuing with
                // recents, so end the transition by moving the app back to the top (and also
                // re-showing it's task).
@@ -966,6 +955,15 @@ public class RecentsTransitionHandler implements Transitions.TransitionHandler {
                    wct.restoreTransientOrder(mRecentsTask);
                }
            } else {
                if (mPausingSeparateHome) {
                    if (mOpeningTasks.isEmpty()) {
                        ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
                                "  recents occluded 3p home");
                    } else {
                        ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
                                "  switch task by recents on 3p home");
                    }
                }
                ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION, "  normal finish");
                // The general case: committing to recents, going home, or switching tasks.
                for (int i = 0; i < mOpeningTasks.size(); ++i) {