Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTaskChangeListener.kt +13 −9 Original line number Diff line number Diff line Loading @@ -139,18 +139,22 @@ class DesktopTaskChangeListener( val desktopRepository: DesktopRepository = desktopUserRepositories.getProfile(taskInfo.userId) if (!desktopRepository.isActiveTask(taskInfo.taskId)) return val isMinimized = desktopRepository.isMinimizedTask(taskInfo.taskId) // TODO: b/370038902 - Handle Activity#finishAndRemoveTask. if ( !DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION.isTrue || desktopRepository.isClosingTask(taskInfo.taskId) ) { // A task that's vanishing should be removed: // - If it's closed by the X button which means it's marked as a closing task. if (DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION.isTrue) { // A task that is closing might have been minimized previously by // [DesktopBackNavTransitionObserver]. If that's the case then do not remove it from // the repo. desktopRepository.removeClosingTask(taskInfo.taskId) if (isMinimized) { desktopRepository.updateTask(taskInfo.displayId, taskInfo.taskId, isVisible = false) } else { desktopRepository.removeTask(taskInfo.displayId, taskInfo.taskId) } } else { desktopRepository.updateTask(taskInfo.displayId, taskInfo.taskId, isVisible = false) desktopRepository.minimizeTask(taskInfo.displayId, taskInfo.taskId) desktopRepository.removeClosingTask(taskInfo.taskId) desktopRepository.removeTask(taskInfo.displayId, taskInfo.taskId) } } Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTaskChangeListenerTest.kt +15 −3 Original line number Diff line number Diff line Loading @@ -235,16 +235,28 @@ class DesktopTaskChangeListenerTest : ShellTestCase() { @Test @EnableFlags(FLAG_ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION) fun onTaskClosing_backNavEnabled_nonClosingTask_minimizesTaskInRepo() { fun onTaskClosing_backNavEnabled_removedFromRepo() { val task = createFreeformTask().apply { isVisible = true } whenever(desktopUserRepositories.current.isActiveTask(task.taskId)).thenReturn(true) whenever(desktopUserRepositories.current.isClosingTask(task.taskId)).thenReturn(false) desktopTaskChangeListener.onTaskClosing(task) verify(desktopUserRepositories.current).removeTask(task.displayId, task.taskId) } @Test @EnableFlags(FLAG_ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION) fun onTaskClosing_backNavEnabled_minimizedTask_notRemovedFromRepo() { val task = createFreeformTask().apply { isVisible = true } whenever(desktopUserRepositories.current.isActiveTask(task.taskId)).thenReturn(true) whenever(desktopUserRepositories.current.isMinimizedTask(task.taskId)).thenReturn(true) desktopTaskChangeListener.onTaskClosing(task) verify(desktopUserRepositories.current) .updateTask(task.displayId, task.taskId, isVisible = false) verify(desktopUserRepositories.current).minimizeTask(task.displayId, task.taskId) .updateTask(task.displayId, task.taskId, /* isVisible= */ false) verify(desktopUserRepositories.current, never()).removeTask(task.displayId, task.taskId) } @Test Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTaskChangeListener.kt +13 −9 Original line number Diff line number Diff line Loading @@ -139,18 +139,22 @@ class DesktopTaskChangeListener( val desktopRepository: DesktopRepository = desktopUserRepositories.getProfile(taskInfo.userId) if (!desktopRepository.isActiveTask(taskInfo.taskId)) return val isMinimized = desktopRepository.isMinimizedTask(taskInfo.taskId) // TODO: b/370038902 - Handle Activity#finishAndRemoveTask. if ( !DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION.isTrue || desktopRepository.isClosingTask(taskInfo.taskId) ) { // A task that's vanishing should be removed: // - If it's closed by the X button which means it's marked as a closing task. if (DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION.isTrue) { // A task that is closing might have been minimized previously by // [DesktopBackNavTransitionObserver]. If that's the case then do not remove it from // the repo. desktopRepository.removeClosingTask(taskInfo.taskId) if (isMinimized) { desktopRepository.updateTask(taskInfo.displayId, taskInfo.taskId, isVisible = false) } else { desktopRepository.removeTask(taskInfo.displayId, taskInfo.taskId) } } else { desktopRepository.updateTask(taskInfo.displayId, taskInfo.taskId, isVisible = false) desktopRepository.minimizeTask(taskInfo.displayId, taskInfo.taskId) desktopRepository.removeClosingTask(taskInfo.taskId) desktopRepository.removeTask(taskInfo.displayId, taskInfo.taskId) } } Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTaskChangeListenerTest.kt +15 −3 Original line number Diff line number Diff line Loading @@ -235,16 +235,28 @@ class DesktopTaskChangeListenerTest : ShellTestCase() { @Test @EnableFlags(FLAG_ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION) fun onTaskClosing_backNavEnabled_nonClosingTask_minimizesTaskInRepo() { fun onTaskClosing_backNavEnabled_removedFromRepo() { val task = createFreeformTask().apply { isVisible = true } whenever(desktopUserRepositories.current.isActiveTask(task.taskId)).thenReturn(true) whenever(desktopUserRepositories.current.isClosingTask(task.taskId)).thenReturn(false) desktopTaskChangeListener.onTaskClosing(task) verify(desktopUserRepositories.current).removeTask(task.displayId, task.taskId) } @Test @EnableFlags(FLAG_ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION) fun onTaskClosing_backNavEnabled_minimizedTask_notRemovedFromRepo() { val task = createFreeformTask().apply { isVisible = true } whenever(desktopUserRepositories.current.isActiveTask(task.taskId)).thenReturn(true) whenever(desktopUserRepositories.current.isMinimizedTask(task.taskId)).thenReturn(true) desktopTaskChangeListener.onTaskClosing(task) verify(desktopUserRepositories.current) .updateTask(task.displayId, task.taskId, isVisible = false) verify(desktopUserRepositories.current).minimizeTask(task.displayId, task.taskId) .updateTask(task.displayId, task.taskId, /* isVisible= */ false) verify(desktopUserRepositories.current, never()).removeTask(task.displayId, task.taskId) } @Test Loading