[automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 5397c3e385 -s ours am: 8bcceeab7e -s ours

am skip reason: subject contains skip directive

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/ThemePicker/+/19551663

Change-Id: Id9e69c1a83848a14d8ed069dca444da2e152c302
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index ff8f187..ee96ae3 100755
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -13,6 +13,8 @@
 
     <queries>
         <!-- Specific intents Wallpaper picker query for -->
+        <!-- Package for theme stub -->
+        <package android:name="com.android.customization.themes" />
         <!-- Intent filter with action SET_WALLPAPER -->
         <intent>
             <action android:name="android.intent.action.SET_WALLPAPER" />
diff --git a/res/values/override.xml b/res/values/override.xml
index a070dbe..addebd4 100644
--- a/res/values/override.xml
+++ b/res/values/override.xml
@@ -16,7 +16,10 @@
      limitations under the License.
 -->
 <resources>
-    <string name="themes_stub_package" translatable="false"/>
+    <!-- Package of the stub apk containing the themes descriptions -->
+    <string name="themes_stub_package" translatable="false">com.android.customization.themes
+    </string>
+
     <string name="clocks_stub_package" translatable="false"/>
     <!-- Authority of a provider in System UI that will provide preview info for available clockfaces. -->
     <string name="clocks_provider_authority" translatable="false">com.android.keyguard.clock</string>
diff --git a/src/com/android/customization/module/DefaultCustomizationSections.java b/src/com/android/customization/module/DefaultCustomizationSections.java
index a4510ea..21f2c84 100644
--- a/src/com/android/customization/module/DefaultCustomizationSections.java
+++ b/src/com/android/customization/module/DefaultCustomizationSections.java
@@ -6,6 +6,7 @@
 import androidx.annotation.Nullable;
 import androidx.lifecycle.LifecycleOwner;
 
+import com.android.customization.model.color.ColorSectionController;
 import com.android.customization.model.grid.GridOptionsManager;
 import com.android.customization.model.grid.GridSectionController;
 import com.android.customization.model.mode.DarkModeSectionController;
@@ -41,6 +42,10 @@
                 workspaceViewModel, sectionNavigationController, wallpaperPreviewNavigator,
                 savedInstanceState));
 
+        // Theme color section.
+        sectionControllers.add(new ColorSectionController(
+                activity, wallpaperColorsViewModel, lifecycleOwner, savedInstanceState));
+
         // Dark/Light theme section.
         sectionControllers.add(new DarkModeSectionController(activity,
                 lifecycleOwner.getLifecycle()));
diff --git a/src/com/android/customization/module/StatsLogUserEventLogger.java b/src/com/android/customization/module/StatsLogUserEventLogger.java
index 216395d..e3e4336 100644
--- a/src/com/android/customization/module/StatsLogUserEventLogger.java
+++ b/src/com/android/customization/module/StatsLogUserEventLogger.java
@@ -28,7 +28,6 @@
 import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SETTINGS_SEARCH;
 import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SUW;
 import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_TIPS;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UI_CHANGED;
 import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SETTINGS_SEARCH;
 import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SOURCE_DEEP_LINK;
 import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SOURCE_LAUNCHER;
@@ -49,7 +48,6 @@
 import com.android.customization.model.color.ColorOption;
 import com.android.customization.model.grid.GridOption;
 import com.android.customization.model.theme.ThemeBundle;
-import com.android.systemui.shared.system.SysUiStatsLog;
 import com.android.wallpaper.module.Injector;
 import com.android.wallpaper.module.InjectorProvider;
 import com.android.wallpaper.module.NoOpUserEventLogger;
@@ -78,60 +76,67 @@
 
     @Override
     public void logAppLaunched(Intent launchSource) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, STYLE_UICHANGED__ACTION__APP_LAUNCHED,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, getAppLaunchSource(launchSource), 0, 0,
-                0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(STYLE_UICHANGED__ACTION__APP_LAUNCHED)
+                .setLaunchedPreference(getAppLaunchSource(launchSource))
+                .log();
     }
 
     @Override
     public void logResumed(boolean provisioned, boolean wallpaper) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.ONRESUME,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(StyleEnums.ONRESUME)
