Change actions view disabling logic

1. Introduces "central task" - the task relating to the actions view
2. Decouple the overlay and actions view
3. Undo filter of taskViewType == SINGLE for overlay as it can be enabled for split tasks as well

Bug: 402351284
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: OverviewImageTest (attached abtd run)
Test: OverviewMenuImageTest (attached abtd run)
Change-Id: Id7bc5c9c6620183d91e99d9dc5d2980eb8e3ec36
This commit is contained in:
Uwais Ashraf
2025-03-19 01:32:09 +00:00
parent b307f55a19
commit 7fd33ebde5
8 changed files with 85 additions and 29 deletions

View File

@@ -85,6 +85,7 @@ class TaskViewModelTest {
hasHeader = false,
sysUiStatusNavFlags = FLAGS_APPEARANCE_LIGHT_THEME,
taskOverlayEnabled = false,
isCentralTask = false,
)
assertThat(sut.state.first()).isEqualTo(expectedResult)
}
@@ -132,6 +133,7 @@ class TaskViewModelTest {
hasHeader = false,
sysUiStatusNavFlags = FLAGS_APPEARANCE_LIGHT_THEME,
taskOverlayEnabled = false,
isCentralTask = false,
)
assertThat(sut.state.first()).isEqualTo(expectedResult)
}
@@ -155,6 +157,7 @@ class TaskViewModelTest {
hasHeader = false,
sysUiStatusNavFlags = FLAGS_APPEARANCE_LIGHT_THEME,
taskOverlayEnabled = false,
isCentralTask = false,
)
assertThat(sut.state.first()).isEqualTo(expectedResult)
}
@@ -178,6 +181,7 @@ class TaskViewModelTest {
hasHeader = false,
sysUiStatusNavFlags = FLAGS_APPEARANCE_LIGHT_THEME,
taskOverlayEnabled = false,
isCentralTask = false,
)
assertThat(sut.state.first()).isEqualTo(expectedResult)
}
@@ -200,6 +204,7 @@ class TaskViewModelTest {
hasHeader = false,
sysUiStatusNavFlags = FLAGS_APPEARANCE_LIGHT_THEME,
taskOverlayEnabled = false,
isCentralTask = false,
)
assertThat(sut.state.first()).isEqualTo(expectedResult)
}
@@ -218,6 +223,7 @@ class TaskViewModelTest {
hasHeader = false,
sysUiStatusNavFlags = FLAGS_APPEARANCE_LIGHT_THEME,
taskOverlayEnabled = false,
isCentralTask = false,
)
assertThat(sut.state.first()).isEqualTo(expectedResult)
}
@@ -233,6 +239,7 @@ class TaskViewModelTest {
hasHeader = false,
sysUiStatusNavFlags = FLAGS_APPEARANCE_DEFAULT,
taskOverlayEnabled = false,
isCentralTask = false,
)
assertThat(sut.state.first()).isEqualTo(expectedResult)
}
@@ -247,28 +254,6 @@ class TaskViewModelTest {
assertThat(sut.state.first().taskOverlayEnabled).isTrue()
}
@Test
fun taskOverlayDisabled_when_usingGroupedTask() =
testScope.runTest {
sut = createTaskViewModel(TaskViewType.GROUPED)
sut.bind(TASK_MODEL_1.id)
recentsViewData.overlayEnabled.value = true
recentsViewData.settledFullyVisibleTaskIds.value = setOf(1)
assertThat(sut.state.first().taskOverlayEnabled).isFalse()
}
@Test
fun taskOverlayDisabled_when_usingDesktopTask() =
testScope.runTest {
sut = createTaskViewModel(TaskViewType.DESKTOP)
sut.bind(TASK_MODEL_1.id)
recentsViewData.overlayEnabled.value = true
recentsViewData.settledFullyVisibleTaskIds.value = setOf(1)
assertThat(sut.state.first().taskOverlayEnabled).isFalse()
}
@Test
fun taskOverlayDisabled_when_OverlayIsEnabledForInvisibleTask() =
testScope.runTest {
@@ -289,6 +274,24 @@ class TaskViewModelTest {
assertThat(sut.state.first().taskOverlayEnabled).isFalse()
}
@Test
fun isCentralTask_when_CentralTaskIdsMatchTaskIds() =
testScope.runTest {
sut.bind(TASK_MODEL_1.id, TASK_MODEL_2.id)
recentsViewData.centralTaskIds.value = setOf(TASK_MODEL_1.id, TASK_MODEL_2.id)
assertThat(sut.state.first().isCentralTask).isTrue()
}
@Test
fun isNotCentralTask_when_CentralTaskIdsDoMatchTaskIds() =
testScope.runTest {
sut.bind(TASK_MODEL_1.id, TASK_MODEL_2.id)
recentsViewData.centralTaskIds.value = setOf(TASK_MODEL_3.id)
assertThat(sut.state.first().isCentralTask).isFalse()
}
@Test
fun shouldShowSplash_calls_useCase() {
sut.isThumbnailValid(null, 0, 0)