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

Commit 86122dee authored by Pragya Bajoria's avatar Pragya Bajoria Committed by Android (Google) Code Review
Browse files

Merge "Add a direct call to `unminimizedTask` from...

Merge "Add a direct call to `unminimizedTask` from `addOrMoveFreeformTaskToTop` instead of each usage calling this method separately." into main
parents 4c347ab6 87961404
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -250,11 +250,17 @@ class DesktopModeTaskRepository {
            logD("getVisibleTaskCount=$it")
        }

    /** Adds task (or moves if it already exists) to the top of the ordered list. */
    /**
     * Adds task (or moves if it already exists) to the top of the ordered list.
     *
     * Unminimizes the task if it is minimized.
     */
    fun addOrMoveFreeformTaskToTop(displayId: Int, taskId: Int) {
        logD("Add or move task to top: display=%d taskId=%d", taskId, displayId)
        desktopTaskDataByDisplayId[displayId]?.freeformTasksInZOrder?.remove(taskId)
        desktopTaskDataByDisplayId.getOrCreate(displayId).freeformTasksInZOrder.add(0, taskId)
        // Unminimize the task if it is minimized.
        unminimizeTask(displayId, taskId)
    }

    /** Minimizes the task for [taskId] and [displayId] */
+0 −2
Original line number Diff line number Diff line
@@ -99,7 +99,6 @@ public class FreeformTaskListener implements ShellTaskOrganizer.TaskListener,
        if (DesktopModeStatus.canEnterDesktopMode(mContext)) {
            mDesktopModeTaskRepository.ifPresent(repository -> {
                repository.addOrMoveFreeformTaskToTop(taskInfo.displayId, taskInfo.taskId);
                repository.unminimizeTask(taskInfo.displayId, taskInfo.taskId);
                if (taskInfo.isVisible) {
                    repository.addActiveTask(taskInfo.displayId, taskInfo.taskId);
                    repository.updateVisibleFreeformTasks(taskInfo.displayId, taskInfo.taskId,
@@ -161,7 +160,6 @@ public class FreeformTaskListener implements ShellTaskOrganizer.TaskListener,
        if (DesktopModeStatus.canEnterDesktopMode(mContext) && taskInfo.isFocused) {
            mDesktopModeTaskRepository.ifPresent(repository -> {
                repository.addOrMoveFreeformTaskToTop(taskInfo.displayId, taskInfo.taskId);
                repository.unminimizeTask(taskInfo.displayId, taskInfo.taskId);
            });
        }
    }
+23 −0
Original line number Diff line number Diff line
@@ -467,6 +467,29 @@ class DesktopModeTaskRepositoryTest : ShellTestCase() {
        assertThat(tasks.first()).isEqualTo(6)
    }

    @Test
    fun addOrMoveFreeformTaskToTop_taskIsMinimized_unminimizesTask() {
        repo.addOrMoveFreeformTaskToTop(DEFAULT_DISPLAY, 5)
        repo.addOrMoveFreeformTaskToTop(DEFAULT_DISPLAY, 6)
        repo.addOrMoveFreeformTaskToTop(DEFAULT_DISPLAY, 7)
        repo.minimizeTask(displayId = 0, taskId = 6)

        val tasks = repo.getFreeformTasksInZOrder(DEFAULT_DISPLAY)
        assertThat(tasks).containsExactly(7, 6, 5).inOrder()
        assertThat(repo.isMinimizedTask(taskId = 6)).isTrue()
    }

    @Test
    fun addOrMoveFreeformTaskToTop_taskIsUnminimized_noop() {
        repo.addOrMoveFreeformTaskToTop(DEFAULT_DISPLAY, 5)
        repo.addOrMoveFreeformTaskToTop(DEFAULT_DISPLAY, 6)
        repo.addOrMoveFreeformTaskToTop(DEFAULT_DISPLAY, 7)

        val tasks = repo.getFreeformTasksInZOrder(DEFAULT_DISPLAY)
        assertThat(tasks).containsExactly(7, 6, 5).inOrder()
        assertThat(repo.isMinimizedTask(taskId = 6)).isFalse()
    }

    @Test
    fun removeFreeformTask_invalidDisplay_removesTaskFromFreeformTasks() {
        repo.addOrMoveFreeformTaskToTop(DEFAULT_DISPLAY, taskId = 1)