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

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

Merge "Make transition ready if display becomes empty" into main

parents 4ce92c2d 6ce47cca
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -4033,6 +4033,10 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        if (next == null) {
            mRootWindowContainer.ensureVisibilityAndConfig(null /* starting */, mDisplayContent,
                    true /* deferResume */);
            if (mDisplayContent.topRunningActivity() == null) {
                // The transition is ready on a display with no running activities.
                mTransitionController.setReady(mDisplayContent);
            }
        }
        if (activityRemoved) {
            mRootWindowContainer.resumeFocusedTasksTopActivities();
+6 −0
Original line number Diff line number Diff line
@@ -1235,12 +1235,18 @@ public class RootTaskTests extends WindowTestsBase {
        assertEquals(STOPPING, activity2.getState());
        assertThat(mSupervisor.mStoppingActivities).contains(activity2);

        registerTestTransitionPlayer();
        final Transition transition = display.mTransitionController
                .requestCloseTransitionIfNeeded(rootTask1);
        transition.collectClose(rootTask1);
        // The display becomes empty. Since there is no next activity to be idle, the activity
        // should be destroyed immediately with updating configuration to restore original state.
        final ActivityRecord activity1 = finishTopActivity(rootTask1);
        assertEquals(DESTROYING, activity1.getState());
        verify(mRootWindowContainer).ensureVisibilityAndConfig(eq(null) /* starting */,
                eq(display), anyBoolean());
        assertTrue("Transition must be ready if there is no next running activity",
                transition.allReady());
    }

    private ActivityRecord finishTopActivity(Task task) {