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

Commit f53e251d authored by Hawkwood Glazier's avatar Hawkwood Glazier Committed by Android (Google) Code Review
Browse files

Merge "Remove Reactive Clock Touch prototype from Picker" into main

parents 86f81e55 97a8743e
Loading
Loading
Loading
Loading
+6 −10
Original line number Diff line number Diff line
@@ -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
@@ -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)
@@ -160,7 +159,7 @@ object ClockSettingsBinder {
                                ColorOptionIconBinder.bind(
                                    item.requireViewById(R.id.foreground),
                                    payload,
                                    darkMode
                                    darkMode,
                                )
                                OptionItemBinder.bind(
                                    view = item,
@@ -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)
@@ -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
    }
+9 −36
Original line number Diff line number Diff line
@@ -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
@@ -153,7 +145,7 @@ class ClockCarouselView(
                override fun onTransitionStarted(
                    motionLayout: MotionLayout?,
                    startId: Int,
                    endId: Int
                    endId: Int,
                ) {
                    if (motionLayout == null) {
                        return
@@ -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.
@@ -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
@@ -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)
@@ -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
        }
@@ -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,
@@ -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) =
+0 −9
Original line number Diff line number Diff line
@@ -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
@@ -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 =
+0 −7
Original line number Diff line number Diff line
@@ -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
@@ -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 ->
+0 −4
Original line number Diff line number Diff line
@@ -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")
    }