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

Commit 61884449 authored by George Lin's avatar George Lin Committed by Android (Google) Code Review
Browse files

Merge "Use custom ColorOptionIconView for color options" into udc-dev

parents a0c21dcc 5ddc9d05
Loading
Loading
Loading
Loading
+4 −43
Original line number Diff line number Diff line
@@ -42,50 +42,11 @@
            android:background="@drawable/option_item_background"
            android:importantForAccessibility="no" />

        <FrameLayout
            android:id="@id/foreground"
        <com.android.customization.picker.color.ui.view.ColorOptionIconView
            android:id="@+id/foreground"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <ImageView
                android:id="@+id/color_preview_0"
                android:layout_width="@dimen/component_color_chip_small_radius_default2"
                android:layout_height="@dimen/component_color_chip_small_radius_default2"
                android:layout_gravity="center"
                android:layout_marginRight="@dimen/color_seed_chip_margin2"
                android:layout_marginBottom="@dimen/color_seed_chip_margin2"
                android:src="@drawable/color_chip_seed_filled0"
                android:importantForAccessibility="no"/>

            <ImageView
                android:id="@+id/color_preview_1"
                android:layout_width="@dimen/component_color_chip_small_radius_default2"
                android:layout_height="@dimen/component_color_chip_small_radius_default2"
                android:layout_gravity="center"
                android:layout_marginLeft="@dimen/color_seed_chip_margin2"
                android:layout_marginBottom="@dimen/color_seed_chip_margin2"
                android:src="@drawable/color_chip_seed_filled2"
                android:importantForAccessibility="no"/>

            <ImageView
                android:id="@+id/color_preview_2"
                android:layout_width="@dimen/component_color_chip_small_radius_default2"
                android:layout_height="@dimen/component_color_chip_small_radius_default2"
                android:layout_gravity="center"
                android:layout_marginRight="@dimen/color_seed_chip_margin2"
                android:layout_marginTop="@dimen/color_seed_chip_margin2"
                android:src="@drawable/color_chip_seed_filled1"
                android:importantForAccessibility="no"/>

            <ImageView
                android:id="@+id/color_preview_3"
                android:layout_width="@dimen/component_color_chip_small_radius_default2"
                android:layout_height="@dimen/component_color_chip_small_radius_default2"
                android:layout_gravity="center"
                android:layout_marginLeft="@dimen/color_seed_chip_margin2"
                android:layout_marginTop="@dimen/color_seed_chip_margin2"
                android:src="@drawable/color_chip_seed_filled3"
                android:importantForAccessibility="no" />
        </FrameLayout>
            android:layout_height="match_parent"
            android:layout_margin="@dimen/color_seed_chip_margin2"/>
    </FrameLayout>

    <TextView
+2 −48
Original line number Diff line number Diff line
@@ -34,63 +34,17 @@
        constraint percentage is sized to leave a padding for the outer selection outline,
        proportionate to 2dp for a 40dp color wheel
    -->
    <androidx.constraintlayout.widget.ConstraintLayout
    <com.android.customization.picker.color.ui.view.ColorOptionIconView
        android:id="@+id/option_tile"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_gravity="center"
        android:gravity="center"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintDimensionRatio="1:1"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintWidth_percent="0.909">

        <ImageView
            android:id="@+id/color_preview_0"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:adjustViewBounds="true"
            android:src="@drawable/color_chip_seed_filled0"
            app:layout_constraintHeight_percent=".505"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintWidth_percent=".505" />

        <ImageView
            android:id="@+id/color_preview_1"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:adjustViewBounds="true"
            android:src="@drawable/color_chip_seed_filled2"
            app:layout_constraintHeight_percent=".505"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintWidth_percent=".505" />

        <ImageView
            android:id="@+id/color_preview_2"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:adjustViewBounds="true"
            android:src="@drawable/color_chip_seed_filled1"
            app:layout_constraintHeight_percent=".505"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintWidth_percent=".505" />

        <ImageView
            android:id="@+id/color_preview_3"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:adjustViewBounds="true"
            android:src="@drawable/color_chip_seed_filled3"
            app:layout_constraintHeight_percent=".505"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintWidth_percent=".505" />
    </androidx.constraintlayout.widget.ConstraintLayout>
        app:layout_constraintWidth_percent="0.909" />

    <ImageView
        android:id="@+id/option_selected"
