Loading res/layout/floating_sheet_clock_style_content.xml +33 −11 Original line number Diff line number Diff line Loading @@ -52,6 +52,26 @@ android:clipToPadding="false"/> </FrameLayout> <LinearLayout android:id="@+id/clock_face_width_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginTop="@dimen/clock_axis_control_slider_container_margin_vertical"> <TextView android:id="@+id/clock_face_width_label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/clock_face_width" android:text="@string/clock_face_width" android:textAppearance="@style/TextAppearance.DeviceDefault.Small.LabelMedium" android:textColor="@color/system_on_surface_variant" android:lineSpacingExtra="1sp" android:gravity="center_vertical" android:paddingHorizontal="20dp" android:layout_marginTop="8dp" /> <com.google.android.material.slider.Slider android:id="@+id/clock_axis_preset_slider" android:layout_width="match_parent" Loading @@ -67,3 +87,5 @@ android:theme="@style/Theme.Material3.DynamicColors.DayNight" /> </LinearLayout> </LinearLayout> res/values/dimens.xml +2 −1 Original line number Diff line number Diff line Loading @@ -205,7 +205,8 @@ <!-- Clock font control dimensions --> <dimen name="clock_font_axis_name_width">64dp</dimen> <dimen name="clock_axis_control_text_margin_end">16dp</dimen> <dimen name="clock_axis_control_slider_row_margin_vertical">10dp</dimen> <dimen name="clock_axis_control_slider_container_margin_vertical">10dp</dimen> <dimen name="clock_axis_control_slider_row_margin_vertical">7dp</dimen> <dimen name="clock_axis_control_switch_row_margin_vertical">8dp</dimen> <dimen name="clock_font_apply_padding_start">8dp</dimen> Loading src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt +39 −13 Original line number Diff line number Diff line Loading @@ -141,8 +141,29 @@ object ClockFloatingSheetBinder { val clockStyleList: RecyclerView = view.requireViewById(R.id.clock_style_list) clockStyleList.initStyleList(appContext, clockStyleAdapter) val clockStyleListContainer: View = view.requireViewById(R.id.clock_style_list_container) val axisPresetSlider: Slider = clockStyleContent.requireViewById(R.id.clock_axis_preset_slider) val axisPresetSliderContainer: View = clockStyleContent.requireViewById(R.id.clock_face_width_container) val axisPresetSlider = clockStyleContent.requireViewById<Slider>(R.id.clock_axis_preset_slider).also { SliderColorBinder.bind( slider = it, colorUpdateViewModel = colorUpdateViewModel, shouldAnimateColor = isFloatingSheetActive, lifecycleOwner = lifecycleOwner, ) } ColorUpdateBinder.bind( setColor = { color -> axisPresetSliderContainer .requireViewById<TextView>(R.id.clock_face_width_label) .setTextColor(color) }, color = colorUpdateViewModel.colorOnSurfaceVariant, shouldAnimate = isClockStyleActive, lifecycleOwner = lifecycleOwner, ) // Setting content description for the clock face width slider val sliderLabel = appContext.getString(R.string.clock_face_width) Loading Loading @@ -214,13 +235,15 @@ object ClockFloatingSheetBinder { if (isDesktopUi) FlexboxLayoutManager(appContext, FlexDirection.ROW, FlexWrap.WRAP) else LinearLayoutManager(appContext, LinearLayoutManager.HORIZONTAL, false) val clockColorSlider: Slider = view.requireViewById(R.id.clock_color_slider) val clockColorSlider = view.requireViewById<Slider>(R.id.clock_color_slider).also { SliderColorBinder.bind( slider = clockColorSlider, slider = it, colorUpdateViewModel = colorUpdateViewModel, shouldAnimateColor = isFloatingSheetActive, lifecycleOwner = lifecycleOwner, ) } clockColorSlider.apply { valueFrom = ClockMetadataModel.MIN_COLOR_TONE_PROGRESS.toFloat() Loading Loading @@ -281,6 +304,7 @@ object ClockFloatingSheetBinder { shouldAnimate = isClockStyleActive, lifecycleOwner = lifecycleOwner, ) ColorUpdateBinder.bind( setColor = { color -> clockSizeContent Loading @@ -297,16 +321,16 @@ object ClockFloatingSheetBinder { override fun onGlobalLayout() { if ( clockStyleListContainer.height != 0 && axisPresetSlider.height != 0 && axisPresetSliderContainer.height != 0 && (_clockFloatingSheetHeights.value.clockStyleContentHeight != clockStyleListContainer.height || _clockFloatingSheetHeights.value.axisPresetSliderHeight != axisPresetSlider.height) axisPresetSliderContainer.height) ) { _clockFloatingSheetHeights.value = _clockFloatingSheetHeights.value.copy( clockStyleContentHeight = clockStyleListContainer.height, axisPresetSliderHeight = axisPresetSlider.height, axisPresetSliderHeight = axisPresetSliderContainer.height, ) clockStyleContent.viewTreeObserver.removeOnGlobalLayoutListener(this) } Loading Loading @@ -438,7 +462,9 @@ object ClockFloatingSheetBinder { } launch { viewModel.shouldShowPresetSlider.collect { axisPresetSlider.isVisible = it } viewModel.shouldShowPresetSlider.collect { axisPresetSliderContainer.isVisible = it } } launch { Loading Loading
res/layout/floating_sheet_clock_style_content.xml +33 −11 Original line number Diff line number Diff line Loading @@ -52,6 +52,26 @@ android:clipToPadding="false"/> </FrameLayout> <LinearLayout android:id="@+id/clock_face_width_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginTop="@dimen/clock_axis_control_slider_container_margin_vertical"> <TextView android:id="@+id/clock_face_width_label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/clock_face_width" android:text="@string/clock_face_width" android:textAppearance="@style/TextAppearance.DeviceDefault.Small.LabelMedium" android:textColor="@color/system_on_surface_variant" android:lineSpacingExtra="1sp" android:gravity="center_vertical" android:paddingHorizontal="20dp" android:layout_marginTop="8dp" /> <com.google.android.material.slider.Slider android:id="@+id/clock_axis_preset_slider" android:layout_width="match_parent" Loading @@ -67,3 +87,5 @@ android:theme="@style/Theme.Material3.DynamicColors.DayNight" /> </LinearLayout> </LinearLayout>
res/values/dimens.xml +2 −1 Original line number Diff line number Diff line Loading @@ -205,7 +205,8 @@ <!-- Clock font control dimensions --> <dimen name="clock_font_axis_name_width">64dp</dimen> <dimen name="clock_axis_control_text_margin_end">16dp</dimen> <dimen name="clock_axis_control_slider_row_margin_vertical">10dp</dimen> <dimen name="clock_axis_control_slider_container_margin_vertical">10dp</dimen> <dimen name="clock_axis_control_slider_row_margin_vertical">7dp</dimen> <dimen name="clock_axis_control_switch_row_margin_vertical">8dp</dimen> <dimen name="clock_font_apply_padding_start">8dp</dimen> Loading
src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt +39 −13 Original line number Diff line number Diff line Loading @@ -141,8 +141,29 @@ object ClockFloatingSheetBinder { val clockStyleList: RecyclerView = view.requireViewById(R.id.clock_style_list) clockStyleList.initStyleList(appContext, clockStyleAdapter) val clockStyleListContainer: View = view.requireViewById(R.id.clock_style_list_container) val axisPresetSlider: Slider = clockStyleContent.requireViewById(R.id.clock_axis_preset_slider) val axisPresetSliderContainer: View = clockStyleContent.requireViewById(R.id.clock_face_width_container) val axisPresetSlider = clockStyleContent.requireViewById<Slider>(R.id.clock_axis_preset_slider).also { SliderColorBinder.bind( slider = it, colorUpdateViewModel = colorUpdateViewModel, shouldAnimateColor = isFloatingSheetActive, lifecycleOwner = lifecycleOwner, ) } ColorUpdateBinder.bind( setColor = { color -> axisPresetSliderContainer .requireViewById<TextView>(R.id.clock_face_width_label) .setTextColor(color) }, color = colorUpdateViewModel.colorOnSurfaceVariant, shouldAnimate = isClockStyleActive, lifecycleOwner = lifecycleOwner, ) // Setting content description for the clock face width slider val sliderLabel = appContext.getString(R.string.clock_face_width) Loading Loading @@ -214,13 +235,15 @@ object ClockFloatingSheetBinder { if (isDesktopUi) FlexboxLayoutManager(appContext, FlexDirection.ROW, FlexWrap.WRAP) else LinearLayoutManager(appContext, LinearLayoutManager.HORIZONTAL, false) val clockColorSlider: Slider = view.requireViewById(R.id.clock_color_slider) val clockColorSlider = view.requireViewById<Slider>(R.id.clock_color_slider).also { SliderColorBinder.bind( slider = clockColorSlider, slider = it, colorUpdateViewModel = colorUpdateViewModel, shouldAnimateColor = isFloatingSheetActive, lifecycleOwner = lifecycleOwner, ) } clockColorSlider.apply { valueFrom = ClockMetadataModel.MIN_COLOR_TONE_PROGRESS.toFloat() Loading Loading @@ -281,6 +304,7 @@ object ClockFloatingSheetBinder { shouldAnimate = isClockStyleActive, lifecycleOwner = lifecycleOwner, ) ColorUpdateBinder.bind( setColor = { color -> clockSizeContent Loading @@ -297,16 +321,16 @@ object ClockFloatingSheetBinder { override fun onGlobalLayout() { if ( clockStyleListContainer.height != 0 && axisPresetSlider.height != 0 && axisPresetSliderContainer.height != 0 && (_clockFloatingSheetHeights.value.clockStyleContentHeight != clockStyleListContainer.height || _clockFloatingSheetHeights.value.axisPresetSliderHeight != axisPresetSlider.height) axisPresetSliderContainer.height) ) { _clockFloatingSheetHeights.value = _clockFloatingSheetHeights.value.copy( clockStyleContentHeight = clockStyleListContainer.height, axisPresetSliderHeight = axisPresetSlider.height, axisPresetSliderHeight = axisPresetSliderContainer.height, ) clockStyleContent.viewTreeObserver.removeOnGlobalLayoutListener(this) } Loading Loading @@ -438,7 +462,9 @@ object ClockFloatingSheetBinder { } launch { viewModel.shouldShowPresetSlider.collect { axisPresetSlider.isVisible = it } viewModel.shouldShowPresetSlider.collect { axisPresetSliderContainer.isVisible = it } } launch { Loading