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

Commit 1d04c7c1 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 9606726 from 92672421 to tm-qpr3-release

Change-Id: I451889274106ab0b4b029f9e6a81b1deb3ef10b9
parents e7523ac3 92672421
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@
    <!-- The content description of clock entry. [CHAR LIMIT=NONE] -->
    <string name="clock_picker_entry_content_description">Change a custom clock</string>

    <!-- Title of a section of the customization picker where the user can configure Clock face. [CHAR LIMIT=15] -->
    <!-- Title of a section of the customization picker where the user can configure Clock face. [CHAR LIMIT=19] -->
    <string name="clock_settings_title">Clock Settings</string>

    <!-- Title of a tab to change the clock color. [CHAR LIMIT=15] -->
@@ -420,4 +420,22 @@
    [CHAR LIMIT=128].
    -->
    <string name="more_colors">More Colors</string>

    <!--
    Accessibility string for a button that allows the user to select the default color for their
    lock screen clock on the device. This is shown next to other buttons that allow the user to
    select from a set of custom colors.

    [CHAR LIMIT=NONE].
    -->
    <string name="content_description_default_color_option">Default color option</string>

    <!--
    Accessibility string for a button that allows the user to select a custom color for their lock
    screen clock on the device. This is shown next to other such buttons that allow the user to
    select from a set of custom colors.

    [CHAR LIMIT=NONE].
    -->
    <string name="content_description_color_option">Color option <xliff:g name="color_number" example="1">%1$d</xliff:g></string>