+                .log();
     }
 
     @Override
     public void logStopped() {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.ONSTOP,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(StyleEnums.ONSTOP)
+                .log();
     }
 
     @Override
     public void logActionClicked(String collectionId, int actionLabelResId) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.WALLPAPER_EXPLORE, 0, 0, 0, 0, 0,
-                getIdHashCode(collectionId), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(StyleEnums.WALLPAPER_EXPLORE)
+                .setWallpaperCategoryHash(getIdHashCode(collectionId))
+                .log();
     }
 
     @Override
     public void logIndividualWallpaperSelected(String collectionId) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.WALLPAPER_SELECT, 0, 0, 0, 0, 0,
-                getIdHashCode(collectionId), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(StyleEnums.WALLPAPER_SELECT)
+                .setWallpaperCategoryHash(getIdHashCode(collectionId))
+                .log();
     }
 
     @Override
     public void logCategorySelected(String collectionId) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.WALLPAPER_OPEN_CATEGORY,
-                0, 0, 0, 0, 0,
-                getIdHashCode(collectionId),
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(StyleEnums.WALLPAPER_OPEN_CATEGORY)
+                .setWallpaperCategoryHash(getIdHashCode(collectionId))
+                .log();
     }
 
     @Override
     public void logLiveWallpaperInfoSelected(String collectionId, @Nullable String wallpaperId) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.LIVE_WALLPAPER_INFO_SELECT,
-                0, 0, 0, 0, 0,
-                getIdHashCode(collectionId),
-                getIdHashCode(wallpaperId),
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(StyleEnums.LIVE_WALLPAPER_INFO_SELECT)
+                .setWallpaperCategoryHash(getIdHashCode(collectionId))
+                .setWallpaperIdHash(getIdHashCode(wallpaperId))
+                .log();
     }
 
     @Override
     public void logLiveWallpaperCustomizeSelected(String collectionId,
             @Nullable String wallpaperId) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.LIVE_WALLPAPER_CUSTOMIZE_SELECT,
-                0, 0, 0, 0, 0,
-                getIdHashCode(collectionId),
-                getIdHashCode(wallpaperId),
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger().setAction(StyleEnums.LIVE_WALLPAPER_CUSTOMIZE_SELECT)
+                .setWallpaperCategoryHash(getIdHashCode(collectionId))
+                .setWallpaperIdHash(getIdHashCode(wallpaperId))
+                .log();
+
     }
 
     @Override
@@ -139,6 +144,7 @@
         final boolean isLockWallpaperSet = mWallpaperStatusChecker.isLockWallpaperSet(mContext);
         final String homeCollectionId = mPreferences.getHomeWallpaperCollectionId();
         final String homeRemoteId = mPreferences.getHomeWallpaperRemoteId();
+        final String effects = mPreferences.getWallpaperEffects();
         String homeWallpaperId = TextUtils.isEmpty(homeRemoteId)
                 ? mPreferences.getHomeWallpaperServiceName() : homeRemoteId;
         String lockCollectionId = isLockWallpaperSet ? mPreferences.getLockWallpaperCollectionId()
@@ -146,35 +152,37 @@
         String lockWallpaperId = isLockWallpaperSet ? mPreferences.getLockWallpaperRemoteId()
                 : homeWallpaperId;
 
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.SNAPSHOT,
-                0, 0, 0, 0, 0,
-                getIdHashCode(homeCollectionId),
-                getIdHashCode(homeWallpaperId),
-                0, 0, 0, 0, 0, 0,
-                getIdHashCode(lockCollectionId),
-                getIdHashCode(lockWallpaperId),
-                mPreferences.getFirstLaunchDateSinceSetup(),
-                mPreferences.getFirstWallpaperApplyDateSinceSetup(),
-                mPreferences.getAppLaunchCount(),
-                0);
+        new SysUiStatsLogger().setAction(StyleEnums.SNAPSHOT)
+                .setWallpaperCategoryHash(getIdHashCode(homeCollectionId))
+                .setWallpaperIdHash(getIdHashCode(homeWallpaperId))
+                .setLockWallpaperCategoryHash(getIdHashCode(lockCollectionId))
+                .setLockWallpaperIdHash(getIdHashCode(lockWallpaperId))
+                .setFirstLaunchDateSinceSetup(mPreferences.getFirstLaunchDateSinceSetup())
+                .setFirstWallpaperApplyDateSinceSetup(
+                        mPreferences.getFirstWallpaperApplyDateSinceSetup())
+                .setAppLaunchCount(mPreferences.getAppLaunchCount())
+                .setEffectIdHash(getIdHashCode(effects))
+                .log();
     }
 
     @Override
     public void logWallpaperSet(String collectionId, @Nullable String wallpaperId,
             @Nullable String effects) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.WALLPAPER_APPLIED,
