Fixes touch targets for several tabs in ThemePicker

Bug: 280729818
Bug: 280547411
Bug: 278662294
Test: Manually with Accessibility Scanner
Change-Id: I31ef31fda89ae2fa7f9ce83240921d914459c49b
diff --git a/res/layout/clock_size_radio_button_group.xml b/res/layout/clock_size_radio_button_group.xml
index 4264007..30e39ad 100644
--- a/res/layout/clock_size_radio_button_group.xml
+++ b/res/layout/clock_size_radio_button_group.xml
@@ -57,6 +57,7 @@
         android:id="@+id/button_container_small"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:minHeight="48dp"
         android:orientation="horizontal">
 
         <RadioButton
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 4392ebf..1ef739b 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -176,4 +176,6 @@
     copied from sysui resources
     -->
     <dimen name="keyguard_large_clock_top_margin">-60dp</dimen>
+
+    <dimen name="tab_touch_delegate_height_padding">8dp</dimen>
 </resources>
diff --git a/src/com/android/customization/picker/clock/ui/adapter/ClockSettingsTabAdapter.kt b/src/com/android/customization/picker/clock/ui/adapter/ClockSettingsTabAdapter.kt
index 746fdb3..d0e6f18 100644
--- a/src/com/android/customization/picker/clock/ui/adapter/ClockSettingsTabAdapter.kt
+++ b/src/com/android/customization/picker/clock/ui/adapter/ClockSettingsTabAdapter.kt
@@ -16,13 +16,17 @@
  */
 package com.android.customization.picker.clock.ui.adapter
 
+import android.graphics.Rect
 import android.view.LayoutInflater
+import android.view.TouchDelegate
 import android.view.View
 import android.view.ViewGroup
 import android.widget.TextView
 import androidx.recyclerview.widget.RecyclerView
 import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsTabViewModel
 import com.android.wallpaper.R
+import com.android.wallpaper.util.ViewUtils.setupTouchDelegate
+
 
 /** Adapter for the tab recycler view on the clock settings screen. */
 class ClockSettingsTabAdapter : RecyclerView.Adapter<ClockSettingsTabAdapter.ViewHolder>() {
@@ -54,6 +58,10 @@
         val item = items[position]
         holder.itemView.isSelected = item.isSelected
         holder.textView.text = item.name
+        holder.textView.setupTouchDelegate(
+            parentView = holder.itemView,
+            heightRes = R.dimen.tab_touch_delegate_height_padding
+        )
         holder.textView.setOnClickListener(
             if (item.onClicked != null) {
                 View.OnClickListener { item.onClicked.invoke() }
diff --git a/src/com/android/customization/picker/color/ui/adapter/ColorTypeTabAdapter.kt b/src/com/android/customization/picker/color/ui/adapter/ColorTypeTabAdapter.kt
index bb9f082..ac5ad81 100644
--- a/src/com/android/customization/picker/color/ui/adapter/ColorTypeTabAdapter.kt
+++ b/src/com/android/customization/picker/color/ui/adapter/ColorTypeTabAdapter.kt
@@ -17,13 +17,16 @@
 
 package com.android.customization.picker.color.ui.adapter
 
+import android.graphics.Rect
 import android.view.LayoutInflater
+import android.view.TouchDelegate
 import android.view.View
 import android.view.ViewGroup
 import android.widget.TextView
 import androidx.recyclerview.widget.RecyclerView
 import com.android.customization.picker.color.ui.viewmodel.ColorTypeTabViewModel
 import com.android.wallpaper.R
+import com.android.wallpaper.util.ViewUtils.setupTouchDelegate
 
 /** Adapts between color type items and views. */
 class ColorTypeTabAdapter : RecyclerView.Adapter<ColorTypeTabAdapter.ViewHolder>() {
@@ -55,6 +58,10 @@
         val item = items[position]
         holder.itemView.isSelected = item.isSelected
         holder.textView.text = item.name
+        holder.textView.setupTouchDelegate(
+            parentView = holder.itemView,
+            heightRes = R.dimen.tab_touch_delegate_height_padding
+        )
         holder.textView.setOnClickListener(
             if (item.onClick != null) {
                 View.OnClickListener { item.onClick.invoke() }
diff --git a/src/com/android/customization/picker/quickaffordance/ui/adapter/SlotTabAdapter.kt b/src/com/android/customization/picker/quickaffordance/ui/adapter/SlotTabAdapter.kt
index 5203ed3..b34ea1b 100644
--- a/src/com/android/customization/picker/quickaffordance/ui/adapter/SlotTabAdapter.kt
+++ b/src/com/android/customization/picker/quickaffordance/ui/adapter/SlotTabAdapter.kt
@@ -17,13 +17,16 @@
 
 package com.android.customization.picker.quickaffordance.ui.adapter
 
+import android.graphics.Rect
 import android.view.LayoutInflater
+import android.view.TouchDelegate
 import android.view.View
 import android.view.ViewGroup
 import android.widget.TextView
 import androidx.recyclerview.widget.RecyclerView
 import com.android.customization.picker.quickaffordance.ui.viewmodel.KeyguardQuickAffordanceSlotViewModel
 import com.android.wallpaper.R
+import com.android.wallpaper.util.ViewUtils.setupTouchDelegate
 
 /** Adapts between lock screen quick affordance slot items and views. */
 class SlotTabAdapter : RecyclerView.Adapter<SlotTabAdapter.ViewHolder>() {
@@ -55,6 +58,10 @@
         val item = items[position]
         holder.itemView.isSelected = item.isSelected
         holder.textView.text = item.name
+        holder.textView.setupTouchDelegate(
+            parentView = holder.itemView,
+            heightRes = R.dimen.tab_touch_delegate_height_padding
+        )
         holder.textView.setOnClickListener(
             if (item.onClicked != null) {
                 View.OnClickListener { item.onClicked.invoke() }