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

Commit 87961404 authored by Pragya Bajoria's avatar Pragya Bajoria
Browse files

Add a direct call to `unminimizedTask` from `addOrMoveFreeformTaskToTop`...

Add a direct call to `unminimizedTask` from `addOrMoveFreeformTaskToTop` instead of each usage calling this method separately.

This makes it easier to refactor all the logic to task states in `DesktopModeTaskRepository` since classes like `FreeformTaskListener` do not need to know the implementation details of the task being minimized when a new task is added.

Change-Id: I9c409227ef221ece0106d14b686f7aaf7c1cda3b
Bug: 332682201
Flag: EXEMPT (no-op for functionality)
Test: atest DesktopModeTaskRepositoryTest
parent c06ea6e3
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)