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

Commit 1ba71e2d authored by Jerry Liu's avatar Jerry Liu
Browse files

desktop: Change lock screen clock color list to wrap content

Wrap the color options instead of having them cut off horizontally when the window is narrow.

Screenshot on Desktop with flag on:
http://go/scrcast/NTcyNDc2NzgwOTE3NTU1MnwzYjA2OTE4MS1mOA
Screenshot on Phone with flag off:
http://go/scrcast/NDc0NjEyNDQ5MjUzNzg1Nnw2NzY4ZjljYS05Zg

Bug: 415902512
Test: Manually on DUTs
Flag: com.android.wallpaper.desktop_ui_flag
Change-Id: Ia58693a6eb887413ee8977634b50eacadc745b28
parent 3add1dd5
Loading
Loading
Loading
Loading
+20 −4
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import com.android.customization.picker.color.ui.view.ColorOptionIconView2
import com.android.customization.picker.color.ui.viewmodel.ColorOptionIconViewModel
import com.android.customization.picker.common.ui.view.SingleRowListItemSpacing
import com.android.themepicker.R
import com.android.wallpaper.config.BaseFlags
import com.android.wallpaper.customization.ui.util.ThemePickerCustomizationOptionUtil.ThemePickerLockCustomizationOption.CLOCK
import com.android.wallpaper.customization.ui.viewmodel.ClockFloatingSheetHeightsViewModel
import com.android.wallpaper.customization.ui.viewmodel.ClockPickerViewModel.ClockStyleModel
@@ -54,6 +55,9 @@ import com.android.wallpaper.picker.customization.ui.view.FloatingToolbar
import com.android.wallpaper.picker.customization.ui.view.adapter.FloatingToolbarTabAdapter
import com.android.wallpaper.picker.customization.ui.viewmodel.ColorUpdateViewModel
import com.android.wallpaper.picker.option.ui.adapter.OptionItemAdapter2
import com.google.android.flexbox.FlexDirection
import com.google.android.flexbox.FlexWrap
import com.google.android.flexbox.FlexboxLayoutManager
import com.google.android.material.materialswitch.MaterialSwitch
import com.google.android.material.slider.LabelFormatter
import com.google.android.material.slider.Slider
@@ -91,6 +95,7 @@ object ClockFloatingSheetBinder {
        val tabs: FloatingToolbar = view.requireViewById(R.id.floating_toolbar)
        val tabContainer =
            tabs.findViewById<ViewGroup>(com.android.wallpaper.R.id.floating_toolbar_tab_container)
        val isDesktopUi: Boolean = BaseFlags.get().shouldShowDesktopUi(view.context)
        ColorUpdateBinder.bind(
            setColor = { color ->
                DrawableCompat.setTint(DrawableCompat.wrap(tabContainer.background), color)
@@ -150,7 +155,8 @@ object ClockFloatingSheetBinder {
        val clockColorList: RecyclerView = view.requireViewById(R.id.clock_color_list)
        clockColorList.adapter = clockColorAdapter
        clockColorList.layoutManager =
            LinearLayoutManager(appContext, LinearLayoutManager.HORIZONTAL, false)
            if (isDesktopUi) FlexboxLayoutManager(appContext, FlexDirection.ROW, FlexWrap.WRAP)
            else LinearLayoutManager(appContext, LinearLayoutManager.HORIZONTAL, false)

        val clockColorSlider: Slider = view.requireViewById(R.id.clock_color_slider)
        SliderColorBinder.bind(
@@ -414,11 +420,16 @@ object ClockFloatingSheetBinder {
                        clockColorAdapter.setItems(colorOptions) {
                            var indexToFocus = colorOptions.indexOfFirst { it.isSelected.value }
                            indexToFocus = if (indexToFocus < 0) 0 else indexToFocus
                            if (isDesktopUi) {
                                (clockColorList.layoutManager as FlexboxLayoutManager)
                                    .scrollToPosition(indexToFocus)
                            } else {
                                (clockColorList.layoutManager as LinearLayoutManager)
                                    .scrollToPositionWithOffset(indexToFocus, 0)
                            }
                        }
                    }
                }

                launch {
                    viewModel.previewingColorSliderProgress.collect { progress ->
@@ -438,7 +449,12 @@ object ClockFloatingSheetBinder {
                    viewModel.previewingClockColorOptionIndex.collect { indexToFocus ->
                        clockColorList.post {
                            val layoutManager =
                                clockColorList.layoutManager as? LinearLayoutManager ?: return@post
                                if (isDesktopUi)
                                    clockColorList.layoutManager as? FlexboxLayoutManager
                                        ?: return@post
                                else
                                    clockColorList.layoutManager as? LinearLayoutManager
                                        ?: return@post
                            val itemView = layoutManager.findViewByPosition(indexToFocus)

                            if (itemView != null) {