-                0, 0, 0, 0, 0,
-                getIdHashCode(collectionId),
-                getIdHashCode(wallpaperId),
-                0, 0, 0, 0, 0, effects != null ? effects.hashCode() : 0,
-                0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(StyleEnums.WALLPAPER_APPLIED)
+                .setWallpaperCategoryHash(getIdHashCode(collectionId))
+                .setWallpaperIdHash(getIdHashCode(wallpaperId))
+                .setEffectIdHash(getIdHashCode(effects))
+                .log();
     }
 
     @Override
     public void logEffectApply(String effect, @EffectStatus int status) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.WALLPAPER_EFFECT_APPLIED,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, status, effect != null ? effect.hashCode() : 0,
-                0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(StyleEnums.WALLPAPER_EFFECT_APPLIED)
+                .setEffectPreference(status)
+                .setEffectIdHash(getIdHashCode(effect))
+                .log();
     }
 
     @Nullable
@@ -185,60 +193,67 @@
 
     @Override
     public void logThemeSelected(ThemeBundle theme, boolean isCustomTheme) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_SELECT,
-                Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_COLOR)),
-                Objects.hashCode(getThemePackage(theme,OVERLAY_CATEGORY_FONT)),
-                Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_SHAPE)),
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(StyleEnums.PICKER_SELECT)
+                .setColorPackageHash(
+                        Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_COLOR)))
+                .setFontPackageHash(Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_FONT)))
+                .setShapePackageHash(
+                        Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_SHAPE)))
+                .log();
     }
 
     @Override
     public void logThemeApplied(ThemeBundle theme, boolean isCustomTheme) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_APPLIED,
-                Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_COLOR)),
-                Objects.hashCode(getThemePackage(theme,OVERLAY_CATEGORY_FONT)),
-                Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_SHAPE)),
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(StyleEnums.PICKER_APPLIED)
+                .setColorPackageHash(
+                        Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_COLOR)))
+                .setFontPackageHash(Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_FONT)))
+                .setShapePackageHash(
+                        Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_SHAPE)))
+                .log();
     }
 
     @Override
     public void logColorApplied(int action, ColorOption colorOption) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, action,
-                0, 0, 0, 0, 0, 0, 0,
-                colorOption.getIndex(),
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, colorOption.getStyle().ordinal() + 1);
+        new SysUiStatsLogger()
+                .setAction(action)
+                .setColorPreference(colorOption.getIndex())
+                .setColorVariant(colorOption.getStyle().ordinal() + 1)
+                .log();
     }
 
     @Override
     public void logClockSelected(Clockface clock) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_SELECT,
-                0, 0, 0,
-                Objects.hashCode(clock.getId()),
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(StyleEnums.PICKER_SELECT)
+                .setClockPackageHash(Objects.hashCode(clock.getId()))
+                .log();
     }
 
     @Override
     public void logClockApplied(Clockface clock) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_APPLIED,
-                0, 0, 0,
-                Objects.hashCode(clock.getId()),
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(StyleEnums.PICKER_APPLIED)
+                .setClockPackageHash(Objects.hashCode(clock.getId()))
+                .log();
     }
 
     @Override
     public void logGridSelected(GridOption grid) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_SELECT,
