Merge "Move customization options to proper projects (3/3)" into main
diff --git a/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt b/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt
index b1bd0ef..7de25e7 100644
--- a/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt
+++ b/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt
@@ -47,6 +47,7 @@
import com.android.customization.picker.color.ui.binder.ColorOptionIconBinder
import com.android.customization.picker.common.ui.view.ItemSpacing
import com.android.themepicker.R
+import com.android.wallpaper.config.BaseFlags
import com.android.wallpaper.picker.option.ui.binder.OptionItemBinder
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.mapNotNull
@@ -198,6 +199,9 @@
)
.collect { (clockId, size) ->
clockHostView.removeAllViews()
+ if (BaseFlags.get().isClockReactiveVariantsEnabled()) {
+ clockViewFactory.setReactiveTouchInteractionEnabled(clockId, true)
+ }
val clockView =
when (size) {
ClockSize.DYNAMIC -> clockViewFactory.getLargeView(clockId)
diff --git a/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt b/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt
index d0a30a4..6cbb0f5 100644
--- a/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt
+++ b/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt
@@ -33,6 +33,7 @@
import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselItemViewModel
import com.android.systemui.plugins.clocks.ClockController
import com.android.themepicker.R
+import com.android.wallpaper.config.BaseFlags
import com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
import java.lang.Float.max
@@ -408,8 +409,11 @@
?: return
val clockId = clocks[index].clockId
- // Add the clock view to the cloc host view
+ // Add the clock view to the clock host view
clockHostView.removeAllViews()
+ if (BaseFlags.get().isClockReactiveVariantsEnabled()) {
+ clockViewFactory.setReactiveTouchInteractionEnabled(clockId, false)
+ }
val clockView =
when (clockSize) {
ClockSize.DYNAMIC -> clockViewFactory.getLargeView(clockId)
@@ -454,22 +458,16 @@
it.pivotX = it.width / 2F
it.pivotY = it.height / 2F
}
+
+ val controller = clockViewFactory.getController(clockId)
if (isMiddleView) {
clockScaleView.scaleX = 1f
clockScaleView.scaleY = 1f
- clockViewFactory
- .getController(clockId)
- .largeClock
- .animations
- .onPickerCarouselSwiping(1F)
+ controller.largeClock.animations.onPickerCarouselSwiping(1F)
} else {
clockScaleView.scaleX = CLOCK_CAROUSEL_VIEW_SCALE
clockScaleView.scaleY = CLOCK_CAROUSEL_VIEW_SCALE
- clockViewFactory
- .getController(clockId)
- .largeClock
- .animations
- .onPickerCarouselSwiping(0F)
+ controller.largeClock.animations.onPickerCarouselSwiping(0F)
}
}
diff --git a/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt b/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt
index 2ab162d..8e5992e 100644
--- a/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt
+++ b/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt
@@ -36,6 +36,9 @@
*/
fun getSmallView(clockId: String): View
+ /** Enables or disables the reactive swipe interaction */
+ fun setReactiveTouchInteractionEnabled(clockId: String, enable: Boolean)
+
fun updateColorForAllClocks(@ColorInt seedColor: Int?)
fun updateColor(clockId: String, @ColorInt seedColor: Int?)
diff --git a/src/com/android/customization/picker/clock/ui/view/ClockViewFactoryImpl.kt b/src/com/android/customization/picker/clock/ui/view/ClockViewFactoryImpl.kt
index 0d603f5..dea6777 100644
--- a/src/com/android/customization/picker/clock/ui/view/ClockViewFactoryImpl.kt
+++ b/src/com/android/customization/picker/clock/ui/view/ClockViewFactoryImpl.kt
@@ -30,6 +30,7 @@
import com.android.systemui.plugins.clocks.WeatherData
import com.android.systemui.shared.clocks.ClockRegistry
import com.android.themepicker.R
+import com.android.wallpaper.config.BaseFlags
import com.android.wallpaper.util.TimeUtils.TimeTicker
import java.util.concurrent.ConcurrentHashMap
@@ -81,6 +82,14 @@
return smallClockFrame
}
+ /** Enables or disables the reactive swipe interaction */
+ override fun setReactiveTouchInteractionEnabled(clockId: String, enable: Boolean) {
+ check(BaseFlags.get().isClockReactiveVariantsEnabled()) {
+ "isClockReactiveVariantsEnabled is disabled"
+ }
+ getController(clockId).events.isReactiveTouchInteractionEnabled = enable
+ }
+
private fun createSmallClockFrame(): FrameLayout {
val smallClockFrame = FrameLayout(appContext)
val layoutParams =
diff --git a/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt b/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt
index 6fe76b9..41192e7 100644
--- a/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt
+++ b/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt
@@ -39,6 +39,10 @@
override fun getController(clockId: String): ClockController = clockControllers.get(clockId)!!
+ override fun setReactiveTouchInteractionEnabled(clockId: String, enable: Boolean) {
+ TODO("Not yet implemented")
+ }
+
override fun getLargeView(clockId: String): View {
TODO("Not yet implemented")
}