Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt +2 −0 Original line number Diff line number Diff line Loading @@ -87,8 +87,10 @@ class DesktopModeTaskRepository { visibleTasksListeners[visibleTasksListener] = executor displayData.keyIterator().forEach { displayId -> val visibleTasks = getVisibleTaskCount(displayId) val stashed = isStashed(displayId) executor.execute { visibleTasksListener.onVisibilityChanged(displayId, visibleTasks > 0) visibleTasksListener.onStashedChanged(displayId, stashed) } } } Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +9 −4 Original line number Diff line number Diff line Loading @@ -764,16 +764,21 @@ class DesktopTasksController( private val listener: VisibleTasksListener = object : VisibleTasksListener { override fun onVisibilityChanged(displayId: Int, visible: Boolean) { // TODO(b/261234402): move visibility from sysui state to listener KtProtoLog.v( WM_SHELL_DESKTOP_MODE, "IDesktopModeImpl: onVisibilityChanged display=%d visible=%b", displayId, visible ) remoteListener.call { l -> l.onVisibilityChanged(displayId, visible) } } override fun onStashedChanged(displayId: Int, stashed: Boolean) { KtProtoLog.v( WM_SHELL_DESKTOP_MODE, "IDesktopModeImpl: onStashedChanged stashed=%b display=%d", stashed, displayId "IDesktopModeImpl: onStashedChanged display=%d stashed=%b", displayId, stashed ) remoteListener.call { l -> l.onStashedChanged(displayId, stashed) } } Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepositoryTest.kt +12 −0 Original line number Diff line number Diff line Loading @@ -128,6 +128,18 @@ class DesktopModeTaskRepositoryTest : ShellTestCase() { assertThat(listener.visibleChangesOnDefaultDisplay).isEqualTo(1) } @Test fun addListener_notifiesStashed() { repo.setStashed(DEFAULT_DISPLAY, true) val listener = TestVisibilityListener() val executor = TestShellExecutor() repo.addVisibleTasksListener(listener, executor) executor.flushAll() assertThat(listener.stashedOnDefaultDisplay).isTrue() assertThat(listener.stashedChangesOnDefaultDisplay).isEqualTo(1) } @Test fun addListener_tasksOnDifferentDisplay_doesNotNotify() { repo.updateVisibleFreeformTasks(SECOND_DISPLAY, taskId = 1, visible = true) Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt +2 −0 Original line number Diff line number Diff line Loading @@ -87,8 +87,10 @@ class DesktopModeTaskRepository { visibleTasksListeners[visibleTasksListener] = executor displayData.keyIterator().forEach { displayId -> val visibleTasks = getVisibleTaskCount(displayId) val stashed = isStashed(displayId) executor.execute { visibleTasksListener.onVisibilityChanged(displayId, visibleTasks > 0) visibleTasksListener.onStashedChanged(displayId, stashed) } } } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +9 −4 Original line number Diff line number Diff line Loading @@ -764,16 +764,21 @@ class DesktopTasksController( private val listener: VisibleTasksListener = object : VisibleTasksListener { override fun onVisibilityChanged(displayId: Int, visible: Boolean) { // TODO(b/261234402): move visibility from sysui state to listener KtProtoLog.v( WM_SHELL_DESKTOP_MODE, "IDesktopModeImpl: onVisibilityChanged display=%d visible=%b", displayId, visible ) remoteListener.call { l -> l.onVisibilityChanged(displayId, visible) } } override fun onStashedChanged(displayId: Int, stashed: Boolean) { KtProtoLog.v( WM_SHELL_DESKTOP_MODE, "IDesktopModeImpl: onStashedChanged stashed=%b display=%d", stashed, displayId "IDesktopModeImpl: onStashedChanged display=%d stashed=%b", displayId, stashed ) remoteListener.call { l -> l.onStashedChanged(displayId, stashed) } } Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepositoryTest.kt +12 −0 Original line number Diff line number Diff line Loading @@ -128,6 +128,18 @@ class DesktopModeTaskRepositoryTest : ShellTestCase() { assertThat(listener.visibleChangesOnDefaultDisplay).isEqualTo(1) } @Test fun addListener_notifiesStashed() { repo.setStashed(DEFAULT_DISPLAY, true) val listener = TestVisibilityListener() val executor = TestShellExecutor() repo.addVisibleTasksListener(listener, executor) executor.flushAll() assertThat(listener.stashedOnDefaultDisplay).isTrue() assertThat(listener.stashedChangesOnDefaultDisplay).isEqualTo(1) } @Test fun addListener_tasksOnDifferentDisplay_doesNotNotify() { repo.updateVisibleFreeformTasks(SECOND_DISPLAY, taskId = 1, visible = true) Loading