+5 −1
Original line number Diff line number Diff line
@@ -142,7 +142,11 @@ object ClockSettingsBinder {
                                    (view.resources.configuration.uiMode and
                                        Configuration.UI_MODE_NIGHT_MASK ==
                                        Configuration.UI_MODE_NIGHT_YES)
                                ColorOptionIconBinder.bind(item, payload, darkMode)
                                ColorOptionIconBinder.bind(
                                    item.requireViewById(R.id.foreground),
                                    payload,
                                    darkMode
                                )
                                OptionItemBinder.bind(
                                    view = item,
                                    viewModel = colorOptions[index],
+14 −26
Original line number Diff line number Diff line
@@ -17,41 +17,29 @@

package com.android.customization.picker.color.ui.binder

import android.graphics.BlendMode
import android.graphics.BlendModeColorFilter
import android.view.ViewGroup
import android.widget.ImageView
import com.android.customization.picker.color.ui.view.ColorOptionIconView
import com.android.customization.picker.color.ui.viewmodel.ColorOptionIconViewModel
import com.android.wallpaper.R

object ColorOptionIconBinder {
    fun bind(
        view: ViewGroup,
        view: ColorOptionIconView,
        viewModel: ColorOptionIconViewModel,
        darkTheme: Boolean,
    ) {
        val color0View: ImageView = view.requireViewById(R.id.color_preview_0)
        val color1View: ImageView = view.requireViewById(R.id.color_preview_1)
        val color2View: ImageView = view.requireViewById(R.id.color_preview_2)
        val color3View: ImageView = view.requireViewById(R.id.color_preview_3)
        if (darkTheme) {
            color0View.drawable.colorFilter =
                BlendModeColorFilter(viewModel.darkThemeColor0, BlendMode.SRC)
            color1View.drawable.colorFilter =
                BlendModeColorFilter(viewModel.darkThemeColor1, BlendMode.SRC)
            color2View.drawable.colorFilter =
                BlendModeColorFilter(viewModel.darkThemeColor2, BlendMode.SRC)
            color3View.drawable.colorFilter =
                BlendModeColorFilter(viewModel.darkThemeColor3, BlendMode.SRC)
            view.bindColor(
                viewModel.darkThemeColor0,
                viewModel.darkThemeColor1,
                viewModel.darkThemeColor2,
                viewModel.darkThemeColor3,
            )
        } else {
            color0View.drawable.colorFilter =
                BlendModeColorFilter(viewModel.lightThemeColor0, BlendMode.SRC)
            color1View.drawable.colorFilter =
                BlendModeColorFilter(viewModel.lightThemeColor1, BlendMode.SRC)
            color2View.drawable.colorFilter =
                BlendModeColorFilter(viewModel.lightThemeColor2, BlendMode.SRC)
            color3View.drawable.colorFilter =
                BlendModeColorFilter(viewModel.lightThemeColor3, BlendMode.SRC)
            view.bindColor(
                viewModel.darkThemeColor0,
                viewModel.darkThemeColor1,
                viewModel.darkThemeColor2,
                viewModel.darkThemeColor3,
            )
        }
    }
}
+3 −3
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.customization.picker.color.ui.binder

import android.content.res.Configuration
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
@@ -28,6 +27,7 @@ import androidx.lifecycle.repeatOnLifecycle
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.android.customization.picker.color.ui.adapter.ColorTypeTabAdapter
import com.android.customization.picker.color.ui.view.ColorOptionIconView
import com.android.customization.picker.color.ui.viewmodel.ColorOptionIconViewModel
import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
import com.android.customization.picker.common.ui.view.ItemSpacing
@@ -63,11 +63,11 @@ object ColorPickerBinder {
                layoutResourceId = R.layout.color_option_2,
                lifecycleOwner = lifecycleOwner,
                bindIcon = { foregroundView: View, colorIcon: ColorOptionIconViewModel ->
                    val viewGroup = foregroundView as? ViewGroup
                    val colorOptionIconView = foregroundView as? ColorOptionIconView
                    val night =
                        (view.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK ==
                            Configuration.UI_MODE_NIGHT_YES)
                    viewGroup?.let { ColorOptionIconBinder.bind(viewGroup, colorIcon, night) }
                    colorOptionIconView?.let { ColorOptionIconBinder.bind(it, colorIcon, night) }
                }
            )
        colorOptionContainerView.adapter = colorOptionAdapter
Loading