diff options
| author | 2025-03-04 10:43:21 -0800 | |
|---|---|---|
| committer | 2025-03-04 10:43:21 -0800 | |
| commit | 5a874a66fc6c47c01e4a7b8638a66c810ded535b (patch) | |
| tree | cb17aff3a3c0fac0f0342cea891fc886f791a5c7 | |
| parent | 064262d315491dc81333ce47654cb8c5bbb3c231 (diff) | |
| parent | e1ff0bf3cf6442188401e0a079c5f9154ca0d18b (diff) | |
Merge "Update the onTaskChanging method for DesktopTaskChangeListener to simplify the logic." into main
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) |