Revert^2 "Inflate TaskThumbnailViewDeprecated as TaskContentView"

This reverts commit 1048b2711c6edc43d1b34df5b4479bf6e32351d6.

Reason for revert: Reland CL with fix

Original message:
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
Bug: 403826044
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: Manual. See bug

Change-Id: Ib43331023d99316c7b0c9de2ab81e379db58bb50
diff --git a/quickstep/res/layout/task.xml b/quickstep/res/layout/task.xml
index 4abfbbe..def5a1e 100644
--- a/quickstep/res/layout/task.xml
+++ b/quickstep/res/layout/task.xml
@@ -30,7 +30,6 @@
 
     <ViewStub
         android:id="@+id/task_content_view"
-        android:inflatedId="@id/task_content_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
 
diff --git a/quickstep/res/layout/task_grouped.xml b/quickstep/res/layout/task_grouped.xml
index a7c4856..a9a6dc1 100644
--- a/quickstep/res/layout/task_grouped.xml
+++ b/quickstep/res/layout/task_grouped.xml
@@ -35,13 +35,11 @@
 
     <ViewStub
         android:id="@+id/task_content_view"
-        android:inflatedId="@id/task_content_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
 
     <ViewStub
         android:id="@+id/bottomright_task_content_view"
-        android:inflatedId="@id/bottomright_task_content_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
 
diff --git a/quickstep/res/values/ids.xml b/quickstep/res/values/ids.xml
index c71bb76..14928fd 100644
--- a/quickstep/res/values/ids.xml
+++ b/quickstep/res/values/ids.xml
@@ -21,4 +21,6 @@
     <item type="id" name="action_dismiss_all" />
 
     <item type="id" name="bubble_bar_flyout_view" />
+    <!-- TODO(b/361500574): Delete with enableRefactorTaskThumbnail -->
+    <item type="id" name="bottomright_snapshot" />
 </resources>
