diff options
2 files changed, 7 insertions, 42 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTaskChangeListener.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTaskChangeListener.kt index fcdf4af531ee..e04d14459284 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTaskChangeListener.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTaskChangeListener.kt @@ -53,24 +53,12 @@ class DesktopTaskChangeListener(private val desktopUserRepositories: DesktopUser // Case 1: When the task change is from a task in the desktop repository which is now // fullscreen, // remove the task from the desktop repository since it is no longer a freeform task. - if (!isFreeformTask(taskInfo)) { - if (desktopRepository.isActiveTask(taskInfo.taskId)) { - desktopRepository.removeTask(taskInfo.displayId, taskInfo.taskId) - } - } else { // Task change is a freeform task - if (!desktopRepository.isActiveTask(taskInfo.taskId)) { - // Case 2: When the task change is a freeform visible task, but the task is not - // yet active in the desktop repository, adds task to desktop repository. - desktopRepository.addTask(taskInfo.displayId, taskInfo.taskId, taskInfo.isVisible) - } else { - // Case 3: When the task change is a freeform task which already exists as an active - // task in the desktop repository, updates the task state. - desktopRepository.updateTask( - taskInfo.displayId, - taskInfo.taskId, - taskInfo.isVisible, - ) - } + if (!isFreeformTask(taskInfo) && desktopRepository.isActiveTask(taskInfo.taskId)) { + desktopRepository.removeTask(taskInfo.displayId, taskInfo.taskId) + } else if (isFreeformTask(taskInfo)) { + // If the task is already active in the repository, then moves task to the front, + // else adds the task. + desktopRepository.addTask(taskInfo.displayId, taskInfo.taskId, taskInfo.isVisible) } } diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTaskChangeListenerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTaskChangeListenerTest.kt index 54360a8fd908..4ace1b2d7c71 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTaskChangeListenerTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTaskChangeListenerTest.kt @@ -119,9 +119,8 @@ class DesktopTaskChangeListenerTest : ShellTestCase() { } @Test - fun onTaskChanging_freeformTask_nonActiveTaskInDesktopRepo_addsTaskToDesktopRepo() { + fun onTaskChanging_freeformTask_addsTaskToDesktopRepo() { val task = createFreeformTask().apply { isVisible = true } - whenever(desktopUserRepositories.current.isActiveTask(task.taskId)).thenReturn(false) desktopTaskChangeListener.onTaskChanging(task) @@ -129,28 +128,6 @@ class DesktopTaskChangeListenerTest : ShellTestCase() { } @Test - fun onTaskChanging_freeformTask_activeVisibleTaskInDesktopRepo_updatesTaskVisibility() { - val task = createFreeformTask().apply { isVisible = true } - whenever(desktopUserRepositories.current.isActiveTask(task.taskId)).thenReturn(true) - - desktopTaskChangeListener.onTaskChanging(task) - - verify(desktopUserRepositories.current) - .updateTask(task.displayId, task.taskId, task.isVisible) - } - - @Test - fun onTaskChanging_freeformTask_activeNonVisibleTask_updatesTaskVisibility() { - val task = createFreeformTask().apply { isVisible = false } - whenever(desktopUserRepositories.current.isActiveTask(task.taskId)).thenReturn(true) - - desktopTaskChangeListener.onTaskChanging(task) - - verify(desktopUserRepositories.current) - .updateTask(task.displayId, task.taskId, task.isVisible) - } - - @Test fun onTaskMovingToFront_fullscreenTask_activeTaskInDesktopRepo_removesTaskFromRepo() { val task = createFullscreenTask().apply { isVisible = true } whenever(desktopUserRepositories.current.isActiveTask(task.taskId)).thenReturn(true) |