From 829593dec48ecfea68dbe9e7fb78372758868b09 Mon Sep 17 00:00:00 2001
From: Ang Li <ihcinihsdk@google.com>
Date: Thu, 16 May 2024 07:43:38 +0000
Subject: [PATCH] Extend RemoteViews color override to more colors.

The one-pager link: go/material-you-color-extension. Note that this
extension will have no effect for existing solutions where the extended
color resources are not explicitly configured - that's because the
implementation of RemoteViews specifies to use its original value if it
fails to find an entry in the user-provided sparse array.

Bug: 342005489
Change-Id: Ifd46fe882881e5a201bce0249ed8652313a330ce
---
 core/java/android/widget/RemoteViews.java     |   3 +-
 .../values/colors.xml                         | 116 ++++++++++++++++++
 .../values/public.xml                         | 116 ++++++++++++++++++
 3 files changed, 234 insertions(+), 1 deletion(-)

diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index 5430f8f6add3..4099e88f1c17 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -6661,7 +6661,8 @@ public class RemoteViews implements Parcelable, Filter {
     public static final class ColorResources {
         // Set of valid colors resources.
         private static final int FIRST_RESOURCE_COLOR_ID = android.R.color.system_neutral1_0;
-        private static final int LAST_RESOURCE_COLOR_ID = android.R.color.system_accent3_1000;
+        private static final int LAST_RESOURCE_COLOR_ID =
+            android.R.color.system_error_1000;
         // Size, in bytes, of an entry in the array of colors in an ARSC file.
         private static final int ARSC_ENTRY_SIZE = 16;
 
diff --git a/core/res/remote_color_resources_res/values/colors.xml b/core/res/remote_color_resources_res/values/colors.xml
index aff3a9592645..dcafb831809a 100644
--- a/core/res/remote_color_resources_res/values/colors.xml
+++ b/core/res/remote_color_resources_res/values/colors.xml
@@ -66,4 +66,120 @@
   <color name="system_neutral2_800">#303030</color>
   <color name="system_neutral2_900">#1b1b1b</color>
   <color name="system_neutral2_1000">#000000</color>
+  <color name="system_primary_container_light">#DAE2FF</color>
+  <color name="system_on_primary_container_light">#001849</color>
+  <color name="system_primary_light">#495D92</color>
+  <color name="system_on_primary_light">#FFFFFF</color>
+  <color name="system_secondary_container_light">#DDE2F9</color>
+  <color name="system_on_secondary_container_light">#151B2C</color>
+  <color name="system_secondary_light">#585E71</color>
+  <color name="system_on_secondary_light">#FFFFFF</color>
+  <color name="system_tertiary_container_light">#FED6F9</color>
+  <color name="system_on_tertiary_container_light">#2B122B</color>
+  <color name="system_tertiary_light">#735471</color>
+  <color name="system_on_tertiary_light">#FFFFFF</color>
+  <color name="system_background_light">#FAF8FF</color>
+  <color name="system_on_background_light">#1A1B21</color>
+  <color name="system_surface_light">#FAF8FF</color>
+  <color name="system_on_surface_light">#1A1B21</color>
+  <color name="system_surface_container_low_light">#F4F3FA</color>
+  <color name="system_surface_container_lowest_light">#FFFFFF</color>
+  <color name="system_surface_container_light">#EEEDF4</color>
+  <color name="system_surface_container_high_light">#E8E7EF</color>
+  <color name="system_surface_container_highest_light">#E3E2E9</color>
+  <color name="system_surface_bright_light">#FAF8FF</color>
+  <color name="system_surface_dim_light">#DAD9E0</color>
+  <color name="system_surface_variant_light">#E1E2EC</color>
+  <color name="system_on_surface_variant_light">#45464F</color>
+  <color name="system_outline_light">#757780</color>
+  <color name="system_outline_variant_light">#C5C6D0</color>
+  <color name="system_error_light">#BA1A1A</color>
+  <color name="system_on_error_light">#FFFFFF</color>
+  <color name="system_error_container_light">#FFDAD6</color>
+  <color name="system_on_error_container_light">#410002</color>
+  <color name="system_control_activated_light">#DAE2FF</color>
+  <color name="system_control_normal_light">#45464F</color>
+  <color name="system_control_highlight_light">#000000</color>
+  <color name="system_text_primary_inverse_light">#E2E2E9</color>
+  <color name="system_text_secondary_and_tertiary_inverse_light">#C5C6D0</color>
+  <color name="system_text_primary_inverse_disable_only_light">#E3E2E9</color>
+  <color name="system_text_secondary_and_tertiary_inverse_disabled_light">#E3E2E9</color>
+  <color name="system_text_hint_inverse_light">#E3E2E9</color>
+  <color name="system_palette_key_color_primary_light">#6275AC</color>
+  <color name="system_palette_key_color_secondary_light">#71768B</color>
+  <color name="system_palette_key_color_tertiary_light">#8E6D8B</color>
+  <color name="system_palette_key_color_neutral_light">#76777D</color>
+  <color name="system_palette_key_color_neutral_variant_light">#767780</color>
+  <color name="system_primary_container_dark">#314578</color>
+  <color name="system_on_primary_container_dark">#DAE2FF</color>
+  <color name="system_primary_dark">#B2C5FF</color>
+  <color name="system_on_primary_dark">#182E60</color>
+  <color name="system_secondary_container_dark">#414659</color>
+  <color name="system_on_secondary_container_dark">#DDE2F9</color>
+  <color name="system_secondary_dark">#C0C6DD</color>
+  <color name="system_on_secondary_dark">#2A3042</color>
+  <color name="system_tertiary_container_dark">#5A3D59</color>
+  <color name="system_on_tertiary_container_dark">#FED6F9</color>
+  <color name="system_tertiary_dark">#E1BBDC</color>
+  <color name="system_on_tertiary_dark">#422741</color>
+  <color name="system_background_dark">#121318</color>
+  <color name="system_on_background_dark">#E3E2E9</color>
+  <color name="system_surface_dark">#121318</color>
+  <color name="system_on_surface_dark">#E3E2E9</color>
+  <color name="system_surface_container_low_dark">#1A1B21</color>
+  <color name="system_surface_container_lowest_dark">#0D0E13</color>
+  <color name="system_surface_container_dark">#1E1F25</color>
+  <color name="system_surface_container_high_dark">#292A2F</color>
+  <color name="system_surface_container_highest_dark">#33343A</color>
+  <color name="system_surface_bright_dark">#38393F</color>
+  <color name="system_surface_dim_dark">#121318</color>
+  <color name="system_surface_variant_dark">#45464F</color>
+  <color name="system_on_surface_variant_dark">#C5C6D0</color>
+  <color name="system_outline_dark">#8F909A</color>
+  <color name="system_outline_variant_dark">#45464F</color>
+  <color name="system_error_dark">#FFB4AB</color>
+  <color name="system_on_error_dark">#690005</color>
+  <color name="system_error_container_dark">#93000a</color>
+  <color name="system_on_error_container_dark">#FFDAD6</color>
+  <color name="system_control_activated_dark">#314578</color>
+  <color name="system_control_normal_dark">#C5C6D0</color>
+  <color name="system_control_highlight_dark">#FFFFFF</color>
+  <color name="system_text_primary_inverse_dark">#1A1B21</color>
+  <color name="system_text_secondary_and_tertiary_inverse_dark">#45464F</color>
+  <color name="system_text_primary_inverse_disable_only_dark">#1A1B21</color>
+  <color name="system_text_secondary_and_tertiary_inverse_disabled_dark">#1A1B21</color>
+  <color name="system_text_hint_inverse_dark">#1A1B21</color>
+  <color name="system_palette_key_color_primary_dark">#6275AC</color>
+  <color name="system_palette_key_color_secondary_dark">#71768B</color>
+  <color name="system_palette_key_color_tertiary_dark">#8E6D8B</color>
+  <color name="system_palette_key_color_neutral_dark">#76777D</color>
+  <color name="system_palette_key_color_neutral_variant_dark">#767780</color>
+  <color name="system_primary_fixed">#DAE2FF</color>
+  <color name="system_primary_fixed_dim">#B2C5FF</color>
+  <color name="system_on_primary_fixed">#001849</color>
+  <color name="system_on_primary_fixed_variant">#314578</color>
+  <color name="system_secondary_fixed">#DDE2F9</color>
+  <color name="system_secondary_fixed_dim">#C0C6DD</color>
+  <color name="system_on_secondary_fixed">#151B2C</color>
+  <color name="system_on_secondary_fixed_variant">#414659</color>
+  <color name="system_tertiary_fixed">#FED6F9</color>
+  <color name="system_tertiary_fixed_dim">#E1BBDC</color>
+  <color name="system_on_tertiary_fixed">#2B122B</color>
+  <color name="system_on_tertiary_fixed_variant">#5A3D59</color>
+  <color name="system_surface_disabled">#faf8ff</color>
+  <color name="system_on_surface_disabled">#1a1b21</color>
+  <color name="system_outline_disabled">#757780</color>
+  <color name="system_error_0">#ffffff</color>
+  <color name="system_error_10">#fffbf9</color>
+  <color name="system_error_50">#fceeee</color>
+  <color name="system_error_100">#f9dedc</color>
+  <color name="system_error_200">#f2b8b5</color>
+  <color name="system_error_300">#ec928e</color>
+  <color name="system_error_400">#e46962</color>
+  <color name="system_error_500">#dc362e</color>
+  <color name="system_error_600">#b3261e</color>
+  <color name="system_error_700">#8c1d18</color>
+  <color name="system_error_800">#601410</color>
+  <color name="system_error_900">#410e0b</color>
+  <color name="system_error_1000">#000000</color>
 </resources>
diff --git a/core/res/remote_color_resources_res/values/public.xml b/core/res/remote_color_resources_res/values/public.xml
index 4b0a89202ad1..d639ed69cfd7 100644
--- a/core/res/remote_color_resources_res/values/public.xml
+++ b/core/res/remote_color_resources_res/values/public.xml
@@ -66,5 +66,121 @@
     <public name="system_neutral2_800" />
     <public name="system_neutral2_900" />
     <public name="system_neutral2_1000" />
+    <public name="system_primary_container_light" />
+    <public name="system_on_primary_container_light" />
+    <public name="system_primary_light" />
+    <public name="system_on_primary_light" />
+    <public name="system_secondary_container_light" />
+    <public name="system_on_secondary_container_light" />
+    <public name="system_secondary_light" />
+    <public name="system_on_secondary_light" />
+    <public name="system_tertiary_container_light" />
+    <public name="system_on_tertiary_container_light" />
+    <public name="system_tertiary_light" />
+    <public name="system_on_tertiary_light" />
+    <public name="system_background_light" />
+    <public name="system_on_background_light" />
+    <public name="system_surface_light" />
+    <public name="system_on_surface_light" />
+    <public name="system_surface_container_low_light" />
+    <public name="system_surface_container_lowest_light" />
+    <public name="system_surface_container_light" />
+    <public name="system_surface_container_high_light" />
+    <public name="system_surface_container_highest_light" />
+    <public name="system_surface_bright_light" />
+    <public name="system_surface_dim_light" />
+    <public name="system_surface_variant_light" />
+    <public name="system_on_surface_variant_light" />
+    <public name="system_outline_light" />
+    <public name="system_error_light" />
+    <public name="system_on_error_light" />
+    <public name="system_error_container_light" />
+    <public name="system_on_error_container_light" />
+    <public name="system_control_activated_light" />
+    <public name="system_control_normal_light" />
+    <public name="system_control_highlight_light" />
+    <public name="system_text_primary_inverse_light" />
+    <public name="system_text_secondary_and_tertiary_inverse_light" />
+    <public name="system_text_primary_inverse_disable_only_light" />
+    <public name="system_text_secondary_and_tertiary_inverse_disabled_light" />
+    <public name="system_text_hint_inverse_light" />
+    <public name="system_palette_key_color_primary_light" />
+    <public name="system_palette_key_color_secondary_light" />
+    <public name="system_palette_key_color_tertiary_light" />
+    <public name="system_palette_key_color_neutral_light" />
+    <public name="system_palette_key_color_neutral_variant_light" />
+    <public name="system_primary_container_dark" />
+    <public name="system_on_primary_container_dark" />
+    <public name="system_primary_dark" />
+    <public name="system_on_primary_dark" />
+    <public name="system_secondary_container_dark" />
+    <public name="system_on_secondary_container_dark" />
+    <public name="system_secondary_dark" />
+    <public name="system_on_secondary_dark" />
+    <public name="system_tertiary_container_dark" />
+    <public name="system_on_tertiary_container_dark" />
+    <public name="system_tertiary_dark" />
+    <public name="system_on_tertiary_dark" />
+    <public name="system_background_dark" />
+    <public name="system_on_background_dark" />
+    <public name="system_surface_dark" />
+    <public name="system_on_surface_dark" />
+    <public name="system_surface_container_low_dark" />
+    <public name="system_surface_container_lowest_dark" />
+    <public name="system_surface_container_dark" />
+    <public name="system_surface_container_high_dark" />
+    <public name="system_surface_container_highest_dark" />
+    <public name="system_surface_bright_dark" />
+    <public name="system_surface_dim_dark" />
+    <public name="system_surface_variant_dark" />
+    <public name="system_on_surface_variant_dark" />
+    <public name="system_outline_dark" />
+    <public name="system_error_dark" />
+    <public name="system_on_error_dark" />
+    <public name="system_error_container_dark" />
+    <public name="system_on_error_container_dark" />
+    <public name="system_control_activated_dark" />
+    <public name="system_control_normal_dark" />
+    <public name="system_control_highlight_dark" />
+    <public name="system_text_primary_inverse_dark" />
+    <public name="system_text_secondary_and_tertiary_inverse_dark" />
+    <public name="system_text_primary_inverse_disable_only_dark" />
+    <public name="system_text_secondary_and_tertiary_inverse_disabled_dark" />
+    <public name="system_text_hint_inverse_dark" />
+    <public name="system_palette_key_color_primary_dark" />
+    <public name="system_palette_key_color_secondary_dark" />
+    <public name="system_palette_key_color_tertiary_dark" />
+    <public name="system_palette_key_color_neutral_dark" />
+    <public name="system_palette_key_color_neutral_variant_dark" />
+    <public name="system_primary_fixed" />
+    <public name="system_primary_fixed_dim" />
+    <public name="system_on_primary_fixed" />
+    <public name="system_on_primary_fixed_variant" />
+    <public name="system_secondary_fixed" />
+    <public name="system_secondary_fixed_dim" />
+    <public name="system_on_secondary_fixed" />
+    <public name="system_on_secondary_fixed_variant" />
+    <public name="system_tertiary_fixed" />
+    <public name="system_tertiary_fixed_dim" />
+    <public name="system_on_tertiary_fixed" />
+    <public name="system_on_tertiary_fixed_variant" />
+    <public name="system_outline_variant_light" />
+    <public name="system_outline_variant_dark" />
+    <public name="system_surface_disabled" />
+    <public name="system_on_surface_disabled" />
+    <public name="system_outline_disabled" />
+    <public name="system_error_0" />
+    <public name="system_error_10" />
+    <public name="system_error_50" />
+    <public name="system_error_100" />
+    <public name="system_error_200" />
+    <public name="system_error_300" />
+    <public name="system_error_400" />
+    <public name="system_error_500" />
+    <public name="system_error_600" />
+    <public name="system_error_700" />
+    <public name="system_error_800" />
+    <public name="system_error_900" />
+    <public name="system_error_1000" />
   </public-group>
 </resources>
-- 
GitLab