Loading packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/data/RecentTaskListProvider.kt +1 −1 Original line number Original line Diff line number Diff line Loading @@ -65,7 +65,7 @@ constructor( it.topActivity, it.topActivity, it.baseIntent?.component, it.baseIntent?.component, it.taskDescription?.backgroundColor, it.taskDescription?.backgroundColor, isForegroundTask = it.taskId in foregroundTaskIds isForegroundTask = it.taskId in foregroundTaskIds && it.isVisible ) ) } } } } Loading packages/SystemUI/tests/src/com/android/systemui/mediaprojection/appselector/data/ShellRecentTaskListProviderTest.kt +53 −11 Original line number Original line Diff line number Diff line Loading @@ -81,7 +81,7 @@ class ShellRecentTaskListProviderTest : SysuiTestCase() { @Test @Test fun loadRecentTasks_singleTask_returnsTaskAsNotForeground() { fun loadRecentTasks_singleTask_returnsTaskAsNotForeground() { givenRecentTasks( givenRecentTasks( createSingleTask(taskId = 1), createSingleTask(taskId = 1, isVisible = true), ) ) val result = runBlocking { recentTaskListProvider.loadRecentTasks() } val result = runBlocking { recentTaskListProvider.loadRecentTasks() } Loading @@ -90,10 +90,10 @@ class ShellRecentTaskListProviderTest : SysuiTestCase() { } } @Test @Test fun loadRecentTasks_multipleTasks_returnsSecondTaskAsForegroundTask() { fun loadRecentTasks_multipleTasks_returnsSecondVisibleTaskAsForegroundTask() { givenRecentTasks( givenRecentTasks( createSingleTask(taskId = 1), createSingleTask(taskId = 1), createSingleTask(taskId = 2), createSingleTask(taskId = 2, isVisible = true), createSingleTask(taskId = 3), createSingleTask(taskId = 3), ) ) Loading @@ -103,10 +103,25 @@ class ShellRecentTaskListProviderTest : SysuiTestCase() { } } @Test @Test fun loadRecentTasks_secondTaskIsGrouped_marksBothGroupedTasksAsForeground() { fun loadRecentTasks_multipleTasks_returnsSecondInvisibleTaskAsNotForegroundTask() { givenRecentTasks( givenRecentTasks( createSingleTask(taskId = 1), createSingleTask(taskId = 1), createTaskPair(taskId1 = 2, taskId2 = 3), createSingleTask(taskId = 2, isVisible = false), createSingleTask(taskId = 3), ) val result = runBlocking { recentTaskListProvider.loadRecentTasks() } assertThat(result.map { it.isForegroundTask }) .containsExactly(false, false, false) .inOrder() } @Test fun loadRecentTasks_secondTaskIsGroupedAndVisible_marksBothGroupedTasksAsForeground() { givenRecentTasks( createSingleTask(taskId = 1), createTaskPair(taskId1 = 2, taskId2 = 3, isVisible = true), createSingleTask(taskId = 4), createSingleTask(taskId = 4), ) ) Loading @@ -117,6 +132,21 @@ class ShellRecentTaskListProviderTest : SysuiTestCase() { .inOrder() .inOrder() } } @Test fun loadRecentTasks_secondTaskIsGroupedAndInvisible_marksBothGroupedTasksAsNotForeground() { givenRecentTasks( createSingleTask(taskId = 1), createTaskPair(taskId1 = 2, taskId2 = 3, isVisible = false), createSingleTask(taskId = 4), ) val result = runBlocking { recentTaskListProvider.loadRecentTasks() } assertThat(result.map { it.isForegroundTask }) .containsExactly(false, false, false, false) .inOrder() } @Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST") private fun givenRecentTasks(vararg tasks: GroupedRecentTaskInfo) { private fun givenRecentTasks(vararg tasks: GroupedRecentTaskInfo) { whenever(recentTasks.getRecentTasks(any(), any(), any(), any(), any())).thenAnswer { whenever(recentTasks.getRecentTasks(any(), any(), any(), any(), any())).thenAnswer { Loading @@ -136,11 +166,23 @@ class ShellRecentTaskListProviderTest : SysuiTestCase() { isForegroundTask = false, isForegroundTask = false, ) ) private fun createSingleTask(taskId: Int): GroupedRecentTaskInfo = private fun createSingleTask(taskId: Int, isVisible: Boolean = false): GroupedRecentTaskInfo = GroupedRecentTaskInfo.forSingleTask(createTaskInfo(taskId)) GroupedRecentTaskInfo.forSingleTask(createTaskInfo(taskId, isVisible)) private fun createTaskPair(taskId1: Int, taskId2: Int): GroupedRecentTaskInfo = private fun createTaskPair( GroupedRecentTaskInfo.forSplitTasks(createTaskInfo(taskId1), createTaskInfo(taskId2), null) taskId1: Int, taskId2: Int, isVisible: Boolean = false ): GroupedRecentTaskInfo = GroupedRecentTaskInfo.forSplitTasks( createTaskInfo(taskId1, isVisible), createTaskInfo(taskId2, isVisible), null ) private fun createTaskInfo(taskId: Int) = RecentTaskInfo().apply { this.taskId = taskId } private fun createTaskInfo(taskId: Int, isVisible: Boolean = false) = RecentTaskInfo().apply { this.taskId = taskId this.isVisible = isVisible } } } Loading
packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/data/RecentTaskListProvider.kt +1 −1 Original line number Original line Diff line number Diff line Loading @@ -65,7 +65,7 @@ constructor( it.topActivity, it.topActivity, it.baseIntent?.component, it.baseIntent?.component, it.taskDescription?.backgroundColor, it.taskDescription?.backgroundColor, isForegroundTask = it.taskId in foregroundTaskIds isForegroundTask = it.taskId in foregroundTaskIds && it.isVisible ) ) } } } } Loading
packages/SystemUI/tests/src/com/android/systemui/mediaprojection/appselector/data/ShellRecentTaskListProviderTest.kt +53 −11 Original line number Original line Diff line number Diff line Loading @@ -81,7 +81,7 @@ class ShellRecentTaskListProviderTest : SysuiTestCase() { @Test @Test fun loadRecentTasks_singleTask_returnsTaskAsNotForeground() { fun loadRecentTasks_singleTask_returnsTaskAsNotForeground() { givenRecentTasks( givenRecentTasks( createSingleTask(taskId = 1), createSingleTask(taskId = 1, isVisible = true), ) ) val result = runBlocking { recentTaskListProvider.loadRecentTasks() } val result = runBlocking { recentTaskListProvider.loadRecentTasks() } Loading @@ -90,10 +90,10 @@ class ShellRecentTaskListProviderTest : SysuiTestCase() { } } @Test @Test fun loadRecentTasks_multipleTasks_returnsSecondTaskAsForegroundTask() { fun loadRecentTasks_multipleTasks_returnsSecondVisibleTaskAsForegroundTask() { givenRecentTasks( givenRecentTasks( createSingleTask(taskId = 1), createSingleTask(taskId = 1), createSingleTask(taskId = 2), createSingleTask(taskId = 2, isVisible = true), createSingleTask(taskId = 3), createSingleTask(taskId = 3), ) ) Loading @@ -103,10 +103,25 @@ class ShellRecentTaskListProviderTest : SysuiTestCase() { } } @Test @Test fun loadRecentTasks_secondTaskIsGrouped_marksBothGroupedTasksAsForeground() { fun loadRecentTasks_multipleTasks_returnsSecondInvisibleTaskAsNotForegroundTask() { givenRecentTasks( givenRecentTasks( createSingleTask(taskId = 1), createSingleTask(taskId = 1), createTaskPair(taskId1 = 2, taskId2 = 3), createSingleTask(taskId = 2, isVisible = false), createSingleTask(taskId = 3), ) val result = runBlocking { recentTaskListProvider.loadRecentTasks() } assertThat(result.map { it.isForegroundTask }) .containsExactly(false, false, false) .inOrder() } @Test fun loadRecentTasks_secondTaskIsGroupedAndVisible_marksBothGroupedTasksAsForeground() { givenRecentTasks( createSingleTask(taskId = 1), createTaskPair(taskId1 = 2, taskId2 = 3, isVisible = true), createSingleTask(taskId = 4), createSingleTask(taskId = 4), ) ) Loading @@ -117,6 +132,21 @@ class ShellRecentTaskListProviderTest : SysuiTestCase() { .inOrder() .inOrder() } } @Test fun loadRecentTasks_secondTaskIsGroupedAndInvisible_marksBothGroupedTasksAsNotForeground() { givenRecentTasks( createSingleTask(taskId = 1), createTaskPair(taskId1 = 2, taskId2 = 3, isVisible = false), createSingleTask(taskId = 4), ) val result = runBlocking { recentTaskListProvider.loadRecentTasks() } assertThat(result.map { it.isForegroundTask }) .containsExactly(false, false, false, false) .inOrder() } @Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST") private fun givenRecentTasks(vararg tasks: GroupedRecentTaskInfo) { private fun givenRecentTasks(vararg tasks: GroupedRecentTaskInfo) { whenever(recentTasks.getRecentTasks(any(), any(), any(), any(), any())).thenAnswer { whenever(recentTasks.getRecentTasks(any(), any(), any(), any(), any())).thenAnswer { Loading @@ -136,11 +166,23 @@ class ShellRecentTaskListProviderTest : SysuiTestCase() { isForegroundTask = false, isForegroundTask = false, ) ) private fun createSingleTask(taskId: Int): GroupedRecentTaskInfo = private fun createSingleTask(taskId: Int, isVisible: Boolean = false): GroupedRecentTaskInfo = GroupedRecentTaskInfo.forSingleTask(createTaskInfo(taskId)) GroupedRecentTaskInfo.forSingleTask(createTaskInfo(taskId, isVisible)) private fun createTaskPair(taskId1: Int, taskId2: Int): GroupedRecentTaskInfo = private fun createTaskPair( GroupedRecentTaskInfo.forSplitTasks(createTaskInfo(taskId1), createTaskInfo(taskId2), null) taskId1: Int, taskId2: Int, isVisible: Boolean = false ): GroupedRecentTaskInfo = GroupedRecentTaskInfo.forSplitTasks( createTaskInfo(taskId1, isVisible), createTaskInfo(taskId2, isVisible), null ) private fun createTaskInfo(taskId: Int) = RecentTaskInfo().apply { this.taskId = taskId } private fun createTaskInfo(taskId: Int, isVisible: Boolean = false) = RecentTaskInfo().apply { this.taskId = taskId this.isVisible = isVisible } } }