Inflate TaskThumbnailViewDeprecated as TaskContentView
If the enableRefactorTaskThumbnail is false, then inflate
TaskThumbnailViewDeprecated as TaskContentView so that the behaviour
matches the previous pre-factor behaviour
Fix: 402277471
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: Manual. See bug
Change-Id: Ie62d4d83d0a16d965820d2a218a44478b660a806
diff --git a/quickstep/src/com/android/quickstep/views/DesktopTaskView.kt b/quickstep/src/com/android/quickstep/views/DesktopTaskView.kt
index 27657b4..5c60798 100644
--- a/quickstep/src/com/android/quickstep/views/DesktopTaskView.kt
+++ b/quickstep/src/com/android/quickstep/views/DesktopTaskView.kt
@@ -73,14 +73,27 @@
private val contentViewFullscreenParams = FullscreenDrawParams(context)
+ private val taskThumbnailViewDeprecatedPool =
+ if (!enableRefactorTaskThumbnail()) {
+ ViewPool<TaskThumbnailViewDeprecated>(
+ context,
+ this,
+ R.layout.task_thumbnail_deprecated,
+ VIEW_POOL_MAX_SIZE,
+ VIEW_POOL_INITIAL_SIZE,
+ )
+ } else null
+
private val taskContentViewPool =
- ViewPool<TaskContentView>(
- context,
- this,
- R.layout.task_content_view,
- VIEW_POOL_MAX_SIZE,
- VIEW_POOL_INITIAL_SIZE,
- )
+ if (enableRefactorTaskThumbnail()) {
+ ViewPool<TaskContentView>(
+ context,
+ this,
+ R.layout.task_content_view,
+ VIEW_POOL_MAX_SIZE,
+ VIEW_POOL_INITIAL_SIZE,
+ )
+ } else null
private val tempPointF = PointF()
private val lastComputedTaskSize = Rect()
@@ -249,7 +262,7 @@
if (
enableDesktopRecentsTransitionsCornersBugfix() && enableRefactorTaskThumbnail()
) {
- it.taskContentView?.outlineBounds =
+ (it.taskContentView as TaskContentView).outlineBounds =
if (intersects(overviewTaskPosition, screenRect))
Rect(overviewTaskPosition).apply {
intersectUnchecked(screenRect)
@@ -300,13 +313,15 @@
val backgroundViewIndex = contentView.indexOfChild(backgroundView)
taskContainers =
tasks.map { task ->
- val taskContentView = taskContentViewPool.view
+ val taskContentView =
+ if (enableRefactorTaskThumbnail()) taskContentViewPool!!.view
+ else taskThumbnailViewDeprecatedPool!!.view
contentView.addView(taskContentView, backgroundViewIndex + 1)
val snapshotView =
if (enableRefactorTaskThumbnail()) {
taskContentView.findViewById<TaskThumbnailView>(R.id.snapshot)
} else {
- taskContentView.findViewById<TaskThumbnailViewDeprecated>(R.id.snapshot)
+ taskContentView
}
TaskContainer(
@@ -466,7 +481,11 @@
private fun removeAndRecycleThumbnailView(taskContainer: TaskContainer) {
contentView.removeView(taskContainer.taskContentView)
- taskContentViewPool.recycle(taskContainer.taskContentView)
+ if (enableRefactorTaskThumbnail()) {
+ taskContentViewPool!!.recycle(taskContainer.taskContentView as TaskContentView)
+ } else {
+ taskThumbnailViewDeprecatedPool!!.recycle(taskContainer.thumbnailViewDeprecated)
+ }
}
private fun updateTaskPositions() {
diff --git a/quickstep/src/com/android/quickstep/views/GroupedTaskView.kt b/quickstep/src/com/android/quickstep/views/GroupedTaskView.kt
index 71a4dde..b8dadce 100644
--- a/quickstep/src/com/android/quickstep/views/GroupedTaskView.kt
+++ b/quickstep/src/com/android/quickstep/views/GroupedTaskView.kt
@@ -24,6 +24,7 @@
import android.view.ViewStub
import com.android.internal.jank.Cuj
import com.android.launcher3.Flags.enableOverviewIconMenu
+import com.android.launcher3.Flags.enableRefactorTaskThumbnail
import com.android.launcher3.R
import com.android.launcher3.Utilities
import com.android.launcher3.util.RunnableList
@@ -94,8 +95,11 @@
override fun inflateViewStubs() {
super.inflateViewStubs()
+ val taskContentViewLayoutId =
+ if (enableRefactorTaskThumbnail()) R.layout.task_content_view
+ else R.layout.task_thumbnail_deprecated
findViewById<ViewStub>(R.id.bottomright_task_content_view)
- ?.apply { layoutResource = R.layout.task_content_view }
+ ?.apply { layoutResource = taskContentViewLayoutId }
?.inflate()
findViewById<ViewStub>(R.id.bottomRight_icon)
?.apply {
diff --git a/quickstep/src/com/android/quickstep/views/TaskContainer.kt b/quickstep/src/com/android/quickstep/views/TaskContainer.kt
index afe7e92..a98b17d 100644
--- a/quickstep/src/com/android/quickstep/views/TaskContainer.kt
+++ b/quickstep/src/com/android/quickstep/views/TaskContainer.kt
@@ -40,7 +40,8 @@
class TaskContainer(
val taskView: TaskView,
val task: Task,
- val taskContentView: TaskContentView,
+ // TODO(b/361500574): Upon flag cleanup, use the TaskContentView type and remove the getter
+ val taskContentView: View,
val snapshotView: View,
val iconView: TaskViewIcon,
/**
@@ -62,8 +63,10 @@
init {
if (enableRefactorTaskThumbnail()) {
+ require(taskContentView is TaskContentView)
require(snapshotView is TaskThumbnailView)
} else {
+ require(taskContentView is TaskThumbnailViewDeprecated)
require(snapshotView is TaskThumbnailViewDeprecated)
}
}
@@ -174,7 +177,7 @@
clickCloseListener: OnClickListener?,
) =
traceSection("TaskContainer.setState") {
- taskContentView.setState(
+ (taskContentView as TaskContentView).setState(
TaskUiStateMapper.toTaskHeaderState(state, hasHeader, clickCloseListener),
TaskUiStateMapper.toTaskThumbnailUiState(state, liveTile),
state?.taskId,
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.kt b/quickstep/src/com/android/quickstep/views/TaskView.kt
index 8d95b13..24e6fc9 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.kt
+++ b/quickstep/src/com/android/quickstep/views/TaskView.kt
@@ -722,8 +722,12 @@
}
protected open fun inflateViewStubs() {
+ val taskContentViewLayoutId =
+ if (enableRefactorTaskThumbnail()) R.layout.task_content_view
+ else R.layout.task_thumbnail_deprecated
+
findViewById<ViewStub>(R.id.task_content_view)
- ?.apply { layoutResource = R.layout.task_content_view }
+ ?.apply { layoutResource = taskContentViewLayoutId }
?.inflate()
findViewById<ViewStub>(R.id.icon)
@@ -893,7 +897,7 @@
taskContainers.forEach { container ->
container.bind()
if (enableRefactorTaskThumbnail()) {
- container.taskContentView.cornerRadius =
+ (container.taskContentView as TaskContentView).cornerRadius =
thumbnailFullscreenParams.currentCornerRadius
container.taskContentView.doOnSizeChange { width, height ->
updateThumbnailValidity(container)
@@ -932,12 +936,15 @@
): TaskContainer =
traceSection("TaskView.createTaskContainer") {
val iconView = findViewById<View>(iconViewId) as TaskViewIcon
- val taskContentView = findViewById<TaskContentView>(taskContentViewId)
+ val taskContentView = findViewById<View>(taskContentViewId)
+ val snapshotView =
+ if (enableRefactorTaskThumbnail()) taskContentView.findViewById(thumbnailViewId)
+ else taskContentView
return TaskContainer(
this,
task,
taskContentView,
- taskContentView.findViewById(thumbnailViewId),
+ snapshotView,
iconView,
TransformingTouchDelegate(iconView.asView()),
stagePosition,
@@ -1752,7 +1759,8 @@
updateFullscreenParams(thumbnailFullscreenParams)
taskContainers.forEach {
if (enableRefactorTaskThumbnail()) {
- it.taskContentView.cornerRadius = thumbnailFullscreenParams.currentCornerRadius
+ (it.taskContentView as TaskContentView).cornerRadius =
+ thumbnailFullscreenParams.currentCornerRadius
} else {
it.thumbnailViewDeprecated.setFullscreenParams(thumbnailFullscreenParams)
}