Merge changes from topic "revert_task_content_view" into main
* changes: Revert "Add TaskContentView parent to TaskThumbnailViewHeader and TTV" Revert "Remove redundant FrameLayout from task_header_view.xml"
This commit is contained in:
-2
@@ -35,7 +35,6 @@ import com.android.launcher3.util.UserIconInfo
|
||||
import com.android.quickstep.TaskOverlayFactory
|
||||
import com.android.quickstep.TaskOverlayFactory.TaskOverlay
|
||||
import com.android.quickstep.recents.di.RecentsDependencies
|
||||
import com.android.quickstep.task.thumbnail.TaskContentView
|
||||
import com.android.quickstep.task.thumbnail.TaskThumbnailView
|
||||
import com.android.quickstep.views.RecentsView
|
||||
import com.android.quickstep.views.TaskContainer
|
||||
@@ -199,7 +198,6 @@ class TaskViewItemInfoTest {
|
||||
return TaskContainer(
|
||||
taskView,
|
||||
task,
|
||||
mock<TaskContentView>(),
|
||||
if (enableRefactorTaskThumbnail()) mock<TaskThumbnailView>()
|
||||
else mock<TaskThumbnailViewDeprecated>(),
|
||||
mock<TaskViewIcon>(),
|
||||
|
||||
+129
-95
@@ -19,120 +19,33 @@ package com.android.quickstep.recents.ui.mapper
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.Color
|
||||
import android.graphics.drawable.ShapeDrawable
|
||||
import android.platform.test.annotations.DisableFlags
|
||||
import android.platform.test.annotations.EnableFlags
|
||||
import android.platform.test.flag.junit.SetFlagsRule
|
||||
import android.view.Surface
|
||||
import android.view.View
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import com.android.launcher3.Flags
|
||||
import com.android.quickstep.recents.ui.viewmodel.TaskData
|
||||
import com.android.quickstep.task.thumbnail.TaskHeaderUiState
|
||||
import com.android.quickstep.task.thumbnail.TaskThumbnailUiState
|
||||
import com.android.quickstep.task.thumbnail.TaskThumbnailUiState.LiveTile
|
||||
import com.android.quickstep.task.thumbnail.TaskThumbnailUiState.Snapshot
|
||||
import com.android.quickstep.task.thumbnail.TaskThumbnailUiState.ThumbnailHeader
|
||||
import com.android.systemui.shared.recents.model.ThumbnailData
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
class TaskUiStateMapperTest {
|
||||
|
||||
@get:Rule val mSetFlagsRule = SetFlagsRule()
|
||||
|
||||
/** TaskHeaderUiState */
|
||||
@Test
|
||||
fun taskData_isNull_returns_HideHeader() {
|
||||
fun taskData_isNull_returns_Uninitialized() {
|
||||
val result =
|
||||
TaskUiStateMapper.toTaskHeaderState(
|
||||
TaskUiStateMapper.toTaskThumbnailUiState(
|
||||
taskData = null,
|
||||
isLiveTile = false,
|
||||
hasHeader = false,
|
||||
clickCloseListener = null,
|
||||
)
|
||||
assertThat(result).isEqualTo(TaskHeaderUiState.HideHeader)
|
||||
}
|
||||
|
||||
@DisableFlags(Flags.FLAG_ENABLE_DESKTOP_EXPLODED_VIEW)
|
||||
@Test
|
||||
fun explodedFlagDisabled_returnsHideHeader() {
|
||||
val inputs =
|
||||
listOf(
|
||||
TASK_DATA,
|
||||
TASK_DATA.copy(thumbnailData = null),
|
||||
TASK_DATA.copy(isLocked = true),
|
||||
TASK_DATA.copy(title = null),
|
||||
)
|
||||
val closeCallback = View.OnClickListener {}
|
||||
val expected = TaskHeaderUiState.HideHeader
|
||||
inputs.forEach { taskData ->
|
||||
val result =
|
||||
TaskUiStateMapper.toTaskHeaderState(
|
||||
taskData = taskData,
|
||||
hasHeader = true,
|
||||
clickCloseListener = closeCallback,
|
||||
)
|
||||
assertThat(result).isEqualTo(expected)
|
||||
}
|
||||
}
|
||||
|
||||
@EnableFlags(Flags.FLAG_ENABLE_DESKTOP_EXPLODED_VIEW)
|
||||
@Test
|
||||
fun taskData_hasHeader_and_taskData_returnsShowHeader() {
|
||||
val inputs =
|
||||
listOf(
|
||||
TASK_DATA,
|
||||
TASK_DATA.copy(thumbnailData = null),
|
||||
TASK_DATA.copy(isLocked = true),
|
||||
TASK_DATA.copy(title = null),
|
||||
)
|
||||
val closeCallback = View.OnClickListener {}
|
||||
val expected =
|
||||
TaskHeaderUiState.ShowHeader(
|
||||
header =
|
||||
TaskHeaderUiState.ThumbnailHeader(
|
||||
TASK_ICON,
|
||||
TASK_TITLE_DESCRIPTION,
|
||||
closeCallback,
|
||||
)
|
||||
)
|
||||
inputs.forEach { taskData ->
|
||||
val result =
|
||||
TaskUiStateMapper.toTaskHeaderState(
|
||||
taskData = taskData,
|
||||
hasHeader = true,
|
||||
clickCloseListener = closeCallback,
|
||||
)
|
||||
assertThat(result).isEqualTo(expected)
|
||||
}
|
||||
}
|
||||
|
||||
@EnableFlags(Flags.FLAG_ENABLE_DESKTOP_EXPLODED_VIEW)
|
||||
@Test
|
||||
fun taskData_hasHeader_emptyTaskData_returns_HideHeader() {
|
||||
val inputs =
|
||||
listOf(
|
||||
TASK_DATA.copy(icon = null),
|
||||
TASK_DATA.copy(titleDescription = null),
|
||||
TASK_DATA.copy(icon = null, titleDescription = null),
|
||||
)
|
||||
|
||||
inputs.forEach { taskData ->
|
||||
val result =
|
||||
TaskUiStateMapper.toTaskHeaderState(
|
||||
taskData = taskData,
|
||||
hasHeader = true,
|
||||
clickCloseListener = {},
|
||||
)
|
||||
assertThat(result).isEqualTo(TaskHeaderUiState.HideHeader)
|
||||
}
|
||||
}
|
||||
|
||||
/** TaskThumbnailUiState */
|
||||
@Test
|
||||
fun taskData_isNull_returns_Uninitialized() {
|
||||
val result = TaskUiStateMapper.toTaskThumbnailUiState(taskData = null, isLiveTile = false)
|
||||
assertThat(result).isEqualTo(TaskThumbnailUiState.Uninitialized)
|
||||
}
|
||||
|
||||
@@ -142,20 +55,79 @@ class TaskUiStateMapperTest {
|
||||
listOf(TASK_DATA, TASK_DATA.copy(thumbnailData = null), TASK_DATA.copy(isLocked = true))
|
||||
inputs.forEach { input ->
|
||||
val result =
|
||||
TaskUiStateMapper.toTaskThumbnailUiState(taskData = input, isLiveTile = true)
|
||||
assertThat(result).isEqualTo(LiveTile)
|
||||
TaskUiStateMapper.toTaskThumbnailUiState(
|
||||
taskData = input,
|
||||
isLiveTile = true,
|
||||
hasHeader = false,
|
||||
clickCloseListener = null,
|
||||
)
|
||||
assertThat(result).isEqualTo(LiveTile.WithoutHeader)
|
||||
}
|
||||
}
|
||||
|
||||
@EnableFlags(Flags.FLAG_ENABLE_DESKTOP_EXPLODED_VIEW)
|
||||
@Test
|
||||
fun taskData_isLiveTileWithHeader_returns_LiveTileWithHeader() {
|
||||
val inputs =
|
||||
listOf(
|
||||
TASK_DATA,
|
||||
TASK_DATA.copy(thumbnailData = null),
|
||||
TASK_DATA.copy(isLocked = true),
|
||||
TASK_DATA.copy(title = null),
|
||||
)
|
||||
val closeCallback = View.OnClickListener {}
|
||||
val expected =
|
||||
LiveTile.WithHeader(
|
||||
header = ThumbnailHeader(TASK_ICON, TASK_TITLE_DESCRIPTION, closeCallback)
|
||||
)
|
||||
inputs.forEach { taskData ->
|
||||
val result =
|
||||
TaskUiStateMapper.toTaskThumbnailUiState(
|
||||
taskData = taskData,
|
||||
isLiveTile = true,
|
||||
hasHeader = true,
|
||||
clickCloseListener = closeCallback,
|
||||
)
|
||||
assertThat(result).isEqualTo(expected)
|
||||
}
|
||||
}
|
||||
|
||||
@EnableFlags(Flags.FLAG_ENABLE_DESKTOP_EXPLODED_VIEW)
|
||||
@Test
|
||||
fun taskData_isLiveTileWithHeader_missingHeaderData_returns_LiveTileWithoutHeader() {
|
||||
val inputs =
|
||||
listOf(
|
||||
TASK_DATA.copy(icon = null),
|
||||
TASK_DATA.copy(titleDescription = null),
|
||||
TASK_DATA.copy(icon = null, titleDescription = null),
|
||||
)
|
||||
|
||||
inputs.forEach { taskData ->
|
||||
val result =
|
||||
TaskUiStateMapper.toTaskThumbnailUiState(
|
||||
taskData = taskData,
|
||||
isLiveTile = true,
|
||||
hasHeader = true,
|
||||
clickCloseListener = {},
|
||||
)
|
||||
assertThat(result).isEqualTo(LiveTile.WithoutHeader)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun taskData_isStaticTile_returns_SnapshotSplash() {
|
||||
val result =
|
||||
TaskUiStateMapper.toTaskThumbnailUiState(taskData = TASK_DATA, isLiveTile = false)
|
||||
TaskUiStateMapper.toTaskThumbnailUiState(
|
||||
taskData = TASK_DATA,
|
||||
isLiveTile = false,
|
||||
hasHeader = false,
|
||||
clickCloseListener = null,
|
||||
)
|
||||
|
||||
val expected =
|
||||
TaskThumbnailUiState.SnapshotSplash(
|
||||
snapshot =
|
||||
Snapshot(
|
||||
Snapshot.WithoutHeader(
|
||||
backgroundColor = TASK_BACKGROUND_COLOR,
|
||||
bitmap = TASK_THUMBNAIL,
|
||||
thumbnailRotation = Surface.ROTATION_0,
|
||||
@@ -166,12 +138,72 @@ class TaskUiStateMapperTest {
|
||||
assertThat(result).isEqualTo(expected)
|
||||
}
|
||||
|
||||
@EnableFlags(Flags.FLAG_ENABLE_DESKTOP_EXPLODED_VIEW)
|
||||
@Test
|
||||
fun taskData_isStaticTile_withHeader_returns_SnapshotSplashWithHeader() {
|
||||
val inputs = listOf(TASK_DATA, TASK_DATA.copy(title = null))
|
||||
val closeCallback = View.OnClickListener {}
|
||||
val expected =
|
||||
TaskThumbnailUiState.SnapshotSplash(
|
||||
snapshot =
|
||||
Snapshot.WithHeader(
|
||||
backgroundColor = TASK_BACKGROUND_COLOR,
|
||||
bitmap = TASK_THUMBNAIL,
|
||||
thumbnailRotation = Surface.ROTATION_0,
|
||||
header = ThumbnailHeader(TASK_ICON, TASK_TITLE_DESCRIPTION, closeCallback),
|
||||
),
|
||||
splash = TASK_ICON,
|
||||
)
|
||||
inputs.forEach { taskData ->
|
||||
val result =
|
||||
TaskUiStateMapper.toTaskThumbnailUiState(
|
||||
taskData = taskData,
|
||||
isLiveTile = false,
|
||||
hasHeader = true,
|
||||
clickCloseListener = closeCallback,
|
||||
)
|
||||
assertThat(result).isEqualTo(expected)
|
||||
}
|
||||
}
|
||||
|
||||
@EnableFlags(Flags.FLAG_ENABLE_DESKTOP_EXPLODED_VIEW)
|
||||
@Test
|
||||
fun taskData_isStaticTile_missingHeaderData_returns_SnapshotSplashWithoutHeader() {
|
||||
val inputs =
|
||||
listOf(
|
||||
TASK_DATA.copy(titleDescription = null, icon = null),
|
||||
TASK_DATA.copy(titleDescription = null),
|
||||
TASK_DATA.copy(icon = null),
|
||||
)
|
||||
val expected =
|
||||
Snapshot.WithoutHeader(
|
||||
backgroundColor = TASK_BACKGROUND_COLOR,
|
||||
thumbnailRotation = Surface.ROTATION_0,
|
||||
bitmap = TASK_THUMBNAIL,
|
||||
)
|
||||
inputs.forEach { taskData ->
|
||||
val result =
|
||||
TaskUiStateMapper.toTaskThumbnailUiState(
|
||||
taskData = taskData,
|
||||
isLiveTile = false,
|
||||
hasHeader = true,
|
||||
clickCloseListener = {},
|
||||
)
|
||||
|
||||
assertThat(result).isInstanceOf(TaskThumbnailUiState.SnapshotSplash::class.java)
|
||||
result as TaskThumbnailUiState.SnapshotSplash
|
||||
assertThat(result.snapshot).isEqualTo(expected)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun taskData_thumbnailIsNull_returns_BackgroundOnly() {
|
||||
val result =
|
||||
TaskUiStateMapper.toTaskThumbnailUiState(
|
||||
taskData = TASK_DATA.copy(thumbnailData = null),
|
||||
isLiveTile = false,
|
||||
hasHeader = false,
|
||||
clickCloseListener = null,
|
||||
)
|
||||
|
||||
val expected = TaskThumbnailUiState.BackgroundOnly(TASK_BACKGROUND_COLOR)
|
||||
@@ -184,6 +216,8 @@ class TaskUiStateMapperTest {
|
||||
TaskUiStateMapper.toTaskThumbnailUiState(
|
||||
taskData = TASK_DATA.copy(isLocked = true),
|
||||
isLiveTile = false,
|
||||
hasHeader = false,
|
||||
clickCloseListener = null,
|
||||
)
|
||||
|
||||
val expected = TaskThumbnailUiState.BackgroundOnly(TASK_BACKGROUND_COLOR)
|
||||
|
||||
Reference in New Issue
Block a user