Migrates Monet's Style Enum to @IntDef
This is part of the effort to move all Color System depenencies to
server. Enum are not allowerd there.
Bug: 335429258
Test: None
Flag: EXEMPT rearchitecture
Change-Id: I5a4e9e418886ebe55475833768ebece55f2f82f2
diff --git a/src/com/android/customization/model/color/ColorCustomizationManager.java b/src/com/android/customization/model/color/ColorCustomizationManager.java
index 9acbc4f..61a7967 100644
--- a/src/com/android/customization/model/color/ColorCustomizationManager.java
+++ b/src/com/android/customization/model/color/ColorCustomizationManager.java
@@ -48,6 +48,7 @@
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;
@@ -164,7 +165,7 @@
overlaysJson.put(OVERLAY_COLOR_SOURCE, colorOption.getSource());
overlaysJson.put(OVERLAY_COLOR_INDEX, String.valueOf(colorOption.getIndex()));
overlaysJson.put(OVERLAY_THEME_STYLE,
- String.valueOf(colorOption.getStyle().toString()));
+ String.valueOf(Style.toString(colorOption.getStyle())));
// OVERLAY_COLOR_BOTH is only for wallpaper color case, not preset.
if (!COLOR_SOURCE_PRESET.equals(colorOption.getSource())) {
diff --git a/src/com/android/customization/model/color/ColorOption.java b/src/com/android/customization/model/color/ColorOption.java
index 18414a4..a62756f 100644
--- a/src/com/android/customization/model/color/ColorOption.java
+++ b/src/com/android/customization/model/color/ColorOption.java
@@ -39,6 +39,7 @@
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
@@ -56,13 +57,14 @@
protected final Map<String, String> mPackagesByCategory;
private final String mTitle;
private final boolean mIsDefault;
- private final Style mStyle;
+ @Style.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 style, int index) {
+ int seedColor, @Style.Type Integer style, int index) {
mTitle = title;
mIsDefault = isDefault;
mSeedColor = seedColor;
@@ -82,9 +84,9 @@
String currentStyle = colorManager.getCurrentStyle();
if (TextUtils.isEmpty(currentStyle)) {
- currentStyle = Style.TONAL_SPOT.toString();
+ currentStyle = Style.toString(Style.TONAL_SPOT);
}
- boolean isCurrentStyle = TextUtils.equals(getStyle().toString(), currentStyle);
+ boolean isCurrentStyle = TextUtils.equals(Style.toString(getStyle()), currentStyle);
if (mIsDefault) {
String serializedOverlays = colorManager.getStoredOverlays();
@@ -116,7 +118,7 @@
if (other == null) {
return false;
}
- if (mStyle != other.getStyle()) {
+ if (!Objects.equals(mStyle, other.getStyle())) {
return false;
}
String thisSerializedPackages = getSerializedPackages();
@@ -225,7 +227,8 @@
/**
* @return the style of this color option
*/
- public Style getStyle() {
+ @Style.Type
+ public Integer getStyle() {
return mStyle;
}
diff --git a/src/com/android/customization/model/color/ColorOptionImpl.kt b/src/com/android/customization/model/color/ColorOptionImpl.kt
index 3b8fbc8..d8d562d 100644
--- a/src/com/android/customization/model/color/ColorOptionImpl.kt
+++ b/src/com/android/customization/model/color/ColorOptionImpl.kt
@@ -34,7 +34,7 @@
isDefault: Boolean,
private val source: String?,
seedColor: Int,
- style: Style,
+ @Style.Type style: Int,
index: Int,
private val previewInfo: PreviewInfo,
val type: ColorType,
@@ -77,7 +77,7 @@
}
}
- override fun getStyleForLogging(): Int = style.toString().hashCode()
+ override fun getStyleForLogging(): Int = Style.toString(style).hashCode()
class Builder {
var title: String? = null
@@ -89,7 +89,7 @@
@ColorSource var source: String? = null
var isDefault = false
@ColorInt var seedColor = 0
- var style = Style.TONAL_SPOT
+ @Style.Type var style = Style.TONAL_SPOT
var index = 0
var packages: MutableMap<String, String?> = HashMap()
var type = ColorType.WALLPAPER_COLOR
diff --git a/src/com/android/customization/model/color/ColorProvider.kt b/src/com/android/customization/model/color/ColorProvider.kt
index fb9fcfc..74da5c2 100644
--- a/src/com/android/customization/model/color/ColorProvider.kt
+++ b/src/com/android/customization/model/color/ColorProvider.kt
@@ -67,6 +67,7 @@
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
private var styleList =
if (themeStyleEnabled)
arrayOf(Style.TONAL_SPOT, Style.SPRITZ, Style.VIBRANT, Style.EXPRESSIVE)
@@ -338,6 +339,7 @@
} catch (e: Resources.NotFoundException) {
null
}
+ @Style.Type
val style =
try {
if (styleName != null) Style.valueOf(styleName) else Style.TONAL_SPOT
@@ -374,7 +376,7 @@
private fun buildPreset(
bundleName: String,
index: Int,
- style: Style? = null,
+ @Style.Type style: Int? = null,
type: ColorType = ColorType.PRESET_COLOR,
): ColorOptionImpl {
val builder = ColorOptionImpl.Builder()
diff --git a/src/com/android/customization/model/color/ThemedWallpaperColorResources.kt b/src/com/android/customization/model/color/ThemedWallpaperColorResources.kt
index c426f9d..ee0f619 100644
--- a/src/com/android/customization/model/color/ThemedWallpaperColorResources.kt
+++ b/src/com/android/customization/model/color/ThemedWallpaperColorResources.kt
@@ -38,11 +38,7 @@
override suspend fun apply(context: Context, callback: () -> Unit) {
withContext(Dispatchers.IO) {
val wallpaperColorScheme =
- ColorScheme(
- wallpaperColors,
- false,
- fetchThemeStyleFromSetting(),
- )
+ ColorScheme(wallpaperColors, false, fetchThemeStyleFromSetting())
with<ColorScheme, Unit>(wallpaperColorScheme) {
addOverlayColor(neutral1, R.color.system_neutral1_10)
addOverlayColor(neutral2, R.color.system_neutral2_10)
@@ -55,7 +51,8 @@
}
}
- private suspend fun fetchThemeStyleFromSetting(): Style {
+ @Style.Type
+ private suspend fun fetchThemeStyleFromSetting(): Int {
val overlayPackageJson =
secureSettingsRepository.getString(Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES)
return if (!overlayPackageJson.isNullOrEmpty()) {
diff --git a/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt b/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt
index 3f120ce..b426516 100644
--- a/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt
+++ b/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt
@@ -161,7 +161,7 @@
return builder.build()
}
- fun buildPresetOption(style: Style, seedColor: Int): ColorOptionImpl {
+ fun buildPresetOption(@Style.Type style: Int, seedColor: Int): ColorOptionImpl {
val builder = ColorOptionImpl.Builder()
builder.lightColors =
intArrayOf(Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT)
@@ -197,7 +197,11 @@
return builder.build()
}
- fun buildWallpaperOption(source: String, style: Style, seedColor: Int): ColorOptionImpl {
+ fun buildWallpaperOption(
+ source: String,
+ @Style.Type style: Int,
+ seedColor: Int,
+ ): ColorOptionImpl {
val builder = ColorOptionImpl.Builder()
builder.lightColors =
intArrayOf(Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT)
diff --git a/src/com/android/customization/picker/color/data/util/MaterialColorsGenerator.kt b/src/com/android/customization/picker/color/data/util/MaterialColorsGenerator.kt
index a921365..a1cc8ff 100644
--- a/src/com/android/customization/picker/color/data/util/MaterialColorsGenerator.kt
+++ b/src/com/android/customization/picker/color/data/util/MaterialColorsGenerator.kt
@@ -70,7 +70,7 @@
*
* @return a list of color resource IDs and a corresponding list of their color values
*/
- fun generate(colorSeed: Int, style: Style): Pair<IntArray, IntArray> {
+ fun generate(colorSeed: Int, @Style.Type style: Int): Pair<IntArray, IntArray> {
val isDarkMode =
(applicationContext.resources.configuration.uiMode and
Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES
@@ -94,7 +94,8 @@
)
}
- private suspend fun fetchThemeStyleFromSetting(): Style {
+ @Style.Type
+ private suspend fun fetchThemeStyleFromSetting(): Int {
val overlayPackageJson =
secureSettingsRepository.getString(Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES)
return if (!overlayPackageJson.isNullOrEmpty()) {
diff --git a/tests/robotests/src/com/android/customization/model/color/ColorCustomizationManagerTest.kt b/tests/robotests/src/com/android/customization/model/color/ColorCustomizationManagerTest.kt
index 98a1973..13f58a5 100644
--- a/tests/robotests/src/com/android/customization/model/color/ColorCustomizationManagerTest.kt
+++ b/tests/robotests/src/com/android/customization/model/color/ColorCustomizationManagerTest.kt
@@ -71,7 +71,7 @@
@Test
fun testParseSettings() {
val source = COLOR_SOURCE_HOME
- val style = Style.SPRITZ
+ @Style.Type val style = Style.SPRITZ
val someColor = "aabbcc"
val someOtherColor = "bbccdd"
val settings =
@@ -79,7 +79,7 @@
OVERLAY_CATEGORY_SYSTEM_PALETTE to someColor,
OVERLAY_CATEGORY_COLOR to someOtherColor,
OVERLAY_COLOR_SOURCE to source,
- OVERLAY_THEME_STYLE to style.toString(),
+ OVERLAY_THEME_STYLE to Style.toString(style),
ColorOption.TIMESTAMP_FIELD to "12345",
)
val json = JSONObject(settings).toString()
@@ -87,7 +87,7 @@
manager.parseSettings(json)
assertThat(manager.currentColorSource).isEqualTo(source)
- assertThat(manager.currentStyle).isEqualTo(style.toString())
+ assertThat(manager.currentStyle).isEqualTo(Style.toString(style))
assertThat(manager.currentOverlays.size).isEqualTo(2)
assertThat(manager.currentOverlays[OVERLAY_CATEGORY_COLOR]).isEqualTo(someOtherColor)
assertThat(manager.currentOverlays[OVERLAY_CATEGORY_SYSTEM_PALETTE]).isEqualTo(someColor)
diff --git a/tests/robotests/src/com/android/customization/model/color/ColorOptionTest.kt b/tests/robotests/src/com/android/customization/model/color/ColorOptionTest.kt
index ed04d14..75d10ca 100644
--- a/tests/robotests/src/com/android/customization/model/color/ColorOptionTest.kt
+++ b/tests/robotests/src/com/android/customization/model/color/ColorOptionTest.kt
@@ -72,7 +72,7 @@
testColorOptionStyle(Style.EXPRESSIVE)
}
- private fun testColorOptionStyle(style: Style) {
+ private fun testColorOptionStyle(@Style.Type style: Int) {
val colorOption: ColorOption =
ColorOptionImpl(
"fake color",
diff --git a/tests/robotests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt b/tests/robotests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
index 50602ad..b39a564 100644
--- a/tests/robotests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
+++ b/tests/robotests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
@@ -147,7 +147,8 @@
assertThat(logger.themeColorSource)
.isEqualTo(StyleEnums.COLOR_SOURCE_LOCK_SCREEN_WALLPAPER)
- assertThat(logger.themeColorStyle).isEqualTo(Style.EXPRESSIVE.toString().hashCode())
+ assertThat(logger.themeColorStyle)
+ .isEqualTo(Style.toString(Style.EXPRESSIVE).hashCode())
assertThat(logger.themeSeedColor).isEqualTo(121212)
}
@@ -177,7 +178,8 @@
advanceUntilIdle()
assertThat(logger.themeColorSource).isEqualTo(StyleEnums.COLOR_SOURCE_PRESET_COLOR)
- assertThat(logger.themeColorStyle).isEqualTo(Style.FRUIT_SALAD.toString().hashCode())
+ assertThat(logger.themeColorStyle)
+ .isEqualTo(Style.toString(Style.FRUIT_SALAD).hashCode())
assertThat(logger.themeSeedColor).isEqualTo(-54321)
}
diff --git a/tests/robotests/src/com/android/wallpaper/customization/ui/viewmodel/ColorPickerViewModel2Test.kt b/tests/robotests/src/com/android/wallpaper/customization/ui/viewmodel/ColorPickerViewModel2Test.kt
index e4a4884..2056b1e 100644
--- a/tests/robotests/src/com/android/wallpaper/customization/ui/viewmodel/ColorPickerViewModel2Test.kt
+++ b/tests/robotests/src/com/android/wallpaper/customization/ui/viewmodel/ColorPickerViewModel2Test.kt
@@ -145,7 +145,8 @@
assertThat(logger.themeColorSource)
.isEqualTo(StyleEnums.COLOR_SOURCE_LOCK_SCREEN_WALLPAPER)
- assertThat(logger.themeColorStyle).isEqualTo(Style.EXPRESSIVE.toString().hashCode())
+ assertThat(logger.themeColorStyle)
+ .isEqualTo(Style.toString(Style.EXPRESSIVE).hashCode())
assertThat(logger.themeSeedColor).isEqualTo(121212)
}
@@ -176,7 +177,8 @@
applySelectedColorOption()
assertThat(logger.themeColorSource).isEqualTo(StyleEnums.COLOR_SOURCE_PRESET_COLOR)
- assertThat(logger.themeColorStyle).isEqualTo(Style.FRUIT_SALAD.toString().hashCode())
+ assertThat(logger.themeColorStyle)
+ .isEqualTo(Style.toString(Style.FRUIT_SALAD).hashCode())
assertThat(logger.themeSeedColor).isEqualTo(-54321)
}