-                0, 0, 0, 0,
-                grid.cols,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(StyleEnums.PICKER_SELECT)
+                .setLauncherGrid(grid.cols)
+                .log();
     }
 
     @Override
     public void logGridApplied(GridOption grid) {
-        SysUiStatsLog.write(STYLE_UI_CHANGED, StyleEnums.PICKER_APPLIED,
-                0, 0, 0, 0,
-                grid.cols,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+        new SysUiStatsLogger()
+                .setAction(StyleEnums.PICKER_APPLIED)
+                .setLauncherGrid(grid.cols)
+                .log();
     }
 
     private int getAppLaunchSource(Intent launchSource) {
diff --git a/src/com/android/customization/module/SysUiStatsLogger.kt b/src/com/android/customization/module/SysUiStatsLogger.kt
new file mode 100644
index 0000000..eb3bcc0
--- /dev/null
+++ b/src/com/android/customization/module/SysUiStatsLogger.kt
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.customization.module
+
+import android.stats.style.StyleEnums
+import com.android.systemui.shared.system.SysUiStatsLog
+import com.android.systemui.shared.system.SysUiStatsLog.STYLE_UI_CHANGED
+
+/**
+ * The builder for [SysUiStatsLog].
+ */
+class SysUiStatsLogger {
+
+    private var atom = STYLE_UI_CHANGED
+    private var action = StyleEnums.DEFAULT_ACTION
+    private var colorPackageHash = 0
+    private var fontPackageHash = 0
+    private var shapePackageHash = 0
+    private var clockPackageHash = 0
+    private var launcherGrid = 0
+    private var wallpaperCategoryHash = 0
+    private var wallpaperIdHash = 0
+    private var colorPreference = 0
+    private var locationPreference = StyleEnums.EFFECT_PREFERENCE_UNSPECIFIED
+    private var datePreference = StyleEnums.DATE_PREFERENCE_UNSPECIFIED
+    private var launchedPreference = StyleEnums.LAUNCHED_PREFERENCE_UNSPECIFIED
+    private var effectPreference = StyleEnums.EFFECT_PREFERENCE_UNSPECIFIED
+    private var effectIdHash = 0
+    private var lockWallpaperCategoryHash = 0
+    private var lockWallpaperIdHash = 0
+    private var firstLaunchDateSinceSetup = 0
+    private var firstWallpaperApplyDateSinceSetup = 0
+    private var appLaunchCount = 0
+    private var colorVariant = 0
+
+    fun setAction(action: Int) =
+        apply { this.action = action }
+
+    fun setColorPackageHash(color_package_hash: Int) =
+        apply { this.colorPackageHash = color_package_hash }
+
+    fun setFontPackageHash(font_package_hash: Int) =
+        apply { this.fontPackageHash = font_package_hash }
+
+    fun setShapePackageHash(shape_package_hash: Int) =
+        apply { this.shapePackageHash = shape_package_hash }
+
+    fun setClockPackageHash(clock_package_hash: Int) =
+        apply { this.clockPackageHash = clock_package_hash }
+
+    fun setLauncherGrid(launcher_grid: Int) =
+        apply { this.launcherGrid = launcher_grid }
+
+    fun setWallpaperCategoryHash(wallpaper_category_hash: Int) =
+        apply { this.wallpaperCategoryHash = wallpaper_category_hash }
+
+    fun setWallpaperIdHash(wallpaper_id_hash: Int) =
+        apply { this.wallpaperIdHash = wallpaper_id_hash }
+
+    fun setColorPreference(color_preference: Int) =
+        apply { this.colorPreference = color_preference }
+
+    fun setLocationPreference(location_preference: Int) =
+        apply { this.locationPreference = location_preference }
+
+    fun setDatePreference(date_preference: Int) =
+        apply { this.datePreference = date_preference }
+
+    fun setLaunchedPreference(launched_preference: Int) =
+        apply { this.launchedPreference = launched_preference }
+
+    fun setEffectPreference(effect_preference: Int) =
+        apply { this.effectPreference = effect_preference }
+
+    fun setEffectIdHash(effect_id_hash: Int) =
+        apply { this.effectIdHash = effect_id_hash }
+
+    fun setLockWallpaperCategoryHash(lock_wallpaper_category_hash: Int) =
+        apply { this.lockWallpaperCategoryHash = lock_wallpaper_category_hash }
+
+    fun setLockWallpaperIdHash(lock_wallpaper_id_hash: Int) =
+        apply { this.lockWallpaperIdHash = lock_wallpaper_id_hash }
+
+    fun setFirstLaunchDateSinceSetup(first_launch_date_since_setup: Int) =
+        apply { this.firstLaunchDateSinceSetup = first_launch_date_since_setup }
+
+    fun setFirstWallpaperApplyDateSinceSetup(first_wallpaper_apply_date_since_setup: Int) =
+        apply {
+            this.firstWallpaperApplyDateSinceSetup = first_wallpaper_apply_date_since_setup
+        }
+
+    fun setAppLaunchCount(app_launch_count: Int) =
+        apply { this.appLaunchCount = app_launch_count }
+
+    fun setColorVariant(color_variant: Int) =
+        apply { this.colorVariant = color_variant }
+
+    fun log() {
+        SysUiStatsLog.write(
+            atom,
+            action,
+            colorPackageHash,
+            fontPackageHash,
+            shapePackageHash,
+            clockPackageHash,
+            launcherGrid,
+            wallpaperCategoryHash,
+            wallpaperIdHash,
+            colorPreference,
+            locationPreference,
+            datePreference,
+            launchedPreference,
+            effectPreference,
+            effectIdHash,
+            lockWallpaperCategoryHash,
+            lockWallpaperIdHash,
+            firstLaunchDateSinceSetup,
+            firstWallpaperApplyDateSinceSetup,
+            appLaunchCount,
+            colorVariant
+        )
+    }
+}
\ No newline at end of file
diff --git a/themes/Android.bp b/themes/Android.bp
new file mode 100644
index 0000000..fb3d9be
--- /dev/null
+++ b/themes/Android.bp
@@ -0,0 +1,38 @@
+// Copyright (C) 2022 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// ==================================================
+package {
+    // See: http://go/android-license-faq
+    default_applicable_licenses: [
+        "Android-Apache-2.0",
+    ],
+}
+
+android_app {
+
+    name: "ThemesStub",
+    optimize: {
+        enabled: false,
+    },
+
+    aaptflags: ["--auto-add-overlay"],
+
+    sdk_version: "current",
+
+    product_specific: true,
+
+}
+
+// ==================================================
diff --git a/themes/AndroidManifest.xml b/themes/AndroidManifest.xml
new file mode 100755
index 0000000..68ead89
--- /dev/null
+++ b/themes/AndroidManifest.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.customization.themes"
+    android:versionCode="1">
+
+    <uses-sdk
+      android:minSdkVersion="31"
+      android:targetSdkVersion="31"/>
+
+    <application
+        android:hasCode="false"
+        android:label="@string/app_name"/>
+
+</manifest>
diff --git a/themes/res/values-b+sr+Latn/strings.xml b/themes/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 0000000..4227e14
--- /dev/null
+++ b/themes/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="rainbow_color_name_red" msgid="7452506008058561006">"Crvena"</string>
+    <string name="rainbow_color_name_orange" msgid="2921298510262609543">"Narandžasta"</string>
+    <string name="rainbow_color_name_yellow" msgid="8675574652757989201">"Žuta"</string>
+    <string name="rainbow_color_name_green" msgid="1932895389710184112">"Zelena"</string>
+    <string name="rainbow_color_name_blue" msgid="3473176664458856892">"Plava"</string>
+    <string name="rainbow_color_name_purple" msgid="2704722524588084868">"Ljubičasta"</string>
+    <string name="rainbow_color_name_magenta" msgid="7248703626077785569">"Magenta"</string>
+</resources>
diff --git a/themes/res/values-en-rAU/strings.xml b/themes/res/values-en-rAU/strings.xml
new file mode 100644
index 0000000..f10dfca
--- /dev/null
+++ b/themes/res/values-en-rAU/strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="rainbow_color_name_red" msgid="7452506008058561006">"Red"</string>
+    <string name="rainbow_color_name_orange" msgid="2921298510262609543">"Orange"</string>
+    <string name="rainbow_color_name_yellow" msgid="8675574652757989201">"Yellow"</string>
+    <string name="rainbow_color_name_green" msgid="1932895389710184112">"Green"</string>
+    <string name="rainbow_color_name_blue" msgid="3473176664458856892">"Blue"</string>
+    <string name="rainbow_color_name_purple" msgid="2704722524588084868">"Purple"</string>
+    <string name="rainbow_color_name_magenta" msgid="7248703626077785569">"Magenta"</string>
+</resources>
diff --git a/themes/res/values-en-rCA/strings.xml b/themes/res/values-en-rCA/strings.xml
new file mode 100644
index 0000000..f10dfca
--- /dev/null
+++ b/themes/res/values-en-rCA/strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="rainbow_color_name_red" msgid="7452506008058561006">"Red"</string>
+    <string name="rainbow_color_name_orange" msgid="2921298510262609543">"Orange"</string>
+    <string name="rainbow_color_name_yellow" msgid="8675574652757989201">"Yellow"</string>
+    <string name="rainbow_color_name_green" msgid="1932895389710184112">"Green"</string>
+    <string name="rainbow_color_name_blue" msgid="3473176664458856892">"Blue"</string>
+    <string name="rainbow_color_name_purple" msgid="2704722524588084868">"Purple"</string>
+    <string name="rainbow_color_name_magenta" msgid="7248703626077785569">"Magenta"</string>
+</resources>
diff --git a/themes/res/values-en-rGB/strings.xml b/themes/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..f10dfca
--- /dev/null
+++ b/themes/res/values-en-rGB/strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="rainbow_color_name_red" msgid="7452506008058561006">"Red"</string>
+    <string name="rainbow_color_name_orange" msgid="2921298510262609543">"Orange"</string>
+    <string name="rainbow_color_name_yellow" msgid="8675574652757989201">"Yellow"</string>
+    <string name="rainbow_color_name_green" msgid="1932895389710184112">"Green"</string>
+    <string name="rainbow_color_name_blue" msgid="3473176664458856892">"Blue"</string>
+    <string name="rainbow_color_name_purple" msgid="2704722524588084868">"Purple"</string>
+    <string name="rainbow_color_name_magenta" msgid="7248703626077785569">"Magenta"</string>
+</resources>
diff --git a/themes/res/values-en-rIN/strings.xml b/themes/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..f10dfca
--- /dev/null
+++ b/themes/res/values-en-rIN/strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="rainbow_color_name_red" msgid="7452506008058561006">"Red"</string>
+    <string name="rainbow_color_name_orange" msgid="2921298510262609543">"Orange"</string>
+    <string name="rainbow_color_name_yellow" msgid="8675574652757989201">"Yellow"</string>
+    <string name="rainbow_color_name_green" msgid="1932895389710184112">"Green"</string>
+    <string name="rainbow_color_name_blue" msgid="3473176664458856892">"Blue"</string>
+    <string name="rainbow_color_name_purple" msgid="2704722524588084868">"Purple"</string>
+    <string name="rainbow_color_name_magenta" msgid="7248703626077785569">"Magenta"</string>
+</resources>
diff --git a/themes/res/values-en-rXC/strings.xml b/themes/res/values-en-rXC/strings.xml
new file mode 100644
index 0000000..c6114a4
--- /dev/null
+++ b/themes/res/values-en-rXC/strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="rainbow_color_name_red" msgid="7452506008058561006">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎‏‎‏‏‏‎‏‎‏‎‏‏‎‎‎‎‏‏‎‎‏‎‏‏‏‎‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎Red‎‏‎‎‏‎"</string>
+    <string name="rainbow_color_name_orange" msgid="2921298510262609543">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‎‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‎‎‏‎‎‎‏‏‏‎‎‏‏‎‎‎‏‎‏‎‎‏‎‏‎‎‏‏‎‏‎‎‎‎‏‏‏‎Orange‎‏‎‎‏‎"</string>
+    <string name="rainbow_color_name_yellow" msgid="8675574652757989201">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‏‏‎‏‎‏‎‏‎‎‏‎‏‏‏‎‎‏‏‏‏‎‎‎‎‎‎‎‎‏‎‏‏‏‎‏‎‏‏‏‎‏‎‏‎‎‎‏‎Yellow‎‏‎‎‏‎"</string>
+    <string name="rainbow_color_name_green" msgid="1932895389710184112">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‏‎‎‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‎‏‏‎‏‏‏‎‏‎‏‏‎‎‎‎‎Green‎‏‎‎‏‎"</string>
+    <string name="rainbow_color_name_blue" msgid="3473176664458856892">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‏‎‎‏‏‎‎‏‏‎‎‏‏‏‏‎‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎‎Blue‎‏‎‎‏‎"</string>
+    <string name="rainbow_color_name_purple" msgid="2704722524588084868">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‎‏‎‎‏‎‎‎‏‏‎‏‎‏‏‎‎‏‏‏‎‎‏‎‎‏‏‏‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‎‏‎‎‎Purple‎‏‎‎‏‎"</string>
+    <string name="rainbow_color_name_magenta" msgid="7248703626077785569">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‏‏‎‎‎‏‎‎‏‎‎‎‏‏‎‎‎‏‎‏‎‏‏‏‎‏‎‏‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‎‏‏‏‏‎‎‎‎‏‎Magenta‎‏‎‎‏‎"</string>
+</resources>
diff --git a/themes/res/values-lo/strings.xml b/themes/res/values-lo/strings.xml
new file mode 100644
index 0000000..e4d1ebf
--- /dev/null
+++ b/themes/res/values-lo/strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="rainbow_color_name_red" msgid="7452506008058561006">"ສີແດງ"</string>
+    <string name="rainbow_color_name_orange" msgid="2921298510262609543">"ສີສົ້ມ"</string>
+    <string name="rainbow_color_name_yellow" msgid="8675574652757989201">"ສີເຫຼືອງ"</string>
+    <string name="rainbow_color_name_green" msgid="1932895389710184112">"ສີຂຽວ"</string>
+    <string name="rainbow_color_name_blue" msgid="3473176664458856892">"ສີຟ້າ"</string>
+    <string name="rainbow_color_name_purple" msgid="2704722524588084868">"ສີມ່ວງ"</string>
+    <string name="rainbow_color_name_magenta" msgid="7248703626077785569">"ສີແດງມ່ວງ"</string>
+</resources>
diff --git a/themes/res/values-lt/strings.xml b/themes/res/values-lt/strings.xml
new file mode 100644
index 0000000..0a6396e
--- /dev/null
+++ b/themes/res/values-lt/strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="rainbow_color_name_red" msgid="7452506008058561006">"Raudona"</string>
+    <string name="rainbow_color_name_orange" msgid="2921298510262609543">"Oranžinė"</string>
+    <string name="rainbow_color_name_yellow" msgid="8675574652757989201">"Geltona"</string>
+    <string name="rainbow_color_name_green" msgid="1932895389710184112">"Žalia"</string>
+    <string name="rainbow_color_name_blue" msgid="3473176664458856892">"Mėlyna"</string>
+    <string name="rainbow_color_name_purple" msgid="2704722524588084868">"Violetinė"</string>
+    <string name="rainbow_color_name_magenta" msgid="7248703626077785569">"Purpurinė"</string>
+</resources>
diff --git a/themes/res/values-pa/strings.xml b/themes/res/values-pa/strings.xml
new file mode 100644
index 0000000..dae483e
--- /dev/null
+++ b/themes/res/values-pa/strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="rainbow_color_name_red" msgid="7452506008058561006">"ਲਾਲ"</string>
+    <string name="rainbow_color_name_orange" msgid="2921298510262609543">"ਸੰਤਰੀ"</string>
+    <string name="rainbow_color_name_yellow" msgid="8675574652757989201">"ਪੀਲਾ"</string>
+    <string name="rainbow_color_name_green" msgid="1932895389710184112">"ਹਰਾ"</string>
+    <string name="rainbow_color_name_blue" msgid="3473176664458856892">"ਨੀਲਾ"</string>
+    <string name="rainbow_color_name_purple" msgid="2704722524588084868">"ਜਾਮਨੀ"</string>
+    <string name="rainbow_color_name_magenta" msgid="7248703626077785569">"ਮੈਜੰਟਾ"</string>
+</resources>
diff --git a/themes/res/values-sr/strings.xml b/themes/res/values-sr/strings.xml
new file mode 100644
index 0000000..68155e0
--- /dev/null
+++ b/themes/res/values-sr/strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="rainbow_color_name_red" msgid="7452506008058561006">"Црвена"</string>
+    <string name="rainbow_color_name_orange" msgid="2921298510262609543">"Наранџаста"</string>
+    <string name="rainbow_color_name_yellow" msgid="8675574652757989201">"Жута"</string>
+    <string name="rainbow_color_name_green" msgid="1932895389710184112">"Зелена"</string>
+    <string name="rainbow_color_name_blue" msgid="3473176664458856892">"Плава"</string>
+    <string name="rainbow_color_name_purple" msgid="2704722524588084868">"Љубичаста"</string>
+    <string name="rainbow_color_name_magenta" msgid="7248703626077785569">"Магента"</string>
+</resources>
diff --git a/themes/res/values/color-bundles.xml b/themes/res/values/color-bundles.xml
new file mode 100644
index 0000000..4d7cc63
--- /dev/null
+++ b/themes/res/values/color-bundles.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<resources>
+    <array name="color_bundles">
+        <item>rainbow1</item>
+        <item>rainbow2</item>
+        <item>rainbow3</item>
+        <item>rainbow4</item>
+        <item>rainbow5</item>
+        <item>rainbow6</item>
+        <item>rainbow7</item>
+    </array>
+</resources>
diff --git a/themes/res/values/colors.xml b/themes/res/values/colors.xml
new file mode 100644
index 0000000..3ffb9fc
--- /dev/null
+++ b/themes/res/values/colors.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<resources>
+    <color name="color_secondary_rainbow1">#FFB2B5</color>
+    <color name="color_secondary_rainbow2">#FFB868</color>
+    <color name="color_secondary_rainbow3">#E9C44A</color>
+    <color name="color_secondary_rainbow4">#BAF293</color>
+    <color name="color_secondary_rainbow5">#96CBFF</color>
+    <color name="color_secondary_rainbow6">#CBBFFF</color>
+    <color name="color_secondary_rainbow7">#F5ACFB</color>
+</resources>
diff --git a/themes/res/values/strings.xml b/themes/res/values/strings.xml
new file mode 100644
index 0000000..8bc04bd
--- /dev/null
+++ b/themes/res/values/strings.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<resources>
+    <string name="app_name" translatable="false">Themes</string>
+    <string name="rainbow_color_name_red">Red</string>
+    <string name="rainbow_color_name_orange">Orange</string>
+    <string name="rainbow_color_name_yellow">Yellow</string>
+    <string name="rainbow_color_name_green">Green</string>
+    <string name="rainbow_color_name_blue">Blue</string>
+    <string name="rainbow_color_name_purple">Purple</string>
+    <string name="rainbow_color_name_magenta">Magenta</string>
+
+    <string name="bundle_name_rainbow1" translatable="false">@string/rainbow_color_name_red</string>
+    <string name="bundle_name_rainbow2" translatable="false">@string/rainbow_color_name_orange</string>
+    <string name="bundle_name_rainbow3" translatable="false">@string/rainbow_color_name_yellow</string>
+    <string name="bundle_name_rainbow4" translatable="false">@string/rainbow_color_name_green</string>
+    <string name="bundle_name_rainbow5" translatable="false">@string/rainbow_color_name_blue</string>
+    <string name="bundle_name_rainbow6" translatable="false">@string/rainbow_color_name_purple</string>
+    <string name="bundle_name_rainbow7" translatable="false">@string/rainbow_color_name_magenta</string>
+
+    <string name="color_style_rainbow1" translatable="false">RAINBOW</string>
+    <string name="color_style_rainbow2" translatable="false">RAINBOW</string>
+    <string name="color_style_rainbow3" translatable="false">RAINBOW</string>
+    <string name="color_style_rainbow4" translatable="false">RAINBOW</string>
+    <string name="color_style_rainbow5" translatable="false">RAINBOW</string>
+    <string name="color_style_rainbow6" translatable="false">RAINBOW</string>
+    <string name="color_style_rainbow7" translatable="false">RAINBOW</string>
+</resources>