</resources>
+6 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import com.android.customization.picker.clock.domain.interactor.ClockPickerInter
import com.android.customization.picker.clock.ui.view.ClockViewFactory
import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
import com.android.customization.picker.clock.ui.viewmodel.ClockSectionViewModel
import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor
@@ -77,4 +78,9 @@ interface CustomizationInjector : Injector {
        context: Context,
        registry: ClockRegistry,
    ): ClockViewFactory

    fun getClockSettingsViewModelFactory(
        context: Context,
        registry: ClockRegistry,
    ): ClockSettingsViewModel.Factory
}
+14 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import com.android.customization.picker.clock.domain.interactor.ClockPickerInter
import com.android.customization.picker.clock.ui.view.ClockViewFactory
import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
import com.android.customization.picker.clock.ui.viewmodel.ClockSectionViewModel
import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
import com.android.customization.picker.color.data.repository.ColorPickerRepositoryImpl
import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
@@ -96,6 +97,7 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject
    private var darkModeSnapshotRestorer: DarkModeSnapshotRestorer? = null
    private var themedIconSnapshotRestorer: ThemedIconSnapshotRestorer? = null
    private var themedIconInteractor: ThemedIconInteractor? = null
    private var clockSettingsViewModelFactory: ClockSettingsViewModel.Factory? = null

    override fun getCustomizationSections(activity: ComponentActivity): CustomizationSections {
        return customizationSections
@@ -409,6 +411,18 @@ open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInject
                .also { themedIconInteractor = it }
    }

    override fun getClockSettingsViewModelFactory(
        context: Context,
        registry: ClockRegistry,
    ): ClockSettingsViewModel.Factory {
        return clockSettingsViewModelFactory
            ?: ClockSettingsViewModel.Factory(
                    context,
                    getClockPickerInteractor(context, registry),
                )
                .also { clockSettingsViewModelFactory = it }
    }

    companion object {
        @JvmStatic
        private val KEY_QUICK_AFFORDANCE_SNAPSHOT_RESTORER =
+37 −11
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
package com.android.customization.picker.clock.ui.binder

import android.view.View
import android.widget.SeekBar
import androidx.core.view.isInvisible
import androidx.core.view.isVisible
import androidx.lifecycle.Lifecycle
@@ -41,22 +42,11 @@ object ClockSettingsBinder {
        lifecycleOwner: LifecycleOwner,
    ) {
        val tabView: RecyclerView = view.requireViewById(R.id.tabs)
        val colorOptionContainer = view.requireViewById<View>(R.id.color_picker_container)
        val sizeOptions =
            view.requireViewById<ClockSizeRadioButtonGroup>(R.id.clock_size_radio_button_group)

        val tabAdapter = ClockSettingsTabAdapter()
        tabView.adapter = tabAdapter
        tabView.layoutManager = LinearLayoutManager(view.context, RecyclerView.HORIZONTAL, false)
        tabView.addItemDecoration(ItemSpacing(ItemSpacing.TAB_ITEM_SPACING_DP))

        sizeOptions.onRadioButtonClickListener =
            object : ClockSizeRadioButtonGroup.OnRadioButtonClickListener {
                override fun onClick(size: ClockSize) {
                    viewModel.setClockSize(size)
                }
            }

        val colorOptionContainerView: RecyclerView = view.requireViewById(R.id.color_options)
        val colorOptionAdapter = ColorOptionAdapter()
        colorOptionContainerView.adapter = colorOptionAdapter
@@ -64,6 +54,30 @@ object ClockSettingsBinder {
            LinearLayoutManager(view.context, RecyclerView.HORIZONTAL, false)
        colorOptionContainerView.addItemDecoration(ItemSpacing(ItemSpacing.ITEM_SPACING_DP))

        val slider: SeekBar = view.requireViewById(R.id.slider)
        slider.setOnSeekBarChangeListener(
            object : SeekBar.OnSeekBarChangeListener {
                override fun onProgressChanged(p0: SeekBar?, progress: Int, fromUser: Boolean) {
                    if (fromUser) {
                        viewModel.onSliderProgressChanged(progress)
                    }
                }

                override fun onStartTrackingTouch(p0: SeekBar?) = Unit
                override fun onStopTrackingTouch(p0: SeekBar?) = Unit
            }
        )

        val sizeOptions =
            view.requireViewById<ClockSizeRadioButtonGroup>(R.id.clock_size_radio_button_group)
        sizeOptions.onRadioButtonClickListener =
            object : ClockSizeRadioButtonGroup.OnRadioButtonClickListener {
                override fun onClick(size: ClockSize) {
                    viewModel.setClockSize(size)
                }
            }

        val colorOptionContainer = view.requireViewById<View>(R.id.color_picker_container)
        lifecycleOwner.lifecycleScope.launch {
            lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
                launch { viewModel.tabs.collect { tabAdapter.setItems(it) } }
@@ -103,6 +117,18 @@ object ClockSettingsBinder {
                        }
                    }
                }

                launch {
                    viewModel.sliderProgress.collect { progress ->
                        progress?.let { slider.setProgress(progress, false) }
                    }
                }

                launch {
                    viewModel.isSliderEnabled.collect { isEnabled ->
                        slider.isInvisible = !isEnabled
                    }
                }
            }
        }
    }
+8 −5
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import com.android.customization.module.ThemePickerInjector
import com.android.customization.picker.clock.ui.binder.ClockCarouselViewBinder
import com.android.customization.picker.clock.ui.binder.ClockSettingsBinder
import com.android.customization.picker.clock.ui.view.ClockCarouselView
import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
import com.android.systemui.shared.clocks.shared.model.ClockPreviewConstants
import com.android.wallpaper.R
import com.android.wallpaper.model.WallpaperColorsViewModel
@@ -131,10 +130,14 @@ class ClockSettingsFragment : AppbarFragment() {
                .show()
            ClockSettingsBinder.bind(
                view,
                ClockSettingsViewModel(
                    context,
                    injector.getClockPickerInteractor(context, registry)
                ViewModelProvider(
                        requireActivity(),
                        injector.getClockSettingsViewModelFactory(
                            context = context,
                            registry = registry,
                        ),
                    )
                    .get(),
                this@ClockSettingsFragment,
            )
        }
Loading