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 {