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

Commit f4d5e638 authored by Charles Chen's avatar Charles Chen Committed by Automerger Merge Worker
Browse files

Merge "Fix starting window isn't removed" into tm-dev am: ce3c4be4

parents 3e29e199 ce3c4be4
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -6340,8 +6340,10 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
                mSharedStartingData != null ? mSharedStartingData.mAssociatedTask : null;
        if (associatedTask == null) {
            removeStartingWindow();
        } else if (associatedTask.getActivity(
                r -> r.mVisibleRequested && !r.firstWindowDrawn) == null) {
        } else if (associatedTask.getActivity(r -> r.mVisibleRequested && !r.firstWindowDrawn
                // Don't block starting window removal if an Activity can't be a starting window
                // target.
                && r.mSharedStartingData != null) == null) {
            // The last drawn activity may not be the one that owns the starting window.
            final ActivityRecord r = associatedTask.topActivityContainsStartingWindow();
            if (r != null) {
+5 −0
Original line number Diff line number Diff line
@@ -2853,6 +2853,11 @@ public class ActivityRecordTests extends WindowTestsBase {
        assertTrue(activity2.isResizeable());
        activity1.reparent(taskFragment1, POSITION_TOP);

        // Adds an Activity which doesn't have shared starting data, and verify if it blocks
        // starting window removal.
        final ActivityRecord activity3 = new ActivityBuilder(mAtm).build();
        taskFragment2.addChild(activity3, POSITION_TOP);

        verify(activity1.getSyncTransaction()).reparent(eq(startingWindow.mSurfaceControl),
                eq(task.mSurfaceControl));
        assertEquals(activity1.mStartingData, startingWindow.mStartingData);