\ No newline at end of file
diff --git a/quickstep/src/com/android/quickstep/orientation/LandscapePagedViewHandler.kt b/quickstep/src/com/android/quickstep/orientation/LandscapePagedViewHandler.kt
index b8f43a4..7dff504 100644
--- a/quickstep/src/com/android/quickstep/orientation/LandscapePagedViewHandler.kt
+++ b/quickstep/src/com/android/quickstep/orientation/LandscapePagedViewHandler.kt
@@ -275,7 +275,7 @@
         desiredTaskId: Int,
         banner: View,
     ): Pair<Float, Float> {
-        val snapshotParams = thumbnailViews[0].layoutParams as LinearLayout.LayoutParams
+        val snapshotParams = thumbnailViews[0].layoutParams as ViewGroup.MarginLayoutParams
         val translationX = banner.height.toFloat()
         val translationY: Float
         if (splitBounds == null) {
diff --git a/quickstep/src/com/android/quickstep/orientation/PortraitPagedViewHandler.kt b/quickstep/src/com/android/quickstep/orientation/PortraitPagedViewHandler.kt
index 15eb69e..c6b2f3c 100644
--- a/quickstep/src/com/android/quickstep/orientation/PortraitPagedViewHandler.kt
+++ b/quickstep/src/com/android/quickstep/orientation/PortraitPagedViewHandler.kt
@@ -255,7 +255,8 @@
                 }
             } else {
                 if (desiredTaskId == splitBounds.leftTopTaskId) {
-                    val snapshotParams = thumbnailViews[0].layoutParams as LinearLayout.LayoutParams
+                    val snapshotParams =
+                        thumbnailViews[0].layoutParams as ViewGroup.MarginLayoutParams
                     val bottomRightTaskPlusDividerPercent =
                         (splitBounds.rightBottomTaskPercent + splitBounds.dividerPercent)
                     translationY =
diff --git a/quickstep/src/com/android/quickstep/orientation/SeascapePagedViewHandler.kt b/quickstep/src/com/android/quickstep/orientation/SeascapePagedViewHandler.kt
index 80b50cb..f0b67ef 100644
--- a/quickstep/src/com/android/quickstep/orientation/SeascapePagedViewHandler.kt
+++ b/quickstep/src/com/android/quickstep/orientation/SeascapePagedViewHandler.kt
@@ -25,8 +25,8 @@
 import android.view.Surface
 import android.view.View
 import android.view.View.MeasureSpec
+import android.view.ViewGroup
 import android.widget.FrameLayout
-import android.widget.LinearLayout
 import androidx.core.util.component1
 import androidx.core.util.component2
 import androidx.core.view.updateLayoutParams
@@ -152,7 +152,7 @@
         desiredTaskId: Int,
         banner: View,
     ): Pair<Float, Float> {
-        val snapshotParams = thumbnailViews[0].layoutParams as LinearLayout.LayoutParams
+        val snapshotParams = thumbnailViews[0].layoutParams as ViewGroup.MarginLayoutParams
         val translationX: Float = (taskViewWidth - banner.height).toFloat()
         val translationY: Float
         if (splitBounds == null) {
diff --git a/quickstep/src/com/android/quickstep/views/DesktopTaskView.kt b/quickstep/src/com/android/quickstep/views/DesktopTaskView.kt
index 8876633..9d07b30 100644
--- a/quickstep/src/com/android/quickstep/views/DesktopTaskView.kt
+++ b/quickstep/src/com/android/quickstep/views/DesktopTaskView.kt
@@ -78,14 +78,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()
@@ -262,7 +275,7 @@
                 if (
                     enableDesktopRecentsTransitionsCornersBugfix() && enableRefactorTaskThumbnail()
                 ) {
-                    it.taskContentView?.outlineBounds =
+                    (it.taskContentView as TaskContentView).outlineBounds =
                         if (intersects(overviewTaskPosition, screenRect))
                             Rect(overviewTaskPosition).apply {
                                 intersectUnchecked(screenRect)
@@ -313,13 +326,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(
@@ -479,7 +494,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 10a2e90..3b8607b 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,16 @@
 
     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 {
+                inflatedId =
+                    if (enableRefactorTaskThumbnail()) R.id.bottomright_task_content_view
+                    else R.id.bottomright_snapshot
+                layoutResource = taskContentViewLayoutId
+            }
             ?.inflate()
         findViewById<ViewStub>(R.id.bottomRight_icon)
             ?.apply {
@@ -134,7 +143,7 @@
                 createTaskContainer(
                     secondaryTask,
                     R.id.bottomright_task_content_view,
-                    R.id.snapshot,
+                    if (enableRefactorTaskThumbnail()) R.id.snapshot else R.id.bottomright_snapshot,
                     R.id.bottomRight_icon,
                     R.id.show_windows_right,
                     R.id.bottomRight_digital_wellbeing_toast,
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 3835e48..a30bb37 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.kt
+++ b/quickstep/src/com/android/quickstep/views/TaskView.kt
@@ -764,8 +764,16 @@
     }
 
     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 {
+                inflatedId =
+                    if (enableRefactorTaskThumbnail()) R.id.task_content_view else R.id.snapshot
+                layoutResource = taskContentViewLayoutId
+            }
             ?.inflate()
 
         findViewById<ViewStub>(R.id.icon)
@@ -935,7 +943,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)
@@ -974,12 +982,17 @@
     ): TaskContainer =
         traceSection("TaskView.createTaskContainer") {
             val iconView = findViewById<View>(iconViewId) as TaskViewIcon
-            val taskContentView = findViewById<TaskContentView>(taskContentViewId)
+            val taskContentView =
+                if (enableRefactorTaskThumbnail()) findViewById<View>(taskContentViewId)
+                else findViewById(thumbnailViewId)
+            val snapshotView =
+                if (enableRefactorTaskThumbnail()) taskContentView.findViewById(thumbnailViewId)
+                else taskContentView
             return TaskContainer(
                 this,
                 task,
                 taskContentView,
-                taskContentView.findViewById(thumbnailViewId),
+                snapshotView,
                 iconView,
                 TransformingTouchDelegate(iconView.asView()),
                 stagePosition,
@@ -1800,7 +1813,8 @@
         updateFullscreenParams(thumbnailFullscreenParams)
         taskContainers.forEach {
             if (enableRefactorTaskThumbnail()) {
-                it.taskContentView.cornerRadius = thumbnailFullscreenParams.currentCornerRadius
+                (it.taskContentView as TaskContentView).cornerRadius =
+                    thumbnailFullscreenParams.currentCornerRadius
             } else {
                 it.thumbnailViewDeprecated.setFullscreenParams(thumbnailFullscreenParams)
             }