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

Commit 1d175508 authored by Marcelo Arteiro's avatar Marcelo Arteiro
Browse files

Refactor monet.Style to ThemeStyle

Deprecates `monet.Style` in favor of the new `ThemeStyle` class in preparation for the upcoming `ThemeManagerService`.

This change is purely a refactoring, moving the existing `monet.Style` class to a new location and name with no functional changes. All existing usages in SystemUI have been updated to the new class.

Bug: 441912053
Test: Existing tests updated.
Flag: EXEMPT mechanical refactoring
Change-Id: Icece6013442d184b41ed83d1d6b0393eedf4e027
parent 822046f0
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import static com.android.customization.model.color.ColorOptionsProvider.OVERLAY
import android.app.WallpaperColors;
import android.content.ContentResolver;
import android.content.Context;
import android.content.theming.ThemeStyle;
import android.database.ContentObserver;
import android.graphics.Color;
import android.net.Uri;
@@ -48,7 +49,6 @@ import com.android.customization.model.ResourceConstants;
import com.android.customization.model.color.ColorOptionsProvider.ColorSource;
import com.android.customization.model.theme.OverlayManagerCompat;
import com.android.customization.module.logging.ThemesUserEventLogger;
import com.android.systemui.monet.Style;
import com.android.themepicker.R;

