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

Commit 593f3309 authored by Louis Chang's avatar Louis Chang
Browse files

Revert "Trims Recent Task when Task windowing mode changed after dismiss split-screen"

This reverts commit abf91aba.

Reason for revert: b/329000714

Change-Id: I0c10bb98622f26ca5b114ca4e225de6004b80479
(cherry picked from commit 46533d1f)
parent b17d3174
Loading
Loading
Loading
Loading
+0 −26
Original line number Diff line number Diff line
@@ -713,26 +713,6 @@ class RecentTasks {
        }
    }

    /**
     * Removes the oldest recent task that is compatible with the given one. This is possible if
     * the task windowing mode changed after being added to the Recents.
     */
    void removeCompatibleRecentTask(Task task) {
        final int taskIndex = mTasks.indexOf(task);
        if (taskIndex < 0) {
            return;
        }

        final int candidateIndex = findRemoveIndexForTask(task, false /* includingSelf */);
        if (candidateIndex == -1) {
            // Nothing to trim
            return;
        }

        final Task taskToRemove = taskIndex > candidateIndex ? task : mTasks.get(candidateIndex);
        remove(taskToRemove);
    }

    void removeTasksByPackageName(String packageName, int userId) {
        for (int i = mTasks.size() - 1; i >= 0; --i) {
            final Task task = mTasks.get(i);
@@ -1620,10 +1600,6 @@ class RecentTasks {
     * list (if any).
     */
    private int findRemoveIndexForAddTask(Task task) {
        return findRemoveIndexForTask(task, true /* includingSelf */);
    }

    private int findRemoveIndexForTask(Task task, boolean includingSelf) {
        final int recentsCount = mTasks.size();
        final Intent intent = task.intent;
        final boolean document = intent != null && intent.isDocument();
@@ -1679,8 +1655,6 @@ class RecentTasks {
                    // existing task
                    continue;
                }
            } else if (!includingSelf) {
                continue;
            }
            return i;
        }
+0 −7
Original line number Diff line number Diff line
@@ -1872,7 +1872,6 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
        final int count = tasksToReparent.size();
        for (int i = 0; i < count; ++i) {
            final Task task = tasksToReparent.get(i);
            final int prevWindowingMode = task.getWindowingMode();
            if (syncId >= 0) {
                addToSyncSet(syncId, task);
            }
@@ -1886,12 +1885,6 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
                        hop.getToTop() ? POSITION_TOP : POSITION_BOTTOM,
                        false /*moveParents*/, "processChildrenTaskReparentHierarchyOp");
            }
            // Trim the compatible Recent task (if any) after the Task is reparented and now has
            // a different windowing mode, in order to prevent redundant Recent tasks after
            // reparenting.
            if (prevWindowingMode != task.getWindowingMode()) {
                mService.mTaskSupervisor.mRecentTasks.removeCompatibleRecentTask(task);
            }
        }

        if (transition != null) transition.collect(newParent);
+0 −20
Original line number Diff line number Diff line
@@ -1373,26 +1373,6 @@ public class RecentTasksTest extends WindowTestsBase {
        assertTrue(info.supportsMultiWindow);
    }

    @Test
    public void testRemoveCompatibleRecentTask() {
        final Task task1 = createTaskBuilder(".Task").setWindowingMode(
                WINDOWING_MODE_FULLSCREEN).build();
        mRecentTasks.add(task1);
        final Task task2 = createTaskBuilder(".Task").setWindowingMode(
                WINDOWING_MODE_MULTI_WINDOW).build();
        mRecentTasks.add(task2);
        assertEquals(2, mRecentTasks.getRecentTasks(MAX_VALUE, 0 /* flags */,
                true /* getTasksAllowed */, TEST_USER_0_ID, 0).getList().size());

        // Set windowing mode and ensure the same fullscreen task that created earlier is removed.
        task2.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
        mRecentTasks.removeCompatibleRecentTask(task2);
        assertEquals(1, mRecentTasks.getRecentTasks(MAX_VALUE, 0 /* flags */,
                true /* getTasksAllowed */, TEST_USER_0_ID, 0).getList().size());
        assertEquals(task2.mTaskId, mRecentTasks.getRecentTasks(MAX_VALUE, 0 /* flags */,
                true /* getTasksAllowed */, TEST_USER_0_ID, 0).getList().get(0).taskId);
    }

    private TaskSnapshot createSnapshot(Point taskSize, Point bufferSize) {
        HardwareBuffer buffer = null;
        if (bufferSize != null) {