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

Commit 710e73fe authored by Riddle Hsu's avatar Riddle Hsu Committed by Android (Google) Code Review
Browse files

Merge "Consider transient-hide tasks in waiting transitions" into main

parents bcf67744 7b4379f0
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -496,6 +496,9 @@ class TransitionController {
        if (mCollectingTransition != null && mCollectingTransition.isInTransientHide(task)) {
            return true;
        }
        for (int i = mWaitingTransitions.size() - 1; i >= 0; --i) {
            if (mWaitingTransitions.get(i).isInTransientHide(task)) return true;
        }
        for (int i = mPlayingTransitions.size() - 1; i >= 0; --i) {
            if (mPlayingTransitions.get(i).isInTransientHide(task)) return true;
        }
@@ -506,6 +509,9 @@ class TransitionController {
        if (mCollectingTransition != null && mCollectingTransition.isTransientVisible(task)) {
            return true;
        }
        for (int i = mWaitingTransitions.size() - 1; i >= 0; --i) {
            if (mWaitingTransitions.get(i).isTransientVisible(task)) return true;
        }
        for (int i = mPlayingTransitions.size() - 1; i >= 0; --i) {
            if (mPlayingTransitions.get(i).isTransientVisible(task)) return true;
        }
+27 −0
Original line number Diff line number Diff line
@@ -1601,6 +1601,33 @@ public class TransitionTests extends WindowTestsBase {
        assertFalse(controller.isTransientVisible(taskRecent));
    }

    @Test
    public void testTransientWithParallelLaunch() {
        final Task recentTask = mDisplayContent.getDefaultTaskDisplayArea().getRootHomeTask();
        final ActivityRecord recent = new ActivityBuilder(mAtm).setTask(recentTask)
                .setVisible(false).build();
        final ActivityRecord app = new ActivityBuilder(mAtm).setCreateTask(true).build();
        final Task appTask = app.getTask();
        registerTestTransitionPlayer();
        final TransitionController controller = mRootWindowContainer.mTransitionController;
        final Transition transition = createTestTransition(TRANSIT_OPEN, controller);
        transition.mParallelCollectType = Transition.PARALLEL_TYPE_RECENTS;
        controller.moveToCollecting(transition);
        transition.collect(recentTask);
        transition.collect(appTask);
        transition.setTransientLaunch(recent, appTask);
        recentTask.moveToFront("move-recent-to-front");
        transition.setAllReady();
        transition.start();
        // Assume that the app starts another activity in its task.
        final Transition newTransition = controller.createAndStartCollecting(TRANSIT_OPEN);

        assertEquals(newTransition, controller.getCollectingTransition());
        assertTrue(controller.mWaitingTransitions.contains(transition));
        assertTrue(controller.isTransientHide(appTask));
        assertTrue(controller.isTransientVisible(appTask));
    }

    @Test
    public void testNotReadyPushPop() {
        final TransitionController controller = new TestTransitionController(mAtm);