Flip set subtraction to produce correct list of tasks to remove.

Fix: 380067701
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: TasksRepositoryTest
Change-Id: I26933614241e622a11a440829e89023822c8041b
This commit is contained in:
Uwais Ashraf
2024-12-30 14:45:33 +00:00
parent 70e443cde8
commit 39682e308f
2 changed files with 33 additions and 7 deletions
@@ -37,7 +37,9 @@ import kotlinx.coroutines.test.UnconfinedTestDispatcher
import kotlinx.coroutines.test.runTest
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito.spy
import org.mockito.kotlin.mock
import org.mockito.kotlin.verify
import org.mockito.kotlin.whenever
@OptIn(ExperimentalCoroutinesApi::class)
@@ -56,7 +58,7 @@ class TasksRepositoryTest {
private val taskVisualsChangeNotifier = FakeTaskVisualsChangeNotifier()
private val highResLoadingStateNotifier = FakeHighResLoadingStateNotifier()
private val taskVisualsChangedDelegate =
TaskVisualsChangedDelegateImpl(taskVisualsChangeNotifier, highResLoadingStateNotifier)
spy(TaskVisualsChangedDelegateImpl(taskVisualsChangeNotifier, highResLoadingStateNotifier))
private val dispatcher = UnconfinedTestDispatcher()
private val testScope = TestScope(dispatcher)
@@ -130,6 +132,29 @@ class TasksRepositoryTest {
assertThat(systemUnderTest.getThumbnailById(1).first()!!.thumbnail).isEqualTo(bitmap1)
}
@Test
fun getAllTaskData_clearsPreviouslyLoadedImagesForRemovedTasks() =
testScope.runTest {
// Setup data
recentsModel.seedTasks(defaultTaskList)
systemUnderTest.getAllTaskData(forceRefresh = true)
val bitmap1 = taskThumbnailDataSource.taskIdToBitmap[1]
// Load images for task 1
systemUnderTest.setVisibleTasks(setOf(1))
assertThat(systemUnderTest.getThumbnailById(1).first()!!.thumbnail).isEqualTo(bitmap1)
// Remove task 1 from "all data"
recentsModel.seedTasks(
defaultTaskList.filterNot { groupTask -> groupTask.tasks.any { it.key.id == 1 } }
)
systemUnderTest.getAllTaskData(forceRefresh = true)
// Assert task 1 was fully removed
assertThat(systemUnderTest.getThumbnailById(1).first()?.thumbnail).isNull()
verify(taskVisualsChangedDelegate).unregisterTaskThumbnailChangedCallback(tasks[1].key)
}
@Test
fun getCurrentThumbnailByIdReturnsThumbnailWithLoadedThumbnails() =
testScope.runTest {