import org.json.JSONArray;
@@ -170,7 +170,7 @@ public class ColorCustomizationManager implements CustomizationManager<ColorOpti
                overlaysJson.put(OVERLAY_COLOR_SOURCE, colorOption.getSource());
                overlaysJson.put(OVERLAY_COLOR_INDEX, String.valueOf(colorOption.getIndex()));
                overlaysJson.put(OVERLAY_THEME_STYLE,
                        String.valueOf(Style.toString(colorOption.getStyle())));
                        String.valueOf(ThemeStyle.toString(colorOption.getStyle())));

                // OVERLAY_COLOR_BOTH is only for wallpaper color case, not preset.
                if (!COLOR_SOURCE_PRESET.equals(colorOption.getSource())) {
@@ -273,7 +273,7 @@ public class ColorCustomizationManager implements CustomizationManager<ColorOpti

    /**
     * @return The style of the currently applied color. One of enum values in
     * {@link com.android.systemui.monet.Style}.
     * {@link ThemeStyle}.
     */
    public @Nullable String getCurrentStyle() {
        if (mCurrentStyle == null) {
+6 −6
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY
import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SYSTEM_PALETTE;

import android.content.Context;
import android.content.theming.ThemeStyle;
import android.text.TextUtils;
import android.util.Log;

@@ -29,7 +30,6 @@ import com.android.customization.model.CustomizationManager;
import com.android.customization.model.CustomizationOption;
import com.android.customization.model.color.ColorOptionsProvider.ColorSource;
import com.android.customization.module.logging.ThemesUserEventLogger;
import com.android.systemui.monet.Style;
import com.android.themepicker.R;

import org.json.JSONException;
@@ -57,14 +57,14 @@ public abstract class ColorOption implements CustomizationOption<ColorOption> {
    protected final Map<String, String> mPackagesByCategory;
    private final String mTitle;
    private final boolean mIsDefault;
    @Style.Type
    @ThemeStyle.Type
    private final Integer mStyle;
    private final int mIndex;
    private CharSequence mContentDescription;
    private final @ColorInt int mSeedColor;

    protected ColorOption(String title, Map<String, String> overlayPackages, boolean isDefault,
            int seedColor, @Style.Type Integer style, int index) {
            int seedColor, @ThemeStyle.Type Integer style, int index) {
        mTitle = title;
        mIsDefault = isDefault;
        mSeedColor = seedColor;
@@ -84,9 +84,9 @@ public abstract class ColorOption implements CustomizationOption<ColorOption> {

        String currentStyle = colorManager.getCurrentStyle();
        if (TextUtils.isEmpty(currentStyle)) {
            currentStyle = Style.toString(Style.TONAL_SPOT);
            currentStyle = ThemeStyle.toString(ThemeStyle.TONAL_SPOT);
        }
        boolean isCurrentStyle = TextUtils.equals(Style.toString(getStyle()), currentStyle);
        boolean isCurrentStyle = TextUtils.equals(ThemeStyle.toString(getStyle()), currentStyle);

        if (mIsDefault) {
            String serializedOverlays = colorManager.getStoredOverlays();
@@ -227,7 +227,7 @@ public abstract class ColorOption implements CustomizationOption<ColorOption> {
    /**
     * @return the style of this color option
     */
    @Style.Type
    @ThemeStyle.Type
    public Integer getStyle() {
        return mStyle;
    }
+4 −4
Original line number Diff line number Diff line
@@ -17,12 +17,12 @@
package com.android.customization.model.color

import android.content.Context
import android.content.theming.ThemeStyle
import android.stats.style.StyleEnums
import android.view.View
import androidx.annotation.ColorInt
import com.android.customization.model.color.ColorOptionsProvider.ColorSource
import com.android.customization.picker.color.shared.model.ColorType
import com.android.systemui.monet.Style
import com.android.themepicker.R

/**
@@ -34,7 +34,7 @@ class ColorOptionImpl(
    isDefault: Boolean,
    private val source: String?,
    seedColor: Int,
    @Style.Type style: Int,
    @ThemeStyle.Type style: Int,
    index: Int,
    private val previewInfo: PreviewInfo,
    val type: ColorType,
@@ -77,7 +77,7 @@ class ColorOptionImpl(
        }
    }

    override fun getStyleForLogging(): Int = Style.toString(style).hashCode()
    override fun getStyleForLogging(): Int = ThemeStyle.toString(style).hashCode()

    class Builder {
        var title: String? = null
@@ -89,7 +89,7 @@ class ColorOptionImpl(
        @ColorSource var source: String? = null
        var isDefault = false
        @ColorInt var seedColor = 0
        @Style.Type var style = Style.TONAL_SPOT
        @ThemeStyle.Type var style = ThemeStyle.TONAL_SPOT
        var index = 0
        var packages: MutableMap<String, String?> = HashMap()
        var type = ColorType.WALLPAPER_COLOR
+2 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
package com.android.customization.model.color;

import android.app.WallpaperColors;
import android.content.theming.ThemeStyle;

import androidx.annotation.Nullable;
import androidx.annotation.StringDef;
@@ -35,7 +36,7 @@ public interface ColorOptionsProvider {

    /**
     * Extra setting indicating the style of the color overlays (it can be one of
     * {@link com.android.systemui.monet.Style}).
     * {@link ThemeStyle}).
     */
    String OVERLAY_THEME_STYLE = "android.theme.customization.theme_style";

+25 −18
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.app.WallpaperManager
import android.content.Context
import android.content.res.ColorStateList
import android.content.res.Resources
import android.content.theming.ThemeStyle
import androidx.annotation.ColorInt
import androidx.core.graphics.ColorUtils.setAlphaComponent
import androidx.lifecycle.LifecycleOwner
@@ -37,7 +38,6 @@ import com.android.customization.model.color.ColorOptionsProvider.COLOR_SOURCE_L
import com.android.customization.model.color.ColorUtils.toColorString
import com.android.customization.picker.color.shared.model.ColorType
import com.android.systemui.monet.ColorScheme
import com.android.systemui.monet.Style
import com.android.themepicker.R
import com.android.wallpaper.config.BaseFlags
import com.android.wallpaper.module.InjectorProvider
@@ -57,7 +57,7 @@ class ColorProvider(private val context: Context, stubPackageName: String) :

    companion object {
        const val themeStyleEnabled = true
        val styleSize = if (themeStyleEnabled) Style.values().size else 1
        val styleSize = if (themeStyleEnabled) ThemeStyle.values().size else 1
        private const val TAG = "ColorProvider"
        private const val MAX_SEED_COLORS = 4
        private const val MAX_PRESET_COLORS = 4
@@ -67,11 +67,16 @@ class ColorProvider(private val context: Context, stubPackageName: String) :
    private var loaderJob: Job? = null
    private val monetEnabled = ColorUtils.isMonetEnabled(context)
    // TODO(b/202145216): Use style method to fetch the list of style.
    @Style.Type
    @ThemeStyle.Type
    private var styleList =
        if (themeStyleEnabled)
            arrayOf(Style.TONAL_SPOT, Style.SPRITZ, Style.VIBRANT, Style.EXPRESSIVE)
        else arrayOf(Style.TONAL_SPOT)
            arrayOf(
                ThemeStyle.TONAL_SPOT,
                ThemeStyle.SPRITZ,
                ThemeStyle.VIBRANT,
                ThemeStyle.EXPRESSIVE,
            )
        else arrayOf(ThemeStyle.TONAL_SPOT)

    private var monochromeBundleName: String? = null

@@ -218,13 +223,13 @@ class ColorProvider(private val context: Context, stubPackageName: String) :
            )
            builder.title =
                when (style) {
                    Style.TONAL_SPOT ->
                    ThemeStyle.TONAL_SPOT ->
                        context.getString(R.string.content_description_dynamic_color_option)
                    Style.SPRITZ ->
                    ThemeStyle.SPRITZ ->
                        context.getString(R.string.content_description_neutral_color_option)
                    Style.VIBRANT ->
                    ThemeStyle.VIBRANT ->
                        context.getString(R.string.content_description_vibrant_color_option)
                    Style.EXPRESSIVE ->
                    ThemeStyle.EXPRESSIVE ->
                        context.getString(R.string.content_description_expressive_color_option)
                    else -> context.getString(R.string.content_description_dynamic_color_option)
                }
@@ -313,7 +318,8 @@ class ColorProvider(private val context: Context, stubPackageName: String) :
    private fun getDarkPresetColorPreview(colorScheme: ColorScheme): IntArray {
        val colors =
            when (colorScheme.style) {
                Style.FRUIT_SALAD -> intArrayOf(colorScheme.accent3.s100, colorScheme.accent1.s200)
                ThemeStyle.FRUIT_SALAD ->
                    intArrayOf(colorScheme.accent3.s100, colorScheme.accent1.s200)
                else -> intArrayOf(colorScheme.accent1.s200, colorScheme.accent1.s200)
            }
        return intArrayOf(colors[0], colors[1], colors[0], colors[1])
@@ -326,7 +332,7 @@ class ColorProvider(private val context: Context, stubPackageName: String) :
    private fun getLightPresetColorPreview(colorScheme: ColorScheme): IntArray {
        val colors =
            when (colorScheme.style) {
                Style.FRUIT_SALAD ->
                ThemeStyle.FRUIT_SALAD ->
                    intArrayOf(
                        colorScheme.accent3.getAtTone(450f),
                        colorScheme.accent1.getAtTone(550f),
@@ -361,15 +367,16 @@ class ColorProvider(private val context: Context, stubPackageName: String) :
                        } catch (e: Resources.NotFoundException) {
                            null
                        }
                    @Style.Type
                    @ThemeStyle.Type
                    val style =
                        try {
                            if (styleName != null) Style.valueOf(styleName) else Style.TONAL_SPOT
                            if (styleName != null) ThemeStyle.valueOf(styleName)
                            else ThemeStyle.TONAL_SPOT
                        } catch (e: IllegalArgumentException) {
                            Style.TONAL_SPOT
                            ThemeStyle.TONAL_SPOT
                        }

                    if (style == Style.MONOCHROMATIC) {
                    if (style == ThemeStyle.MONOCHROMATIC) {
                        if (
                            !InjectorProvider.getInjector()
                                .getFlags()
@@ -412,7 +419,7 @@ class ColorProvider(private val context: Context, stubPackageName: String) :
    private fun buildPreset(
        bundleName: String,
        index: Int,
        @Style.Type style: Int? = null,
        @ThemeStyle.Type style: Int? = null,
        type: ColorType = ColorType.PRESET_COLOR,
        isNewPickerUi: Boolean,
    ): ColorOptionImpl {
@@ -438,7 +445,7 @@ class ColorProvider(private val context: Context, stubPackageName: String) :
            darkColorScheme = ColorScheme(colorFromStub, /* darkTheme= */ true, style)

            when (style) {
                Style.MONOCHROMATIC -> {
                ThemeStyle.MONOCHROMATIC -> {
                    darkColors = getDarkMonochromePreview(darkColorScheme)
                    lightColors = getLightMonochromePreview(lightColorScheme)
                }
@@ -466,7 +473,7 @@ class ColorProvider(private val context: Context, stubPackageName: String) :
                        buildPreset(
                            bundleName = it,
                            index = -1,
                            style = Style.MONOCHROMATIC,
                            style = ThemeStyle.MONOCHROMATIC,
                            type = ColorType.WALLPAPER_COLOR,
                            isNewPickerUi = isNewPickerUi,
                        ),
Loading