Loading src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt +6 −10 Original line number Diff line number Diff line Loading @@ -46,7 +46,6 @@ import com.android.customization.picker.clock.ui.view.ClockViewFactory import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel import com.android.customization.picker.color.ui.binder.ColorOptionIconBinder import com.android.themepicker.R import com.android.wallpaper.config.BaseFlags import com.android.wallpaper.picker.common.ui.view.ItemSpacing import com.android.wallpaper.picker.option.ui.binder.OptionItemBinder import kotlinx.coroutines.flow.combine Loading Loading @@ -104,13 +103,13 @@ object ClockSettingsBinder { getRadioText( view.context.applicationContext, view.resources.getString(R.string.clock_size_dynamic), view.resources.getString(R.string.clock_size_dynamic_description) view.resources.getString(R.string.clock_size_dynamic_description), ) view.requireViewById<RadioButton>(R.id.radio_small).text = getRadioText( view.context.applicationContext, view.resources.getString(R.string.clock_size_small), view.resources.getString(R.string.clock_size_small_description) view.resources.getString(R.string.clock_size_small_description), ) val colorOptionContainer = view.requireViewById<View>(R.id.color_picker_container) Loading Loading @@ -160,7 +159,7 @@ object ClockSettingsBinder { ColorOptionIconBinder.bind( item.requireViewById(R.id.foreground), payload, darkMode darkMode, ) OptionItemBinder.bind( view = item, Loading Loading @@ -200,9 +199,6 @@ object ClockSettingsBinder { ) .collect { (clockId, size) -> clockHostView.removeAllViews() if (BaseFlags.get().isClockReactiveVariantsEnabled()) { clockViewFactory.setReactiveTouchInteractionEnabled(clockId, true) } val clockView = when (size) { ClockSize.DYNAMIC -> clockViewFactory.getLargeView(clockId) Loading Loading @@ -279,20 +275,20 @@ object ClockSettingsBinder { private fun getRadioText( context: Context, title: String, description: String description: String, ): SpannableString { val text = SpannableString(title + "\n" + description) text.setSpan( TextAppearanceSpan(context, R.style.SectionTitleTextStyle), 0, title.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE Spannable.SPAN_EXCLUSIVE_EXCLUSIVE, ) text.setSpan( TextAppearanceSpan(context, R.style.SectionSubtitleTextStyle), title.length + 1, title.length + 1 + description.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE Spannable.SPAN_EXCLUSIVE_EXCLUSIVE, ) return text } Loading src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt +9 −36 Original line number Diff line number Diff line Loading @@ -33,18 +33,10 @@ import com.android.customization.picker.clock.shared.ClockSize 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 class ClockCarouselView( context: Context, attrs: AttributeSet, ) : FrameLayout( context, attrs, ) { class ClockCarouselView(context: Context, attrs: AttributeSet) : FrameLayout(context, attrs) { val carousel: Carousel private val motionLayout: MotionLayout Loading Loading @@ -153,7 +145,7 @@ class ClockCarouselView( override fun onTransitionStarted( motionLayout: MotionLayout?, startId: Int, endId: Int endId: Int, ) { if (motionLayout == null) { return Loading Loading @@ -301,15 +293,13 @@ class ClockCarouselView( motionLayout: MotionLayout?, triggerId: Int, positive: Boolean, progress: Float progress: Float, ) {} } ) } fun setSelectedClockIndex( index: Int, ) { fun setSelectedClockIndex(index: Int) { // 1. setUpClockCarouselView() can possibly not be called before setSelectedClockIndex(). // We need to check if index out of bound. // 2. jumpToIndex() to the same position can cause the views unnecessarily populate again. Loading Loading @@ -382,7 +372,7 @@ class ClockCarouselView( val clockSize: ClockSize, val clocks: List<ClockCarouselItemViewModel>, private val clockViewFactory: ClockViewFactory, private val onClockSelected: (clock: ClockCarouselItemViewModel) -> Unit private val onClockSelected: (clock: ClockCarouselItemViewModel) -> Unit, ) : Carousel.Adapter { // This map is used to eagerly save the translation X and Y of each small clock view, so Loading Loading @@ -418,9 +408,6 @@ class ClockCarouselView( // 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) Loading @@ -439,19 +426,9 @@ class ClockCarouselView( when (clockSize) { ClockSize.DYNAMIC -> initializeDynamicClockView( isMiddleView, clockScaleView, clockId, clockHostView, ) initializeDynamicClockView(isMiddleView, clockScaleView, clockId, clockHostView) ClockSize.SMALL -> initializeSmallClockView( clockId, isMiddleView, clockHostView, clockView, ) initializeSmallClockView(clockId, isMiddleView, clockHostView, clockView) } cardView.alpha = if (isMiddleView) 0f else 1f } Loading Loading @@ -502,11 +479,7 @@ class ClockCarouselView( it.pivotX = it.width / 2F it.pivotY = it.height / 2F val translationX = getTranslationDistance( clockHostView.width, clockView.width, clockView.left, ) getTranslationDistance(clockHostView.width, clockView.width, clockView.left) val translationY = getTranslationDistance( clockHostView.height, Loading Loading @@ -537,7 +510,7 @@ class ClockCarouselView( R.id.item_view_1, R.id.item_view_2, R.id.item_view_3, R.id.item_view_4 R.id.item_view_4, ) fun getScalingUpScale(progress: Float) = Loading src/com/android/customization/picker/clock/ui/view/ThemePickerClockViewFactory.kt +0 −9 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import com.android.systemui.plugins.clocks.ClockController import com.android.systemui.plugins.clocks.ClockFontAxisSetting import com.android.systemui.plugins.clocks.WeatherData import com.android.systemui.shared.clocks.ClockRegistry import com.android.wallpaper.config.BaseFlags import com.android.wallpaper.util.ScreenSizeCalculator import com.android.wallpaper.util.TimeUtils.TimeTicker import java.util.concurrent.ConcurrentHashMap Loading Loading @@ -87,14 +86,6 @@ constructor( 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 = Loading src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt +0 −7 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import com.android.customization.picker.clock.ui.view.ClockViewFactory import com.android.customization.picker.grid.ui.binder.GridIconViewBinder import com.android.systemui.plugins.clocks.ClockFontAxisSetting import com.android.themepicker.R import com.android.wallpaper.config.BaseFlags import com.android.wallpaper.customization.ui.util.ThemePickerCustomizationOptionUtil.ThemePickerHomeCustomizationOption import com.android.wallpaper.customization.ui.util.ThemePickerCustomizationOptionUtil.ThemePickerLockCustomizationOption import com.android.wallpaper.customization.ui.viewmodel.ThemePickerCustomizationOptionsViewModel Loading Loading @@ -253,12 +252,6 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO } .collect { (clock, size) -> clockHostView.removeAllViews() if (BaseFlags.get().isClockReactiveVariantsEnabled()) { clockViewFactory.setReactiveTouchInteractionEnabled( clock.clockId, true, ) } val clockView = when (size) { ClockSize.DYNAMIC -> Loading tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt +0 −4 Original line number Diff line number Diff line Loading @@ -37,10 +37,6 @@ class FakeClockViewFactory @Inject constructor() : ClockViewFactory { override fun getController(clockId: String): ClockController = clockControllers[clockId]!! override fun setReactiveTouchInteractionEnabled(clockId: String, enable: Boolean) { TODO("Not yet implemented") } override fun getLargeView(clockId: String): View { TODO("Not yet implemented") } Loading Loading
src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt +6 −10 Original line number Diff line number Diff line Loading @@ -46,7 +46,6 @@ import com.android.customization.picker.clock.ui.view.ClockViewFactory import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel import com.android.customization.picker.color.ui.binder.ColorOptionIconBinder import com.android.themepicker.R import com.android.wallpaper.config.BaseFlags import com.android.wallpaper.picker.common.ui.view.ItemSpacing import com.android.wallpaper.picker.option.ui.binder.OptionItemBinder import kotlinx.coroutines.flow.combine Loading Loading @@ -104,13 +103,13 @@ object ClockSettingsBinder { getRadioText( view.context.applicationContext, view.resources.getString(R.string.clock_size_dynamic), view.resources.getString(R.string.clock_size_dynamic_description) view.resources.getString(R.string.clock_size_dynamic_description), ) view.requireViewById<RadioButton>(R.id.radio_small).text = getRadioText( view.context.applicationContext, view.resources.getString(R.string.clock_size_small), view.resources.getString(R.string.clock_size_small_description) view.resources.getString(R.string.clock_size_small_description), ) val colorOptionContainer = view.requireViewById<View>(R.id.color_picker_container) Loading Loading @@ -160,7 +159,7 @@ object ClockSettingsBinder { ColorOptionIconBinder.bind( item.requireViewById(R.id.foreground), payload, darkMode darkMode, ) OptionItemBinder.bind( view = item, Loading Loading @@ -200,9 +199,6 @@ object ClockSettingsBinder { ) .collect { (clockId, size) -> clockHostView.removeAllViews() if (BaseFlags.get().isClockReactiveVariantsEnabled()) { clockViewFactory.setReactiveTouchInteractionEnabled(clockId, true) } val clockView = when (size) { ClockSize.DYNAMIC -> clockViewFactory.getLargeView(clockId) Loading Loading @@ -279,20 +275,20 @@ object ClockSettingsBinder { private fun getRadioText( context: Context, title: String, description: String description: String, ): SpannableString { val text = SpannableString(title + "\n" + description) text.setSpan( TextAppearanceSpan(context, R.style.SectionTitleTextStyle), 0, title.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE Spannable.SPAN_EXCLUSIVE_EXCLUSIVE, ) text.setSpan( TextAppearanceSpan(context, R.style.SectionSubtitleTextStyle), title.length + 1, title.length + 1 + description.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE Spannable.SPAN_EXCLUSIVE_EXCLUSIVE, ) return text } Loading
src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt +9 −36 Original line number Diff line number Diff line Loading @@ -33,18 +33,10 @@ import com.android.customization.picker.clock.shared.ClockSize 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 class ClockCarouselView( context: Context, attrs: AttributeSet, ) : FrameLayout( context, attrs, ) { class ClockCarouselView(context: Context, attrs: AttributeSet) : FrameLayout(context, attrs) { val carousel: Carousel private val motionLayout: MotionLayout Loading Loading @@ -153,7 +145,7 @@ class ClockCarouselView( override fun onTransitionStarted( motionLayout: MotionLayout?, startId: Int, endId: Int endId: Int, ) { if (motionLayout == null) { return Loading Loading @@ -301,15 +293,13 @@ class ClockCarouselView( motionLayout: MotionLayout?, triggerId: Int, positive: Boolean, progress: Float progress: Float, ) {} } ) } fun setSelectedClockIndex( index: Int, ) { fun setSelectedClockIndex(index: Int) { // 1. setUpClockCarouselView() can possibly not be called before setSelectedClockIndex(). // We need to check if index out of bound. // 2. jumpToIndex() to the same position can cause the views unnecessarily populate again. Loading Loading @@ -382,7 +372,7 @@ class ClockCarouselView( val clockSize: ClockSize, val clocks: List<ClockCarouselItemViewModel>, private val clockViewFactory: ClockViewFactory, private val onClockSelected: (clock: ClockCarouselItemViewModel) -> Unit private val onClockSelected: (clock: ClockCarouselItemViewModel) -> Unit, ) : Carousel.Adapter { // This map is used to eagerly save the translation X and Y of each small clock view, so Loading Loading @@ -418,9 +408,6 @@ class ClockCarouselView( // 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) Loading @@ -439,19 +426,9 @@ class ClockCarouselView( when (clockSize) { ClockSize.DYNAMIC -> initializeDynamicClockView( isMiddleView, clockScaleView, clockId, clockHostView, ) initializeDynamicClockView(isMiddleView, clockScaleView, clockId, clockHostView) ClockSize.SMALL -> initializeSmallClockView( clockId, isMiddleView, clockHostView, clockView, ) initializeSmallClockView(clockId, isMiddleView, clockHostView, clockView) } cardView.alpha = if (isMiddleView) 0f else 1f } Loading Loading @@ -502,11 +479,7 @@ class ClockCarouselView( it.pivotX = it.width / 2F it.pivotY = it.height / 2F val translationX = getTranslationDistance( clockHostView.width, clockView.width, clockView.left, ) getTranslationDistance(clockHostView.width, clockView.width, clockView.left) val translationY = getTranslationDistance( clockHostView.height, Loading Loading @@ -537,7 +510,7 @@ class ClockCarouselView( R.id.item_view_1, R.id.item_view_2, R.id.item_view_3, R.id.item_view_4 R.id.item_view_4, ) fun getScalingUpScale(progress: Float) = Loading
src/com/android/customization/picker/clock/ui/view/ThemePickerClockViewFactory.kt +0 −9 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import com.android.systemui.plugins.clocks.ClockController import com.android.systemui.plugins.clocks.ClockFontAxisSetting import com.android.systemui.plugins.clocks.WeatherData import com.android.systemui.shared.clocks.ClockRegistry import com.android.wallpaper.config.BaseFlags import com.android.wallpaper.util.ScreenSizeCalculator import com.android.wallpaper.util.TimeUtils.TimeTicker import java.util.concurrent.ConcurrentHashMap Loading Loading @@ -87,14 +86,6 @@ constructor( 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 = Loading
src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt +0 −7 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import com.android.customization.picker.clock.ui.view.ClockViewFactory import com.android.customization.picker.grid.ui.binder.GridIconViewBinder import com.android.systemui.plugins.clocks.ClockFontAxisSetting import com.android.themepicker.R import com.android.wallpaper.config.BaseFlags import com.android.wallpaper.customization.ui.util.ThemePickerCustomizationOptionUtil.ThemePickerHomeCustomizationOption import com.android.wallpaper.customization.ui.util.ThemePickerCustomizationOptionUtil.ThemePickerLockCustomizationOption import com.android.wallpaper.customization.ui.viewmodel.ThemePickerCustomizationOptionsViewModel Loading Loading @@ -253,12 +252,6 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO } .collect { (clock, size) -> clockHostView.removeAllViews() if (BaseFlags.get().isClockReactiveVariantsEnabled()) { clockViewFactory.setReactiveTouchInteractionEnabled( clock.clockId, true, ) } val clockView = when (size) { ClockSize.DYNAMIC -> Loading
tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt +0 −4 Original line number Diff line number Diff line Loading @@ -37,10 +37,6 @@ class FakeClockViewFactory @Inject constructor() : ClockViewFactory { override fun getController(clockId: String): ClockController = clockControllers[clockId]!! override fun setReactiveTouchInteractionEnabled(clockId: String, enable: Boolean) { TODO("Not yet implemented") } override fun getLargeView(clockId: String): View { TODO("Not yet implemented") } Loading