Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 08bb6c5c authored by Bhavuk Jain's avatar Bhavuk Jain
Browse files

Added clock face width label

This CL aims at adding a clock face width label.

Bug: b/418223312
Test: Tested by building and installing picker on local, attached video
in bug
Flag: EXEMPT bugfix

Change-Id: I2380779618f01269da9b8320e2fa6b1ffd0750bf
parent 6328bd56
Loading
Loading
Loading
Loading
+33 −11
Original line number Diff line number Diff line
@@ -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"
@@ -67,3 +87,5 @@
            android:theme="@style/Theme.Material3.DynamicColors.DayNight" />
        </LinearLayout>

</LinearLayout>
+2 −1
Original line number Diff line number Diff line
@@ -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>

+39 −13
Original line number Diff line number Diff line
@@ -136,8 +136,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)
@@ -208,13 +229,15 @@ object ClockFloatingSheetBinder {
        clockColorList.layoutManager =
            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()
@@ -275,6 +298,7 @@ object ClockFloatingSheetBinder {
            shouldAnimate = isClockStyleActive,
            lifecycleOwner = lifecycleOwner,
        )

        ColorUpdateBinder.bind(
            setColor = { color ->
                clockSizeContent
@@ -291,16 +315,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)
                    }
@@ -432,7 +456,9 @@ object ClockFloatingSheetBinder {
                }

                launch {
                    viewModel.shouldShowPresetSlider.collect { axisPresetSlider.isVisible = it }
                    viewModel.shouldShowPresetSlider.collect {
                        axisPresetSliderContainer.isVisible = it
                    }
                }

                launch {