Bind on click clock face (1/2)

Clicking clock face trigger the preset group switch

Test: Manually tested. See bug.
Bug: 395647577
Flag: com.android.systemui.shared.new_customization_picker_ui
Change-Id: I7bf30a82884464ab3a95638de9c92d4442149dc3
diff --git a/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt b/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt
index e008da2..d0257d1 100644
--- a/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt
+++ b/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt
@@ -416,6 +416,7 @@
     override fun bindClockPreview(
         context: Context,
         clockHostView: View,
+        clockFaceClickDelegateView: View,
         viewModel: CustomizationPickerViewModel2,
         colorUpdateViewModel: ColorUpdateViewModel,
         lifecycleOwner: LifecycleOwner,
@@ -503,6 +504,21 @@
                 launch {
                     viewModel.lockPreviewAnimateToAlpha.collect { clockHostView.animateToAlpha(it) }
                 }
+
+                launch {
+                    combine(
+                            viewModel.customizationOptionsViewModel.selectedOption,
+                            clockPickerViewModel.onClockFaceClicked,
+                            ::Pair,
+                        )
+                        .collect { (selectedOption, onClockFaceClicked) ->
+                            clockFaceClickDelegateView.isVisible =
+                                selectedOption == ThemePickerLockCustomizationOption.CLOCK
+                            clockFaceClickDelegateView.setOnClickListener {
+                                onClockFaceClicked.invoke()
+                            }
+                        }
+                }
             }
         }
     }
diff --git a/tests/robotests/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModelTest.kt b/tests/robotests/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModelTest.kt
index 2b71342..132133e 100644
--- a/tests/robotests/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModelTest.kt
+++ b/tests/robotests/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModelTest.kt
@@ -349,6 +349,26 @@
         assertThat(axisPresetsSliderSelectedValue()).isEqualTo(1F)
     }
 
+    @Test
+    fun previewingClockPresetIndexedStyle_whenOnClockFaceClicked() = runTest {
+        val previewingClockPresetIndexedStyle =
+            collectLastValue(underTest.previewingClockPresetIndexedStyle)
+        val onClockFaceClicked = collectLastValue(underTest.onClockFaceClicked)
+
+        onClockFaceClicked()?.invoke()
+
+        val expectedResult =
+            FakeClockPickerRepository.fakeClocks[0]
+                .axisPresetConfig
+                ?.groups
+                ?.get(1)
+                ?.presets
+                ?.get(0)
+        checkNotNull(expectedResult)
+        assertThat(previewingClockPresetIndexedStyle())
+            .isEqualTo(IndexedStyle(groupIndex = 1, presetIndex = 0, style = expectedResult))
+    }
+
     //// Clock size
     @Test
     fun previewingClockSize_whenCallingOnClockSizeSwitchChecked() = runTest {