diff --git a/TEST_MAPPING b/TEST_MAPPING
index 0bde595..72b9f3a 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -1,12 +1,28 @@
 {
   "presubmit": [
     {
+      "name": "WallpaperPicker2Tests",
+      "options": [
+        {
+          "exclude-annotation": "org.junit.Ignore"
+        }
+      ]
+    },
+    {
       "name": "ThemePickerTests",
       "options": [
         {
           "exclude-annotation": "org.junit.Ignore"
         }
       ]
+    },
+    {
+      "name": "WallpaperPickerGoogleTests",
+      "options": [
+        {
+          "exclude-annotation": "org.junit.Ignore"
+        }
+      ]
     }
   ]
 }
diff --git a/res/color/keyguard_quick_affordance_slot_tab_background_color.xml b/res/color/picker_fragment_tab_background_color.xml
similarity index 90%
rename from res/color/keyguard_quick_affordance_slot_tab_background_color.xml
rename to res/color/picker_fragment_tab_background_color.xml
index 4708cef..6edf5f8 100644
--- a/res/color/keyguard_quick_affordance_slot_tab_background_color.xml
+++ b/res/color/picker_fragment_tab_background_color.xml
@@ -16,6 +16,6 @@
   -->
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_selected="true" android:color="@color/color_accent_primary" />
+    <item android:state_selected="true" android:color="@color/system_primary" />
     <item android:color="@android:color/transparent" />
 </selector>
diff --git a/res/color/picker_fragment_tab_text_color.xml b/res/color/picker_fragment_tab_text_color.xml
index 84502d4..438e4fc 100644
--- a/res/color/picker_fragment_tab_text_color.xml
+++ b/res/color/picker_fragment_tab_text_color.xml
@@ -16,6 +16,6 @@
   -->
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_selected="true" android:color="@color/text_color_on_accent" />
-    <item android:color="@color/text_color_primary" />
+    <item android:state_selected="true" android:color="@color/system_on_primary" />
+    <item android:color="@color/system_on_surface" />
 </selector>
diff --git a/res/drawable/carousel_item_card_background.xml b/res/drawable/carousel_item_card_background.xml
new file mode 100644
index 0000000..946d279
--- /dev/null
+++ b/res/drawable/carousel_item_card_background.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2023 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.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <solid android:color="@color/color_surface" />
+    <corners android:radius="16dp" />
+</shape>
\ No newline at end of file
diff --git a/res/drawable/clock_color_size_button_background.xml b/res/drawable/clock_color_size_button_background.xml
new file mode 100644
index 0000000..08d1c45
--- /dev/null
+++ b/res/drawable/clock_color_size_button_background.xml
@@ -0,0 +1,27 @@
+<!--
+     Copyright (C) 2023 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.
+-->
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="?android:colorControlHighlight">
+
+    <item android:id="@android:id/mask">
+        <shape android:shape="rectangle">
+            <corners android:radius="@dimen/clock_color_size_button_corner_radius" />
+            <solid android:color="?android:colorControlHighlight" />
+        </shape>
+    </item>
+
+    <item android:drawable="@drawable/clock_color_size_button_background_base" />
+</ripple>
diff --git a/res/drawable/clock_color_size_button_background_base.xml b/res/drawable/clock_color_size_button_background_base.xml
new file mode 100644
index 0000000..2e6f2be
--- /dev/null
+++ b/res/drawable/clock_color_size_button_background_base.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2023 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.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners android:radius="@dimen/clock_color_size_button_corner_radius" />
+    <solid android:color="@color/color_surface" />
+</shape>
\ No newline at end of file
diff --git a/res/drawable/color_option_selected_no_background.xml b/res/drawable/color_option_selected_no_background.xml
index 13451a5..365d70a 100644
--- a/res/drawable/color_option_selected_no_background.xml
+++ b/res/drawable/color_option_selected_no_background.xml
@@ -25,7 +25,7 @@
             android:innerRadius="@dimen/component_color_overflow_small_radius_default"
             android:thickness="2dp"
             android:useLevel="false">
-            <solid android:color="@color/text_color_primary"/>
+            <solid android:color="@color/system_secondary"/>
         </shape>
     </item>
     <item
diff --git a/res/drawable/ic_contrast.xml b/res/drawable/ic_contrast.xml
index 6e9f3bd..c95220c 100644
--- a/res/drawable/ic_contrast.xml
+++ b/res/drawable/ic_contrast.xml
@@ -2,7 +2,7 @@
     android:width="24dp"
     android:height="24dp"
     android:autoMirrored="true"
-    android:tint="@color/text_color_primary_inverse"
+    android:tint="@color/system_on_secondary"
     android:viewportHeight="24"
     android:viewportWidth="24">
     <path
diff --git a/res/drawable/ic_settings.xml b/res/drawable/ic_settings.xml
new file mode 100644
index 0000000..1a5b281
--- /dev/null
+++ b/res/drawable/ic_settings.xml
@@ -0,0 +1,24 @@
+<!--
+     Copyright (C) 2023 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="960"
+    android:viewportHeight="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M370,880L354,752Q341,747 329.5,740Q318,733 307,725L188,775L78,585L181,507Q180,500 180,493.5Q180,487 180,480Q180,473 180,466.5Q180,460 181,453L78,375L188,185L307,235Q318,227 330,220Q342,213 354,208L370,80L590,80L606,208Q619,213 630.5,220Q642,227 653,235L772,185L882,375L779,453Q780,460 780,466.5Q780,473 780,480Q780,487 780,493.5Q780,500 778,507L881,585L771,775L653,725Q642,733 630,740Q618,747 606,752L590,880L370,880ZM440,800L519,800L533,694Q564,686 590.5,670.5Q617,655 639,633L738,674L777,606L691,541Q696,527 698,511.5Q700,496 700,480Q700,464 698,448.5Q696,433 691,419L777,354L738,286L639,328Q617,305 590.5,289.5Q564,274 533,266L520,160L441,160L427,266Q396,274 369.5,289.5Q343,305 321,327L222,286L183,354L269,418Q264,433 262,448Q260,463 260,480Q260,496 262,511Q264,526 269,541L183,606L222,674L321,632Q343,655 369.5,670.5Q396,686 427,694L440,800ZM482,620Q540,620 581,579Q622,538 622,480Q622,422 581,381Q540,340 482,340Q423,340 382.5,381Q342,422 342,480Q342,538 382.5,579Q423,620 482,620ZM480,480L480,480Q480,480 480,480Q480,480 480,480L480,480L480,480L480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480L480,480L480,480L480,480Q480,480 480,480Q480,480 480,480L480,480L480,480L480,480Q480,480 480,480Q480,480 480,480L480,480L480,480L480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480L480,480L480,480L480,480Q480,480 480,480Q480,480 480,480L480,480L480,480Z"/>
+</vector>
diff --git a/res/drawable/picker_fragment_background.xml b/res/drawable/picker_fragment_background.xml
index 3a49d7a..49fa48b 100644
--- a/res/drawable/picker_fragment_background.xml
+++ b/res/drawable/picker_fragment_background.xml
@@ -16,5 +16,5 @@
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle">
     <corners android:radius="28dp" />
-    <solid android:color="@color/color_surface" />
+    <solid android:color="@color/picker_fragment_background" />
 </shape>
diff --git a/res/drawable/picker_fragment_tab_background.xml b/res/drawable/picker_fragment_tab_background.xml
index 3dad344..2742c72 100644
--- a/res/drawable/picker_fragment_tab_background.xml
+++ b/res/drawable/picker_fragment_tab_background.xml
@@ -16,5 +16,5 @@
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle">
     <corners android:radius="12dp" />
-    <solid android:color="@color/keyguard_quick_affordance_slot_tab_background_color" />
+    <solid android:color="@color/picker_fragment_tab_background_color" />
 </shape>
diff --git a/res/drawable/saturation_progress_drawable.xml b/res/drawable/saturation_progress_drawable.xml
index 6ba7e81..1461abe 100644
--- a/res/drawable/saturation_progress_drawable.xml
+++ b/res/drawable/saturation_progress_drawable.xml
@@ -24,7 +24,7 @@
             <shape>
                 <size android:height="4dp" />
                 <corners android:radius="2dp" />
-                <solid android:color="@color/color_surface_variant" />
+                <solid android:color="@color/system_outline_variant" />
             </shape>
         </inset>
     </item>
diff --git a/res/drawable/saturation_progress_full_drawable.xml b/res/drawable/saturation_progress_full_drawable.xml
index 9d14bcd..02be02a 100644
--- a/res/drawable/saturation_progress_full_drawable.xml
+++ b/res/drawable/saturation_progress_full_drawable.xml
@@ -21,7 +21,7 @@
         android:height="48dp">
         <shape>
             <size android:height="48dp" />
-            <solid android:color="@color/color_accent_primary" />
+            <solid android:color="@color/system_secondary" />
             <corners android:radius="24dp"/>
         </shape>
     </item>
diff --git a/res/layout/clock_carousel.xml b/res/layout/clock_carousel.xml
index 35defd6..e93a697 100644
--- a/res/layout/clock_carousel.xml
+++ b/res/layout/clock_carousel.xml
@@ -22,76 +22,167 @@
     android:layout_height="match_parent"
     app:layoutDescription="@xml/carousel_scene">
 
-    <com.android.wallpaper.picker.DisplayAspectRatioFrameLayout
+    <FrameLayout
         android:id="@+id/item_view_0"
-        android:layout_width="@dimen/clock_carousel_item_width"
-        android:layout_height="@dimen/clock_carousel_item_height"
+        android:layout_width="@dimen/screen_preview_width"
+        android:layout_height="wrap_content"
         android:layout_marginEnd="@dimen/clock_carousel_item_margin"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toStartOf="@+id/item_view_1"
         app:layout_constraintTop_toTopOf="parent">
-        <FrameLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_gravity="center" />
-    </com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
 
-    <com.android.wallpaper.picker.DisplayAspectRatioFrameLayout
+        <View
+            android:id="@+id/item_card_0"
+            android:layout_width="@dimen/clock_carousel_item_card_width"
+            android:layout_height="@dimen/clock_carousel_item_card_height"
+            android:layout_gravity="center"
+            android:background="@drawable/carousel_item_card_background"/>
+
+        <com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
+            android:id="@+id/clock_scale_view_0"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:clipChildren="false"
+            android:importantForAccessibility="noHideDescendants">
+            <com.android.customization.picker.clock.ui.view.ClockHostView
+                android:id="@+id/clock_host_view_0"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_gravity="center"
+                android:clipChildren="false" />
+        </com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout>
+    </FrameLayout>
+
+    <FrameLayout
         android:id="@+id/item_view_1"
-        android:layout_width="@dimen/clock_carousel_item_width"
-        android:layout_height="@dimen/clock_carousel_item_height"
+        android:layout_width="@dimen/screen_preview_width"
+        android:layout_height="wrap_content"
         android:layout_marginEnd="@dimen/clock_carousel_item_margin"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toStartOf="@+id/item_view_2"
-        app:layout_constraintTop_toTopOf="parent" >
-        <FrameLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_gravity="center" />
-    </com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
+        app:layout_constraintTop_toTopOf="parent">
 
-    <com.android.wallpaper.picker.DisplayAspectRatioFrameLayout
+        <View
+            android:id="@+id/item_card_1"
+            android:layout_width="@dimen/clock_carousel_item_card_width"
+            android:layout_height="@dimen/clock_carousel_item_card_height"
+            android:layout_gravity="center"
+            android:background="@drawable/carousel_item_card_background"/>
+
+        <com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
+            android:id="@+id/clock_scale_view_1"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:clipChildren="false"
+            android:importantForAccessibility="noHideDescendants">
+            <com.android.customization.picker.clock.ui.view.ClockHostView
+                android:id="@+id/clock_host_view_1"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_gravity="center"
+                android:clipChildren="false"/>
+        </com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout>
+    </FrameLayout>
+
+    <FrameLayout
         android:id="@+id/item_view_2"
-        android:layout_width="@dimen/clock_carousel_item_width"
-        android:layout_height="@dimen/clock_carousel_item_height"
+        android:layout_width="@dimen/screen_preview_width"
+        android:layout_height="wrap_content"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.5"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent">
-        <FrameLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_gravity="center" />
-    </com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
 
-    <com.android.wallpaper.picker.DisplayAspectRatioFrameLayout
+        <View
+            android:id="@+id/item_card_2"
+            android:layout_width="@dimen/clock_carousel_item_card_width"
+            android:layout_height="@dimen/clock_carousel_item_card_height"
+            android:alpha="0.0"
+            android:layout_gravity="center"
+            android:background="@drawable/carousel_item_card_background"/>
+
+        <com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
+            android:id="@+id/clock_scale_view_2"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:clipChildren="false"
+            android:importantForAccessibility="noHideDescendants">
+            <com.android.customization.picker.clock.ui.view.ClockHostView
+                android:id="@+id/clock_host_view_2"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_gravity="center"
+                android:clipChildren="false"/>
+        </com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout>
+    </FrameLayout>
+
+    <FrameLayout
         android:id="@+id/item_view_3"
-        android:layout_width="@dimen/clock_carousel_item_width"
-        android:layout_height="@dimen/clock_carousel_item_height"
+        android:layout_width="@dimen/screen_preview_width"
+        android:layout_height="wrap_content"
         android:layout_marginStart="@dimen/clock_carousel_item_margin"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintStart_toEndOf="@+id/item_view_2"
-        app:layout_constraintTop_toTopOf="parent" >
-        <FrameLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_gravity="center" />
-    </com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
+        app:layout_constraintTop_toTopOf="parent">
 
-    <com.android.wallpaper.picker.DisplayAspectRatioFrameLayout
+        <View
+            android:id="@+id/item_card_3"
+            android:layout_width="@dimen/clock_carousel_item_card_width"
+            android:layout_height="@dimen/clock_carousel_item_card_height"
+            android:layout_gravity="center"
+            android:background="@drawable/carousel_item_card_background"/>
+
+        <com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
+            android:id="@+id/clock_scale_view_3"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:clipChildren="false"
+            android:importantForAccessibility="noHideDescendants">
+            <com.android.customization.picker.clock.ui.view.ClockHostView
+                android:id="@+id/clock_host_view_3"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_gravity="center"
+                android:clipChildren="false"/>
+        </com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout>
+    </FrameLayout>
+
+    <FrameLayout
         android:id="@+id/item_view_4"
-        android:layout_width="@dimen/clock_carousel_item_width"
-        android:layout_height="@dimen/clock_carousel_item_height"
+        android:layout_width="@dimen/screen_preview_width"
+        android:layout_height="wrap_content"
         android:layout_marginStart="@dimen/clock_carousel_item_margin"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintStart_toEndOf="@+id/item_view_3"
-        app:layout_constraintTop_toTopOf="parent" >
-        <FrameLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_gravity="center" />
-    </com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
+        app:layout_constraintTop_toTopOf="parent">
+
+        <View
+            android:id="@+id/item_card_4"
+            android:layout_width="@dimen/clock_carousel_item_card_width"
+            android:layout_height="@dimen/clock_carousel_item_card_height"
+            android:layout_gravity="center"
+            android:background="@drawable/carousel_item_card_background"/>
+
+        <com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
+            android:id="@+id/clock_scale_view_4"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:clipChildren="false"
+            android:importantForAccessibility="noHideDescendants">
+            <com.android.customization.picker.clock.ui.view.ClockHostView
+                android:id="@+id/clock_host_view_4"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_gravity="center"
+                android:clipChildren="false" />
+        </com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout>
+    </FrameLayout>
 
     <androidx.constraintlayout.helper.widget.Carousel
         android:id="@+id/carousel"
diff --git a/res/layout/clock_carousel_view.xml b/res/layout/clock_carousel_view.xml
index f1c959c..9add933 100644
--- a/res/layout/clock_carousel_view.xml
+++ b/res/layout/clock_carousel_view.xml
@@ -17,4 +17,4 @@
 <com.android.customization.picker.clock.ui.view.ClockCarouselView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="@dimen/screen_preview_height" />
\ No newline at end of file
+    android:layout_height="match_parent" />
\ No newline at end of file
diff --git a/res/layout/clock_color_and_size_button.xml b/res/layout/clock_color_and_size_button.xml
new file mode 100644
index 0000000..bb2b77d
--- /dev/null
+++ b/res/layout/clock_color_and_size_button.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:minHeight="@dimen/clock_color_size_button_min_height"
+    android:background="@drawable/clock_color_size_button_background"
+    android:orientation="horizontal"
+    android:gravity="center_vertical"
+    android:paddingVertical="@dimen/clock_color_size_button_vertical_padding"
+    android:paddingHorizontal="@dimen/clock_color_size_button_horizontal_padding">
+
+    <ImageView
+        android:layout_width="@dimen/clock_color_size_button_icon_size"
+        android:layout_height="@dimen/clock_color_size_button_icon_size"
+        android:src="@drawable/ic_settings"
+        android:importantForAccessibility="no"
+        android:tint="@color/system_primary"
+        android:layout_marginEnd="@dimen/clock_color_size_button_icon_margin_end"
+        tools:ignore="UseAppTint" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="@color/system_primary"
+        android:text="@string/clock_color_and_size_title" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/clock_color_option.xml b/res/layout/clock_color_option.xml
new file mode 100644
index 0000000..786d633
--- /dev/null
+++ b/res/layout/clock_color_option.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+     Copyright (C) 2023 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.
+-->
+<!-- Content description is set programmatically on the parent FrameLayout -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="@dimen/option_item_size"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:clipChildren="false">
+
+    <include layout="@layout/color_option_2"/>
+
+    <TextView
+        android:id="@+id/text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/option_bottom_margin"
+        android:textColor="@color/text_color_primary"
+        android:maxLines="2"
+        android:hyphenationFrequency="normal"
+        android:ellipsize="end"
+        android:visibility="invisible"
+        android:gravity="center_horizontal"
+        android:text="Placeholder for stable size calculation, please do not remove."
+        tools:ignore="HardcodedText" />
+</LinearLayout>
+
diff --git a/res/layout/clock_option.xml b/res/layout/clock_option.xml
deleted file mode 100644
index e65cb65..0000000
--- a/res/layout/clock_option.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2019 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.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:paddingRight="2dp"
-    android:paddingBottom="@dimen/option_bottom_margin"
-    android:clipChildren="false"
-    android:clipToPadding="false"
-    android:orientation="vertical">
-
-    <TextView
-        android:id="@+id/option_label"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_horizontal"
-        android:layout_marginBottom="@dimen/theme_option_label_margin"
-        android:textAppearance="@style/OptionTitleTextAppearance"/>
-    <FrameLayout
-        android:id="@+id/option_tile"
-        android:layout_width="@dimen/option_tile_width"
-        android:layout_height="@dimen/option_tile_width"
-        android:layout_gravity="center_horizontal"
-        android:paddingHorizontal="@dimen/option_tile_padding_horizontal"
-        android:paddingVertical="@dimen/option_tile_padding_vertical"
-        android:background="@drawable/option_border">
-        <ImageView
-            android:id="@+id/clock_option_thumbnail"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"/>
-    </FrameLayout>
-</LinearLayout>
diff --git a/res/layout/clock_section_view.xml b/res/layout/clock_section_view.xml
index 31f08fc..0632601 100644
--- a/res/layout/clock_section_view.xml
+++ b/res/layout/clock_section_view.xml
@@ -20,7 +20,7 @@
     android:layout_height="wrap_content"
     android:background="?selectableItemBackground"
     android:clickable="true"
-    android:paddingVertical="@dimen/section_top_padding"
+    android:paddingVertical="@dimen/section_padding"
     android:paddingHorizontal="@dimen/section_horizontal_padding"
     android:orientation="horizontal">
 
diff --git a/res/layout/clock_size_radio_button_group.xml b/res/layout/clock_size_radio_button_group.xml
index 4264007..2aa78d2 100644
--- a/res/layout/clock_size_radio_button_group.xml
+++ b/res/layout/clock_size_radio_button_group.xml
@@ -57,6 +57,7 @@
         android:id="@+id/button_container_small"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:minHeight="@dimen/touch_target_min_height"
         android:orientation="horizontal">
 
         <RadioButton
diff --git a/res/layout/color_option_2.xml b/res/layout/color_option_2.xml
index 2ac0fe6..dff03d0 100644
--- a/res/layout/color_option_2.xml
+++ b/res/layout/color_option_2.xml
@@ -16,14 +16,14 @@
 <!-- Content description is set programmatically on the parent FrameLayout -->
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="wrap_content"
+    android:layout_width="@dimen/option_item_size"
     android:layout_height="wrap_content"
     android:orientation="vertical"
     android:clipChildren="false">
     <FrameLayout
         android:id="@+id/icon_container"
-        android:layout_width="@dimen/option_tile_width"
-        android:layout_height="@dimen/option_tile_width"
+        android:layout_width="@dimen/option_item_size"
+        android:layout_height="@dimen/option_item_size"
         android:clipChildren="false">
 
         <ImageView
@@ -41,50 +41,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="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:layout_marginRight="@dimen/color_seed_chip_margin"
-                android:layout_marginBottom="@dimen/color_seed_chip_margin"
-                android:src="@drawable/color_chip_seed_filled0"
-                android:importantForAccessibility="no"/>
-
-            <ImageView
-                android:id="@+id/color_preview_1"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:layout_marginLeft="@dimen/color_seed_chip_margin"
-                android:layout_marginBottom="@dimen/color_seed_chip_margin"
-                android:src="@drawable/color_chip_seed_filled2"
-                android:importantForAccessibility="no"/>
-
-            <ImageView
-                android:id="@+id/color_preview_2"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:layout_marginRight="@dimen/color_seed_chip_margin"
-                android:layout_marginTop="@dimen/color_seed_chip_margin"
-                android:src="@drawable/color_chip_seed_filled1"
-                android:importantForAccessibility="no"/>
-
-            <ImageView
-                android:id="@+id/color_preview_3"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:layout_marginLeft="@dimen/color_seed_chip_margin"
-                android:layout_marginTop="@dimen/color_seed_chip_margin"
-                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>
 </LinearLayout>
 
diff --git a/res/layout/color_option_no_background.xml b/res/layout/color_option_no_background.xml
index b90b480..3b8e2dc 100644
--- a/res/layout/color_option_no_background.xml
+++ b/res/layout/color_option_no_background.xml
@@ -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=".50"
-            app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintWidth_percent=".50" />
-
-        <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=".50"
-            app:layout_constraintLeft_toRightOf="@id/color_preview_0"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintWidth_percent=".50" />
-
-        <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=".50"
-            app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/color_preview_0"
-            app:layout_constraintWidth_percent=".50" />
-
-        <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=".50"
-            app:layout_constraintLeft_toRightOf="@id/color_preview_2"
-            app:layout_constraintTop_toBottomOf="@id/color_preview_1"
-            app:layout_constraintWidth_percent=".50" />
-    </androidx.constraintlayout.widget.ConstraintLayout>
+        app:layout_constraintWidth_percent="0.909" />
 
     <ImageView
         android:id="@+id/option_selected"
@@ -98,5 +52,6 @@
         android:layout_height="match_parent"
         android:adjustViewBounds="true"
         android:src="@drawable/color_option_selected_no_background"
-        android:visibility="gone"/>
+        android:visibility="gone"
+        android:importantForAccessibility="no" />
 </androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/color_option_overflow_no_background.xml b/res/layout/color_option_overflow_no_background.xml
index fb25c35..abb9c6b 100644
--- a/res/layout/color_option_overflow_no_background.xml
+++ b/res/layout/color_option_overflow_no_background.xml
@@ -51,6 +51,7 @@
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:adjustViewBounds="true"
-            android:src="@drawable/color_overflow" />
+            android:src="@drawable/color_overflow"
+            android:contentDescription="@string/more_colors"/>
     </androidx.constraintlayout.widget.ConstraintLayout>
 </androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/color_option_with_background.xml b/res/layout/color_option_with_background.xml
deleted file mode 100644
index 36990b5..0000000
--- a/res/layout/color_option_with_background.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!--
-     Copyright (C) 2023 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.
--->
-<!-- Content description is set programmatically on the parent FrameLayout -->
-<!-- TODO (b/272109171): Remove after clock settings is refactored to use OptionItemAdapter -->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:orientation="vertical" >
-    <FrameLayout
-        android:id="@+id/icon_container"
-        android:layout_width="@dimen/option_item_size"
-        android:layout_height="@dimen/option_item_size"
-        android:importantForAccessibility="yes">
-
-        <ImageView
-            android:id="@id/selection_border"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="@drawable/option_item_border"
-            android:alpha="0"
-            android:importantForAccessibility="no" />
-
-        <ImageView
-            android:id="@id/background"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="@drawable/option_item_background"
-            android:importantForAccessibility="no" />
-
-        <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>
-    
-    <TextView
-        android:id="@+id/option_title"
-        android:layout_width="@dimen/option_tile_width"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="@dimen/option_bottom_margin"
-        android:textColor="@color/text_color_primary"
-        android:visibility="gone"
-        android:gravity="center" />
-</LinearLayout>
diff --git a/res/layout/color_section_view2.xml b/res/layout/color_section_view2.xml
index 687bcef..9dbdf15 100644
--- a/res/layout/color_section_view2.xml
+++ b/res/layout/color_section_view2.xml
@@ -37,7 +37,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:orientation="horizontal"
-        android:paddingVertical="24dp"
+        android:paddingVertical="20dp"
         android:paddingHorizontal="24dp"
         android:weightSum="@integer/color_section_num_columns">
         <include
@@ -58,10 +58,10 @@
         android:gravity="center"
         android:drawablePadding="12dp"
         android:drawableStart="@drawable/ic_nav_color"
-        android:drawableTint="@color/text_color_primary"
+        android:drawableTint="@color/system_primary"
         android:text="@string/more_colors"
         android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"
-        android:textColor="@color/text_color_primary"
+        android:textColor="@color/system_primary"
         android:visibility="gone"
         tools:ignore="UseCompatTextViewDrawableXml" />
 </com.android.customization.picker.color.ui.view.ColorSectionView2>
diff --git a/res/layout/dark_mode_section_view.xml b/res/layout/dark_mode_section_view.xml
index e1b4b81..27550e2 100644
--- a/res/layout/dark_mode_section_view.xml
+++ b/res/layout/dark_mode_section_view.xml
@@ -22,7 +22,7 @@
     android:clickable="true"
     android:gravity="center_vertical"
     android:orientation="horizontal"
-    android:paddingVertical="@dimen/section_vertical_padding"
+    android:paddingVertical="@dimen/section_padding"
     android:paddingHorizontal="@dimen/section_horizontal_padding">
 
     <TextView
diff --git a/res/layout/fragment_clock_settings.xml b/res/layout/fragment_clock_settings.xml
index 5208222..bb4a0c2 100644
--- a/res/layout/fragment_clock_settings.xml
+++ b/res/layout/fragment_clock_settings.xml
@@ -18,7 +18,9 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:orientation="vertical">
+    android:orientation="vertical"
+    android:clipChildren="false">
+
     <FrameLayout
         android:id="@+id/section_header_container"
         android:layout_width="match_parent"
@@ -31,24 +33,25 @@
         android:layout_width="match_parent"
         android:layout_height="0dp"
         android:layout_weight="1"
-        android:paddingTop="36dp"
-        android:paddingBottom="40dp">
+        android:paddingTop="20dp"
+        android:paddingBottom="40dp"
+        android:clipChildren="false">
 
         <include
             android:id="@+id/lock_preview"
             layout="@layout/wallpaper_preview_card"
-            android:layout_width="match_parent"
+            android:layout_width="0dp"
             android:layout_height="match_parent"
             android:layout_gravity="center" />
 
-        <FrameLayout
+        <com.android.customization.picker.clock.ui.view.ClockHostView
             android:id="@+id/clock_host_view"
+            android:importantForAccessibility="noHideDescendants"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:layout_gravity="center" />
     </com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
 
-
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -57,11 +60,14 @@
         android:layout_marginBottom="28dp"
         android:background="@drawable/picker_fragment_background"
         android:paddingTop="22dp"
-        android:paddingBottom="62dp">
+        android:paddingBottom="36dp"
+        android:clipChildren="false">
 
         <FrameLayout
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content">
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="22dp"
+            android:layout_gravity="center_horizontal">
 
             <androidx.recyclerview.widget.RecyclerView
                 android:id="@+id/tabs"
@@ -90,35 +96,50 @@
         <FrameLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:paddingTop="16dp">
+            android:clipChildren="false">
 
             <LinearLayout
                 android:id="@+id/color_picker_container"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:orientation="vertical">
+                android:orientation="vertical"
+                android:clipChildren="false">
 
                 <FrameLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginBottom="16dp">
+                    android:clipChildren="false">
 
-                    <androidx.recyclerview.widget.RecyclerView
-                        android:id="@+id/color_options"
+                    <HorizontalScrollView
+                        android:id="@+id/color_options_scroll_view"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        android:clipToPadding="false"
-                        android:paddingHorizontal="16dp" />
+                        android:clipChildren="false"
+                        android:scrollbars="none">
+
+                        <LinearLayout
+                            android:id="@+id/color_options"
+                            android:clipToPadding="false"
+                            android:clipChildren="false"
+                            android:paddingHorizontal="16dp"
+                            android:layout_marginBottom="16dp"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:orientation="horizontal"
+                            android:divider="@drawable/horizontal_divider_8dp"
+                            android:showDividers="middle" />
+                    </HorizontalScrollView>
 
                     <!--
-                    This is just an invisible placeholder put in place so that the parent keeps its
-                    height stable as the RecyclerView updates from 0 items to N items. Keeping it
-                    stable allows the layout logic to keep the size of the preview container stable
-                    as well, which bodes well for setting up the SurfaceView for remote rendering
-                    without changing its size after the content is loaded into the RecyclerView.
-                    -->
+                        This is just an invisible placeholder put in place so that the parent keeps
+                        its height stable as the RecyclerView updates from 0 items to N items.
+                        Keeping it stable allows the layout logic to keep the size of the preview
+                        container stable as well, which bodes well for setting up the SurfaceView
+                        for remote rendering without changing its size after the content is loaded
+                        into the RecyclerView.
+                        -->
                     <include
-                        layout="@layout/color_option_with_background"
+                        layout="@layout/clock_color_option"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:visibility="invisible" />
diff --git a/res/layout/grid_section_view.xml b/res/layout/grid_section_view.xml
index ee7b76f..a90ee64 100644
--- a/res/layout/grid_section_view.xml
+++ b/res/layout/grid_section_view.xml
@@ -20,7 +20,7 @@
     android:layout_height="wrap_content"
     android:background="?selectableItemBackground"
     android:clickable="true"
-    android:paddingVertical="@dimen/section_top_padding"
+    android:paddingVertical="@dimen/section_padding"
     android:paddingHorizontal="@dimen/section_horizontal_padding"
     android:orientation="horizontal">
 
diff --git a/res/layout/keyguard_quick_affordance.xml b/res/layout/keyguard_quick_affordance.xml
index 1e5c339..a86489a 100644
--- a/res/layout/keyguard_quick_affordance.xml
+++ b/res/layout/keyguard_quick_affordance.xml
@@ -62,8 +62,10 @@
         android:id="@id/text"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:gravity="center_horizontal"
         android:textColor="@color/text_color_primary"
-        android:singleLine="true"
+        android:maxLines="2"
+        android:hyphenationFrequency="normal"
         android:ellipsize="end"
         android:text="Placeholder for stable size calculation, please do not remove."
         tools:ignore="HardcodedText" />
diff --git a/res/layout/keyguard_quick_affordance_section_view.xml b/res/layout/keyguard_quick_affordance_section_view.xml
index 458f659..7c5babb 100644
--- a/res/layout/keyguard_quick_affordance_section_view.xml
+++ b/res/layout/keyguard_quick_affordance_section_view.xml
@@ -16,11 +16,11 @@
 -->
 <com.android.customization.picker.quickaffordance.ui.view.KeyguardQuickAffordanceSectionView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:layout_width="match_parent"
     android:background="?selectableItemBackground"
     android:clickable="true"
-    android:paddingVertical="@dimen/section_top_padding"
+    android:paddingVertical="@dimen/option_section_vertical_padding"
     android:paddingHorizontal="@dimen/section_horizontal_padding"
     android:orientation="horizontal">
 
@@ -28,7 +28,8 @@
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
-        android:orientation="vertical">
+        android:orientation="vertical"
+        android:layout_gravity="center">
 
         <TextView
             android:layout_width="match_parent"
@@ -51,6 +52,7 @@
         android:importantForAccessibility="noHideDescendants"
         android:gravity="center"
         android:divider="@drawable/horizontal_divider_14dp"
+        android:layout_gravity="center"
         android:showDividers="middle">
 
         <ImageView
diff --git a/res/layout/more_settings_section_view.xml b/res/layout/more_settings_section_view.xml
index b60bb45..5745a27 100644
--- a/res/layout/more_settings_section_view.xml
+++ b/res/layout/more_settings_section_view.xml
@@ -20,7 +20,7 @@
     android:layout_height="wrap_content"
     android:background="?selectableItemBackground"
     android:clickable="true"
-    android:paddingVertical="@dimen/section_top_padding"
+    android:paddingVertical="@dimen/section_padding"
     android:paddingHorizontal="@dimen/section_horizontal_padding"
     android:orientation="vertical">
 
diff --git a/res/layout/notification_section.xml b/res/layout/notification_section.xml
index 713624e..f490e00 100644
--- a/res/layout/notification_section.xml
+++ b/res/layout/notification_section.xml
@@ -22,35 +22,25 @@
     android:layout_height="wrap_content"
     android:background="?selectableItemBackground"
     android:clickable="true"
-    android:paddingVertical="@dimen/section_top_padding"
+    android:paddingVertical="@dimen/section_padding"
     android:paddingHorizontal="@dimen/section_horizontal_padding"
     android:orientation="horizontal"
     android:gravity="center_vertical">
 
-    <LinearLayout
+    <TextView
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
-        android:orientation="vertical">
-
-        <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/notifications_section_title"
-            style="@style/SectionTitleTextStyle" />
-
-        <TextView
-            android:id="@+id/subtitle"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            style="@style/SectionSubtitleTextStyle"/>
-    </LinearLayout>
+        android:layout_gravity="center"
+        android:text="@string/show_notifications_on_lock_screen"
+        style="@style/SectionTitleTextStyle"/>
 
     <Switch
         android:id="@+id/switcher"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:clickable="false"
+        android:layout_gravity="center"
         style="@style/Switch.SettingsLib"
         tools:ignore="UseSwitchCompatOrMaterialXml" />
 
diff --git a/res/layout/picker_fragment_tab.xml b/res/layout/picker_fragment_tab.xml
index 2e6e8fa..7aaa776 100644
--- a/res/layout/picker_fragment_tab.xml
+++ b/res/layout/picker_fragment_tab.xml
@@ -14,21 +14,26 @@
   ~ limitations under the License.
   ~
   -->
-
-<TextView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:id="@+id/text"
+<FrameLayout
+    android:id="@+id/text_wrapper"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
-    android:textColor="@color/picker_fragment_tab_text_color"
-    android:paddingVertical="8dp"
-    android:paddingHorizontal="16dp"
-    android:minWidth="48dp"
-    android:minHeight="36dp"
-    android:gravity="center"
-    android:background="@drawable/picker_fragment_tab_background"
-    android:text="Placeholder for stable size calculation, please do not remove."
-    android:maxLines="1"
-    android:ellipsize="end"
-    tools:ignore="HardcodedText" />
+    android:minWidth="@dimen/touch_target_min_width"
+    android:minHeight="@dimen/touch_target_min_height"
+    xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <TextView
+        android:id="@+id/text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="@color/picker_fragment_tab_text_color"
+        android:paddingVertical="8dp"
+        android:paddingHorizontal="16dp"
+        android:minWidth="48dp"
+        android:minHeight="36dp"
+        android:gravity="center"
+        android:background="@drawable/picker_fragment_tab_background"
+        android:maxLines="1"
+        android:ellipsize="end" />
+
+</FrameLayout>
diff --git a/res/layout/single_clock_view.xml b/res/layout/single_clock_view.xml
index e7ac518..ffc6039 100644
--- a/res/layout/single_clock_view.xml
+++ b/res/layout/single_clock_view.xml
@@ -13,13 +13,15 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<com.android.wallpaper.picker.DisplayAspectRatioFrameLayout
+<com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="@dimen/clock_carousel_item_height">
-    <FrameLayout
+    android:layout_width="@dimen/screen_preview_width"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center"
+    android:clipChildren="false">
+    <com.android.customization.picker.clock.ui.view.ClockHostView
         android:id="@+id/single_clock_host_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_gravity="center" />
-</com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
\ No newline at end of file
+</com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout>
\ No newline at end of file
diff --git a/res/layout/themed_icon_section_view.xml b/res/layout/themed_icon_section_view.xml
index 95be207..84ef3e8 100644
--- a/res/layout/themed_icon_section_view.xml
+++ b/res/layout/themed_icon_section_view.xml
@@ -22,7 +22,7 @@
     android:clickable="true"
     android:orientation="vertical"
     android:paddingHorizontal="@dimen/section_horizontal_padding"
-    android:paddingVertical="@dimen/section_vertical_padding">
+    android:paddingVertical="@dimen/section_padding">
 
     <LinearLayout
         android:layout_width="match_parent"
diff --git a/res/values-af/clock_colors.xml b/res/values-af/clock_colors.xml
deleted file mode 100644
index f4e0fef..0000000
--- a/res/values-af/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ROOI"</item>
-    <item msgid="6882970855289978213">"ORANJE"</item>
-    <item msgid="5560732545714984533">"GEEL"</item>
-    <item msgid="7246284817845434226">"GROEN"</item>
-    <item msgid="6762906417604676001">"BLOU"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIOOLTJIEPERS"</item>
-    <item msgid="6835537356703747621">"GRYS"</item>
-    <item msgid="2470141365136884119">"BLOUGROEN"</item>
-  </string-array>
-</resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 4da90a9..0bb36a7 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Gepasmaakte horlosie"</string>
     <string name="clock_description" msgid="3563839327378948">"Kies gepasmaakte horlosie"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Verander ’n gepasmaakte horlosie"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Horlosie-instellings"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Horlosieskermopsie <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Horlosiekleur en grootte"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Horlosiekleur en grootte"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Kleur"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Links-kortpad"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Regs-kortpad"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Geen"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Merk die volgende as jy “<xliff:g id="APPNAME">%1$s</xliff:g>” wil kies"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Kan nie kortpad byvoeg nie"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Maak <xliff:g id="APPNAME">%1$s</xliff:g> oop"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Om die <xliff:g id="APPNAME">%1$s</xliff:g>-app as ’n kortpad by te voeg, moet jy seker maak dat"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Klaar"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Kortpaaie"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Geen"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Kennisgewings"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Wys kennisgewings op die sluitskerm"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Versteek kennisgewings op die sluitskerm"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Meer opsies"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Teks op sluitskerm, Wat Speel, en meer"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Meer sluitskermopsies"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privaatheid, Wat Speel, en meer"</string>
     <string name="more_colors" msgid="3191071655353004591">"Nog kleure"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primêre omvattende tema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primêre neutrale tema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primêre intense tema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primêre ekspressiewe tema"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Verstekkleuropsie"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Kleuropsie <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-am/clock_colors.xml b/res/values-am/clock_colors.xml
deleted file mode 100644
index 3da51af..0000000
--- a/res/values-am/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ቀይ"</item>
-    <item msgid="6882970855289978213">"ብርቱካናማ"</item>
-    <item msgid="5560732545714984533">"ቢጫ"</item>
-    <item msgid="7246284817845434226">"አረንጓዴ"</item>
-    <item msgid="6762906417604676001">"ሰማያዊ"</item>
-    <item msgid="8974135109557664892">"ሐምራዊ"</item>
-    <item msgid="786643557830463422">"ወይን ጠጅ"</item>
-    <item msgid="6835537356703747621">"ግራጫ"</item>
-    <item msgid="2470141365136884119">"ደማቅ አረንጓዴ-ሰማያዊ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 19b3ea1..a3bb050 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"ብጁ ሰዓት"</string>
     <string name="clock_description" msgid="3563839327378948">"ብጁ ሰዓት ይምረጡ"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"ብጁ ሰዓትን ይለውጡ"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"የClock ቅንብሮች"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"የሰዓት ፊት አማራጭ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"የClock ቀለም እና መጠን"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"የClock ቀለም እና መጠን"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>፣ <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"ቀለም"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"የግራ አቋራጭ"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"የቀኝ አቋራጭ"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"ምንም"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"«<xliff:g id="APPNAME">%1$s</xliff:g>»ን ለመምረጥ የሚከተሉትን ይፈትሹ"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"አቋራጭን ማከል አልተቻለም"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ይክፈቱ"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"የ<xliff:g id="APPNAME">%1$s</xliff:g> መተግበሪያን እንደ አቋራጭ ለማከል የሚከተሉትን ማድረግዎን እርግጠኛ ይሁኑ"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ተከናውኗል"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"አቋራጮች"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>፣ <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ምንም"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"ማሳወቂያዎች"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"በማያ ገፅ ቁልፉ ላይ ማሳወቂያዎችን አሳይ"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"በማያ ገፅ ቁልፉ ላይ ማሳወቂያዎችን ደብቅ"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"ተጨማሪ አማራጮች"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"ጽሁፍ በማያ ገፅ ቁልፍ፣ አሁን በመጫወት ላይ እና ሌሎችም"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"ተጨማሪ የማያ ገፅ ቁልፍ አማራጮች"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"ግላዊነት፣ አሁን በመጫወት ላይ እና ሌሎችም"</string>
     <string name="more_colors" msgid="3191071655353004591">"ተጨማሪ ቀለማት"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"የመጀመሪያ ተለዋዋጭ ገጽታ"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"የመጀመሪያ ገለልተኛ ገጽታ"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"የመጀመሪያ ንቁ ገጽታ"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"የመጀመሪያ ገላጭ ገጽታ"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"ነባሪ የቀለም አማራጭ"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"የቀለም አማራጭ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-ar/clock_colors.xml b/res/values-ar/clock_colors.xml
deleted file mode 100644
index 51bc5fe..0000000
--- a/res/values-ar/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"أحمر"</item>
-    <item msgid="6882970855289978213">"برتقالي"</item>
-    <item msgid="5560732545714984533">"أصفر"</item>
-    <item msgid="7246284817845434226">"أخضر"</item>
-    <item msgid="6762906417604676001">"أزرق"</item>
-    <item msgid="8974135109557664892">"نيلي"</item>
-    <item msgid="786643557830463422">"بنفسجي"</item>
-    <item msgid="6835537356703747621">"رمادي"</item>
-    <item msgid="2470141365136884119">"أزرق مخضرّ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index f0a2b64..acdff9e 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"خلفية شاشة ساعة مخصّصة"</string>
     <string name="clock_description" msgid="3563839327378948">"اختيار خلفية شاشة ساعة مخصّصة"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"تغيير خلفية شاشة ساعة مخصّصة"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"إعدادات الساعة"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"خيار تصميم الساعة: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"لون الساعة وحجمها"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"لون الساعة وحجمها"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g> و<xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"اللون"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"اختصار اليمين"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"اختصار اليسار"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"بدون أزرار"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"لاختيار \"<xliff:g id="APPNAME">%1$s</xliff:g>\"، تأكّد مما يلي:"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"تعذُّر إضافة الاختصار"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"فتح <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"لإضافة تطبيق \"<xliff:g id="APPNAME">%1$s</xliff:g>\" كاختصار، تأكَّد من"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"تم"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"الاختصارات"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"\"<xliff:g id="FIRST">%1$s</xliff:g>\" و\"<xliff:g id="SECOND">%2$s</xliff:g>\""</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"بدون اختصارات"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"الإشعارات"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"إظهار الإشعارات على شاشة القفل"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"إخفاء الإشعارات على شاشة القفل"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"خيارات إضافية"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"النص على شاشة القفل و\"التعرف التلقائي على الموسيقى\" والمزيد"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"المزيد من خيارات شاشة القفل"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"الخصوصية وميزة \"التعرّف التلقائي على الموسيقى\" وغير ذلك"</string>
     <string name="more_colors" msgid="3191071655353004591">"المزيد من الألوان"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"مظهر ديناميكي أساسي"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"مظهر أساسي محايد"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"مظهر أساسي نابض بالحياة"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"مظهر أساسي معبِّر"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"خيار اللون التلقائي"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"خيار اللون <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-as/clock_colors.xml b/res/values-as/clock_colors.xml
deleted file mode 100644
index 74e0aaf..0000000
--- a/res/values-as/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ৰঙা"</item>
-    <item msgid="6882970855289978213">"কমলা"</item>
-    <item msgid="5560732545714984533">"হালধীয়া"</item>
-    <item msgid="7246284817845434226">"সেউজীয়া"</item>
-    <item msgid="6762906417604676001">"নীলা"</item>
-    <item msgid="8974135109557664892">"ইণ্ডিগ’"</item>
-    <item msgid="786643557830463422">"বেঙুনীয়া"</item>
-    <item msgid="6835537356703747621">"ধোঁৱাবৰণীয়া"</item>
-    <item msgid="2470141365136884119">"গাঢ় সেউজ-নীলা"</item>
-  </string-array>
-</resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 083d1db..8ad00fe 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"কাষ্টম ঘড়ী"</string>
     <string name="clock_description" msgid="3563839327378948">"কাষ্টম ঘড়ী বাছক"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"কাষ্টম ঘড়ী সলনি কৰক"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"ঘড়ীৰ ছেটিং"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"ক্লক ফে’চৰ বিকল্প <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"ঘড়ীৰ ৰং আৰু আকাৰ"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"ঘড়ীৰ ৰং আৰু আকাৰ"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"ৰং"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"বাওঁ শ্বৰ্টকাট"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"সোঁ শ্বৰ্টকাট"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"নাই"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` বাছনি কৰিবলৈ এয়া পৰীক্ষা কৰক"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"শ্বৰ্টকাট যোগ কৰিব নোৱাৰি"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> খোলক"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> এপ্‌টোক এটা শ্বৰ্টকাট হিচাপে যোগ দিবলৈ, এইকেইটা কথা নিশ্চিত কৰক"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"কৰা হ’ল"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"শ্বৰ্টকাট"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"নাই"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"জাননী"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"লক স্ক্ৰীনত জাননী দেখুৱাওক"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"বন্ধ স্ক্ৰীনত জাননী লুকুৱাওক"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"অধিক বিকল্প"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"লক স্ক্ৰীন, বৰ্তমান প্লে’ হৈ থকা সমল আৰু অধিকত থকা পাঠ"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"লক স্ক্ৰীনৰ অধিক বিকল্প"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"গোপনীয়তা, সদ্য পৰিৱেশিত গীত আৰু অধিক"</string>
     <string name="more_colors" msgid="3191071655353004591">"অধিক ৰং"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"প্ৰাথমিক ডাইনামিক থীম"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"প্ৰাথমিক নিৰপেক্ষ থীম"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"প্ৰাথমিক জীৱন্ত থীম"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"প্ৰাথমিক অভিব্যক্তিপূৰ্ণ থীম"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"ডিফ’ল্ট ৰঙৰ বিকল্প"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"ৰঙৰ বিকল্প <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-az/clock_colors.xml b/res/values-az/clock_colors.xml
deleted file mode 100644
index 6cea40b..0000000
--- a/res/values-az/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"QIRMIZI"</item>
-    <item msgid="6882970855289978213">"NARINCI"</item>
-    <item msgid="5560732545714984533">"SARI"</item>
-    <item msgid="7246284817845434226">"YAŞIL"</item>
-    <item msgid="6762906417604676001">"MAVİ"</item>
-    <item msgid="8974135109557664892">"TÜND-GÖY"</item>
-    <item msgid="786643557830463422">"BƏNÖVŞƏYİ"</item>
-    <item msgid="6835537356703747621">"BOZ"</item>
-    <item msgid="2470141365136884119">"YAŞILIMTIL MAVİ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 0b674ca..199e98a 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Fərdi Saat"</string>
     <string name="clock_description" msgid="3563839327378948">"Fərdi saat seç"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Fərdi saatı dəyişdir"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Saat Ayarları"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Siferblat seçimi <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Saat rəngi və ölçü"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Saat rəngi və ölçüsü"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Rəng"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Sol qısayol"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Sağ qısayol"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Heç biri"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"\"<xliff:g id="APPNAME">%1$s</xliff:g>\" seçmək üçün aşağıdakıları yoxlayın"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Qısayol əlavə etmək olmur"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> linkini açın"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> tətbiqini qısayol kimi əlavə etmək üçün bunları təmin edin:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Hazırdır"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Qısayollar"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Heç biri"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Bildirişlər"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Kilid ekranında bildirişləri göstərin"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Kilid ekranında bildirişləri gizlədin"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Digər seçimlər"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Kilid ekranında mətn, İndi Oxudulur və s."</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Digər kilid ekranı seçimləri"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Məxfilik, İndi Efirdə və s."</string>
     <string name="more_colors" msgid="3191071655353004591">"Digər rənglər"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Əsas dinamik tema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Əsas neytral tema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Əsas canlı tema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Əsas ekspressiv tema"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Defolt rəng seçimi"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Rəng seçimi <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-b+sr+Latn/clock_colors.xml b/res/values-b+sr+Latn/clock_colors.xml
deleted file mode 100644
index c30c8c2..0000000
--- a/res/values-b+sr+Latn/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"CRVENA"</item>
-    <item msgid="6882970855289978213">"NARANDŽASTA"</item>
-    <item msgid="5560732545714984533">"ŽUTA"</item>
-    <item msgid="7246284817845434226">"ZELENA"</item>
-    <item msgid="6762906417604676001">"PLAVA"</item>
-    <item msgid="8974135109557664892">"TAMNOPLAVA"</item>
-    <item msgid="786643557830463422">"LJUBIČASTA"</item>
-    <item msgid="6835537356703747621">"SIVA"</item>
-    <item msgid="2470141365136884119">"TIRKIZNA"</item>
-  </string-array>
-</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 57a7e12..36050a5 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Prilagođeni sat"</string>
     <string name="clock_description" msgid="3563839327378948">"Prilagođeni sat"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Promenite prilagođeni sat"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Podešavanja sata"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opcija brojčanika <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Boja i veličina sata"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Boja i veličina sata"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Boja"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Leva prečica"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Desna prečica"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Ništa"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Da biste izabrali „<xliff:g id="APPNAME">%1$s</xliff:g>“, proverite sledeće"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Dodavanje prečice nije uspelo"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Otvorite: <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Da biste dodali aplikaciju <xliff:g id="APPNAME">%1$s</xliff:g> kao prečicu, uverite se"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Gotovo"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Prečice"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ništa"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Obaveštenja"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Prikazuj obaveštenja na zaključanom ekranu"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Sakrij obaveštenja na zaključanom ekranu"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Još opcija"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst na zaključanom ekranu, Trenutno svira i drugo"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Još opcija za zaključani ekran"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privatnost, Trenutno svira i drugo"</string>
     <string name="more_colors" msgid="3191071655353004591">"Još boja"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primarna dinamična tema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primarna neutralna tema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primarna intenzivna tema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primarna ekspresivna tema"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Podrazumevana opcija boje"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opcija boje <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-be/clock_colors.xml b/res/values-be/clock_colors.xml
deleted file mode 100644
index d9a4bcc..0000000
--- a/res/values-be/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ЧЫРВОНЫ"</item>
-    <item msgid="6882970855289978213">"АРАНЖАВЫ"</item>
-    <item msgid="5560732545714984533">"ЖОЎТЫ"</item>
-    <item msgid="7246284817845434226">"ЗЯЛЁНЫ"</item>
-    <item msgid="6762906417604676001">"СІНІ"</item>
-    <item msgid="8974135109557664892">"ІНДЫГА"</item>
-    <item msgid="786643557830463422">"ФІЯЛЕТАВЫ"</item>
-    <item msgid="6835537356703747621">"ШЭРЫ"</item>
-    <item msgid="2470141365136884119">"СІНЕ-ЗЯЛЁНЫ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 4facba9..0bb30ce 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Гадзіннік"</string>
     <string name="clock_description" msgid="3563839327378948">"Выбар цыферблата"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Змяненне цыферблата"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Гадзіннік"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Выбраны цыферблат: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Колер/памер гадз-ка"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Колер і памер гадзінніка"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Колер"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Ярлык \"улева\""</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Ярлык \"управа\""</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Няма"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Каб выбраць праграму \"<xliff:g id="APPNAME">%1$s</xliff:g>\", зрабіце наступнае"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Не ўдалося дадаць ярлык."</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Адкрыць \"<xliff:g id="APPNAME">%1$s</xliff:g>\""</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Каб дадаць ярлык для праграмы \"<xliff:g id="APPNAME">%1$s</xliff:g>\", патрабуюцца наступныя ўмовы:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Гатова"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Ярлыкі"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Няма"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Апавяшчэнні"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Паказваць апавяшчэнні на экране блакіроўкі"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Не паказваць апавяшчэнні на экране блакіроўкі"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Іншыя дзеянні"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Тэкст на экране блакіроўкі, функцыя \"Зараз іграе\" і іншае"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Больш параметраў экрана блакіроўкі"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Прыватнасць, Зараз іграе і іншае"</string>
     <string name="more_colors" msgid="3191071655353004591">"Больш колераў"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Дынамічная асноўная тэма"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Нейтральная асноўная тэма"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Яскравая асноўная тэма"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Выразная асноўная тэма"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Стандартны варыянт колеру"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Варыянт колеру <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-bg/clock_colors.xml b/res/values-bg/clock_colors.xml
deleted file mode 100644
index 058b54d..0000000
--- a/res/values-bg/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ЧЕРВЕНО"</item>
-    <item msgid="6882970855289978213">"ОРАНЖЕВО"</item>
-    <item msgid="5560732545714984533">"ЖЪЛТО"</item>
-    <item msgid="7246284817845434226">"ЗЕЛЕНО"</item>
-    <item msgid="6762906417604676001">"СИНЬО"</item>
-    <item msgid="8974135109557664892">"ИНДИГО"</item>
-    <item msgid="786643557830463422">"ВИОЛЕТОВО"</item>
-    <item msgid="6835537356703747621">"СИВО"</item>
-    <item msgid="2470141365136884119">"СИНЬО-ЗЕЛЕНО"</item>
-  </string-array>
-</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 018b241..61e64a5 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Персонал. циферблат"</string>
     <string name="clock_description" msgid="3563839327378948">"Персон. циферблат: Избор"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Промяна на персонализиран циферблат"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Часовник: Настройки"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Опция за циферблата: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Часовн.: Цвят и размер"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Часовн.: Цвят и размер"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Цвят"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Ляв пряк път"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Десен пряк път"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Без"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"За да изберете <xliff:g id="APPNAME">%1$s</xliff:g>, проверете следното:"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Прекият път не може да се добави"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Отваряне на <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"За да добавите пряк път към приложението <xliff:g id="APPNAME">%1$s</xliff:g>, трябва да се уверите в следното:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Готово"</string>
@@ -124,12 +125,18 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Преки пътища"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Няма"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Известия"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Показване на известията на заключения екран"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Скриване на известията на заключения екран"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Още опции"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Текст на заключения екран, „Сега слушате“ и др."</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Още опции за заключения екран"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Поверителност, „Сега слушате“ и др."</string>
     <string name="more_colors" msgid="3191071655353004591">"Още цветове"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Динамичен цвят от основната тема"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Неутрален цвят от основната тема"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Ярък цвят от основната тема"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Експресивен цвят от основната тема"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Опция за цвета по подразбиране"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Опция за цвета: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Плъзнете наляво, за да изберете друг циферблат"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Плъзнете надясно, за да изберете друг циферблат"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Персонализирани часовници"</string>
 </resources>
diff --git a/res/values-bn/clock_colors.xml b/res/values-bn/clock_colors.xml
deleted file mode 100644
index cd433fa..0000000
--- a/res/values-bn/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"লাল"</item>
-    <item msgid="6882970855289978213">"কমলা"</item>
-    <item msgid="5560732545714984533">"হলুদ"</item>
-    <item msgid="7246284817845434226">"সবুজ"</item>
-    <item msgid="6762906417604676001">"নীল"</item>
-    <item msgid="8974135109557664892">"নীলচে বেগুনি"</item>
-    <item msgid="786643557830463422">"বেগুনি"</item>
-    <item msgid="6835537356703747621">"ধূসর"</item>
-    <item msgid="2470141365136884119">"নীলচে সবুজ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 514ae2e..e1a8260 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"কাস্টম ঘড়ি"</string>
     <string name="clock_description" msgid="3563839327378948">"কাস্টম ঘড়ি বেছে নিন"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"কাস্টম ঘড়ি পরিবর্তন করুন"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"ঘড়ির সেটিংস"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"ঘড়ির ডায়ালের বিকল্প <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"ঘড়ির রঙ &amp; সাইজ"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"ঘড়ির রঙ ও সাইজ"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"রঙ"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"বাঁদিকের শর্টকাট"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ডানদিকের শর্টকাট"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"কোনওটিই নয়"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` বেছে নিতে, এগুলি চেক করুন"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"শর্টকার্ট যোগ করা যাচ্ছে না"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> খুলুন"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"শর্টকাট হিসেবে <xliff:g id="APPNAME">%1$s</xliff:g> অ্যাপ যোগ করতে, এইসব বিষয় নিশ্চিত করতে হবে"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"হয়ে গেছে"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"শর্টকাট"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"কোনও শর্টকাট নেই"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"বিজ্ঞপ্তি"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"লক স্ক্রিনে বিজ্ঞপ্তি দেখুন"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"লক স্ক্রিনে বিজ্ঞপ্তি লুকান"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"আরও বিকল্প"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"লক স্ক্রিনে টেক্সট, এখন চলছে এবং আরও অনেক কিছু"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"লক স্ক্রিনের আরও বিকল্প"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"গোপনীয়তা, এখন চলছে এবং আরও অনেক কিছু"</string>
     <string name="more_colors" msgid="3191071655353004591">"আরও রঙ"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"প্রাইমারি ডায়নামিক থিম"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"প্রাইমারি নিউট্রাল থিম"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"প্রাইমারি ভাইব্রেন্ট থিম"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"প্রাইমারি এক্সপ্রেসিভ থিম"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"রঙের ডিফল্ট বিকল্প"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"রঙের বিকল্প <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-bs/clock_colors.xml b/res/values-bs/clock_colors.xml
deleted file mode 100644
index 0e7f923..0000000
--- a/res/values-bs/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"CRVENA"</item>
-    <item msgid="6882970855289978213">"NARANDŽASTA"</item>
-    <item msgid="5560732545714984533">"ŽUTA"</item>
-    <item msgid="7246284817845434226">"ZELENA"</item>
-    <item msgid="6762906417604676001">"PLAVA"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"LJUBIČASTA"</item>
-    <item msgid="6835537356703747621">"SIVA"</item>
-    <item msgid="2470141365136884119">"TIRKIZNA"</item>
-  </string-array>
-</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 4563c66..cc825bf 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Prilagođeni sat"</string>
     <string name="clock_description" msgid="3563839327378948">"Odabir prilagođ. sata"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Promijenite prilagođeni sat"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Postavke Sata"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opcija brojčanika <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Boja i veličina sata"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Boja i veličina sata"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Boja"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Lijeva prečica"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Desna prečica"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Ništa"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Da odaberete aplikaciju \"<xliff:g id="APPNAME">%1$s</xliff:g>\" provjerite sljedeće"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Nije moguće dodati prečicu"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Otvori aplikaciju <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Da dodate aplikaciju <xliff:g id="APPNAME">%1$s</xliff:g> kao prečicu, pobrinite se za sljedeće"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Gotovo"</string>
@@ -124,12 +125,18 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Prečice"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ništa"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Obavještenja"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Prikaz obavještenja na zaključanom ekranu"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Sakrivanje obavještenja na zaključanom ekranu"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Više opcija"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst na zaključanom ekranu, Trenutno se reproducira i drugo"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Više opcija zaključavanja ekrana"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privatnost, Trenutno se reproducira i drugo"</string>
     <string name="more_colors" msgid="3191071655353004591">"Više boja"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primarna dinamična tema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primarna neutralna tema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primarna živahna tema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primarna ekspresivna tema"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Zadana opcija boje"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opcija boje <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Prijeđite prstom ulijevo da biste odabrali drugi brojčanik"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Prijeđite prstom udesno da biste odabrali drugi brojčanik"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Prilagođeni satovi"</string>
 </resources>
diff --git a/res/values-ca/clock_colors.xml b/res/values-ca/clock_colors.xml
deleted file mode 100644
index c44a460..0000000
--- a/res/values-ca/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"VERMELL"</item>
-    <item msgid="6882970855289978213">"TARONJA"</item>
-    <item msgid="5560732545714984533">"GROC"</item>
-    <item msgid="7246284817845434226">"VERD"</item>
-    <item msgid="6762906417604676001">"BLAU"</item>
-    <item msgid="8974135109557664892">"ANYIL"</item>
-    <item msgid="786643557830463422">"VIOLETA"</item>
-    <item msgid="6835537356703747621">"GRIS"</item>
-    <item msgid="2470141365136884119">"VERD BLAVÓS"</item>
-  </string-array>
-</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 62a5d6f..9b77bc9 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Rellotge pers."</string>
     <string name="clock_description" msgid="3563839327378948">"Tria rellotge pers."</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Canvia un rellotge personalitzat"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Configuració del rellotge"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opció d\'esfera de rellotge <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Color i mida rellotge"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Color i mida del rellotge"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Color"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Drecera de l\'esquerra"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Drecera de la dreta"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Cap"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Per seleccionar <xliff:g id="APPNAME">%1$s</xliff:g>, comprova el següent"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"La drecera no es pot afegir"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Obre <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Per afegir l\'aplicació <xliff:g id="APPNAME">%1$s</xliff:g> com a drecera, assegura\'t que:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Fet"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Dreceres"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Cap"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notificacions"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostra les notificacions a la pantalla de bloqueig"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Amaga les notificacions a la pantalla de bloqueig"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Més opcions"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Text a la pantalla de bloqueig, Està sonant i més"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Opcions de pantalla de bloqueig"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privadesa, Està sonant i més"</string>
     <string name="more_colors" msgid="3191071655353004591">"Més colors"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinàmic principal"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema neutral principal"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema intens principal"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema expressiu principal"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Opció de color predeterminada"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opció de color <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-cs/clock_colors.xml b/res/values-cs/clock_colors.xml
deleted file mode 100644
index 9406e46..0000000
--- a/res/values-cs/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ČERVENÁ"</item>
-    <item msgid="6882970855289978213">"ORANŽOVÁ"</item>
-    <item msgid="5560732545714984533">"ŽLUTÁ"</item>
-    <item msgid="7246284817845434226">"ZELENÁ"</item>
-    <item msgid="6762906417604676001">"MODRÁ"</item>
-    <item msgid="8974135109557664892">"INDIGOVÁ"</item>
-    <item msgid="786643557830463422">"FIALOVÁ"</item>
-    <item msgid="6835537356703747621">"ŠEDÁ"</item>
-    <item msgid="2470141365136884119">"ŠEDOZELENÁ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 72a3c63..f7cbd91 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Vlastní hodiny"</string>
     <string name="clock_description" msgid="3563839327378948">"Výběr vlastních hodin"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Změna vlastních hodin"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Nastavení hodin"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Možnost ciferníku <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Barva a velikost"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Barva a velikost"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Barva"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Zkratka vlevo"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Zkratka vpravo"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Žádné"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Aby bylo možné vybrat aplikaci <xliff:g id="APPNAME">%1$s</xliff:g>, zkontrolujte následující"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Zástupce nelze přidat"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Otevřít aplikaci <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Podmínky pro to, aby aplikaci <xliff:g id="APPNAME">%1$s</xliff:g> bylo možné přidat jako zkratku:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Hotovo"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Zkratky"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Žádné"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Oznámení"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Zobrazovat oznámení na obrazovce uzamčení"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skrýt oznámení na obrazovce uzamčení"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Další možnosti"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Text na obrazovce uzamčení, Co to hraje a další funkce"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Další možnosti obrazovky uzamčení"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Soukromí, Co to hraje a další"</string>
     <string name="more_colors" msgid="3191071655353004591">"Další barvy"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primární dynamický motiv"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primární neutrální motiv"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primární živý motiv"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primární expresivní motiv"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Výchozí barevná varianta"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Barevná varianta <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-da/clock_colors.xml b/res/values-da/clock_colors.xml
deleted file mode 100644
index 6dcbb4d..0000000
--- a/res/values-da/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"RØD"</item>
-    <item msgid="6882970855289978213">"ORANGE"</item>
-    <item msgid="5560732545714984533">"GUL"</item>
-    <item msgid="7246284817845434226">"GRØN"</item>
-    <item msgid="6762906417604676001">"BLÅ"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIOLET"</item>
-    <item msgid="6835537356703747621">"GRÅ"</item>
-    <item msgid="2470141365136884119">"GRØNBLÅ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index d8ed823..ce56aae 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Tilpasset ur"</string>
     <string name="clock_description" msgid="3563839327378948">"Vælg tilpasset ur"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Juster et tilpasset ur"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Indstillinger for Ur"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Valgmulighed for urskive <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Urets farve og str."</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Urets farve og størrelse"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Farve"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Venstre genvej"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Højre genvej"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Ingen"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Hvis du vil vælge \"<xliff:g id="APPNAME">%1$s</xliff:g>\", skal du tjekke følgende"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Genvejen kan ikke tilføjes"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Åbn <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Før du tilføjer <xliff:g id="APPNAME">%1$s</xliff:g>-appen som en genvej, skal du sørge for følgende:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Udfør"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Genveje"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ingen"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notifikationer"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Vis notifikationer på låseskærmen"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skjul notifikationer på låseskærmen"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Flere valgmuligheder"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst på låseskærmen, Find sangen og meget mere"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Flere muligheder for låseskærm"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privatliv, Find sangen m.m."</string>
     <string name="more_colors" msgid="3191071655353004591">"Flere farver"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primært dynamisk tema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primært neutralt tema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primært farverigt tema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primært varieret tema"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Standardfarve"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Farvevalg <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-de/clock_colors.xml b/res/values-de/clock_colors.xml
deleted file mode 100644
index 170bf96..0000000
--- a/res/values-de/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ROT"</item>
-    <item msgid="6882970855289978213">"ORANGE"</item>
-    <item msgid="5560732545714984533">"GELB"</item>
-    <item msgid="7246284817845434226">"GRÜN"</item>
-    <item msgid="6762906417604676001">"BLAU"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIOLETT"</item>
-    <item msgid="6835537356703747621">"GRAU"</item>
-    <item msgid="2470141365136884119">"BLAUGRÜN"</item>
-  </string-array>
-</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index fa17dab..d7536dd 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Benutzerdefinierte Uhr"</string>
     <string name="clock_description" msgid="3563839327378948">"Benutzerdefinierte Uhr wählen"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Benutzerdefinierte Uhr ändern"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Uhr-Einstellungen"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Zifferblatt-Option <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Uhr-Farbe &amp; -Größe"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Uhr-Farbe &amp; -Größe"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Farbe"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Linke Verknüpf."</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Rechte Verknüpf."</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Keine"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Prüfe Folgendes, um <xliff:g id="APPNAME">%1$s</xliff:g>` auszuwählen"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Verknüpfung kann nicht hinzugefügt werden"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> öffnen"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Wenn du die <xliff:g id="APPNAME">%1$s</xliff:g> App als eine Verknüpfung hinzufügen möchtest, müssen folgende Bedingungen erfüllt sein"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Fertig"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Verknüpfungen"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Keine"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Benachrichtigungen"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Benachrichtigungen auf dem Sperrbildschirm einblenden"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Benachrichtigungen auf dem Sperrbildschirm ausblenden"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Weitere Optionen"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Text auf dem Sperrbildschirm, Now Playing und mehr"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Weitere Sperrbildschirmoptionen"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Datenschutz, Now Playing und mehr"</string>
     <string name="more_colors" msgid="3191071655353004591">"Weitere Farben"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primäres dynamisches Design"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primäres neutrales Design"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primäres lebhaftes Design"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primäres ausdrucksstarkes Design"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Standardfarboption"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Farboption <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-el/clock_colors.xml b/res/values-el/clock_colors.xml
deleted file mode 100644
index 9c0394f..0000000
--- a/res/values-el/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ΚΟΚΚΙΝΟ"</item>
-    <item msgid="6882970855289978213">"ΠΟΡΤΟΚΑΛΙ"</item>
-    <item msgid="5560732545714984533">"ΚΙΤΡΙΝΟ"</item>
-    <item msgid="7246284817845434226">"ΠΡΑΣΙΝΟ"</item>
-    <item msgid="6762906417604676001">"ΜΠΛΕ"</item>
-    <item msgid="8974135109557664892">"ΛΟΥΛΑΚΙ"</item>
-    <item msgid="786643557830463422">"ΒΙΟΛΕΤΙ"</item>
-    <item msgid="6835537356703747621">"ΓΚΡΙ"</item>
-    <item msgid="2470141365136884119">"ΓΑΛΑΖΟΠΡΑΣΙΝΟ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index c9f12f8..daa699c 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Προσαρ. ρολόι"</string>
     <string name="clock_description" msgid="3563839327378948">"Επιλογή προσαρ. ρολογιού"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Αλλαγή προσαρ. ρολογιού"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Ρυθμ. ρολογιού"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Επιλογή όψης ρολογιού <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Χρώμα/μέγεθ. ρολογ."</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Χρώμα και μέγεθος"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Χρώμα"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Αριστερή συντόμ."</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Δεξιά συντόμευση"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Καμία"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Για να επιλέξετε \"<xliff:g id="APPNAME">%1$s</xliff:g>\", ελέγξτε τα εξής"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Δεν είναι δυνατή η προσθήκη συντόμευσης"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Άνοιγμα <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Για να προσθέσετε την εφαρμογή <xliff:g id="APPNAME">%1$s</xliff:g> ως συντόμευση, βεβαιωθείτε ότι"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Τέλος"</string>
@@ -124,12 +125,18 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Συντομεύσεις"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Καμία"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Ειδοποιήσεις"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Εμφάνιση ειδοποιήσεων στην οθόνη κλειδώματος"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Απόκρυψη ειδοποιήσεων στην οθόνη κλειδώματος"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Περισσότερες επιλογές"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Κείμενο στην οθόνη κλειδώματος, λειτουργία \"Ακούγεται τώρα\" κ.ά."</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Περισσότ. επιλογές οθόνης κλειδ."</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Απόρρητο, Ακούγεται τώρα κ.ά."</string>
     <string name="more_colors" msgid="3191071655353004591">"Περισσότερα χρώματα"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Κύριο δυναμικό θέμα"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Κύριο ουδέτερο θέμα"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Κύριο ζωηρό θέμα"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Κύριο εκφραστικό θέμα"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Επιλογή προεπιλεγμένου χρώματος"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Επιλογή χρώματος <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Σύρετε προς τα αριστερά για να επιλέξετε μια διαφορετική όψη ρολογιού"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Σύρετε προς τα δεξιά για να επιλέξετε μια διαφορετική όψη ρολογιού"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Προσαρμοσμένα ρολόγια"</string>
 </resources>
diff --git a/res/values-en-rAU/clock_colors.xml b/res/values-en-rAU/clock_colors.xml
deleted file mode 100644
index 31e40f5..0000000
--- a/res/values-en-rAU/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"RED"</item>
-    <item msgid="6882970855289978213">"ORANGE"</item>
-    <item msgid="5560732545714984533">"YELLOW"</item>
-    <item msgid="7246284817845434226">"GREEN"</item>
-    <item msgid="6762906417604676001">"BLUE"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIOLET"</item>
-    <item msgid="6835537356703747621">"GREY"</item>
-    <item msgid="2470141365136884119">"TEAL"</item>
-  </string-array>
-</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 89150c9..9b6853a 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Custom clock"</string>
     <string name="clock_description" msgid="3563839327378948">"Pick a custom clock"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Change a custom clock"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Clock settings"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Clock face option <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Clock colour &amp; size"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Clock colour and size"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Colour"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Left shortcut"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Right shortcut"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"None"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"To select \'<xliff:g id="APPNAME">%1$s</xliff:g>\' check the following"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Can\'t add shortcut"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Open <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"To add the <xliff:g id="APPNAME">%1$s</xliff:g> app as a shortcut, make sure"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Done"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Shortcuts"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"None"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notifications"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Show notifications on the lock screen"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Hide notifications on the lock screen"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"More options"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Text on lock screen, Now Playing and more"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"More lock screen options"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Now Playing and more"</string>
     <string name="more_colors" msgid="3191071655353004591">"More colours"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primary dynamic theme"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primary neutral theme"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primary vibrant theme"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primary expressive theme"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Default colour option"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Colour option <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-en-rCA/clock_colors.xml b/res/values-en-rCA/clock_colors.xml
deleted file mode 100644
index da2322f..0000000
--- a/res/values-en-rCA/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"RED"</item>
-    <item msgid="6882970855289978213">"ORANGE"</item>
-    <item msgid="5560732545714984533">"YELLOW"</item>
-    <item msgid="7246284817845434226">"GREEN"</item>
-    <item msgid="6762906417604676001">"BLUE"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIOLET"</item>
-    <item msgid="6835537356703747621">"GRAY"</item>
-    <item msgid="2470141365136884119">"TEAL"</item>
-  </string-array>
-</resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 5cbf5b4..08b2eb1 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Custom Clock"</string>
     <string name="clock_description" msgid="3563839327378948">"Pick a custom clock"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Change a custom clock"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Clock Settings"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Clock face option <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Clock color &amp; size"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Clock color &amp; size"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Color"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Left shortcut"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Right shortcut"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"None"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"To select `<xliff:g id="APPNAME">%1$s</xliff:g>` check the following"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Can\'t add shortcut"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Open <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"To add the <xliff:g id="APPNAME">%1$s</xliff:g> app as a shortcut, make sure"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Done"</string>
@@ -124,12 +125,18 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Shortcuts"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"None"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notifications"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Show notifications on the lock screen"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Hide notifications on the lock screen"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"More options"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Text on lock screen, Now Playing, and more"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"More lock screen options"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Now Playing, and more"</string>
     <string name="more_colors" msgid="3191071655353004591">"More Colors"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primary dynamic theme"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primary neutral theme"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primary vibrant theme"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primary expressive theme"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Default color option"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Color option <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Swipe left to choose a different clock face"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Swipe right to choose a different clock face"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Custom Clocks"</string>
 </resources>
diff --git a/res/values-en-rGB/clock_colors.xml b/res/values-en-rGB/clock_colors.xml
deleted file mode 100644
index 31e40f5..0000000
--- a/res/values-en-rGB/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"RED"</item>
-    <item msgid="6882970855289978213">"ORANGE"</item>
-    <item msgid="5560732545714984533">"YELLOW"</item>
-    <item msgid="7246284817845434226">"GREEN"</item>
-    <item msgid="6762906417604676001">"BLUE"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIOLET"</item>
-    <item msgid="6835537356703747621">"GREY"</item>
-    <item msgid="2470141365136884119">"TEAL"</item>
-  </string-array>
-</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 89150c9..9b6853a 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Custom clock"</string>
     <string name="clock_description" msgid="3563839327378948">"Pick a custom clock"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Change a custom clock"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Clock settings"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Clock face option <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Clock colour &amp; size"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Clock colour and size"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Colour"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Left shortcut"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Right shortcut"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"None"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"To select \'<xliff:g id="APPNAME">%1$s</xliff:g>\' check the following"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Can\'t add shortcut"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Open <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"To add the <xliff:g id="APPNAME">%1$s</xliff:g> app as a shortcut, make sure"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Done"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Shortcuts"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"None"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notifications"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Show notifications on the lock screen"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Hide notifications on the lock screen"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"More options"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Text on lock screen, Now Playing and more"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"More lock screen options"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Now Playing and more"</string>
     <string name="more_colors" msgid="3191071655353004591">"More colours"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primary dynamic theme"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primary neutral theme"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primary vibrant theme"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primary expressive theme"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Default colour option"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Colour option <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-en-rIN/clock_colors.xml b/res/values-en-rIN/clock_colors.xml
deleted file mode 100644
index 31e40f5..0000000
--- a/res/values-en-rIN/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"RED"</item>
-    <item msgid="6882970855289978213">"ORANGE"</item>
-    <item msgid="5560732545714984533">"YELLOW"</item>
-    <item msgid="7246284817845434226">"GREEN"</item>
-    <item msgid="6762906417604676001">"BLUE"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIOLET"</item>
-    <item msgid="6835537356703747621">"GREY"</item>
-    <item msgid="2470141365136884119">"TEAL"</item>
-  </string-array>
-</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 89150c9..9b6853a 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Custom clock"</string>
     <string name="clock_description" msgid="3563839327378948">"Pick a custom clock"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Change a custom clock"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Clock settings"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Clock face option <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Clock colour &amp; size"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Clock colour and size"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Colour"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Left shortcut"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Right shortcut"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"None"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"To select \'<xliff:g id="APPNAME">%1$s</xliff:g>\' check the following"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Can\'t add shortcut"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Open <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"To add the <xliff:g id="APPNAME">%1$s</xliff:g> app as a shortcut, make sure"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Done"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Shortcuts"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"None"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notifications"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Show notifications on the lock screen"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Hide notifications on the lock screen"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"More options"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Text on lock screen, Now Playing and more"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"More lock screen options"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Now Playing and more"</string>
     <string name="more_colors" msgid="3191071655353004591">"More colours"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primary dynamic theme"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primary neutral theme"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primary vibrant theme"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primary expressive theme"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Default colour option"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Colour option <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-en-rXC/clock_colors.xml b/res/values-en-rXC/clock_colors.xml
deleted file mode 100644
index a06793b..0000000
--- a/res/values-en-rXC/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‏‎‏‎‏‏‎‏‎‏‎‏‎‏‏‎‎‏‏‎‎‏‎‏‏‏‎‏‎‎‎‎‎‎‏‎‏‎‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‎RED‎‏‎‎‏‎"</item>
-    <item msgid="6882970855289978213">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‎‎‎‏‏‎‎‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‎ORANGE‎‏‎‎‏‎"</item>
-    <item msgid="5560732545714984533">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‎‎‏‏‏‎‎‏‎‎‏‎‏‏‏‎‎‏‎‏‏‎‎‏‎‏‎‏‎‏‎YELLOW‎‏‎‎‏‎"</item>
-    <item msgid="7246284817845434226">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‏‎‎‎‏‏‏‏‎‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‏‎‏‏‏‎‎‏‎‎GREEN‎‏‎‎‏‎"</item>
-    <item msgid="6762906417604676001">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎‏‎‏‎‏‎‏‎‏‏‏‎‎‎‏‏‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‎‎‏‎‏‎‎‏‎‎‏‏‎‏‎‎‎‎‏‎BLUE‎‏‎‎‏‎"</item>
-    <item msgid="8974135109557664892">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‏‎‎‎‏‎‎‎‎‏‎‏‎‏‎‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‎‏‏‏‏‏‎‎‎INDIGO‎‏‎‎‏‎"</item>
-    <item msgid="786643557830463422">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‏‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‏‎‏‎‏‎‏‎‏‎‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎VIOLET‎‏‎‎‏‎"</item>
-    <item msgid="6835537356703747621">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‎‏‏‏‎‎‏‎‏‏‎‏‎‏‎‎‎‎‎‎‏‎‎‏‏‏‏‎‏‏‎‎‏‏‏‏‎‏‎‏‎‎‏‏‏‎‎‎‏‎‎‏‎‏‎GRAY‎‏‎‎‏‎"</item>
-    <item msgid="2470141365136884119">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‏‎‎‏‎‏‏‏‎TEAL‎‏‎‎‏‎"</item>
-  </string-array>
-</resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 4bbe879..121a30d 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‎‏‏‎‎‎‏‎‏‏‎‎‏‎‏‎‎‏‎‏‎‏‎‏‎‎‏‎‎‏‎‏‏‎‎‏‎‏‏‏‎‏‎‎‎‏‎‎‏‎‎‎‎Custom Clock‎‏‎‎‏‎"</string>
     <string name="clock_description" msgid="3563839327378948">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‎‎‏‎‏‎‏‎‎‏‎‏‎‎‏‎‏‏‎‎‎‎‎‎‎‏‎‎‏‎‎‏‎‏‎‎‎‏‏‏‏‎‎‎‎‎‎‏‎‎‎Pick a custom clock‎‏‎‎‏‎"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‎‎‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‎‏‎‏‎‎‎‏‎‎‎‏‏‏‎‎‏‏‏‎‎‎‎‏‎‏‏‎‎Change a custom clock‎‏‎‎‏‎"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‎‏‏‏‏‎‏‎‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‏‎‏‏‎‎‎‏‏‎‎‎‏‎‎‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‎Clock Settings‎‏‎‎‏‎"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‎‏‏‏‎‏‏‏‎‏‏‎‏‎‏‏‏‎‏‏‏‎‏‎‎‎‏‎‏‎‎‎‎‎‎‎Clock face option ‎‏‎‎‏‏‎<xliff:g id="ID_1">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‏‎‏‏‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‎‏‏‎‎‎‏‎‎‏‎‏‏‎‏‏‎‎‎‏‎‏‎‎‏‎‏‎‏‏‏‏‎Clock color &amp; size‎‏‎‎‏‎"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‎‏‏‏‎‏‎‎‎‎‎‎‎‏‏‎‎‎‎‏‏‎‏‎‎‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‏‎Clock color &amp; size‎‏‎‎‏‎"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‏‎‎‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‏‎‎‏‎‎‎‎‏‎‎‏‎‎‏‏‎<xliff:g id="ID_1">%1$s</xliff:g>‎‏‎‎‏‏‏‎, ‎‏‎‎‏‏‎<xliff:g id="ID_2">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="clock_color" msgid="8081608867289156163">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‏‏‏‏‎‏‎‎‏‎‎‎‏‏‏‎‎‏‎‎‏‎‏‎‏‎‎‎‏‏‎‏‎‏‎‏‏‎‎‏‎‏‎‎‏‎‎‎‎‏‏‎Color‎‏‎‎‏‎"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‏‎‏‎‎‏‎‏‏‏‎‎‏‏‎‏‎‎‎‏‏‎‏‏‏‎‏‎‏‏‏‎Left shortcut‎‏‎‎‏‎"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‎‏‏‎‎‎‏‎‏‎‏‎‏‎‏‏‎‎‎‏‏‎‎‏‏‏‎‎‎‎‎‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎Right shortcut‎‏‎‎‏‎"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‏‎‎‏‏‏‏‎‎‎‏‎‏‏‎‏‏‏‎‎‎‎‎‎‏‏‏‏‎‎‏‎‎‎‏‏‏‎‎‎‎‎‏‏‎‎‏‎‏‏‎‏‎‎‎‎None‎‏‎‎‏‎"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‎‏‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‎‏‏‏‏‎‏‏‎‏‏‏‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‏‎‏‎To select `‎‏‎‎‏‏‎<xliff:g id="APPNAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎` check the following‎‏‎‎‏‎"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‎‏‎‎‏‎‎‎‎‏‎‏‏‎‎‏‎‏‎‏‏‏‏‏‎‎‎‎‎‏‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‎‎‏‎‏‎‎Can\'t add shortcut‎‏‎‎‏‎"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‏‎‏‎‏‏‎‏‎‏‏‎‏‎‏‏‎‎‎‏‎‎‎‎‏‎‎‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‎‎‏‏‏‏‏‏‎‎Open ‎‏‎‎‏‏‎<xliff:g id="APPNAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‎‏‎‎‎‎‏‏‏‏‎‎‎‎‏‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‎‎‎‎‎‎‏‏‏‎‏‏‎‏‏‎‏‎‎‎‎‏‎‎To add the ‎‏‎‎‏‏‎<xliff:g id="APPNAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ app as a shortcut, make sure‎‏‎‎‏‎"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‎‏‎‏‎‏‏‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‏‎‎‏‏‎‏‏‎‎‎Done‎‏‎‎‏‎"</string>
@@ -124,12 +125,18 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‏‎‎‎‏‏‏‎‎‎‎‎‏‏‏‏‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‎Shortcuts‎‏‎‎‏‎"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‎‎‎‎‏‏‎‏‏‎‎‏‎‏‎‎‎‎‎‎‏‏‎‎‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‎‏‏‎<xliff:g id="FIRST">%1$s</xliff:g>‎‏‎‎‏‏‏‎, ‎‏‎‎‏‏‎<xliff:g id="SECOND">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‎‎‏‏‎‎‏‏‏‎‎‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‎‎‏‏‎‎‎‎‎‏‏‎None‎‏‎‎‏‎"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‏‎‎‎‎‎‏‏‏‎‎‏‏‎‎‎‎‏‏‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‎‎‏‏‏‏‏‎‏‏‎‎‏‏‏‎‎‏‎‎Notifications‎‏‎‎‏‎"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‎‎‏‏‎‏‎‎‎‏‏‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‏‎‎‎‎‎‎‎Show notifications on the lock screen‎‏‎‎‏‎"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‎‏‎‎‎‏‏‎‏‏‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‎‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‏‎‎‏‏‎‎Hide notifications on the lock screen‎‏‎‎‏‎"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‏‏‏‏‏‏‎‎‏‎‎‎‎‎‏‏‎‎‎‏‎‏‎‎‎‏‏‎‏‏‏‏‎‎‎More options‎‏‎‎‏‎"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‎‎‎‏‏‎‏‏‎‎‏‏‏‏‎‎‏‏‏‎‏‏‎‎‏‏‏‎‏‏‏‎‏‎‏‎‎‎‏‏‎‏‏‎‏‎‏‎‏‏‎Text on lock screen, Now Playing, and more‎‏‎‎‏‎"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‏‏‏‎‎‏‏‎‏‎‎‏‏‎‏‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎More lock screen options‎‏‎‎‏‎"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎‏‏‎‎‎‎‏‏‏‎‏‎‎‏‏‎‏‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‏‏‎‏‎‏‎Privacy, Now Playing, and more‎‏‎‎‏‎"</string>
     <string name="more_colors" msgid="3191071655353004591">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‎‏‎‎‎‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‎‎‎‏‎‎‎‏‎‎‎‏‏‎‎‏‎‎‎‏‎‏‏‏‏‎More Colors‎‏‎‎‏‎"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‏‎‏‎‏‎‏‎‎‎‏‏‏‏‎‎‏‏‏‎‏‏‏‏‎‎‏‎‏‏‎‎‎‏‏‎‏‎‏‎‏‎‎‎‎‎‎‏‎‏‏‏‏‎‎Primary dynamic theme‎‏‎‎‏‎"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‎‏‎‏‏‏‎‏‏‎‎‏‎‏‎‏‏‏‎‏‎‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎Primary neutral theme‎‏‎‎‏‎"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‏‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‏‎‏‏‏‎‏‎‏‎‎‎‏‏‎‎‏‎‏‏‏‎‏‎‏‎Primary vibrant theme‎‏‎‎‏‎"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‎‏‎‏‎‎‎‏‏‎‎‏‏‏‎‏‏‏‏‎‎‎‎‏‎‏‎‎‏‏‎‏‎‎‎‎‎‎‏‎‎‎‎‏‎‎‏‎‎‎‏‎‎Primary expressive theme‎‏‎‎‏‎"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‏‏‏‏‎‏‎‎‎‏‎‏‎‏‎‎‏‎‎‏‏‎‏‎‏‎‏‎‏‏‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‏‎‏‏‏‎Default color option‎‏‎‎‏‎"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‎‏‏‏‏‎‎‎‏‎‎‏‏‏‎‏‏‏‎‏‎‏‏‏‎‏‎‎‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‏‏‎‎‎‎‏‏‎‏‎‎Color option ‎‏‎‎‏‏‎<xliff:g id="ID_1">%1$d</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‏‎‏‏‏‎‏‏‏‏‏‎‎‏‏‏‎‎‏‎‏‎‎‏‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‎‏‎‏‏‏‏‏‏‎‎‏‎Swipe left to choose a different clock face‎‏‎‎‏‎"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‏‎‎‎‏‎‎‏‎‏‎‏‏‎‎‎‎‏‎‏‎‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‎‏‎Swipe right to choose a different clock face‎‏‎‎‏‎"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‏‏‎‎‏‏‏‎‏‎‎‎‏‏‏‏‎‏‏‎‏‏‏‎‏‏‎‎‎‎‏‏‎‎‎‎‏‎‎‎‎‏‏‎Custom Clocks‎‏‎‎‏‎"</string>
 </resources>
diff --git a/res/values-es-rUS/clock_colors.xml b/res/values-es-rUS/clock_colors.xml
deleted file mode 100644
index 6caf3b8..0000000
--- a/res/values-es-rUS/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ROJO"</item>
-    <item msgid="6882970855289978213">"NARANJA"</item>
-    <item msgid="5560732545714984533">"AMARILLO"</item>
-    <item msgid="7246284817845434226">"VERDE"</item>
-    <item msgid="6762906417604676001">"AZUL"</item>
-    <item msgid="8974135109557664892">"ÍNDIGO"</item>
-    <item msgid="786643557830463422">"VIOLETA"</item>
-    <item msgid="6835537356703747621">"GRIS"</item>
-    <item msgid="2470141365136884119">"VERDE AZULADO"</item>
-  </string-array>
-</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index ade277f..c8ee62c 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Reloj person."</string>
     <string name="clock_description" msgid="3563839327378948">"Elige un reloj"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Cambia el reloj personalizado"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Config. del reloj"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opción de cara de reloj <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Color, tamaño de reloj"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Reloj: color, tamaño"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Color"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Acceso izquierdo"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Acceso derecho"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Ninguno"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Para seleccionar \"<xliff:g id="APPNAME">%1$s</xliff:g>\", verifica lo siguiente"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"No se puede agregar el acceso directo"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Abrir <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Para agregar la app <xliff:g id="APPNAME">%1$s</xliff:g> como acceso directo, asegúrate que se cumplan los siguientes requisitos:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Listo"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Accesos directos"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ninguno"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notificaciones"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostrar las notificaciones en la pantalla de bloqueo"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Esconder las notificaciones en la pantalla de bloqueo"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Más opciones"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Texto en la pantalla de bloqueo, Está sonando y mucho más"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Opciones de pantalla de bloqueo"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privacidad, Está sonando y más"</string>
     <string name="more_colors" msgid="3191071655353004591">"Más colores"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinámico principal"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema neutro principal"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema intenso principal"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema expresivo principal"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Opción de color predeterminada"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opción en color <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-es/clock_colors.xml b/res/values-es/clock_colors.xml
deleted file mode 100644
index b8607fb..0000000
--- a/res/values-es/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ROJO"</item>
-    <item msgid="6882970855289978213">"NARANJA"</item>
-    <item msgid="5560732545714984533">"AMARILLO"</item>
-    <item msgid="7246284817845434226">"VERDE"</item>
-    <item msgid="6762906417604676001">"AZUL"</item>
-    <item msgid="8974135109557664892">"ÍNDIGO"</item>
-    <item msgid="786643557830463422">"VIOLETA"</item>
-    <item msgid="6835537356703747621">"GRIS"</item>
-    <item msgid="2470141365136884119">"TURQUESA"</item>
-  </string-array>
-</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 25c2b86..1ecfabd 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Reloj personalizado"</string>
     <string name="clock_description" msgid="3563839327378948">"Elige un reloj personalizado"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Cambiar reloj personalizado"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Ajustes del reloj"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opción de formato del reloj <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Color/tamaño (reloj)"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Color y tamaño del reloj"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Color"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Acceso izquierdo"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Acceso derecho"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Ninguno"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Para seleccionar <xliff:g id="APPNAME">%1$s</xliff:g>, comprueba lo siguiente"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"No puede añadir el acceso directo"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Abrir <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Para añadir la aplicación <xliff:g id="APPNAME">%1$s</xliff:g> como acceso directo:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Hecho"</string>
@@ -124,12 +125,18 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Accesos directos"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ninguno"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notificaciones"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostrar notificaciones en la pantalla de bloqueo"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ocultar notificaciones en la pantalla de bloqueo"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Más opciones"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Texto en pantalla de bloqueo, Está Sonando y más"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Más opciones de pantalla de bloqueo"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privacidad, Está Sonando y más"</string>
     <string name="more_colors" msgid="3191071655353004591">"Más colores"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinámico principal"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema neutro principal"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema intenso principal"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema expresivo principal"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Opción de color predeterminada"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opción de color <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Desliza hacia la izquierda para elegir otro formato de reloj"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Desliza hacia la derecha para elegir otro formato de reloj"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Relojes personalizados"</string>
 </resources>
diff --git a/res/values-et/clock_colors.xml b/res/values-et/clock_colors.xml
deleted file mode 100644
index 7d73aa2..0000000
--- a/res/values-et/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"PUNANE"</item>
-    <item msgid="6882970855289978213">"ORANŽ"</item>
-    <item msgid="5560732545714984533">"KOLLANE"</item>
-    <item msgid="7246284817845434226">"ROHELINE"</item>
-    <item msgid="6762906417604676001">"SININE"</item>
-    <item msgid="8974135109557664892">"INDIGOSININE"</item>
-    <item msgid="786643557830463422">"VIOLETNE"</item>
-    <item msgid="6835537356703747621">"HALL"</item>
-    <item msgid="2470141365136884119">"SINAKASROHELINE"</item>
-  </string-array>
-</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 4be5a22..8d127e3 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Kohandatud kell"</string>
     <string name="clock_description" msgid="3563839327378948">"Kohandatud kell"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Kohandatud kella muutmine"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Kella seaded"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Kelladisaini valik <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Kella värv/suurus"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Kella värv ja suurus"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Värv"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Vasak otsetee"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Parem otsetee"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Puudub"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Rakenduse „<xliff:g id="APPNAME">%1$s</xliff:g>“ valimiseks veenduge järgmises"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Otseteed ei saa lisada"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Ava <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Rakenduse <xliff:g id="APPNAME">%1$s</xliff:g> otsetee lisamiseks veenduge järgmises."</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Valmis"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Otseteed"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Pole"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Märguanded"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Kuva märguanded lukustuskuval"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Peida märguanded lukustuskuval"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Rohkem valikuid"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst lukustuskuval, Hetkel mängimas ja muud"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Rohkem lukustuskuva valikuid"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privaatsus, Hetkel mängimas ja muu"</string>
     <string name="more_colors" msgid="3191071655353004591">"Rohkem värve"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Peamine dünaamiline teema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Peamine neutraalne teema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Peamine elav teema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Peamine ekspressiivne teema"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Vaikevärvi valik"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Värvivalik <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-eu/clock_colors.xml b/res/values-eu/clock_colors.xml
deleted file mode 100644
index 453cb8e..0000000
--- a/res/values-eu/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"GORRIA"</item>
-    <item msgid="6882970855289978213">"LARANJA"</item>
-    <item msgid="5560732545714984533">"HORIA"</item>
-    <item msgid="7246284817845434226">"BERDEA"</item>
-    <item msgid="6762906417604676001">"URDINA"</item>
-    <item msgid="8974135109557664892">"INDIGOA"</item>
-    <item msgid="786643557830463422">"BIOLETA"</item>
-    <item msgid="6835537356703747621">"GRISA"</item>
-    <item msgid="2470141365136884119">"ANILA"</item>
-  </string-array>
-</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 90e3559..fc1b788 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Esfera pertsonalizatuak"</string>
     <string name="clock_description" msgid="3563839327378948">"Hautatu esfera pertsonalizatu bat"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Aldatu esfera pertsonalizatua"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Erlojuaren ezarpenak"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Erloju-esferaren <xliff:g id="ID_1">%1$s</xliff:g>. aukera"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Erlojuaren kolorea eta tamaina"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Erlojuaren kolorea eta tamaina"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Kolorea"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Ezkerreko lasterbidea"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Eskuineko lasterbidea"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Bat ere ez"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"<xliff:g id="APPNAME">%1$s</xliff:g> hautatzeko, egin hauek:"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Ezin da gehitu lasterbidea"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Ireki <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> aplikazioa lasterbide gisa gehitzeko, ziurtatu hauek betetzen direla:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Eginda"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Lasterbideak"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g> eta <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Bat ere ez"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Jakinarazpenak"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Erakutsi jakinarazpenak pantaila blokeatuan"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ezkutatu jakinarazpenak pantaila blokeatuan"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Aukera gehiago"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Testua pantaila blokeatuan, Orain erreproduzitzen eta abar"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Pantaila blokeatzeko aukera gehiago"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Pribatutasuna, Orain erreproduzitzen eta abar"</string>
     <string name="more_colors" msgid="3191071655353004591">"Kolore gehiago"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Gai nagusi dinamikoa"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Gai nagusi neutroa"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Gai nagusi bizia"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Gai nagusi adierazgarria"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Kolore-aukera lehenetsia"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Kolore-aukera <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-fa/clock_colors.xml b/res/values-fa/clock_colors.xml
deleted file mode 100644
index e890d08..0000000
--- a/res/values-fa/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"قرمز"</item>
-    <item msgid="6882970855289978213">"نارنجی"</item>
-    <item msgid="5560732545714984533">"زرد"</item>
-    <item msgid="7246284817845434226">"سبز"</item>
-    <item msgid="6762906417604676001">"آبی"</item>
-    <item msgid="8974135109557664892">"نیلی"</item>
-    <item msgid="786643557830463422">"یاسی"</item>
-    <item msgid="6835537356703747621">"خاکستری"</item>
-    <item msgid="2470141365136884119">"سبز دودی"</item>
-  </string-array>
-</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 94f3546..155bf43 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"ساعت سفارشی"</string>
     <string name="clock_description" msgid="3563839327378948">"انتخاب ساعت سفارشی"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"تغییر ساعت سفارشی"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"تنظیمات ساعت"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"گزینه صفحه ساعت <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"اندازه و رنگ ساعت"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"اندازه و رنگ ساعت"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>، <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"رنگ"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"میان‌بر چپ"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"میان‌بر راست"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"هیچ‌کدام"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"برای انتخاب «<xliff:g id="APPNAME">%1$s</xliff:g>»، مورد زیر را بررسی کنید"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"میان‌بر اضافه نشد"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"باز کردن <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"برای افزودن برنامه <xliff:g id="APPNAME">%1$s</xliff:g> به‌عنوان میان‌بر، مطمئن شوید"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"تمام"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"میان‌برها"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>، <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"هیچ‌کدام"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"اعلان‌ها"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"نمایش اعلان‌ها در صفحه قفل"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"پنهان کردن اعلان‌ها در صفحه قفل"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"گزینه‌های بیشتر"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"نوشتار صفحه قفل، درحال پخش، و موارد دیگر"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"گزینه‌های بیشتر برای صفحه قفل"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"«حریم خصوصی»، «درحال پخش»، و موارد دیگر"</string>
     <string name="more_colors" msgid="3191071655353004591">"رنگ‌های بیشتر"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"زمینه پویای اصلی"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"زمینه خنثی اصلی"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"زمینه زنده اصلی"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"زمینه تأثیرگذار اصلی"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"گزینه رنگ پیش‌فرض"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"گزینه رنگ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-fi/clock_colors.xml b/res/values-fi/clock_colors.xml
deleted file mode 100644
index 4da60ae..0000000
--- a/res/values-fi/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"PUNAINEN"</item>
-    <item msgid="6882970855289978213">"ORANSSI"</item>
-    <item msgid="5560732545714984533">"KELTAINEN"</item>
-    <item msgid="7246284817845434226">"VIHREÄ"</item>
-    <item msgid="6762906417604676001">"SININEN"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIOLETTI"</item>
-    <item msgid="6835537356703747621">"HARMAA"</item>
-    <item msgid="2470141365136884119">"TURKOOSI"</item>
-  </string-array>
-</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 2d315cc..e902e67 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Oma kello"</string>
     <string name="clock_description" msgid="3563839327378948">"Valitse kello"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Muuta omaa kelloa"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Kelloasetukset"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Kellotauluvaihtoehto <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Kellon väri ja koko"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Kellon väri ja koko"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Väri"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Vasen pikakuvake"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Oikea pikakuvake"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"–"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Tarkista seuraavat, jotta \"<xliff:g id="APPNAME">%1$s</xliff:g>\" on valittavissa"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Pikanäppäintä ei voi lisätä"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Avaa <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Jos haluat, että <xliff:g id="APPNAME">%1$s</xliff:g> lisätään pikakuvakkeeksi, varmista nämä:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Valmis"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Pikakuvakkeet"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"–"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Ilmoitukset"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Näytä ilmoitukset lukitusnäytöllä"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Piilota lukitusnäytön ilmoitukset"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Lisäasetukset"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Lukitusnäytöllä näkyvä teksti, Musiikintunnistus ja muita"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Lisää valintoja lukitusnäytölle"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Yksityisyys, Musiikintunnistus ja muita"</string>
     <string name="more_colors" msgid="3191071655353004591">"Lisää värejä"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Ensisijainen dynaaminen teema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Ensisijainen neutraali teema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Ensisijainen voimakas teema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Ensisijainen ekspressiivinen teema"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Oletusväri"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Värivaihtoehto: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-fr-rCA/clock_colors.xml b/res/values-fr-rCA/clock_colors.xml
deleted file mode 100644
index a02729a..0000000
--- a/res/values-fr-rCA/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ROUGE"</item>
-    <item msgid="6882970855289978213">"ORANGE"</item>
-    <item msgid="5560732545714984533">"JAUNE"</item>
-    <item msgid="7246284817845434226">"VERT"</item>
-    <item msgid="6762906417604676001">"BLEU"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIOLET"</item>
-    <item msgid="6835537356703747621">"GRIS"</item>
-    <item msgid="2470141365136884119">"BLEU SARCELLE"</item>
-  </string-array>
-</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 47a40a2..8f5dd8f 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Horloge personnalisée"</string>
     <string name="clock_description" msgid="3563839327378948">"Choisissez une horloge personnalisée"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Modifiez une horloge personnalisée"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Param. horloge"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Option du cadran d\'horloge <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Couleur/taille"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Couleur/taille (horloge)"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Couleur"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Raccourci gauche"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Raccourci droit"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Aucun"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Pour sélectionner « <xliff:g id="APPNAME">%1$s</xliff:g> » vérifiez ce qui suit"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Impossible d\'ajouter le raccourci"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Ouvrir <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Pour ajouter l\'application <xliff:g id="APPNAME">%1$s</xliff:g> en tant que raccourci, assurez-vous"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"OK"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Raccourcis"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Aucun"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notifications"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Afficher les notifications sur l\'écran de verrouillage"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Masquez les notifications sur l\'écran de verrouillage"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Plus d\'options"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Texte sur l\'écran de verrouillage, En cours de lecture, etc."</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Options : écran de verrouillage"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Confidentialité, En cours de lecture, etc."</string>
     <string name="more_colors" msgid="3191071655353004591">"Plus de couleurs"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Thème dynamique principal"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Thème neutre principal"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Thème vif principal"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Thème expressif principal"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Option de couleur par défaut"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Option de couleur <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-fr/clock_colors.xml b/res/values-fr/clock_colors.xml
deleted file mode 100644
index 6daf394..0000000
--- a/res/values-fr/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ROUGE"</item>
-    <item msgid="6882970855289978213">"ORANGE"</item>
-    <item msgid="5560732545714984533">"JAUNE"</item>
-    <item msgid="7246284817845434226">"VERT"</item>
-    <item msgid="6762906417604676001">"BLEU"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"MAUVE"</item>
-    <item msgid="6835537356703747621">"GRIS"</item>
-    <item msgid="2470141365136884119">"TURQUOISE"</item>
-  </string-array>
-</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index cf97637..68ccdbc 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Cadran perso."</string>
     <string name="clock_description" msgid="3563839327378948">"Choisir cadran"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Modifier un cadran personnalisé"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Paramètres Horloge"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Option de cadran <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Taille et couleur de l\'Horloge"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Taille et couleur de l\'horloge"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Couleur"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Raccourci gauche"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Raccourci droit"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Aucun"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Pour sélectionner <xliff:g id="APPNAME">%1$s</xliff:g>, vérifiez ce qui suit"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Impossible d\'ajouter un raccourci"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Ouvrir <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Pour ajouter l\'appli <xliff:g id="APPNAME">%1$s</xliff:g> comme raccourci, procédez aux vérifications suivantes"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"OK"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Raccourcis"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Aucun"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notifications"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Afficher les notifications sur l\'écran de verrouillage"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Masquer les notifications sur l\'écran de verrouillage"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Autres options"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Texte sur l\'écran de verrouillage, fonction En écoute etc."</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Plus d\'options écran verrouillage"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Confidentialité, En écoute et plus"</string>
     <string name="more_colors" msgid="3191071655353004591">"Autres couleurs"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Thème dynamique primaire"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Thème neutre primaire"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Thème intense primaire"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Thème expressif direct"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Option de couleur par défaut"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Option de couleur <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-gl/clock_colors.xml b/res/values-gl/clock_colors.xml
deleted file mode 100644
index 5d9da17..0000000
--- a/res/values-gl/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"VERMELLO"</item>
-    <item msgid="6882970855289978213">"LARANXA"</item>
-    <item msgid="5560732545714984533">"AMARELO"</item>
-    <item msgid="7246284817845434226">"VERDE"</item>
-    <item msgid="6762906417604676001">"AZUL"</item>
-    <item msgid="8974135109557664892">"ÍNDIGO"</item>
-    <item msgid="786643557830463422">"VIOLETA"</item>
-    <item msgid="6835537356703747621">"GRIS"</item>
-    <item msgid="2470141365136884119">"VERDE AZULADO"</item>
-  </string-array>
-</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 19b94fc..93b2c09 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Reloxo person."</string>
     <string name="clock_description" msgid="3563839327378948">"Elixe reloxo pers."</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Cambiar reloxo personalizado"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Configuración do reloxo"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opción de esfera de reloxo: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Tamaño/cor (Reloxo)"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Tamaño/cor do reloxo"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Cor"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Atallo: Esquerda"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Atallo: Dereita"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Ningunha"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Para seleccionar <xliff:g id="APPNAME">%1$s</xliff:g>, comproba o seguinte"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Non se puido engadir o atallo"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Abrir <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Para engadir a aplicación <xliff:g id="APPNAME">%1$s</xliff:g> como atallo, asegúrate de que se cumpra o seguinte:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Feito"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Atallos"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ningún"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notificacións"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostrar notificacións na pantalla de bloqueo"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ocultar notificacións na pantalla de bloqueo"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Máis opcións"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Texto na pantalla de bloqueo, Está soando e moito máis"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Máis opcións da pantalla de bloqueo"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privacidade, Está soando e moito máis"</string>
     <string name="more_colors" msgid="3191071655353004591">"Máis cores"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinámico con cores primarias"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema neutro con cores primarias"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema intenso con cores primarias"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema expresivo con cores primarias"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Opción de cor predeterminada"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opción de cor: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-gu/clock_colors.xml b/res/values-gu/clock_colors.xml
deleted file mode 100644
index 0818083..0000000
--- a/res/values-gu/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"લાલ"</item>
-    <item msgid="6882970855289978213">"નારંગી"</item>
-    <item msgid="5560732545714984533">"પીળો"</item>
-    <item msgid="7246284817845434226">"લીલો"</item>
-    <item msgid="6762906417604676001">"વાદળી"</item>
-    <item msgid="8974135109557664892">"ઘેરો વાદળી રંગ"</item>
-    <item msgid="786643557830463422">"જાંબલી"</item>
-    <item msgid="6835537356703747621">"રાખોડી"</item>
-    <item msgid="2470141365136884119">"ટીલ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 4f6db11..a14f47a 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"કસ્ટમ ઘડિયાળ"</string>
     <string name="clock_description" msgid="3563839327378948">"કસ્ટમ ઘડિયાળ ચૂંટો"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"કસ્ટમ ઘડિયાળ બદલો"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"ઘડિયાળના સેટિંગ"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"ક્લૉક ફેસનો વિકલ્પ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"ઘડિયાળનો રંગ અને કદ"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"ઘડિયાળનો રંગ અને કદ"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"રંગ"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ડાબો શૉર્ટકટ"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"જમણો શૉર્ટકટ"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"એકપણ નહીં"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>`ને પસંદ કરવા માટે, નીચેની બાબત ચેક કરો"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"શૉર્ટકટ ઉમેરી શકતા નથી."</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ખોલો"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> ઍપને શૉર્ટકટ તરીકે ઉમેરવા માટે, આ બાબતોની ખાતરી કરો"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"થઈ ગયું"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"શૉર્ટકટ"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"એકપણ નહીં"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"નોટિફિકેશન"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"લૉક સ્ક્રીન પર નોટિફિકેશન બતાવો"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"લૉક સ્ક્રીન પર નોટિફિકેશન છુપાવો"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"વધુ વિકલ્પો"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"લૉક સ્ક્રીન પરની ટેક્સ્ટ, હમણાં વાગી રહ્યું છે અને બીજું ઘણું"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"લૉક સ્ક્રીનના વધુ વિકલ્પો"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"પ્રાઇવસી, હમણાં વાગી રહ્યું છે અને બીજું ઘણું"</string>
     <string name="more_colors" msgid="3191071655353004591">"વધુ રંગો"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"પ્રાથિમક ડાયનૅમિક થીમ"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"પ્રાથમિક કુદરતી થીમ"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"પ્રાથિમક વાઇબ્રન્ટ થીમ"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"પ્રાથિમક અભિવ્યક્તપૂર્ણ થીમ"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"ડિફૉલ્ટ રંગનો વિકલ્પ"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"રંગનો વિકલ્પ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-h800dp/dimens.xml b/res/values-h800dp/dimens.xml
new file mode 100644
index 0000000..36d0d62
--- /dev/null
+++ b/res/values-h800dp/dimens.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<resources>
+    <!--
+    Dimension for clock translationY when swiping clock carousel in picker,
+    copied from sysui resources
+    -->
+    <dimen name="keyguard_large_clock_top_margin">-112dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/res/values-hi/clock_colors.xml b/res/values-hi/clock_colors.xml
deleted file mode 100644
index e613f33..0000000
--- a/res/values-hi/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"लाल"</item>
-    <item msgid="6882970855289978213">"नारंगी"</item>
-    <item msgid="5560732545714984533">"पीला"</item>
-    <item msgid="7246284817845434226">"हरा"</item>
-    <item msgid="6762906417604676001">"नीला"</item>
-    <item msgid="8974135109557664892">"इंडिगो"</item>
-    <item msgid="786643557830463422">"बैंगनी"</item>
-    <item msgid="6835537356703747621">"स्लेटी"</item>
-    <item msgid="2470141365136884119">"टील"</item>
-  </string-array>
-</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 84df6ff..14de2f5 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"घड़ी का आइकॉन"</string>
     <string name="clock_description" msgid="3563839327378948">"घड़ी आइकॉन चुनें"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"पसंद के मुताबिक घड़ी का आइकॉन बदलें"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"घड़ी की सेटिंग"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"स्मार्टवॉच की स्क्रीन के डिज़ाइन के लिए विकल्प <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"घड़ी का रंग और साइज़"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"घड़ी का रंग और साइज़"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"रंग"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"बायां शॉर्टकट"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"दायां शॉर्टकट"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"कोई नहीं"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` को चुनने के लिए, दिए गए निर्देशों का पालन करें"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"शॉर्टकट नहीं जोड़ा जा सकता"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> खोलें"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> ऐप्लिकेशन को शॉर्टकट के तौर पर जोड़ने के लिए, इन बातों का ध्यान रखें"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"हो गया"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"शॉर्टकट"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"कोई नहीं"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"सूचनाएं"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"लॉक स्क्रीन पर सूचनाएं दिखाएं"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"लॉक स्क्रीन पर सूचनाएं छिपाएं"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"ज़्यादा विकल्प"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"लॉक स्क्रीन पर टेक्स्ट जोड़ना, \'अभी चल रहा है\' सुविधा वगैरह"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"लॉक स्क्रीन के और विकल्प"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"निजता, \'अभी चल रहा है\' सुविधा, और अन्य सुविधा"</string>
     <string name="more_colors" msgid="3191071655353004591">"कुछ और रंग"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"प्राइमरी डाइनैमिक थीम"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"प्राइमरी न्यूट्रल थीम"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"प्राइमरी वाइब्रेंट थीम"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"प्राइमरी एक्सप्रेसिव थीम"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"रंग का डिफ़ॉल्ट विकल्प"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"रंग का विकल्प <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-hr/clock_colors.xml b/res/values-hr/clock_colors.xml
deleted file mode 100644
index de6b751..0000000
--- a/res/values-hr/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"CRVENA"</item>
-    <item msgid="6882970855289978213">"NARANČASTA"</item>
-    <item msgid="5560732545714984533">"ŽUTA"</item>
-    <item msgid="7246284817845434226">"ZELENA"</item>
-    <item msgid="6762906417604676001">"PLAVA"</item>
-    <item msgid="8974135109557664892">"MODROLJUBIČASTA"</item>
-    <item msgid="786643557830463422">"LJUBIČASTA"</item>
-    <item msgid="6835537356703747621">"SIVA"</item>
-    <item msgid="2470141365136884119">"TIRKIZNOPLAVA"</item>
-  </string-array>
-</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 4c1a27e..ff3d127 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Prilagođeni sat"</string>
     <string name="clock_description" msgid="3563839327378948">"Odaberite prilagođeni sat"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Promijenite prilagođeni sat"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Postavke sata"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opcija brojčanika <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Boja i veličina sata"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Boja i veličina sata"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Boja"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Lijevi prečac"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Desni prečac"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Ništa"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Da biste odabrali <xliff:g id="APPNAME">%1$s</xliff:g>, označite sljedeće"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Nije moguće dodati prečac"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Otvori <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Da biste aplikaciju <xliff:g id="APPNAME">%1$s</xliff:g> dodali kao prečac, učinite sljedeće"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Gotovo"</string>
@@ -124,12 +125,18 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Prečaci"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ništa"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Obavijesti"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Prikaz obavijesti na zaključanom zaslonu"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skrivanje obavijesti na zaključanom zaslonu"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Više opcija"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst na zaključanom zaslonu, Upravo svira i još mnogo toga"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Više opcija zaključanog zaslona"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privatnost, Upravo svira i drugo"</string>
     <string name="more_colors" msgid="3191071655353004591">"Više boja"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primarna dinamična tema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primarna neutralna tema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primarna vibrantna tema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primarna ekspresivna tema"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Zadana opcija boje"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opcija boje <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Prijeđite prstom ulijevo da biste odabrali drugi brojčanik"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Prijeđite prstom udesno da biste odabrali drugi brojčanik"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Prilagođeni satovi"</string>
 </resources>
diff --git a/res/values-hu/clock_colors.xml b/res/values-hu/clock_colors.xml
deleted file mode 100644
index cc869be..0000000
--- a/res/values-hu/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"PIROS"</item>
-    <item msgid="6882970855289978213">"NARANCSSÁRGA"</item>
-    <item msgid="5560732545714984533">"SÁRGA"</item>
-    <item msgid="7246284817845434226">"ZÖLD"</item>
-    <item msgid="6762906417604676001">"KÉK"</item>
-    <item msgid="8974135109557664892">"INDIGÓKÉK"</item>
-    <item msgid="786643557830463422">"IBOLYAKÉK"</item>
-    <item msgid="6835537356703747621">"SZÜRKE"</item>
-    <item msgid="2470141365136884119">"PÁVAKÉK"</item>
-  </string-array>
-</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 55607b8..a36a9dd 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Egyedi óra"</string>
     <string name="clock_description" msgid="3563839327378948">"Egyedi óra választása"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Egyedi óra módosítása"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Óra beállításai"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Kiválasztott óralap-beállítás: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Óra színe és mérete"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Óra színe &amp; mérete"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Szín"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Bal parancsikon"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Jobb parancsikon"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Nincs"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"A(z) „<xliff:g id="APPNAME">%1$s</xliff:g>” kiválasztásához el kell végeznie a következőket"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Nem sikerült hozzáadni a gyorsparancsot."</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"A(z) <xliff:g id="APPNAME">%1$s</xliff:g> megnyitása"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Ha szeretné felvenni a(z) <xliff:g id="APPNAME">%1$s</xliff:g> alkalmazást parancsikonként, gondoskodjon a következőkről:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Kész"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Gyorsparancsok"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Nincs"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Értesítések"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Értesítések megjelenítése a lezárási képernyőn"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Értesítések elrejtése a lezárási képernyőn"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"További beállítások"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Szöveg a lezárási képernyőn, Now Playing és egyebek"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Más lezárásiképernyő-beállítások"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Adatvédelem, Now Playing és egyebek"</string>
     <string name="more_colors" msgid="3191071655353004591">"További színek"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Elsődleges dinamikus téma"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Elsődleges semleges téma"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Elsődleges élénk téma"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Elsődleges kifejező téma"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Alapértelmezettként beállított szín"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Választható szín: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-hy/clock_colors.xml b/res/values-hy/clock_colors.xml
deleted file mode 100644
index 15366a7..0000000
--- a/res/values-hy/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ԿԱՐՄԻՐ"</item>
-    <item msgid="6882970855289978213">"ՆԱՐՆՋԱԳՈՒՅՆ"</item>
-    <item msgid="5560732545714984533">"ԴԵՂԻՆ"</item>
-    <item msgid="7246284817845434226">"ԿԱՆԱՉ"</item>
-    <item msgid="6762906417604676001">"ԿԱՊՈՒՅՏ"</item>
-    <item msgid="8974135109557664892">"ԻՆԴԻԳՈ"</item>
-    <item msgid="786643557830463422">"ՄԱՆՈՒՇԱԿԱԳՈՒՅՆ"</item>
-    <item msgid="6835537356703747621">"ՄՈԽՐԱԳՈՒՅՆ"</item>
-    <item msgid="2470141365136884119">"ՓԻՐՈՒԶԱԳՈՒՅՆ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 0523dff..161c117 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Հատուկ թվատախտակ"</string>
     <string name="clock_description" msgid="3563839327378948">"Ընտրեք թվատախտակ"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Փոխեք հատուկ թվատախտակը"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Կարգավորումներ"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Թվատախտակի տարբերակ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Գույնը և չափսը"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Գույնը և չափսը"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Գույն"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Ձախ դյուրանցում"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Աջ դյուրանցում"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Ոչ մեկը"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"«<xliff:g id="APPNAME">%1$s</xliff:g>» հավելվածն ընտրելու համար կատարեք հետևյալը"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Չհաջողվեց ավելացնել դյուրանցում"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Բացել <xliff:g id="APPNAME">%1$s</xliff:g> հավելվածը"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> հավելվածի դյուրանցումն ավելացնելու համար համոզվեք, որ՝"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Պատրաստ է"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Դյուրանցումներ"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ընտրված չէ"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Ծանուցումներ"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Ցուցադրել ծանուցումները կողպէկրանին"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Թաքցնել ծանուցումները կողպէկրանին"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Այլ ընտրանքներ"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Տեքստ կողպէկրանին, Այժմ հնչում է և այլ գործառույթներ"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Կողպէկրանի այլ կարգավորումներ"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Գաղտնիություն, «Այժմ հնչում է» և ավելին"</string>
     <string name="more_colors" msgid="3191071655353004591">"Այլ գույներ"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Հիմնական դինամիկ թեմա"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Հիմնական չեզոք թեմա"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Հիմնական գունեղ թեմա"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Հիմնական արտահայտիչ թեմա"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Գույնի կանխադրված տարբերակ"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Գույնի տարբերակ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-in/clock_colors.xml b/res/values-in/clock_colors.xml
deleted file mode 100644
index f3b4693..0000000
--- a/res/values-in/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"MERAH"</item>
-    <item msgid="6882970855289978213">"ORANYE"</item>
-    <item msgid="5560732545714984533">"KUNING"</item>
-    <item msgid="7246284817845434226">"HIJAU"</item>
-    <item msgid="6762906417604676001">"BIRU"</item>
-    <item msgid="8974135109557664892">"NILA"</item>
-    <item msgid="786643557830463422">"VIOLET"</item>
-    <item msgid="6835537356703747621">"ABU-ABU"</item>
-    <item msgid="2470141365136884119">"HIJAU KEBIRUAN"</item>
-  </string-array>
-</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 7205ccc..e9582f9 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Jam Kustom"</string>
     <string name="clock_description" msgid="3563839327378948">"Pilih jam kustom"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Ubah jam kustom"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Setelan Jam"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opsi tampilan jam <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Warna &amp; ukuran jam"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Warna &amp; ukuran jam"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Warna"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Pintasan kiri"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Pintasan kanan"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Tidak ada"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Untuk memilih `<xliff:g id="APPNAME">%1$s</xliff:g>`, periksa hal berikut"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Tidak dapat menambahkan pintasan"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Buka <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Untuk menambahkan aplikasi <xliff:g id="APPNAME">%1$s</xliff:g> sebagai pintasan, pastikan"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Selesai"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Pintasan"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Tidak ada"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notifikasi"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Tampilkan notifikasi di layar kunci"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Sembunyikan notifikasi di layar kunci"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Opsi lainnya"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Teks di layar kunci, Now Playing, dan lainnya"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Opsi layar kunci lainnya"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privasi, Now Playing, dan lainnya"</string>
     <string name="more_colors" msgid="3191071655353004591">"Warna Lainnya"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinamis utama"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema netral utama"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema cerah utama"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema ekspresif utama"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Opsi warna default"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opsi warna <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-is/clock_colors.xml b/res/values-is/clock_colors.xml
deleted file mode 100644
index c7f0a59..0000000
--- a/res/values-is/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"RAUÐUR"</item>
-    <item msgid="6882970855289978213">"APPELSÍNUGULUR"</item>
-    <item msgid="5560732545714984533">"GULUR"</item>
-    <item msgid="7246284817845434226">"GRÆNN"</item>
-    <item msgid="6762906417604676001">"BLÁR"</item>
-    <item msgid="8974135109557664892">"DIMMFJÓLUBLÁR"</item>
-    <item msgid="786643557830463422">"FJÓLUBLÁR"</item>
-    <item msgid="6835537356703747621">"GRÁR"</item>
-    <item msgid="2470141365136884119">"GRÆNBLÁR"</item>
-  </string-array>
-</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 1c6c951..ab71d88 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Sérsniðin klukka"</string>
     <string name="clock_description" msgid="3563839327378948">"Veldu sérsniðna klukku"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Breyta sérsniðinni klukku"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Klukkustillingar"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Úrskífuvalkostur <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Klukkustærð og litur"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Klukkustærð og litur"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Litur"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Vinstri flýtilykill"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Hægri flýtilykill"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Ekkert"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Til að velja „<xliff:g id="APPNAME">%1$s</xliff:g>“ skaltu athuga eftirfarandi"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Ekki tókst að bæta flýtileið við"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Opna <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Til að bæta forritinu <xliff:g id="APPNAME">%1$s</xliff:g> við sem flýtileið skaltu ganga úr skugga um að"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Lokið"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Flýtileiðir"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ekkert"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Tilkynningar"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Sýna tilkynningar á lásskjánum"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Fela tilkynningar á lásskjánum"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Fleiri valkostir"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Texti á lásskjá, „Í spilun“ og fleira"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Fleiri valkostir fyrir lásskjá"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Persónuvernd, í spilun og fleira"</string>
     <string name="more_colors" msgid="3191071655353004591">"Fleiri litir"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Kvikt aðalþema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Hlutlaust aðalþema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Líflegt aðalþema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tjáningarríkt aðalþema"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Sjálfgefinn litavalkostur"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Litavalkostur <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-it/clock_colors.xml b/res/values-it/clock_colors.xml
deleted file mode 100644
index 6e9505c..0000000
--- a/res/values-it/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ROSSO"</item>
-    <item msgid="6882970855289978213">"ARANCIONE"</item>
-    <item msgid="5560732545714984533">"GIALLO"</item>
-    <item msgid="7246284817845434226">"VERDE"</item>
-    <item msgid="6762906417604676001">"BLU"</item>
-    <item msgid="8974135109557664892">"INDACO"</item>
-    <item msgid="786643557830463422">"VIOLA"</item>
-    <item msgid="6835537356703747621">"GRIGIO"</item>
-    <item msgid="2470141365136884119">"VERDE ACQUA"</item>
-  </string-array>
-</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 52c16f0..ad08d19 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Orologio personalizzato"</string>
     <string name="clock_description" msgid="3563839327378948">"Scegli un orologio personalizzato"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Modifica un orologio personalizzato"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Impostazioni orologio"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opzione quadrante orologio <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Colore/dim. orologio"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Colore e dimensioni orologio"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Colore"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Scorciatoia sinistra"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Scorciatoia destra"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Nessuna"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Per poter selezionare \"<xliff:g id="APPNAME">%1$s</xliff:g>\", devi controllare quanto segue:"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Impossibile aggiungere la scorciatoia"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Apri <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Per aggiungere l\'app <xliff:g id="APPNAME">%1$s</xliff:g> come scorciatoia, assicurati che:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Fine"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Scorciatoie"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Nessuna"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notifiche"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostra le notifiche sulla schermata di blocco"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Nascondi le notifiche sulla schermata di blocco"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Altre opzioni"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Testo su schermata di blocco, Now Playing e altro"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Altre opzioni per la schermata di blocco"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Now Playing e altro"</string>
     <string name="more_colors" msgid="3191071655353004591">"Altri colori"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinamico primario"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema naturale primario"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema intenso primario"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema espressivo primario"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Opzione colore predefinita"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opzione colore <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-iw/clock_colors.xml b/res/values-iw/clock_colors.xml
deleted file mode 100644
index 36c8783..0000000
--- a/res/values-iw/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"אדום"</item>
-    <item msgid="6882970855289978213">"כתום"</item>
-    <item msgid="5560732545714984533">"צהוב"</item>
-    <item msgid="7246284817845434226">"ירוק"</item>
-    <item msgid="6762906417604676001">"כחול"</item>
-    <item msgid="8974135109557664892">"אינדיגו"</item>
-    <item msgid="786643557830463422">"סגול"</item>
-    <item msgid="6835537356703747621">"אפור"</item>
-    <item msgid="2470141365136884119">"כחול-ירקרק"</item>
-  </string-array>
-</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index b4afd18..97be32a 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"שעון מותאם אישית"</string>
     <string name="clock_description" msgid="3563839327378948">"בחירת שעון מותאם אישית"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"שינוי שעון מותאם אישית"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"הגדרות השעון"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"האפשרות של תצוגת השעון <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"הצבע והגודל של השעון"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"הצבע והגודל של השעון"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"צבע"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"קיצור דרך שמאלי"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"קיצור דרך ימני"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"ללא"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"כדי לבחור באפליקציה <xliff:g id="APPNAME">%1$s</xliff:g> צריך לסמן את האפשרויות הבאות"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"לא ניתן להוסיף את קיצור הדרך"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"פתיחת <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"כדי להוסיף את האפליקציה <xliff:g id="APPNAME">%1$s</xliff:g> כקיצור דרך, צריך לוודא"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"סיום"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"קיצורי דרך"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"אין"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"התראות"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"הצגת ההתראות במסך הנעילה"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"הסתרת ההתראות במסך הנעילה"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"אפשרויות נוספות"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"טקסט שמופיע במסך הנעילה, \'מה שומעים עכשיו?\' ועוד"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"עוד אפשרויות של מסך הנעילה"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"פרטיות, \'מה שומעים עכשיו?\' ועוד"</string>
     <string name="more_colors" msgid="3191071655353004591">"צבעים נוספים"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"עיצוב ראשי דינמי"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"עיצוב ראשי נייטרלי"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"עיצוב ראשי בצבעים עזים"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"עיצוב ראשי אקספרסיבי"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"אפשרות הצבע שמוגדרת כברירת מחדל"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"אפשרות צבע <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-ja/clock_colors.xml b/res/values-ja/clock_colors.xml
deleted file mode 100644
index 3bdde56..0000000
--- a/res/values-ja/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"赤"</item>
-    <item msgid="6882970855289978213">"オレンジ"</item>
-    <item msgid="5560732545714984533">"黄"</item>
-    <item msgid="7246284817845434226">"緑"</item>
-    <item msgid="6762906417604676001">"青"</item>
-    <item msgid="8974135109557664892">"インディゴ"</item>
-    <item msgid="786643557830463422">"バイオレット"</item>
-    <item msgid="6835537356703747621">"グレー"</item>
-    <item msgid="2470141365136884119">"ティール"</item>
-  </string-array>
-</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 96c0d5c..07ec012 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"カスタム文字盤"</string>
     <string name="clock_description" msgid="3563839327378948">"文字盤の選択"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"文字盤の変更"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"時計の設定"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"文字盤オプション <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"時計の色とサイズ"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"時計の色とサイズ"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>、<xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"色"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"左ショートカット"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"右ショートカット"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"なし"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"「<xliff:g id="APPNAME">%1$s</xliff:g>」を選択するには、以下を確認します"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"ショートカットを追加できません"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> を開きます。"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> アプリをショートカットとして追加するための手順"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"完了"</string>
@@ -124,12 +125,18 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ショートカット"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>、<xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"なし"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"通知"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"ロック画面に通知を表示する"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ロック画面では通知を非表示にします"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"その他のオプション"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"ロック画面のテキスト、「この曲なに？」など"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"ロック画面の詳細オプション"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"プライバシー、この曲なに？、その他"</string>
     <string name="more_colors" msgid="3191071655353004591">"他の色"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"メインの動的なテーマ"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"メインの中間テーマ"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"メインの鮮やかなテーマ"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"メインの表現力豊かなテーマ"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"デフォルトのカラー オプション"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"カラー オプション <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"別の文字盤を選択するには、左にスワイプします"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"別の文字盤を選択するには、右にスワイプします"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"カスタム時計"</string>
 </resources>
diff --git a/res/values-ka/clock_colors.xml b/res/values-ka/clock_colors.xml
deleted file mode 100644
index dd13e10..0000000
--- a/res/values-ka/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"წითელი"</item>
-    <item msgid="6882970855289978213">"ნარინჯისფერი"</item>
-    <item msgid="5560732545714984533">"ყვითელი"</item>
-    <item msgid="7246284817845434226">"მწვანე"</item>
-    <item msgid="6762906417604676001">"ლურჯი"</item>
-    <item msgid="8974135109557664892">"მუქი ლურჯი"</item>
-    <item msgid="786643557830463422">"იისფერი"</item>
-    <item msgid="6835537356703747621">"რუხი"</item>
-    <item msgid="2470141365136884119">"ზურმუხტისფერი"</item>
-  </string-array>
-</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 77cc3e2..e3fef05 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"მორგებული საათი"</string>
     <string name="clock_description" msgid="3563839327378948">"აირჩიეთ მორგებული საათი"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"შეცვალეთ მორგებული საათი"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"საათის პარამეტრები"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"საათის წინა მხარის ვარიანტი <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"საათის ფერი და ზომა"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"საათის ფერი &amp; amp; ზომა"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"ფერი"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"მარცხენა მალსახმობი"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"მარჯვენა მალსახმობი"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"არცერთი"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"„<xliff:g id="APPNAME">%1$s</xliff:g>“-ის ასარჩევად შეამოწმეთ შემდეგი"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"მალსახმობის დამატება შეუძლებელია"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g>-ის გახსნა"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> აპი რომ მალსახმობის სახით დაამატოთ, დარწმუნდით, რომ"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"მზადაა"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"მალსახმობები"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"არცერთი"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"შეტყობინებები"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"შეტყობინებების ჩვენება ჩაკეტილ ეკრანზე"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"შეტყობინებების დამალვა ჩაკეტილ ეკრანზე"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"სხვა ვარიანტები"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"ტექსტი ჩაკეტილ ეკრანზე, ახლა უკრავს და სხვა"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"ჩაკეტილი ეკრანის სხვა პარამეტრები"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"კონფიდენციალურობა, რა უკრავს და სხვა"</string>
     <string name="more_colors" msgid="3191071655353004591">"მეტი ფერი"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ძირითადი დინამიური თემა"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ძირითადი ნეიტრალური თემა"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ძირითადი ცოცხალი თემა"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ძირითადი ექსპრესიული თემა"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"ფერის ნაგულისხმევი ვარიანტი"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"ფერის ვარიანტი <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-kk/clock_colors.xml b/res/values-kk/clock_colors.xml
deleted file mode 100644
index b8abce4..0000000
--- a/res/values-kk/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ҚЫЗЫЛ"</item>
-    <item msgid="6882970855289978213">"ҚЫЗҒЫЛТ САРЫ"</item>
-    <item msgid="5560732545714984533">"САРЫ"</item>
-    <item msgid="7246284817845434226">"ЖАСЫЛ"</item>
-    <item msgid="6762906417604676001">"КӨК"</item>
-    <item msgid="8974135109557664892">"ИНДИГО"</item>
-    <item msgid="786643557830463422">"КҮЛГІН"</item>
-    <item msgid="6835537356703747621">"СҰР"</item>
-    <item msgid="2470141365136884119">"КӨКШІЛ ЖАСЫЛ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 2a6b1dc..1a95f0b 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Арнаулы сағат"</string>
     <string name="clock_description" msgid="3563839327378948">"Арнаулы сағатты таңдау"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Арнаулы сағатты өзгерту"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Сағат параметрі"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Циферблат опциясы: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Сағат түсі, көлемі"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Сағаттың түсі, өлшемі"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Түс"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Сол жақ жылдам пәрмен"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Оң жақ жылдам пәрмен"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Жоқ"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"\"<xliff:g id="APPNAME">%1$s</xliff:g>\" қолданбасын таңдау үшін мынаны орындаңыз:"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Таңбаша қосу мүмкін емес"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> қолданбасын ашу"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> қолданбасын таңбаша ретінде қосу үшін келесі әрекеттерді орындауды ұмытпаңыз:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Дайын"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Жылдам пәрмендер"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ешқандай"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Хабарландырулар"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Құлып экранында хабарландыруларды көрсету"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Құлып экранында хабарландыруларды жасыру"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Қосымша опциялар"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Құлыптаулы экранда мәтіндік хабар жазу, Now Playing және т.б."</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Құлып экранының басқа опциялары"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Құпиялық, Now Playing және басқа функциялар"</string>
     <string name="more_colors" msgid="3191071655353004591">"Қосымша түстер"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Негізгі динамикалық тақырып"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Негізгі бейтарап тақырып"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Негізгі қанық тақырып"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Негізгі бейнелі тақырып"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Әдепкі түс опциясы"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g> түс опциясы"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-km/clock_colors.xml b/res/values-km/clock_colors.xml
deleted file mode 100644
index 25bc604..0000000
--- a/res/values-km/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ក្រហម"</item>
-    <item msgid="6882970855289978213">"ទឹកក្រូច"</item>
-    <item msgid="5560732545714984533">"លឿង"</item>
-    <item msgid="7246284817845434226">"បៃតង"</item>
-    <item msgid="6762906417604676001">"ខៀវ"</item>
-    <item msgid="8974135109557664892">"ទឹកប៊ិក"</item>
-    <item msgid="786643557830463422">"ត្របែក​ព្រៃ"</item>
-    <item msgid="6835537356703747621">"ប្រផេះ"</item>
-    <item msgid="2470141365136884119">"បៃតងចាស់"</item>
-  </string-array>
-</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 4c7c4ca..f1518ae 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"នាឡិកាផ្ទាល់ខ្លួន"</string>
     <string name="clock_description" msgid="3563839327378948">"ជ្រើសរើសនាឡិកាផ្ទាល់ខ្លួន"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"ប្ដូរនាឡិកា​ផ្ទាល់ខ្លួន"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"ការកំណត់នាឡិកា"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"ជម្រើសមុខនាឡិកា <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"ពណ៌ និងទំហំនាឡិកា"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"ពណ៌ និងទំហំនាឡិកា"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"ពណ៌"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ផ្លូវកាត់ខាងឆ្វេង"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ផ្លូវកាត់ខាងស្តាំ"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"គ្មាន"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"ដើម្បីជ្រើសរើស `<xliff:g id="APPNAME">%1$s</xliff:g>` សូមពិនិត្យមើលខាងក្រោម"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"មិនអាច​បញ្ចូល​ផ្លូវកាត់​បានទេ"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"បើក <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"ដើម្បីបញ្ចូលកម្មវិធី <xliff:g id="APPNAME">%1$s</xliff:g> ជាផ្លូវកាត់ សូមប្រាកដថា"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"រួចរាល់"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ផ្លូវកាត់"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"គ្មាន"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"ការ​ជូនដំណឹង"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"បង្ហាញការជូនដំណឹងនៅលើអេក្រង់ចាក់សោ"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"លាក់ការជូនដំណឹងនៅលើអេក្រង់ចាក់សោ"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"ជម្រើសច្រើនទៀត"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"អក្សរនៅលើអេក្រង់ចាក់សោ, Now Playing និងអ្វីៗជាច្រើនទៀត"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"ជម្រើសអេក្រង់ចាក់សោច្រើនទៀត"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"ឯកជនភាព, Now Playing និងអ្វីៗច្រើនទៀត"</string>
     <string name="more_colors" msgid="3191071655353004591">"ពណ៌​ច្រើនទៀត"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ទម្រង់រចនាបែបឌីណាមិកចម្បង"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ទម្រង់រចនាបែបធម្មតាចម្បង"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ទម្រង់រចនាបែបរស់រវើកចម្បង"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ទម្រង់រចនាបែបបង្ហាញចម្បង"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"ជម្រើសពណ៌លំនាំដើម"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"ជម្រើស​ពណ៌ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-kn/clock_colors.xml b/res/values-kn/clock_colors.xml
deleted file mode 100644
index 775db7f..0000000
--- a/res/values-kn/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ಕೆಂಪು"</item>
-    <item msgid="6882970855289978213">"ಕಿತ್ತಳೆ"</item>
-    <item msgid="5560732545714984533">"ಹಳದಿ"</item>
-    <item msgid="7246284817845434226">"ಹಸಿರು"</item>
-    <item msgid="6762906417604676001">"ನೀಲಿ"</item>
-    <item msgid="8974135109557664892">"ಇಂಡಿಗೊ"</item>
-    <item msgid="786643557830463422">"ನೇರಳೆ"</item>
-    <item msgid="6835537356703747621">"ಬೂದು"</item>
-    <item msgid="2470141365136884119">"ಟೀಲ್"</item>
-  </string-array>
-</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 0432b87..0737805 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"ಕಸ್ಟಮ್ ಗಡಿಯಾರ"</string>
     <string name="clock_description" msgid="3563839327378948">"ಕಸ್ಟಮ್ ವಾಚ್ ಪಿಕ್"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"ಕಸ್ಟಮ್ ಗಡಿಯಾರ ಬದಲಿಸಿ"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"ಗಡಿಯಾರ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"ಕ್ಲಾಕ್ ಫೇಸ್ ಆಯ್ಕೆ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"ಗಡಿಯಾರದ ಬಣ್ಣ, ಗಾತ್ರ"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"ಗಡಿಯಾರದ ಬಣ್ಣ, ಗಾತ್ರ"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"ಬಣ್ಣ"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ಎಡ ಶಾರ್ಟ್‌ಕಟ್"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ಬಲ ಶಾರ್ಟ್‌ಕಟ್"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"ಯಾವುದೂ ಅಲ್ಲ"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` ಅನ್ನು ಆಯ್ಕೆಮಾಡಲು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಗುರುತು ಮಾಡಿ"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"ಶಾರ್ಟ್‌ಕಟ್ ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ಅನ್ನು ತೆರೆಯಿರಿ"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> ಆ್ಯಪ್ ಅನ್ನು ಶಾರ್ಟ್‌ಕಟ್ ಆಗಿ ಸೇರಿಸಲು ಕೆಳಗಿನವುಗಳನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ಮುಗಿದಿದೆ"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ಶಾರ್ಟ್‌ಕಟ್‌ಗಳು"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ಯಾವುದೂ ಅಲ್ಲ"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"ಅಧಿಸೂಚನೆಗಳು"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸಿ"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ಮರೆಮಾಡಿ"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳು"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿನ ಪಠ್ಯ, Now Playing ಮತ್ತು ಇನ್ನಷ್ಟು"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"ಇನ್ನಷ್ಟು ಲಾಕ್ ಸ್ಕ್ರೀನ್ ಆಯ್ಕೆಗಳು"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"ಗೌಪ್ಯತೆ, Now Playing ಮತ್ತು ಇನ್ನಷ್ಟು"</string>
     <string name="more_colors" msgid="3191071655353004591">"ಇನ್ನಷ್ಟು ಬಣ್ಣಗಳು"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ಪ್ರಾಥಮಿಕ ಡೈನಾಮಿಕ್ ಥೀಮ್"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ಪ್ರಾಥಮಿಕ ತಟಸ್ಥ ಥೀಮ್"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ಪ್ರಾಥಮಿಕ ವೈಬ್ರೆಂಟ್ ಥೀಮ್"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ಪ್ರಾಥಮಿಕ ಅಭಿವ್ಯಕ್ತಿಶೀಲ ಥೀಮ್"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"ಡೀಫಾಲ್ಟ್ ಬಣ್ಣದ ಆಯ್ಕೆ"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"ಬಣ್ಣದ ಆಯ್ಕೆ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-ko/clock_colors.xml b/res/values-ko/clock_colors.xml
deleted file mode 100644
index 2b596c8..0000000
--- a/res/values-ko/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"빨간색"</item>
-    <item msgid="6882970855289978213">"주황색"</item>
-    <item msgid="5560732545714984533">"노란색"</item>
-    <item msgid="7246284817845434226">"초록색"</item>
-    <item msgid="6762906417604676001">"파란색"</item>
-    <item msgid="8974135109557664892">"인디고"</item>
-    <item msgid="786643557830463422">"보라색"</item>
-    <item msgid="6835537356703747621">"회색"</item>
-    <item msgid="2470141365136884119">"청록색"</item>
-  </string-array>
-</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 09cfb14..8ec115c 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"맞춤 시계"</string>
     <string name="clock_description" msgid="3563839327378948">"맞춤 시계 선택"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"맞춤 시계 변경"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"시계 설정"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"시계 페이스 옵션 <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"시계 색상 및 크기"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"시계 색상 및 크기"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"색상"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"왼쪽 바로가기"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"오른쪽 바로가기"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"없음"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` 앱을 선택하려면 다음을 선택하세요"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"단축키를 추가할 수 없음"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> 열기"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> 앱을 바로가기로 추가하려면 다음을 확인하세요."</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"완료"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"단축키"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"없음"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"알림"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"잠금 화면에 알림 표시"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"잠금 화면에서 알림 숨기기"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"옵션 더보기"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"잠금 화면에 표시되는 텍스트, Now Playing, 등"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"잠금 화면 옵션 더보기"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"개인 정보 보호, Now Playing 등"</string>
     <string name="more_colors" msgid="3191071655353004591">"색상 더보기"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"기본 동적 테마"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"기본 보통 테마"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"기본 활기 테마"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"기본 표현 테마"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"기본 색상 옵션"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g> 색상 옵션"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-ky/clock_colors.xml b/res/values-ky/clock_colors.xml
deleted file mode 100644
index 06d711c..0000000
--- a/res/values-ky/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"КЫЗЫЛ"</item>
-    <item msgid="6882970855289978213">"КЫЗГЫЛТ САРЫ"</item>
-    <item msgid="5560732545714984533">"САРЫ"</item>
-    <item msgid="7246284817845434226">"ЖАШЫЛ"</item>
-    <item msgid="6762906417604676001">"КӨК"</item>
-    <item msgid="8974135109557664892">"ИНДИГО"</item>
-    <item msgid="786643557830463422">"КЫЗГЫЛТ КӨК"</item>
-    <item msgid="6835537356703747621">"БОЗ"</item>
-    <item msgid="2470141365136884119">"КӨГҮШ ЖАШЫЛ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 3b0dcab..aa4ee71 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Жеке саат"</string>
     <string name="clock_description" msgid="3563839327378948">"Жеке саатты тандоо"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Жеке саатты өзгөртүү"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Сааттын параметрлери"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Циферблаттын варианты: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Сааттын түсү, өлчөмү"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Сааттын түсү, өлчөмү"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Түс"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Сол ыкчам баскыч"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Оң ыкчам баскыч"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Жок"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"\"<xliff:g id="APPNAME">%1$s</xliff:g>\" колдонмосун тандоо үчүн төмөнкүлөрдү аткарыңыз:"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Ыкчам баскыч кошулбай жатат"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ачуу"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> колдонмосун ыкчам баскыч катары кошуу үчүн төмөнкүлөрдү аткарыңыз:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Бүттү"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Ыкчам баскычтар"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Жок"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Билдирмелер"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Билдирмелерди кулпуланган экранда көрсөтүү"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Билдирмелерди кулпуланган экранда жашыруу"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Башка параметрлер"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Кулпу экранындагы текст, \"Эмне ойноп жатат?\" жана башка нерселер"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Кулпуланган экран параметрлери"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Купуялык, Эмне ойноп жатат? жана башкалар"</string>
     <string name="more_colors" msgid="3191071655353004591">"Дагы түстөр"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Негизги динамикалык тема"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Негизги нейтралдуу тема"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Негизги каныккан тема"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Негизги ачык тема"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Демейки түс варианты"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g> түс варианты"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-lo/clock_colors.xml b/res/values-lo/clock_colors.xml
deleted file mode 100644
index 857c2b0..0000000
--- a/res/values-lo/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ສີແດງ"</item>
-    <item msgid="6882970855289978213">"ສີສົ້ມ"</item>
-    <item msgid="5560732545714984533">"ສີເຫຼືອງ"</item>
-    <item msgid="7246284817845434226">"ສີຂຽວ"</item>
-    <item msgid="6762906417604676001">"ສີຟ້າ"</item>
-    <item msgid="8974135109557664892">"ສີຄາມ"</item>
-    <item msgid="786643557830463422">"ສີມ່ວງ"</item>
-    <item msgid="6835537356703747621">"ສີເທົາ"</item>
-    <item msgid="2470141365136884119">"ສີຟ້າອົມຂຽວ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 41e6e00..5d6c919 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"ໂມງທີ່ກຳນົດເອງ"</string>
     <string name="clock_description" msgid="3563839327378948">"ເລືອກໂມງກຳນົດເອງ"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"ປ່ຽນໂມງກຳນົດເອງ"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"ການຕັ້ງຄ່າໂມງ"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"ຕົວເລືອກໜ້າປັດໂມງ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"ສີ ແລະ ຂະໜາດໂມງ"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"ສີ ແລະ ຂະໜາດໂມງ"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"ສີ"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ທາງລັດຊ້າຍ"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ທາງລັດຂວາ"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"ບໍ່ມີ"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"ເພື່ອເລືອກ `<xliff:g id="APPNAME">%1$s</xliff:g>` ກະລຸນາກວດສອບສິ່ງຕໍ່ໄປນີ້"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"ບໍ່ສາມາດເພີ່ມທາງລັດໄດ້"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"ເປີດ <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"ເພື່ອເພີ່ມແອັບ <xliff:g id="APPNAME">%1$s</xliff:g> ເປັນທາງລັດ, ກະລຸນາກວດສອບໃຫ້ແນ່ໃຈວ່າ"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ແລ້ວໆ"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ທາງລັດ"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ບໍ່ມີ"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"ການແຈ້ງເຕືອນ"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"ສະແດງການແຈ້ງເຕືອນຢູ່ໜ້າຈໍລັອກ"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ເຊື່ອງການແຈ້ງເຕືອນຢູ່ໜ້າຈໍລັອກ"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"ຕົວເລືອກເພີ່ມເຕີມ"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"ຂໍ້ຄວາມຢູ່ໜ້າຈໍລັອກ, Now Playing ແລະ ອື່ນໆ"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"ຕົວເລືອກໜ້າຈໍລັອກເພີ່ມເຕີມ"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"ຄວາມເປັນສ່ວນຕົວ, Now Playing ແລະ ອື່ນໆ"</string>
     <string name="more_colors" msgid="3191071655353004591">"ສີເພີ່ມເຕີມ"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ຮູບແບບສີສັນຫຼັກແບບໄດນາມິກ"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ຮູບແບບສີສັນຫຼັກແບບໃຊ້ສີໂທນກາງ"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ຮູບແບບສີສັນຫຼັກແບບສີສັນສົດໃສ"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ຮູບແບບສີສັນຫຼັກແບບຊັດເຈນ"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"ຕົວເລືອກສີຄ່າເລີ່ມຕົ້ນ"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"ຕົວເລືອກສີ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-lt/clock_colors.xml b/res/values-lt/clock_colors.xml
deleted file mode 100644
index 4e30d75..0000000
--- a/res/values-lt/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"RAUDONA"</item>
-    <item msgid="6882970855289978213">"ORANŽINĖ"</item>
-    <item msgid="5560732545714984533">"GELTONA"</item>
-    <item msgid="7246284817845434226">"ŽALIA"</item>
-    <item msgid="6762906417604676001">"MĖLYNA"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIOLETINĖ"</item>
-    <item msgid="6835537356703747621">"PILKA"</item>
-    <item msgid="2470141365136884119">"ŽALSVAI MĖLYNA"</item>
-  </string-array>
-</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 3a5c864..8c6f4a6 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Tink. laikrodis"</string>
     <string name="clock_description" msgid="3563839327378948">"Pasir. tink. laikr."</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Keiskite tinkintą laikrodį"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Laikr. nustat."</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Ciferblato parinktis: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Laikr. spalva, dyd."</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Laikr. spalva ir dydis"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Spalva"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Spart. kl. kair."</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Spart. kl. deš."</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Nėra"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Jei norite pasirinkti „<xliff:g id="APPNAME">%1$s</xliff:g>“, patikrinkite toliau nurodytus dalykus."</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Nepavyko pridėti sparčiojo klavišo"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Atidaryti „<xliff:g id="APPNAME">%1$s</xliff:g>“"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Jei norite pridėti programą „<xliff:g id="APPNAME">%1$s</xliff:g>“ kaip šaukinį, įsitikinkite, kad atitinkate reikalavimus."</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Atlikta"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Šaukiniai"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Nėra"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Pranešimai"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Rodyti pranešimus užrakinimo ekrane"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Slėpti pranešimus užrakinimo ekrane"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Daugiau parinkčių"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Tekstas užrakinimo ekrane, „Dabar leidžiama“ ir kt."</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Daugiau užrakinimo ekrano parinkčių"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privatumas, „Dabar leidžiama“ ir kt."</string>
     <string name="more_colors" msgid="3191071655353004591">"Daugiau spalvų"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Pagrindinė dinaminė tema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Pagrindinė neutrali tema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Pagrindinė ryški tema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Pagrindinė išraiškinga tema"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Numatytoji spalvos parinktis"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Spalvos parinktis: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-lv/clock_colors.xml b/res/values-lv/clock_colors.xml
deleted file mode 100644
index 0983836..0000000
--- a/res/values-lv/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"SARKANA"</item>
-    <item msgid="6882970855289978213">"ORANŽA"</item>
-    <item msgid="5560732545714984533">"DZELTENA"</item>
-    <item msgid="7246284817845434226">"ZAĻA"</item>
-    <item msgid="6762906417604676001">"ZILA"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIOLETA"</item>
-    <item msgid="6835537356703747621">"PELĒKA"</item>
-    <item msgid="2470141365136884119">"ZILGANZAĻA"</item>
-  </string-array>
-</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index eb41480..5fe4cf4 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Pielāgots ekrāns"</string>
     <string name="clock_description" msgid="3563839327378948">"Pielāgota ekrāna izvēle"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Mainiet pielāgotu pulksteņa ekrānu."</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Pulksteņa iestatījumi"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Pulksteņa ekrāna opcija: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Pulksteņa krāsa/lielums"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Pulksteņa krāsa/lielums"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Krāsa"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Saīsne pa kreisi"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Saīsne pa labi"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Nav"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Lai atlasītu lietotni <xliff:g id="APPNAME">%1$s</xliff:g>, pārbaudiet tālāk minēto"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Nevar pievienot saīsni"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Atvērt lietotni <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Lai pievienotu lietotni <xliff:g id="APPNAME">%1$s</xliff:g> kā saīsni, jābūt izpildītiem tālāk minētajiem nosacījumiem."</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Gatavs"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Saīsnes"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Nav"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Paziņojumi"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Rādīt paziņojumus bloķēšanas ekrānā"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Paslēpt paziņojumus bloķēšanas ekrānā"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Citas opcijas"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Teksts bloķēšanas ekrānā, funkcija “Tagad atskaņo” u.c."</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Citas bloķēšanas ekrāna opcijas"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Konfidencialitāte, funkcija “Tagad atskaņo” un citi iestatījumi"</string>
     <string name="more_colors" msgid="3191071655353004591">"Citas krāsas"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primārais dinamiskais motīvs"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primārais neitrālais motīvs"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primārais spilgtais motīvs"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primārais ekspresīvais motīvs"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Noklusējuma krāsas opcija"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g>. krāsas opcija"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-mk/clock_colors.xml b/res/values-mk/clock_colors.xml
deleted file mode 100644
index e89597c..0000000
--- a/res/values-mk/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ЦРВЕНА"</item>
-    <item msgid="6882970855289978213">"ПОРТОКАЛОВА"</item>
-    <item msgid="5560732545714984533">"ЖОЛТА"</item>
-    <item msgid="7246284817845434226">"ЗЕЛЕНА"</item>
-    <item msgid="6762906417604676001">"СИНА"</item>
-    <item msgid="8974135109557664892">"ИНДИГО"</item>
-    <item msgid="786643557830463422">"ВИОЛЕТОВА"</item>
-    <item msgid="6835537356703747621">"СИВА"</item>
-    <item msgid="2470141365136884119">"СИНО-ЗЕЛЕНА"</item>
-  </string-array>
-</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 54ebf67..ff0b797 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Приспособен часовник"</string>
     <string name="clock_description" msgid="3563839327378948">"Изберете приспособен часовник"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Променете го приспособениот часовник"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Поставки"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Опција за екран на часовник <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Боја и големина"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Боја и големина"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Боја"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Лева кратенка"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Десна кратенка"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Нема"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"За да изберете „<xliff:g id="APPNAME">%1$s</xliff:g>“, проверете го следново"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Не може да се додаде кратенката"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Отворете ја <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"За да ја додадете апликацијата <xliff:g id="APPNAME">%1$s</xliff:g> како кратенка, треба да бидат исполнети следниве услови"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Готово"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Кратенки"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Нема"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Известувања"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Прикажувај известувања на заклучен екран"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Скриј известувања на заклучен екран"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Повеќе опции"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Текст на заклучен екран, Now Playing и друго"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Повеќе опции за заклучен екран"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Приватност, Now Playing и друго"</string>
     <string name="more_colors" msgid="3191071655353004591">"Повеќе бои"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Примарна динамична тема"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Примарна неутрална тема"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Примарна живописна тема"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Примарна експресивна тема"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Стандардна опција за боја"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Опција за <xliff:g id="ID_1">%1$d</xliff:g> боја"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-ml/clock_colors.xml b/res/values-ml/clock_colors.xml
deleted file mode 100644
index b194aed..0000000
--- a/res/values-ml/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ചുവപ്പ്"</item>
-    <item msgid="6882970855289978213">"ഓറഞ്ച്"</item>
-    <item msgid="5560732545714984533">"മഞ്ഞ"</item>
-    <item msgid="7246284817845434226">"പച്ച"</item>
-    <item msgid="6762906417604676001">"നീല"</item>
-    <item msgid="8974135109557664892">"ഇൻഡിഗോ"</item>
-    <item msgid="786643557830463422">"വയലറ്റ്"</item>
-    <item msgid="6835537356703747621">"ചാരനിറം"</item>
-    <item msgid="2470141365136884119">"ടീൽ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index e9e33d3..0360316 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"കസ്റ്റം ക്ലോക്ക്"</string>
     <string name="clock_description" msgid="3563839327378948">"കസ്റ്റം ക്ലോക്ക് തിരഞ്ഞെടുക്കൂ"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"ഇഷ്‌ടാനുസൃത  ക്ലോക്ക് മാറ്റൂ"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"ക്ലോക്ക് ക്രമീകരണം"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"ക്ലോക്ക് ഫെയ്‌സ് ഓപ്‌ഷൻ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"ക്ലോക്കിന്റെ നിറം, വലുപ്പം"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"ക്ലോക്കിന്റെ നിറം, വലുപ്പം"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"നിറം"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ഇടത് കുറുക്കുവഴി"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"വലത് കുറുക്കുവഴി"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"ഒന്നുമില്ല"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` തിരഞ്ഞെടുക്കാൻ, ഇനിപ്പറയുന്നവ പരിശോധിക്കുക"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"കുറുക്കുവഴി ചേർക്കാനാകില്ല"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> തുറക്കുക"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"കുറുക്കുവഴിയായി <xliff:g id="APPNAME">%1$s</xliff:g> ആപ്പ് ചേർക്കാൻ, ഇനിപ്പറയുന്ന കാര്യങ്ങൾ ഉറപ്പാക്കുക"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"പൂർത്തിയായി"</string>
@@ -124,12 +125,18 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"കുറുക്കുവഴികൾ"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ഒന്നുമില്ല"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"അറിയിപ്പുകൾ"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"ലോക്ക് സ്ക്രീനിൽ അറിയിപ്പുകൾ കാണിക്കുക"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ലോക്ക് സ്ക്രീനിൽ അറിയിപ്പുകൾ മറയ്ക്കുക"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"കൂടുതൽ ഓപ്‌ഷനുകൾ"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"ലോക്ക് സ്ക്രീനിൽ ടെക്സ്റ്റിംഗ്, \'ഇപ്പോൾ കേൾക്കുന്നത്\' തുടങ്ങിയവ"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"കൂടുതൽ ലോക്ക് സ്‌ക്രീൻ ഓപ്‌ഷനുകൾ"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"സ്വകാര്യത, ഇപ്പോൾ കേൾക്കുന്നത്, എന്നിവയും മറ്റും"</string>
     <string name="more_colors" msgid="3191071655353004591">"കൂടുതൽ നിറങ്ങൾ"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"പ്രാഥമിക ഡൈനാമിക് തീം"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"പ്രാഥമിക ന്യൂട്രൽ തീം"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"പ്രാഥമിക വൈബ്രന്റ് തീം"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"പ്രാഥമിക എക്‌സ്‌പ്രസീവ് തീം"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"ഡിഫോൾട്ട് വർണ്ണ ഓപ്‌ഷൻ"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"വർണ്ണ ഓപ്‌ഷൻ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"മറ്റൊരു ക്ലോക്ക് ഫേസ് തിരഞ്ഞെടുക്കാൻ ഇടതുഭാഗത്തേക്ക് സ്വൈപ്പ് ചെയ്യുക"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"മറ്റൊരു ക്ലോക്ക് ഫേസ് തിരഞ്ഞെടുക്കാൻ വലതുഭാഗത്തേക്ക് സ്വൈപ്പ് ചെയ്യുക"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"ഇഷ്‌ടാനുസൃത ക്ലോക്കുകൾ"</string>
 </resources>
diff --git a/res/values-mn/clock_colors.xml b/res/values-mn/clock_colors.xml
deleted file mode 100644
index d059fc0..0000000
--- a/res/values-mn/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"УЛААН"</item>
-    <item msgid="6882970855289978213">"УЛБАР ШАР"</item>
-    <item msgid="5560732545714984533">"ШАР"</item>
-    <item msgid="7246284817845434226">"НОГООН"</item>
-    <item msgid="6762906417604676001">"ЦЭНХЭР"</item>
-    <item msgid="8974135109557664892">"ХӨХӨВТӨР НИЛ ЯГААН"</item>
-    <item msgid="786643557830463422">"ХӨХ ЯГААН"</item>
-    <item msgid="6835537356703747621">"СААРАЛ"</item>
-    <item msgid="2470141365136884119">"УСАН ЦЭНХЭР"</item>
-  </string-array>
-</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 804a4e1..723d90b 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Захиалгат цаг"</string>
     <string name="clock_description" msgid="3563839327378948">"Захиалгат цаг сонгох"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Захиалгат цагийг өөрчлөх"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Цагны тохиргоо"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Цагны нүүрний сонголт <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Цагны өнгө, хэмжээ"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Цагны өнгө, хэмжээ"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Өнгө"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Зүүн товчлол"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Баруун товчлол"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Байхгүй"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>`-г сонгохын тулд дараахыг шалгана уу"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Товчлолыг нэмэх боломжгүй"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g>-г нээх"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> аппыг товчлолоор нэмэхийн тулд дараахыг баталгаажуулна уу"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Болсон"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Товчлол"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Байхгүй"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Мэдэгдэл"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Түгжээтэй дэлгэц дээр мэдэгдэл харуулах"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Түгжигдсэн дэлгэц дээрх мэдэгдлүүдийг нуух"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Бусад сонголт"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Түгжигдсэн дэлгэцийн текст, Now Playing болон бусад"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Түгжээтэй дэлгэцийн өөр сонголт"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Нууцлал, Now Playing болон бусад"</string>
     <string name="more_colors" msgid="3191071655353004591">"Бусад өнгө"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Үндсэн динамик загвар"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Үндсэн завсрын загвар"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Үндсэн хурц тод загвар"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Үндсэн илэрхийлэлтэй загвар"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Өгөгдмөл өнгөний сонголт"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Өнгөний сонголт <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-mr/clock_colors.xml b/res/values-mr/clock_colors.xml
deleted file mode 100644
index a37bf2a..0000000
--- a/res/values-mr/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"लाल"</item>
-    <item msgid="6882970855289978213">"नारिंगी"</item>
-    <item msgid="5560732545714984533">"पिवळा"</item>
-    <item msgid="7246284817845434226">"हिरवा"</item>
-    <item msgid="6762906417604676001">"निळा"</item>
-    <item msgid="8974135109557664892">"गडद निळा"</item>
-    <item msgid="786643557830463422">"जांभळा"</item>
-    <item msgid="6835537356703747621">"राखाडी"</item>
-    <item msgid="2470141365136884119">"हिरवट निळा"</item>
-  </string-array>
-</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index eb6c5b0..0efa47c 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"कस्टम क्लॉक"</string>
     <string name="clock_description" msgid="3563839327378948">"कस्टम क्लॉक निवडा"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"कस्टम क्लॉक बदला"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"क्लॉक सेटिंग्ज"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"क्लॉक फेस पर्याय <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Clock चा रंग व आकार"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"घड्याळाचा रंग व आकार"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"रंग"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"डावा शॉर्टकट"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"उजवा शॉर्टकट"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"काहीही नाही"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` निवडण्यासाठी पुढील गोष्टी तपासा"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"शॉर्टकट जोडू शकत नाही"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> उघडा"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> हे अ‍ॅप शॉर्टकट म्हणून जोडण्यासाठी, पुढील गोष्टींची खात्री करा"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"पूर्ण झाले"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"शॉर्टकट"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"काहीही नाही"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"सूचना"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"लॉक स्‍क्रीनवर सूचना दाखवा"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"लॉक स्‍क्रीनवर सूचना लपवा"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"अधिक पर्याय"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"लॉक स्‍क्रीन, Now Playing आणि आणखी बरेच काही यासंबंधित मजकूर"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"आणखी लॉक स्‍क्रीन पर्याय"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"गोपनीयता, Now Playing आणि आणखी बरेच काही"</string>
     <string name="more_colors" msgid="3191071655353004591">"आणखी रंग"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"प्राथमिक डायनॅमिक थीम"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"प्राथमिक न्यूट्रल थीम"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"प्राथमिक आकर्षक थीम"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"प्राथमिक भावदर्शी थीम"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"रंगाचा डीफॉल्ट पर्याय"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g> रंगाचा पर्याय"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-ms/clock_colors.xml b/res/values-ms/clock_colors.xml
deleted file mode 100644
index fb06584..0000000
--- a/res/values-ms/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"MERAH"</item>
-    <item msgid="6882970855289978213">"JINGGA"</item>
-    <item msgid="5560732545714984533">"KUNING"</item>
-    <item msgid="7246284817845434226">"HIJAU"</item>
-    <item msgid="6762906417604676001">"BIRU"</item>
-    <item msgid="8974135109557664892">"BIRU NILA"</item>
-    <item msgid="786643557830463422">"LEMBAYUNG"</item>
-    <item msgid="6835537356703747621">"KELABU"</item>
-    <item msgid="2470141365136884119">"HIJAU KEBIRUAN"</item>
-  </string-array>
-</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index ef25f12..c1be28d 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Jam Tersuai"</string>
     <string name="clock_description" msgid="3563839327378948">"Pilih jam tersuai"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Tukar jam tersuai"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Tetapan Jam"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Pilihan muka jam <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Warna &amp; saiz jam"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Warna &amp; saiz jam"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Warna"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Pintasan kiri"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Pintasan kanan"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Tiada"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Untuk memilih `<xliff:g id="APPNAME">%1$s</xliff:g>` semak perkara berikut"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Tidak dapat menambahkan pintasan"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Buka <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Untuk menambahkan apl <xliff:g id="APPNAME">%1$s</xliff:g> sebagai pintasan, pastikan"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Selesai"</string>
@@ -124,12 +125,18 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Pintasan"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Tiada"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Pemberitahuan"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Tunjukkan pemberitahuan pada skrin kunci"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Sembunyikan pemberitahuan pada skrin kunci"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Lagi pilihan"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Teks pada skrin kunci, Now Playing dan pelbagai lagi"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Lebih banyak pilihan skrin kunci"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privasi, Now Playing dan pelbagai lagi"</string>
     <string name="more_colors" msgid="3191071655353004591">"Lagi Warna"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinamik utama"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema neutral utama"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema ceria utama"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema ekspresif utama"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Pilihan warna lalai"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Pilihan warna <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Leret ke kiri untuk memilih muka jam yang lain"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Leret ke kanan untuk memilih muka jam yang lain"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Jam Tersuai"</string>
 </resources>
diff --git a/res/values-my/clock_colors.xml b/res/values-my/clock_colors.xml
deleted file mode 100644
index 121056b..0000000
--- a/res/values-my/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"အနီရောင်"</item>
-    <item msgid="6882970855289978213">"လိမ္မော်ရောင်"</item>
-    <item msgid="5560732545714984533">"အဝါရောင်"</item>
-    <item msgid="7246284817845434226">"အစိမ်းရောင်"</item>
-    <item msgid="6762906417604676001">"အပြာရောင်"</item>
-    <item msgid="8974135109557664892">"မဲနယ်ရောင်"</item>
-    <item msgid="786643557830463422">"ခရမ်းရောင်"</item>
-    <item msgid="6835537356703747621">"မီးခိုးရောင်"</item>
-    <item msgid="2470141365136884119">"စိမ်းပြာရောင်"</item>
-  </string-array>
-</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 88f3f32..d36d99f 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"စိတ်ကြိုက်နာရီ"</string>
     <string name="clock_description" msgid="3563839327378948">"စိတ်ကြိုက်နာရီရွေးပါ"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"စိတ်ကြိုက်နာရီ ပြောင်းနိုင်သည်"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"နာရီဆက်တင်များ"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"နာရီဒိုင်ခွက် ရွေးစရာ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"နာရီအရောင်၊ အရွယ်"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"နာရီအရောင်နှင့်အရွယ်"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>၊ <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"အရောင်"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ဘယ်ဖြတ်လမ်းလင့်ခ်"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ညာဖြတ်လမ်းလင့်ခ်"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"မရှိ"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` ရွေးချယ်ရန် အောက်ပါတို့ကို ကြည့်ပါ"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"ဖြတ်လမ်းလင့်ခ် ထည့်၍မရပါ"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ဖွင့်ရန်"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> အက်ပ်ကို ဖြတ်လမ်းလင့်ခ်အဖြစ် ထည့်ရန် အောက်ပါတို့နှင့်ကိုက်ညီရမည်"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ပြီးပြီ"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ဖြတ်လမ်းလင့်ခ်"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>၊ <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"မရှိ"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"အကြောင်းကြားချက်များ"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"အကြောင်းကြားချက်များကို လော့ခ်မျက်နှာပြင်တွင် ပြပါ"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"အကြောင်းကြားချက်များကို လော့ခ်မျက်နှာပြင်တွင် ဖျောက်ထားရန်"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"နောက်ထပ်ရွေးစရာများ"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"လော့ခ်စကရင် စာသား၊ Now Playing နှင့် နောက်ထပ်ဆက်တင်"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"နောက်ထပ် လော့ခ်မျက်နှာပြင် နည်းလမ်းများ"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"ကိုယ်ရေးအချက်အလက်လုံခြုံမှု၊ Now Playing နှင့်အခြား"</string>
     <string name="more_colors" msgid="3191071655353004591">"နောက်ထပ်အရောင်များ"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"မူလ ပြောင်းလဲနိုင်သော အပြင်အဆင်"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"မူလ မနုမရင့် အပြင်အဆင်"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"မူလ စိုလွင်သော အပြင်အဆင်"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"မူလ ခံစားမှုပြ အပြင်အဆင်"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"မူလ အရောင်ရွေးစရာ"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"အရောင်ရွေးစရာ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-nb/clock_colors.xml b/res/values-nb/clock_colors.xml
deleted file mode 100644
index 7b27822..0000000
--- a/res/values-nb/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"RØD"</item>
-    <item msgid="6882970855289978213">"ORANSJE"</item>
-    <item msgid="5560732545714984533">"GUL"</item>
-    <item msgid="7246284817845434226">"GRØNN"</item>
-    <item msgid="6762906417604676001">"BLÅ"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"FIOLETT"</item>
-    <item msgid="6835537356703747621">"GRÅ"</item>
-    <item msgid="2470141365136884119">"BLÅGRØNN"</item>
-  </string-array>
-</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 9f14aa3..1ed654c 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Tilpasset klokke"</string>
     <string name="clock_description" msgid="3563839327378948">"Velg en tilpasset klokke"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Endre en tilpasset klokke"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Klokkevalg"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Urskivealternativ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Farge og størrelse"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Farge og størrelse"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Farge"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Venstre snarvei"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Høyre snarvei"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Ingen"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"For å velge «<xliff:g id="APPNAME">%1$s</xliff:g>», sjekk det følgende"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Kan ikke legge til snarveien"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Åpne <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"For å legge til <xliff:g id="APPNAME">%1$s</xliff:g>-appen som en snarvei må du sørge for at"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Ferdig"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Snarveier"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ingen"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Varsler"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Vis varsler på låseskjermen"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skjul varsler på låseskjermen"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Flere alternativer"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst på låseskjermen, Spilles nå med mer"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Flere låseskjermalternativer"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Personvern, Spilles nå med mer"</string>
     <string name="more_colors" msgid="3191071655353004591">"Flere farger"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Dynamisk primærtema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Nøytralt primærtema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Intenst primærtema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Uttrykksfullt primærtema"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Standard fargealternativ"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Fargealternativ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-ne/clock_colors.xml b/res/values-ne/clock_colors.xml
deleted file mode 100644
index a46e357..0000000
--- a/res/values-ne/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"रातो"</item>
-    <item msgid="6882970855289978213">"सुन्तले"</item>
-    <item msgid="5560732545714984533">"पहेँलो"</item>
-    <item msgid="7246284817845434226">"हरियो"</item>
-    <item msgid="6762906417604676001">"निलो"</item>
-    <item msgid="8974135109557664892">"इन्डिगो"</item>
-    <item msgid="786643557830463422">"बैजनी"</item>
-    <item msgid="6835537356703747621">"खैरो"</item>
-    <item msgid="2470141365136884119">"निलोमिश्रित हरियो"</item>
-  </string-array>
-</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 51a63e2..4db7820 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"कस्टम घडी"</string>
     <string name="clock_description" msgid="3563839327378948">"कस्टम घडी छान्नु…"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"कुनै कस्टम घडी परिवर्तन गर्नुहोस्"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"घडीका सेटिङ"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"घडीको स्क्रिनको डिजाइनको विकल्प <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"घडीको रङ र आकार"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"घडीको रङ र आकार"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"रङ"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"बायाँ सर्टकट"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"दायाँ सर्टकट"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"कुनै पनि होइन"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"\"<xliff:g id="APPNAME">%1$s</xliff:g>\" चयन गर्न तल दिइएका निर्देशनहरू पालना गर्नुहोस्"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"सर्टकट सिर्जना गर्न सकिएन"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> खोल्नुहोस्"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> एपलाई सर्टकटका रूपमा हाल्न, निम्न कुरा सुनिश्चित गर्नुहोस्:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"पूरा भयो"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"सर्टकटहरू"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"कुनै पनि होइन"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"सूचनाहरू"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"लक स्क्रिनमा सूचनाहरू देखाइऊन्"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"लक स्क्रिनमा सूचनाहरू लुकाइऊन्"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"थप विकल्पहरू"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"लक स्क्रिनमा टेक्स्ट देखिने सुविधा, Now Playing र थप सुविधाहरू"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"लक स्क्रिनसम्बन्धी थप विकल्पहरू"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"गोपनीयता, Now Playing र अन्य कुराहरू"</string>
     <string name="more_colors" msgid="3191071655353004591">"थप रङहरू"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"प्राइमरी डाइनामिक थिम"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"प्राइमरी न्युट्रल थिम"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"प्राइमरी भाइब्रेन्ट थिम"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"प्राइमरी एक्सप्रेसिभ थिम"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"रङसम्बन्धी डिफल्ट विकल्प"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"रङसम्बन्धी विकल्प <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-nl/clock_colors.xml b/res/values-nl/clock_colors.xml
deleted file mode 100644
index bd072a1..0000000
--- a/res/values-nl/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ROOD"</item>
-    <item msgid="6882970855289978213">"ORANJE"</item>
-    <item msgid="5560732545714984533">"GEEL"</item>
-    <item msgid="7246284817845434226">"GROEN"</item>
-    <item msgid="6762906417604676001">"BLAUW"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIOLET"</item>
-    <item msgid="6835537356703747621">"GRIJS"</item>
-    <item msgid="2470141365136884119">"BLAUWGROEN"</item>
-  </string-array>
-</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index b00ef09..f98c245 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Aangepaste klok"</string>
     <string name="clock_description" msgid="3563839327378948">"Klok kiezen"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Aangepaste klok wijzigen"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Klokinstellingen"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Wijzerplaatoptie <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Kleur en grootte van klok"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Kleur en formaat van klok"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Kleur"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Snelkoppeling links"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Snelkoppeling rechts"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Geen"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Check het volgende als je <xliff:g id="APPNAME">%1$s</xliff:g> wilt selecteren"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Kan sneltoets niet toevoegen"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> openen"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Zorg voor het volgende om de <xliff:g id="APPNAME">%1$s</xliff:g>-app toe te voegen als snelkoppeling:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Klaar"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Snelkoppelingen"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Geen"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Meldingen"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Meldingen tonen op het vergrendelscherm"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Meldingen verbergen op het vergrendelscherm"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Meer opties"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst op vergrendelscherm, Now Playing en meer"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Meer schermvergrendelingsopties"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Now Playing en meer"</string>
     <string name="more_colors" msgid="3191071655353004591">"Meer kleuren"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primair dynamisch thema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primair neutraal thema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primair levendig thema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primair expressief thema"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Standaard kleuroptie"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Kleuroptie <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-or/clock_colors.xml b/res/values-or/clock_colors.xml
deleted file mode 100644
index ab38485..0000000
--- a/res/values-or/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ଲାଲ"</item>
-    <item msgid="6882970855289978213">"କମଳା"</item>
-    <item msgid="5560732545714984533">"ହଳଦିଆ"</item>
-    <item msgid="7246284817845434226">"ସବୁଜ"</item>
-    <item msgid="6762906417604676001">"ନୀଳ"</item>
-    <item msgid="8974135109557664892">"ଇଣ୍ଡିଗୋ"</item>
-    <item msgid="786643557830463422">"ବାଇଗଣୀ"</item>
-    <item msgid="6835537356703747621">"ଧୂସର"</item>
-    <item msgid="2470141365136884119">"ଟିଲ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 6a5f37d..41af439 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"କଷ୍ଟମ ଘଣ୍ଟା"</string>
     <string name="clock_description" msgid="3563839327378948">"କଷ୍ଟମ ଘଣ୍ଟା ବାଛ"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"ଏକ କଷ୍ଟମ ଘଣ୍ଟାକୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"କ୍ଲକ ସେଟିଂସ"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"ଘଣ୍ଟା ଫେସ ବିକଳ୍ପ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"ଘଣ୍ଟାର ରଙ୍ଗ ଓ ସାଇଜ"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"ଘଣ୍ଟାର ରଙ୍ଗ ଓ ଆକାର"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"ରଙ୍ଗ"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ବାମ ସର୍ଟକଟ"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ଡାହାଣ ସର୍ଟକଟ"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"କିଛି ନାହିଁ"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>`କୁ ଚୟନ କରିବା ପାଇଁ ନିମ୍ନୋକ୍ତକୁ ଯାଞ୍ଚ କରନ୍ତୁ"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"ସର୍ଟକଟ ଯୋଗ କରାଯାଇପାରିବ ନାହିଁ"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ଖୋଲନ୍ତୁ"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"ଏକ ସର୍ଟକଟ ଭାବେ <xliff:g id="APPNAME">%1$s</xliff:g> ଆପ ଯୋଗ କରିବାକୁ, ଏହା ସୁନିଶ୍ଚିତ କରନ୍ତୁ"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ହୋଇଗଲା"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ସର୍ଟକଟଗୁଡ଼ିକ"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"କିଛି ନାହିଁ"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"ଲକ ସ୍କ୍ରିନରେ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଦେଖାନ୍ତୁ"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ଲକ ସ୍କ୍ରିନରେ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଲୁଚାନ୍ତୁ"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"ଅଧିକ ବିକଳ୍ପ"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"ଲକ ସ୍କ୍ରିନରେ ଟେକ୍ସଟ, ଏବେ ଚାଲୁଛି ଏବଂ ଆହୁରି ଅନେକ କିଛି"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"ଅଧିକ ଲକ ସ୍କ୍ରିନ ବିକଳ୍ପ"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"ଗୋପନୀୟତା, ବର୍ତ୍ତମାନ ପ୍ଲେ ହେଉଛି ଏବଂ ଆହୁରି ଅନେକ କିଛି"</string>
     <string name="more_colors" msgid="3191071655353004591">"ଅଧିକ ରଙ୍ଗ"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ପ୍ରାଥମିକ ଡାଇନାମିକ ଥିମ"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ପ୍ରାଥମିକ ନ୍ୟୁଟ୍ରାଲ ଥିମ"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ପ୍ରାଥମିକ ଭାଇବ୍ରାଣ୍ଟ ଥିମ"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ପ୍ରାଥମିକ ଏକ୍ସପ୍ରେସିଭ ଥିମ"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"ଡିଫଲ୍ଟ ରଙ୍ଗର ବିକଳ୍ପ"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"ରଙ୍ଗର ବିକଳ୍ପ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-pa/clock_colors.xml b/res/values-pa/clock_colors.xml
deleted file mode 100644
index 3201dab..0000000
--- a/res/values-pa/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ਲਾਲ"</item>
-    <item msgid="6882970855289978213">"ਸੰਤਰੀ"</item>
-    <item msgid="5560732545714984533">"ਪੀਲਾ"</item>
-    <item msgid="7246284817845434226">"ਹਰਾ"</item>
-    <item msgid="6762906417604676001">"ਨੀਲਾ"</item>
-    <item msgid="8974135109557664892">"ਲਾਜਵਰ"</item>
-    <item msgid="786643557830463422">"ਜਾਮਣੀ"</item>
-    <item msgid="6835537356703747621">"ਸਲੇਟੀ"</item>
-    <item msgid="2470141365136884119">"ਟੀਲ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 2b3bb83..60b9c27 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"ਵਿਉਂਤੀ ਘੜੀ"</string>
     <string name="clock_description" msgid="3563839327378948">"ਵਿਉਂਤੀ ਘੜੀ ਚੁਣੋ"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"ਵਿਉਂਤੀ ਘੜੀ ਬਦਲੋ"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"ਘੜੀ ਦੀਆਂ ਸੈਟਿੰਗਾਂ"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"ਘੜੀ ਦੇ ਡਾਇਲ ਦਾ ਵਿਕਲਪ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"ਘੜੀ ਦਾ ਰੰਗ ਅਤੇ ਆਕਾਰ"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"ਘੜੀ ਦਾ ਰੰਗ ਅਤੇ ਆਕਾਰ"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"ਰੰਗ"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ਖੱਬਾ ਸ਼ਾਰਟਕੱਟ"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ਸੱਜਾ ਸ਼ਾਰਟਕੱਟ"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"ਕੋਈ ਨਹੀਂ"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` ਨੂੰ ਚੁਣਨ ਲਈ, ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਹਿਦਾਇਤਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"ਸ਼ਾਰਟਕੱਟ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ਖੋਲ੍ਹੋ"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> ਐਪ ਨੂੰ ਸ਼ਾਰਟਕੱਟ ਵਜੋਂ ਸ਼ਾਮਲ ਕਰਨ ਲਈ, ਪੱਕਾ ਕਰੋ ਕਿ"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ਹੋ ਗਿਆ"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ਸ਼ਾਰਟਕੱਟ"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ਕੋਈ ਨਹੀਂ"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"ਸੂਚਨਾਵਾਂ"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਸੂਚਨਾਵਾਂ ਦਿਖਾਓ"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਸੂਚਨਾਵਾਂ ਲੁਕਾਓ"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"ਹੋਰ ਵਿਕਲਪ"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਲਿਖਤ ਸ਼ਾਮਲ ਕਰਨਾ, Now Playing ਅਤੇ ਹੋਰ"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"ਹੋਰ ਲਾਕ ਸਕ੍ਰੀਨ ਵਿਕਲਪ"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"ਪਰਦੇਦਾਰੀ, Now Playing ਅਤੇ ਹੋਰ"</string>
     <string name="more_colors" msgid="3191071655353004591">"ਹੋਰ ਰੰਗ"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ਪ੍ਰਾਇਮਰੀ ਪਰਿਵਰਤਨਸ਼ੀਲ ਥੀਮ"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ਪ੍ਰਾਇਮਰੀ ਨਿਰਪੱਖ ਥੀਮ"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ਪ੍ਰਾਇਮਰੀ ਵਾਈਬਰੈਂਟ ਥੀਮ"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ਪ੍ਰਾਇਮਰੀ ਭਾਵਪੂਰਨ ਥੀਮ"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"ਰੰਗ ਦਾ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਵਿਕਲਪ"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"ਰੰਗ ਦਾ ਵਿਕਲਪ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-pl/clock_colors.xml b/res/values-pl/clock_colors.xml
deleted file mode 100644
index 2e6f58b..0000000
--- a/res/values-pl/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"CZERWONY"</item>
-    <item msgid="6882970855289978213">"POMARAŃCZOWY"</item>
-    <item msgid="5560732545714984533">"ŻÓŁTY"</item>
-    <item msgid="7246284817845434226">"ZIELONY"</item>
-    <item msgid="6762906417604676001">"NIEBIESKI"</item>
-    <item msgid="8974135109557664892">"INDYGO"</item>
-    <item msgid="786643557830463422">"FIOLETOWY"</item>
-    <item msgid="6835537356703747621">"SZARY"</item>
-    <item msgid="2470141365136884119">"MORSKI"</item>
-  </string-array>
-</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index b15937c..4653d88 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Własny zegar"</string>
     <string name="clock_description" msgid="3563839327378948">"Wybierz własny zegar"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Zmień własny zegar"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Ustawienia zegara"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opcja tarczy zegarka: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Kolor i rozmiar zegara"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Kolor i rozmiar zegara"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Kolor"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Lewy skrót"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Prawy skrót"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Brak"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Aby wybrać opcję „<xliff:g id="APPNAME">%1$s</xliff:g>”, wykonaj te czynności"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Nie udało się dodać skrótu"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Otwórz: <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Aby dodać aplikację <xliff:g id="APPNAME">%1$s</xliff:g> jako skrót, upewnij się, że spełnione zostały te warunki:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Gotowe"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Skróty"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Brak"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Powiadomienia"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Pokazuj powiadomienia na ekranie blokady"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ukrywaj powiadomienia na ekranie blokady"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Więcej opcji"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"SMS-y na ekranie blokady, Co jest grane i inne funkcje"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Więcej opcji ekranu blokady"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Prywatność, Co jest grane i inne ustawienia"</string>
     <string name="more_colors" msgid="3191071655353004591">"Więcej kolorów"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Główny motyw dynamiczny"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Główny motyw neutralny"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Główny motyw barwny"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Główny motyw ekspresyjny"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Domyślna opcja koloru"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opcja koloru <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-pt-rPT/clock_colors.xml b/res/values-pt-rPT/clock_colors.xml
deleted file mode 100644
index 029295a..0000000
--- a/res/values-pt-rPT/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"VERMELHO"</item>
-    <item msgid="6882970855289978213">"LARANJA"</item>
-    <item msgid="5560732545714984533">"AMARELO"</item>
-    <item msgid="7246284817845434226">"VERDE"</item>
-    <item msgid="6762906417604676001">"AZUL"</item>
-    <item msgid="8974135109557664892">"ÍNDIGO"</item>
-    <item msgid="786643557830463422">"VIOLETA"</item>
-    <item msgid="6835537356703747621">"CINZENTO"</item>
-    <item msgid="2470141365136884119">"AZUL-ESVERDEADO"</item>
-  </string-array>
-</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index affb884..8ffc7b4 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Relógio person."</string>
     <string name="clock_description" msgid="3563839327378948">"Escolha rel. pers."</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Altere um relógio personalizado"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Def. do Relógio"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opção de mostrador <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Cor/tamanho relógio"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Cor/tamanho relógio"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Cor"</string>
@@ -85,8 +86,8 @@
     <string name="delete_custom_theme_button" msgid="5102462988130208824">"Eliminar"</string>
     <string name="cancel" msgid="4651030493668562067">"Cancelar"</string>
     <string name="set_theme_wallpaper_dialog_message" msgid="2179661027350908003">"Defina a imagem de fundo do estilo"</string>
-    <string name="use_style_instead_title" msgid="1578754995763917502">"Quer utilizar <xliff:g id="ID_1">%1$s</xliff:g>?"</string>
-    <string name="use_style_instead_body" msgid="3051937045807471496">"Os componentes que escolheu correspondem ao estilo <xliff:g id="ID_1">%1$s</xliff:g>. Em vez disso, quer utilizar <xliff:g id="ID_2">%1$s</xliff:g>?"</string>
+    <string name="use_style_instead_title" msgid="1578754995763917502">"Pretende utilizar <xliff:g id="ID_1">%1$s</xliff:g>?"</string>
+    <string name="use_style_instead_body" msgid="3051937045807471496">"Os componentes que escolheu correspondem ao estilo <xliff:g id="ID_1">%1$s</xliff:g>. Em vez disso, pretende utilizar <xliff:g id="ID_2">%1$s</xliff:g>?"</string>
     <string name="use_style_button" msgid="1754493078383627019">"Usar <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="no_thanks" msgid="7286616980115687627">"Não, obrigado"</string>
     <string name="clock_preview_content_description" msgid="5460561185905717460">"Pré-visualização do relógio <xliff:g id="ID_1">%1$s</xliff:g>"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Atalho esquerdo"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Atalho direito"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Nenhum"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Para selecionar \"<xliff:g id="APPNAME">%1$s</xliff:g>\", verifique o seguinte"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Não é possível adicionar o atalho"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Abrir <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Para adicionar a app <xliff:g id="APPNAME">%1$s</xliff:g> como um atalho, garanta"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Concluído"</string>
@@ -124,12 +125,18 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Atalhos"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Nenhum"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notificações"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostre as notificações no ecrã de bloqueio"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Oculte as notificações no ecrã de bloqueio"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Mais opções"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Texto no ecrã de bloqueio, A tocar e muito mais"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Mais opções do ecrã de bloqueio"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privacidade, A reproduzir e muito mais"</string>
     <string name="more_colors" msgid="3191071655353004591">"Mais cores"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinâmico principal"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema neutro principal"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema vibrante principal"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema expressivo principal"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Opção de cor predefinida"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opção de cor <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Deslizar rapidamente para a esquerda para escolher um mostrador diferente"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Deslizar rapidamente para a direita para escolher um mostrador diferente"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Relógios personalizados"</string>
 </resources>
diff --git a/res/values-pt/clock_colors.xml b/res/values-pt/clock_colors.xml
deleted file mode 100644
index 57538ba..0000000
--- a/res/values-pt/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"VERMELHO"</item>
-    <item msgid="6882970855289978213">"LARANJA"</item>
-    <item msgid="5560732545714984533">"AMARELO"</item>
-    <item msgid="7246284817845434226">"VERDE"</item>
-    <item msgid="6762906417604676001">"AZUL"</item>
-    <item msgid="8974135109557664892">"ÍNDIGO"</item>
-    <item msgid="786643557830463422">"VIOLETA"</item>
-    <item msgid="6835537356703747621">"CINZA"</item>
-    <item msgid="2470141365136884119">"AZUL-PETRÓLEO"</item>
-  </string-array>
-</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index ac3f506..5ef1ecf 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Relógio personalizado"</string>
     <string name="clock_description" msgid="3563839327378948">"Escolha um relógio personalizado"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Edite um relógio personalizado"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Configurações do Relógio"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opção de aparência do relógio: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Cor/tam. do relógio"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Cor e tamanho do relógio"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Cor"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Atalho à esquerda"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Atalho à direita"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Nenhum"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Para selecionar o app <xliff:g id="APPNAME">%1$s</xliff:g>, marque a opção a seguir"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Não é possível adicionar o atalho"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Abrir <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Para adicionar o app <xliff:g id="APPNAME">%1$s</xliff:g> como um atalho, confira se"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Concluído"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Atalhos"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Nenhum"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notificações"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostrar notificações na tela de bloqueio"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ocultar notificações na tela de bloqueio"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Mais opções"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Texto na tela de bloqueio, Tocando agora e muito mais"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Mais opções da tela de bloqueio"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privacidade, Tocando agora e muito mais"</string>
     <string name="more_colors" msgid="3191071655353004591">"Mais cores"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinâmico principal"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema neutro principal"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema vibrante principal"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema expressivo principal"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Opção de cor padrão"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opção de cor <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-ro/clock_colors.xml b/res/values-ro/clock_colors.xml
deleted file mode 100644
index 003fa39..0000000
--- a/res/values-ro/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ROȘU"</item>
-    <item msgid="6882970855289978213">"PORTOCALIU"</item>
-    <item msgid="5560732545714984533">"GALBEN"</item>
-    <item msgid="7246284817845434226">"VERDE"</item>
-    <item msgid="6762906417604676001">"ALBASTRU"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIOLET"</item>
-    <item msgid="6835537356703747621">"GRI"</item>
-    <item msgid="2470141365136884119">"TURCOAZ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index a53e7c8..e7b4296 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Ecran personalizat"</string>
     <string name="clock_description" msgid="3563839327378948">"Alege un ecran personalizat"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Modifică un ecran personalizat"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Setări pentru ceas"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opțiune privind aspectul ceasului <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Culoare / mărime"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Culoare / dimensiune"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Culoare"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Comanda rapidă stânga"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Comanda rapidă dreapta"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Fără"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Ca să selectezi <xliff:g id="APPNAME">%1$s</xliff:g>, urmează aceste instrucțiuni"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Nu se poate adăuga comanda rapidă"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Deschide <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Pentru a adăuga aplicația <xliff:g id="APPNAME">%1$s</xliff:g> drept comandă rapidă, asigură-te"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Gata"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Comenzi rapide"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Niciunul"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Notificări"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Afișează notificările pe ecranul de blocare"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ascunde notificările pe ecranul de blocare"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Mai multe opțiuni"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Text pe ecranul de blocare, Now Playing și altele"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Alte opțiuni pentru ecranul de blocare"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Confidențialitate, Now Playing și altele"</string>
     <string name="more_colors" msgid="3191071655353004591">"Mai multe culori"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Temă dinamică principală"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Temă neutră principală"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Temă vibrantă principală"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Temă expresivă principală"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Opțiune de culoare prestabilită"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opțiunea de culoare <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-ru/clock_colors.xml b/res/values-ru/clock_colors.xml
deleted file mode 100644
index 17e429a..0000000
--- a/res/values-ru/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"КРАСНЫЙ"</item>
-    <item msgid="6882970855289978213">"ОРАНЖЕВЫЙ"</item>
-    <item msgid="5560732545714984533">"ЖЕЛТЫЙ"</item>
-    <item msgid="7246284817845434226">"ЗЕЛЕНЫЙ"</item>
-    <item msgid="6762906417604676001">"СИНИЙ"</item>
-    <item msgid="8974135109557664892">"ИНДИГО"</item>
-    <item msgid="786643557830463422">"ФИОЛЕТОВЫЙ"</item>
-    <item msgid="6835537356703747621">"СЕРЫЙ"</item>
-    <item msgid="2470141365136884119">"ТЕМНО-БИРЮЗОВЫЙ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 5bf160b..b53df6e 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Настр. цифербл."</string>
     <string name="clock_description" msgid="3563839327378948">"Выбер. цифербл."</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Выберите настраиваемый циферблат."</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Настройки часов"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Циферблат, вариант <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Цвет и размер часов"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Цвет и размер часов"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>."</string>
     <string name="clock_color" msgid="8081608867289156163">"Цвет"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Ярлык слева"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Ярлык справа"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Нет"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Чтобы выбрать приложение \"<xliff:g id="APPNAME">%1$s</xliff:g>\", сделайте следующее:"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Не удалось добавить ярлык"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Открыть: <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Для добавления ярлыка приложения \"<xliff:g id="APPNAME">%1$s</xliff:g>\" должны выполняться следующие условия:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ОК"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Быстрые действия"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Нет"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Уведомления"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Показывать уведомления на заблокированном экране"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Скрывать уведомления на заблокированном экране"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Дополнительные настройки"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Текст на заблок. экране, функция \"Что сейчас играет?\" и др."</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Ещё настройки заблок. экрана"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Конфиденциальность, функция \"Что сейчас играет?\" и т. д."</string>
     <string name="more_colors" msgid="3191071655353004591">"Ещё цвета"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Основная динамическая тема"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Основная нейтральная тема"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Основная живая тема"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Основная выразительная тема"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Цвет по умолчанию"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Цвет: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-si/clock_colors.xml b/res/values-si/clock_colors.xml
deleted file mode 100644
index c0b3da5..0000000
--- a/res/values-si/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"රතු"</item>
-    <item msgid="6882970855289978213">"තැඹිලි"</item>
-    <item msgid="5560732545714984533">"කහ"</item>
-    <item msgid="7246284817845434226">"කොළ"</item>
-    <item msgid="6762906417604676001">"නිල්"</item>
-    <item msgid="8974135109557664892">"ඉන්ඩිගෝ"</item>
-    <item msgid="786643557830463422">"වයලට්"</item>
-    <item msgid="6835537356703747621">"අළු"</item>
-    <item msgid="2470141365136884119">"හරිත නිල්"</item>
-  </string-array>
-</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index ee2570c..791531c 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"අභිරුචි ඔරලෝසුව"</string>
     <string name="clock_description" msgid="3563839327378948">"අභිරුචි ඔරලෝසුවක් තෝරන්න"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"අභිරුචි ඔරලෝසුවක් වෙනස් කරන්න"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"ඔරලෝසු සැකසීම්"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"ඔරලෝසු මුහුණත් විකල්පය <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"ඔරලෝසු වර්ණය සහ තරම"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"ඔරලෝසු වර්ණය සහ තරම"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"වර්ණය"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"වම් කෙටිමඟ"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"දකුණු කෙටිමඟ"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"කිසිත් නැත"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` තේරීම සඳහා පහත දේ පරීක්ෂා කරන්න"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"කෙටිමඟ එක් කළ නොහැක"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> විවෘත කරන්න"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"කෙටිමඟක් ලෙස <xliff:g id="APPNAME">%1$s</xliff:g> එක් කිරීමට, තහවුරු කර ගන්න"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"නිමයි"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"කෙටිමං"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"කිසිවක් නැත"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"දැනුම්දීම්"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"අගුළු තිරය මත දැනුම්දීම් පෙන්වන්න"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"අගුළු තිරය මත දැනුම්දීම් සඟවන්න"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"තවත් විකල්ප"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"අගුළු තිරය මත පෙළ, දැන් වාදනය වීම, සහ තවත් දේ"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"තවත් අගුලු තිර විකල්ප"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"පෞද්ගලිකත්වය, Now Playing, සහ තවත් දේ"</string>
     <string name="more_colors" msgid="3191071655353004591">"තවත් වර්ණ"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"මූලික ගතික තේමාව"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"මූලික මධ්‍යස්ථ තේමාව"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"මූලික විචිත්‍රවත් තේමාව"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"මූලික ප්‍රකාශන තේමාව"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"පෙරනිමි වර්ණ විකල්පය"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"වර්ණ විකල්පය <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-sk/clock_colors.xml b/res/values-sk/clock_colors.xml
deleted file mode 100644
index a443c4b..0000000
--- a/res/values-sk/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ČERVENÁ"</item>
-    <item msgid="6882970855289978213">"ORANŽOVÁ"</item>
-    <item msgid="5560732545714984533">"ŽLTÁ"</item>
-    <item msgid="7246284817845434226">"ZELENÁ"</item>
-    <item msgid="6762906417604676001">"MODRÁ"</item>
-    <item msgid="8974135109557664892">"INDIGOVÁ"</item>
-    <item msgid="786643557830463422">"FIALOVÁ"</item>
-    <item msgid="6835537356703747621">"SIVÁ"</item>
-    <item msgid="2470141365136884119">"MODROZELENÁ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 64fee5d..91cb786 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Vlastné hodiny"</string>
     <string name="clock_description" msgid="3563839327378948">"Vyberte vlastné hodiny"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Zmeňte vlastné hodiny"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Nastav. hodín"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Možnosť ciferníka <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Farba a veľkosť"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Farba a veľkosť"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Farba"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Skratka vľavo"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Skratka vpravo"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Žiadne"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Ak chcete vybrať aplikáciu <xliff:g id="APPNAME">%1$s</xliff:g>, skontrolujte nasledovné"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Odkaz sa nedá pridať"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Otvoriť <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Ak chcete aplikáciu <xliff:g id="APPNAME">%1$s</xliff:g> pridať ako odkaz, uistite sa, že"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Hotovo"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Skratky"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Žiadne"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Upozornenia"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Zobrazovať upozornenia na uzamknutej obrazovke"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skrývať upozornenia na uzamknutej obrazovke"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Ďalšie možnosti"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Text na uzamknutej obrazovke, Čo to hrá a ďalšie nastavenia"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Viac možností uzamkn. obrazovky"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Ochrana súkromia, Čo to hrá a ďalšie funkcie"</string>
     <string name="more_colors" msgid="3191071655353004591">"Ďalšie farby"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primárny dynamický motív"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primárny neutrálny motív"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primárny sýty motív"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primárny expresívny motív"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Predvolená farba"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Farba: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-sl/clock_colors.xml b/res/values-sl/clock_colors.xml
deleted file mode 100644
index edf1377..0000000
--- a/res/values-sl/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"RDEČA"</item>
-    <item msgid="6882970855289978213">"ORANŽNA"</item>
-    <item msgid="5560732545714984533">"RUMENA"</item>
-    <item msgid="7246284817845434226">"ZELENA"</item>
-    <item msgid="6762906417604676001">"MODRA"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIJOLIČNA"</item>
-    <item msgid="6835537356703747621">"SIVA"</item>
-    <item msgid="2470141365136884119">"ZELENOMODRA"</item>
-  </string-array>
-</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 670174a..e476796 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Ura po meri"</string>
     <string name="clock_description" msgid="3563839327378948">"Izberite uro po meri"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Spremenite uro po meri"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Nastavitve ure"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Možnost številčnice <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Barva, velikost ure"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Barva, velikost ure"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Barva"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Leva bližnjica"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Desna bližnjica"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Brez"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Če želite izbrati aplikacijo »<xliff:g id="APPNAME">%1$s</xliff:g>«, potrdite naslednje:"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Bližnjice ni mogoče dodati"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Odpri <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Če želite aplikacijo <xliff:g id="APPNAME">%1$s</xliff:g> dodati kot bližnjico, zagotovite naslednje:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Končano"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Bližnjice"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Brez"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Obvestila"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Prikaži obvestila na zaklenjenem zaslonu"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skrivanje obvestil na zaklenjenem zaslonu"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Več možnosti"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Besedilo na zaklenjenem zaslonu, Zdaj se predvaja in drugo"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Več glede zaklenjenega zaslona"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Zasebnost, Zdaj se predvaja in drugo"</string>
     <string name="more_colors" msgid="3191071655353004591">"Več barv"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primarna dinamična tema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primarna nevtralna tema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primarna živahna tema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primarna izrazna tema"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Privzeta možnost barve"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Možnost barve <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-sq/clock_colors.xml b/res/values-sq/clock_colors.xml
deleted file mode 100644
index 69a2b0c..0000000
--- a/res/values-sq/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"E KUQE"</item>
-    <item msgid="6882970855289978213">"PORTOKALLI"</item>
-    <item msgid="5560732545714984533">"E VERDHË"</item>
-    <item msgid="7246284817845434226">"E GJELBËR"</item>
-    <item msgid="6762906417604676001">"BLU"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VJOLLCË"</item>
-    <item msgid="6835537356703747621">"GRI"</item>
-    <item msgid="2470141365136884119">"GURKALI"</item>
-  </string-array>
-</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 78dfec2..799d0ec 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Orë e personalizuar"</string>
     <string name="clock_description" msgid="3563839327378948">"Orë e personalizuar"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Ndrysho orën e personalizuar"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Cilësimet e orës"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opsioni i fushës së orës: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Ora: Ngjyrë/madhësi"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Ora: Ngjyra/madhësia"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Ngjyra"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Shkurtorja maj."</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Shkurtorja djath."</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Asnjë"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Për të zgjedhur \"<xliff:g id="APPNAME">%1$s</xliff:g>\", kontrollo si më poshtë"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Shkurtorja nuk mund të shtohet"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Hap \"<xliff:g id="APPNAME">%1$s</xliff:g>\""</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Për të shtuar aplikacionin \"<xliff:g id="APPNAME">%1$s</xliff:g>\" si një shkurtore, sigurohu që"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"U krye"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Shkurtoret"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Asnjë"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Njoftimet"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Shfaq njoftimet në ekranin e kyçjes"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Fshih njoftimet në ekranin e kyçjes"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Opsione të tjera"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst në ekranin e kyçjes, \"Gjej këngën\" dhe të tjera"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Opsione të tjera të ekranit të kyçjes"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privatësia, \"Gjej këngën\" etj."</string>
     <string name="more_colors" msgid="3191071655353004591">"Më shumë ngjyra"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema kryesore dinamike"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema kryesore neutrale"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema kryesore vibrante"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema kryesore ekspresive"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Opsioni i parazgjedhur i ngjyrës"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opsioni i ngjyrës: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-sr/clock_colors.xml b/res/values-sr/clock_colors.xml
deleted file mode 100644
index 9250371..0000000
--- a/res/values-sr/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ЦРВЕНА"</item>
-    <item msgid="6882970855289978213">"НАРАНЏАСТА"</item>
-    <item msgid="5560732545714984533">"ЖУТА"</item>
-    <item msgid="7246284817845434226">"ЗЕЛЕНА"</item>
-    <item msgid="6762906417604676001">"ПЛАВА"</item>
-    <item msgid="8974135109557664892">"ТАМНОПЛАВА"</item>
-    <item msgid="786643557830463422">"ЉУБИЧАСТА"</item>
-    <item msgid="6835537356703747621">"СИВА"</item>
-    <item msgid="2470141365136884119">"ТИРКИЗНА"</item>
-  </string-array>
-</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index af29aa2..105d2e0 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Прилагођени сат"</string>
     <string name="clock_description" msgid="3563839327378948">"Прилагођени сат"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Промените прилагођени сат"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Подешавања сата"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Опција бројчаника <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Боја и величина сата"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Боја и величина сата"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Боја"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Лева пречица"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Десна пречица"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Ништа"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Да бисте изабрали „<xliff:g id="APPNAME">%1$s</xliff:g>“, проверите следеће"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Додавање пречице није успело"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Отворите: <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Да бисте додали апликацију <xliff:g id="APPNAME">%1$s</xliff:g> као пречицу, уверите се"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Готово"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Пречице"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ништа"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Обавештења"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Приказуј обавештења на закључаном екрану"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Сакриј обавештења на закључаном екрану"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Још опција"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Текст на закључаном екрану, Тренутно свира и друго"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Још опција за закључани екран"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Приватност, Тренутно свира и друго"</string>
     <string name="more_colors" msgid="3191071655353004591">"Још боја"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Примарна динамична тема"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Примарна неутрална тема"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Примарна интензивна тема"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Примарна експресивна тема"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Подразумевана опција боје"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Опција боје <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-sv/clock_colors.xml b/res/values-sv/clock_colors.xml
deleted file mode 100644
index 46df56a..0000000
--- a/res/values-sv/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"RÖD"</item>
-    <item msgid="6882970855289978213">"ORANGE"</item>
-    <item msgid="5560732545714984533">"GUL"</item>
-    <item msgid="7246284817845434226">"GRÖN"</item>
-    <item msgid="6762906417604676001">"BLÅ"</item>
-    <item msgid="8974135109557664892">"INDIGOBLÅ"</item>
-    <item msgid="786643557830463422">"VIOLETT"</item>
-    <item msgid="6835537356703747621">"GRÅ"</item>
-    <item msgid="2470141365136884119">"BLÅGRÖN"</item>
-  </string-array>
-</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 22dff29..c5e61e5 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Anpassad klocka"</string>
     <string name="clock_description" msgid="3563839327378948">"Välj anpassad klocka"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Ändra en anpassad klocka"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Klockalternativ"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Urtavlealternativ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Klockstorlek/färg"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Klockstorlek/färg"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Färg"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Vänster genväg"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Höger genväg"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Inga"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Om du vill välja <xliff:g id="APPNAME">%1$s</xliff:g> markerar du följande"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Det går inte att lägga till genvägen"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Öppna <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Om du vill lägga till <xliff:g id="APPNAME">%1$s</xliff:g>-appen som en genväg ser du till att"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Klar"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Genvägar"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Inga"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Aviseringar"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Visa aviseringar på låsskärmen"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Dölj aviseringar på låsskärmen"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Fler alternativ"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Text på låsskärmen, Nu spelas med mera"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Fler låsskärmsalternativ"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Integritet, Nu spelas med mera"</string>
     <string name="more_colors" msgid="3191071655353004591">"Fler färger"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Dynamiskt tema med primära färger"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Neutralt tema med primära färger"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Livfullt tema med primära färger"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Uttrycksfullt tema med primära färger"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Standardfärgen"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Färgalternativet <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-sw/clock_colors.xml b/res/values-sw/clock_colors.xml
deleted file mode 100644
index b2fd0c2..0000000
--- a/res/values-sw/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"NYEKUNDU"</item>
-    <item msgid="6882970855289978213">"RANGI YA CHUNGWA"</item>
-    <item msgid="5560732545714984533">"NJANO"</item>
-    <item msgid="7246284817845434226">"KIJANI"</item>
-    <item msgid="6762906417604676001">"BULUU"</item>
-    <item msgid="8974135109557664892">"NILI"</item>
-    <item msgid="786643557830463422">"ZAMBARAU ILIYOKOLEA"</item>
-    <item msgid="6835537356703747621">"KIJIVU"</item>
-    <item msgid="2470141365136884119">"SAMAWATI YA KIJANI"</item>
-  </string-array>
-</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 780ab94..20ea1ba 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Saa Maalum"</string>
     <string name="clock_description" msgid="3563839327378948">"Chagua saa maalum"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Badili saa maalum"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Mipangilio ya Saa"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Chaguo la sura ya saa <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Rangi na ukubwa wa saa"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Rangi na ukubwa wa saa"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Rangi"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Njia ya mkato ya kushoto"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Njia ya mkato ya kulia"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Hamna"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Ili uchague `<xliff:g id="APPNAME">%1$s</xliff:g>` zingatia yafuatayo"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Imeshindwa kuweka njia ya mkato"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Fungua <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Ili kuweka programu ya <xliff:g id="APPNAME">%1$s</xliff:g> kuwa njia ya mkato, hakikisha"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Nimemaliza"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Njia za mkato"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Hamna"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Arifa"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Onyesha arifa kwenye skrini iliyofungwa"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ficha arifa kwenye skrini iliyofungwa"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Chaguo zaidi"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Maandishi kwenye skrini iliyofungwa, Kitambua Ngoma na zaidi"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Chaguo zaidi za kufunga skrini"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Faragha, Kitambua Ngoma na zaidi"</string>
     <string name="more_colors" msgid="3191071655353004591">"Rangi Zaidi"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Mandhari msingi nyumbufu"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Mandhari msingi yenye rangi zilizopoa"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Mandhari msingi yenye rangi inayong\'aa"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Mandhari msingi inayojidhihirisha"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Chaguo la rangi chaguomsingi"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Chaguo la rangi ya <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-ta/clock_colors.xml b/res/values-ta/clock_colors.xml
deleted file mode 100644
index 67824d6..0000000
--- a/res/values-ta/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"சிவப்பு"</item>
-    <item msgid="6882970855289978213">"ஆரஞ்சு"</item>
-    <item msgid="5560732545714984533">"மஞ்சள்"</item>
-    <item msgid="7246284817845434226">"பச்சை"</item>
-    <item msgid="6762906417604676001">"நீலம்"</item>
-    <item msgid="8974135109557664892">"அடர் நீலம்"</item>
-    <item msgid="786643557830463422">"ஊதா"</item>
-    <item msgid="6835537356703747621">"சாம்பல்"</item>
-    <item msgid="2470141365136884119">"பசும் நீலம்"</item>
-  </string-array>
-</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 429828b..0e39fa8 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"பிரத்தியேகக் கடிகாரம்"</string>
     <string name="clock_description" msgid="3563839327378948">"பிரத்தியேகக் கடிகாரத்தைத் தேர்வுசெய்க"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"பிரத்தியேகக் கடிகாரத்தை மாற்றும்"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"கடிகார அமைப்புகள்"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"கடிகார முகப்புக்கான விருப்பம் <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"கடிகார நிறம் &amp; அளவு"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"கடிகார நிறம் &amp; அளவு"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"நிறம்"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"இடது ஷார்ட்கட்"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"வலது ஷார்ட்கட்"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"ஏதுமில்லை"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` ஆப்ஸைத் தேர்ந்தெடுக்க பின்வருபவற்றைச் சரிபார்க்கவும்"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"ஷார்ட்கட்டைச் சேர்க்க முடியவில்லை"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ஐத் திறக்கும்"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> ஆப்ஸை ஷார்ட்கட்டாகச் சேர்க்க இவற்றைப் பின்பற்றுவதை உறுதிசெய்துகொள்ளவும்:"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"சரி"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ஷார்ட்கட்கள்"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ஏதுமில்லை"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"அறிவிப்புகள்"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"பூட்டுத் திரையில் அறிவிப்புகளைக் காட்டு"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"பூட்டுத் திரையில் அறிவிப்புகளைக் காட்டாது"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"மேலும் விருப்பங்கள்"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"பூட்டுத் திரையில் உரை, பாடல் விவரம் மற்றும் பல"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"கூடுதல் பூட்டுத் திரை விருப்பம்"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"தனியுரிமை, பாடல் விவரம் மற்றும் பல"</string>
     <string name="more_colors" msgid="3191071655353004591">"கூடுதல் வண்ணங்கள்"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"முதன்மையான டைனமிக் தீம்"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"முதன்மையான நியூட்ரல் தீம்"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"முதன்மையான வர்ணஜாலத் தீம்"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"முதன்மையான எக்ஸ்பிரஸிவ் தீம்"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"இயல்பு வண்ண விருப்பம்"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"வண்ண விருப்பம் <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-te/clock_colors.xml b/res/values-te/clock_colors.xml
deleted file mode 100644
index a142c76..0000000
--- a/res/values-te/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ఎరుపు రంగు"</item>
-    <item msgid="6882970855289978213">"నారింజ రంగు"</item>
-    <item msgid="5560732545714984533">"పసుపు రంగు"</item>
-    <item msgid="7246284817845434226">"ఆకుపచ్చ రంగు"</item>
-    <item msgid="6762906417604676001">"నీలం రంగు"</item>
-    <item msgid="8974135109557664892">"ఇండిగో రంగు"</item>
-    <item msgid="786643557830463422">"ఊదా రంగు"</item>
-    <item msgid="6835537356703747621">"బూడిద రంగు"</item>
-    <item msgid="2470141365136884119">"టీల్ రంగు"</item>
-  </string-array>
-</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index b7581e1..f3eefc5 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"అనుకూల గడియారం"</string>
     <string name="clock_description" msgid="3563839327378948">"అనుకూల గడియారాన్ని ఎంచుకోండి"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"అనుకూల గడియారాన్ని మార్చండి"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"గడియారం సెట్టింగ్‌లు"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"గడియారం ఫేస్ ఆప్షన్ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"గడియారం రంగు &amp; సైజు"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"గడియారం రంగు &amp; సైజు"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"రంగు"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ఎడమ షార్ట్‌కట్"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"కుడి షార్ట్‌కట్"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"ఏదీ లేదు"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` యాప్‌ను ఎంచుకోవడానికి దిగువ ఉన్న సూచనలను చూడండి."</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"షార్ట్‌కట్‌ను జోడించడం సాధ్యపడదు"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g>ను తెరవండి"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> యాప్‌ను షార్ట్‌కట్‌గా జోడించడానికి, వీటిని నిర్ధారించుకోండి"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"పూర్తయింది"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"షార్ట్‌కట్‌లు"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ఏదీ ఎంచుకోలేదు"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"నోటిఫికేషన్‌లు"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"లాక్ స్క్రీన్‌లో నోటిఫికేషన్‌లను చూపండి"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"లాక్ స్క్రీన్‌లో నోటిఫికేషన్‌లను దాచండి"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"మరిన్ని ఆప్షన్‌లు"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"లాక్ స్క్రీన్, Now Playing, మరిన్ని కోసం టెక్స్ట్ మెసేజ్ పంపండి"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"మరిన్ని లాక్ స్క్రీన్ ఆప్షన్‌లు"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"గోప్యత, Now Playing, ఇంకా మరిన్ని"</string>
     <string name="more_colors" msgid="3191071655353004591">"మరిన్ని రంగులు"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ప్రాథమిక డైనమిక్ రూపం"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ప్రాథమిక న్యూట్రల్ రూపం"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ప్రాథమిక వైబ్రెంట్ రూపం"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ప్రాథమిక ఎక్స్‌ప్రెషిప్ రూపం"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"ఆటోమేటిక్ సెట్టింగ్ రంగు ఆప్షన్"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"రంగు ఆప్షన్ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-th/clock_colors.xml b/res/values-th/clock_colors.xml
deleted file mode 100644
index c63bdd1..0000000
--- a/res/values-th/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"แดง"</item>
-    <item msgid="6882970855289978213">"ส้ม"</item>
-    <item msgid="5560732545714984533">"เหลือง"</item>
-    <item msgid="7246284817845434226">"เขียว"</item>
-    <item msgid="6762906417604676001">"น้ำเงิน"</item>
-    <item msgid="8974135109557664892">"น้ำเงินอมม่วง"</item>
-    <item msgid="786643557830463422">"ม่วงอมน้ำเงิน"</item>
-    <item msgid="6835537356703747621">"เทา"</item>
-    <item msgid="2470141365136884119">"น้ำเงินอมเขียว"</item>
-  </string-array>
-</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 1f790b0..e0065dc 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"นาฬิกาที่กำหนดเอง"</string>
     <string name="clock_description" msgid="3563839327378948">"เลือกนาฬิกาที่กำหนดเอง"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"เปลี่ยนนาฬิกาที่กำหนดเอง"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"ตั้งค่านาฬิกา"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"ตัวเลือกหน้าปัดนาฬิกา <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"สีและขนาดนาฬิกา"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"สีและขนาดนาฬิกา"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"สี"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ทางลัดทางซ้าย"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ทางลัดทางขวา"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"ไม่มี"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"หากต้องการเลือก \"<xliff:g id="APPNAME">%1$s</xliff:g>\" โปรดตรวจสอบรายการต่อไปนี้"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"เพิ่มทางลัดไม่ได้"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"เปิด <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"หากต้องการเพิ่มแอป <xliff:g id="APPNAME">%1$s</xliff:g> เป็นทางลัด โปรดตรวจสอบดังต่อไปนี้"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"เสร็จสิ้น"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ทางลัด"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ไม่มี"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"การแจ้งเตือน"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"แสดงการแจ้งเตือนบนหน้าจอล็อก"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ซ่อนการแจ้งเตือนบนหน้าจอล็อก"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"ตัวเลือกเพิ่มเติม"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"ข้อความบนหน้าจอล็อก \"กำลังเล่น\" และอื่นๆ"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"ตัวเลือกหน้าจอล็อกเพิ่มเติม"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"ความเป็นส่วนตัว ฟีเจอร์ \"กำลังเล่น\" และอื่นๆ"</string>
     <string name="more_colors" msgid="3191071655353004591">"สีเพิ่มเติม"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ธีมหลักแบบไดนามิก"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ธีมหลักแบบใช้สีโทนกลาง"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ธีมหลักแบบสีสันสดใส"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ธีมหลักแบบชัดเจน"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"ตัวเลือกสีเริ่มต้น"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"ตัวเลือกสี <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-tl/clock_colors.xml b/res/values-tl/clock_colors.xml
deleted file mode 100644
index 6c26409..0000000
--- a/res/values-tl/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"PULA"</item>
-    <item msgid="6882970855289978213">"ORANGE"</item>
-    <item msgid="5560732545714984533">"DILAW"</item>
-    <item msgid="7246284817845434226">"BERDE"</item>
-    <item msgid="6762906417604676001">"ASUL"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"VIOLET"</item>
-    <item msgid="6835537356703747621">"GRAY"</item>
-    <item msgid="2470141365136884119">"TEAL"</item>
-  </string-array>
-</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 2d901a8..efef868 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Custom na Orasan"</string>
     <string name="clock_description" msgid="3563839327378948">"Pumili ng custom na orasan"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Magbago ng custom na orasan"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Clock Settings"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Opsyon sa clock face <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Kulay, laki ng clock"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Kulay, laki ng clock"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Kulay"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Kaliwang shortcut"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Kanang shortcut"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Wala"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Para piliin ang `<xliff:g id="APPNAME">%1$s</xliff:g>,` tingnan ang sumusunod"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Hindi maidagdag ang shortcut"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Buksan ang <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Para idagdag ang <xliff:g id="APPNAME">%1$s</xliff:g> app bilang shortcut, tiyaking"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Tapos na"</string>
@@ -124,12 +125,18 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Mga Shortcut"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Wala"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Mga Notification"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Ipakita ang mga notification sa lock screen"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Itago ang mga notification sa lock screen"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Higit pang opsyon"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Text sa lock screen, Nagpi-play Ngayon, at higit pa"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Higit pang opsyon sa lock screen"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Nagpe-play Ngayon, at higit pa"</string>
     <string name="more_colors" msgid="3191071655353004591">"Higit Pang Kulay"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Pangunahing dynamic na tema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Pangunahing neutral na tema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Pangunahing matingkad na tema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Pangunahing expressive na tema"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Default na opsyon sa kulay"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Opsyon sa kulay na <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Mag-swipe pakaliwa para pumili ng ibang clock face"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Mag-swipe pakanan para pumili ng ibang clock face"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Mga Custom na Orasan"</string>
 </resources>
diff --git a/res/values-tr/clock_colors.xml b/res/values-tr/clock_colors.xml
deleted file mode 100644
index 45c8118..0000000
--- a/res/values-tr/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"KIRMIZI"</item>
-    <item msgid="6882970855289978213">"TURUNCU"</item>
-    <item msgid="5560732545714984533">"SARI"</item>
-    <item msgid="7246284817845434226">"YEŞİL"</item>
-    <item msgid="6762906417604676001">"MAVİ"</item>
-    <item msgid="8974135109557664892">"ÇİVİT MAVİSİ"</item>
-    <item msgid="786643557830463422">"MOR"</item>
-    <item msgid="6835537356703747621">"GRİ"</item>
-    <item msgid="2470141365136884119">"TURKUAZ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index df31ed1..b4f2a3e 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Özel Saat"</string>
     <string name="clock_description" msgid="3563839327378948">"Özel saat seçin"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Özel saati değiştirin"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Saat Ayarları"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Kadran seçeneği <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Saat rengi ve boyutu"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Saat rengi ve boyutu"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Renk"</string>
@@ -34,7 +35,7 @@
     <string name="clock_color_indigo" msgid="8910855386698452917">"Çivit mavisi"</string>
     <string name="clock_color_violet" msgid="3454503847169375826">"Mor"</string>
     <string name="clock_color_gray" msgid="9221530636948859231">"Gri"</string>
-    <string name="clock_color_teal" msgid="7499223425741344251">"Deniz mavisi"</string>
+    <string name="clock_color_teal" msgid="7499223425741344251">"Turkuaz"</string>
     <string name="clock_size" msgid="5028923902364418263">"Boyut"</string>
     <string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamik"</string>
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Saat boyutu, kilit ekranındaki içeriklere göre değişir"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Sol kısayol"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Sağ kısayol"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Yok"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"\"<xliff:g id="APPNAME">%1$s</xliff:g>\" uygulamasını seçmek için şunları kontrol edin"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Kısayol eklenemiyor"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> uygulamasını aç"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> uygulamasını kısayol olarak ekleyebilmeniz için gerekenler"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Bitti"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Kısayollar"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Yok"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Bildirimler"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Kilit ekranında bildirimleri göster"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Kilit ekranında bildirimleri gizle"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Diğer seçenekler"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Kilit ekranındaki metin, Ne Çalıyor? ve daha fazlası"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Diğer kilit ekranı seçenekleri"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Gizlilik, Ne Çalıyor? ve daha fazlası"</string>
     <string name="more_colors" msgid="3191071655353004591">"Diğer Renkler"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Birincil dinamik tema"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Birincil nötr tema"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Birincil canlı tema"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Birincil ifade teması"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Varsayılan renk seçeneği"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g> renk seçeneği"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-uk/clock_colors.xml b/res/values-uk/clock_colors.xml
deleted file mode 100644
index aaa3b71..0000000
--- a/res/values-uk/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ЧЕРВОНИЙ"</item>
-    <item msgid="6882970855289978213">"ОРАНЖЕВИЙ"</item>
-    <item msgid="5560732545714984533">"ЖОВТИЙ"</item>
-    <item msgid="7246284817845434226">"ЗЕЛЕНИЙ"</item>
-    <item msgid="6762906417604676001">"СИНІЙ"</item>
-    <item msgid="8974135109557664892">"ІНДИГО"</item>
-    <item msgid="786643557830463422">"ФІОЛЕТОВИЙ"</item>
-    <item msgid="6835537356703747621">"СІРИЙ"</item>
-    <item msgid="2470141365136884119">"БІРЮЗОВИЙ"</item>
-  </string-array>
-</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index e043eb8..7b67bcb 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Свій циферблат"</string>
     <string name="clock_description" msgid="3563839327378948">"Виберіть свій циферблат"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Змініть свій циферблат"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Налаштування"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Варіант циферблата: \"<xliff:g id="ID_1">%1$s</xliff:g>\""</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Колір і розмір год."</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Колір і розмір годинника"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Колір"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Ярлик ліворуч"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Ярлик праворуч"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Немає"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Щоб вибрати додаток <xliff:g id="APPNAME">%1$s</xliff:g>, виконайте наведені нижче дії"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Не вдається додати ярлик"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Відкрити <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Щоб додати можливість швидкого ввімкнення додатка <xliff:g id="APPNAME">%1$s</xliff:g>, переконайтеся, що виконано вимоги нижче."</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Готово"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Ярлики"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Немає"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Сповіщення"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Показувати сповіщення на заблокованому екрані"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Приховувати сповіщення на заблокованому екрані"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Інші опції"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Текст на заблокованому екрані, функція \"Зараз грає\" тощо"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Інші параметри заблоков. екрана"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Конфіденційність, функція \"Зараз грає\" тощо"</string>
     <string name="more_colors" msgid="3191071655353004591">"Більше кольорів"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Динамічна основна тема"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Нейтральна основна тема"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Насичена основна тема"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Виразна основна тема"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Колір за умовчанням"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Колір \"<xliff:g id="ID_1">%1$d</xliff:g>\""</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-ur/clock_colors.xml b/res/values-ur/clock_colors.xml
deleted file mode 100644
index 2203d92..0000000
--- a/res/values-ur/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"سرخ"</item>
-    <item msgid="6882970855289978213">"نارنجی"</item>
-    <item msgid="5560732545714984533">"زرد"</item>
-    <item msgid="7246284817845434226">"سبز"</item>
-    <item msgid="6762906417604676001">"نیلا"</item>
-    <item msgid="8974135109557664892">"گہرا نیلا"</item>
-    <item msgid="786643557830463422">"بیگنی"</item>
-    <item msgid="6835537356703747621">"خاکستری"</item>
-    <item msgid="2470141365136884119">"نیلگوں سبز"</item>
-  </string-array>
-</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 211a016..5dd3914 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"حسب ضرورت گھڑی"</string>
     <string name="clock_description" msgid="3563839327378948">"حسب ضرورت گھڑی چنیں"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"حسب ضرورت گھڑی کو تبدیل کریں"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"گھڑی کی ترتیبات"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"گھڑی کے رخ کا اختیار <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"گھڑی کا رنگ و سائز"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"گھڑی کا رنگ اور سائز"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>، <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"رنگ"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"دائیں جانب کا شارٹ کٹ"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"بائیں جانب کا شارٹ کٹ"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"کوئی نہیں"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` کو منتخب کرنے کے لیے درج ذیل کو چیک کریں"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"شارٹ کٹ شامل نہیں کیا جا سکتا"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> کھولیں"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> ایپ کو شارٹ کٹ کے طور پر شامل کرنے کے لیے درج ذیل کو یقینی بنائیں"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ہو گیا"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"شارٹ کٹس"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>، <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"کوئی نہیں"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"اطلاعات"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"مقفل اسکرین پر اطلاعات دکھائیں"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"مقفل اسکرین پر اطلاعات چھپائیں"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"مزید اختیارات"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"لاک اسکرین پر ٹیکسٹ، ابھی Now Playing اور مزید"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"مقفل اسکرین کے مزید اختیارات"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"رازداری، Now Playing اور مزید"</string>
     <string name="more_colors" msgid="3191071655353004591">"مزید رنگ"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"بنیادی ڈائنیمک تھیم"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"بنیادی نیوٹرل تھیم"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"بنیادی وائبرنٹ تھیم"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"بنیادی معنی خیز تھیم"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"رنگ کا ڈیفالٹ اختیار"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g> رنگ کا اختیار"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-uz/clock_colors.xml b/res/values-uz/clock_colors.xml
deleted file mode 100644
index 737d2bd..0000000
--- a/res/values-uz/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"QIZIL"</item>
-    <item msgid="6882970855289978213">"TOʻQ SARIQ"</item>
-    <item msgid="5560732545714984533">"SARIQ"</item>
-    <item msgid="7246284817845434226">"YASHIL"</item>
-    <item msgid="6762906417604676001">"KOʻK"</item>
-    <item msgid="8974135109557664892">"INDIGO"</item>
-    <item msgid="786643557830463422">"BINAFSHARANG"</item>
-    <item msgid="6835537356703747621">"KULRANG"</item>
-    <item msgid="2470141365136884119">"MOVIY"</item>
-  </string-array>
-</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index ac0d71e..903aeee 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Maxsus soat"</string>
     <string name="clock_description" msgid="3563839327378948">"Maxsus soat tanlash"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Maxsus soatni almashtirish"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Soat sozlamalari"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Soat yuzi varianti: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Soat rangi va hajmi"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Soat rangi va hajmi"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Rang"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Chap yorliq"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Oʻng yorliq"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Hech biri"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"“<xliff:g id="APPNAME">%1$s</xliff:g>” ilovasini tanlash uchun quyidagilarni bajaring:"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Yorliq kiritilmadi"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Ochish: <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> ilovasini yorliq sifatida qoʻshish uchun"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Tayyor"</string>
@@ -124,12 +125,18 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Tezkor tugmalar"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Hech qanday"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Bildirishnomalar"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Ekran qulfida bildirishnomalarni chiqarish"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ekran qulfida bildirishnomalarni berkitish"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Boshqa parametrlar"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Ekran qulfidagi matn, Bu qaysi musiqa va boshqalar"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Boshqa ekran qulfi sozlamalari"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Maxfiylik, Bu qaysi musiqa va boshqalar"</string>
     <string name="more_colors" msgid="3191071655353004591">"Boshqa ranglar"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Asosiy dinamik mavzu"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Asosiy neytral mavzu"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Asosiy yorqin mavzu"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Asosiy ifodali mavzu"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Asosiy rang varianti"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g> rangi varianti"</string>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Boshqa soat yuzini tanlash uhcun chapga suring"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Boshqa soat yuzini tanlash uhcun oʻngga suring"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Maxsus soatlar"</string>
 </resources>
diff --git a/res/values-vi/clock_colors.xml b/res/values-vi/clock_colors.xml
deleted file mode 100644
index 5ef97c5..0000000
--- a/res/values-vi/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"ĐỎ"</item>
-    <item msgid="6882970855289978213">"CAM"</item>
-    <item msgid="5560732545714984533">"VÀNG"</item>
-    <item msgid="7246284817845434226">"XANH LỤC"</item>
-    <item msgid="6762906417604676001">"XANH LAM"</item>
-    <item msgid="8974135109557664892">"CHÀM"</item>
-    <item msgid="786643557830463422">"TÍM"</item>
-    <item msgid="6835537356703747621">"XÁM"</item>
-    <item msgid="2470141365136884119">"XANH MÒNG KÉT"</item>
-  </string-array>
-</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 88ffe44..dff4d00 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Đồng hồ tuỳ chỉnh"</string>
     <string name="clock_description" msgid="3563839327378948">"Chọn đồng hồ tuỳ chỉnh"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Thay đổi đồng hồ tuỳ chỉnh"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Cài đặt đồng hồ"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Lựa chọn về mặt đồng hồ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Màu và kích thước đồng hồ"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Màu và kích thước đồng hồ"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Màu"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Lối tắt bên trái"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Lối tắt bên phải"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Không có"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Để chọn \"<xliff:g id="APPNAME">%1$s</xliff:g>\", hãy làm theo hướng dẫn sau đây"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Không thêm được lối tắt"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Mở <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Để tạo lối tắt cho ứng dụng <xliff:g id="APPNAME">%1$s</xliff:g>, hãy đảm bảo"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Xong"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Lối tắt"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Không có"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Thông báo"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Hiển thị thông báo trên màn hình khoá"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ẩn thông báo trên màn hình khoá"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Tuỳ chọn khác"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Văn bản trên màn hình khoá, Phát hiện nhạc, v.v."</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Tuỳ chọn khác trên màn hình khoá"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Quyền riêng tư, Phát hiện nhạc, v.v."</string>
     <string name="more_colors" msgid="3191071655353004591">"Màu khác"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Giao diện động chính"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Giao diện trung tính chính"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Giao diện rực rỡ chính"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Giao diện biểu đạt chính"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Tuỳ chọn màu mặc định"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Tuỳ chọn màu <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-w400dp/dimens.xml b/res/values-w400dp/dimens.xml
new file mode 100644
index 0000000..e546787
--- /dev/null
+++ b/res/values-w400dp/dimens.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2023 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>
+    <!-- Clock carousel dimens -->
+    <dimen name="clock_carousel_item_card_width">114dp</dimen>
+    <dimen name="clock_carousel_item_card_height">124dp</dimen>
+    <dimen name="clock_carousel_guideline_margin">130dp</dimen>
+</resources>
diff --git a/res/values-w500dp/dimens.xml b/res/values-w500dp/dimens.xml
new file mode 100644
index 0000000..6d9476a
--- /dev/null
+++ b/res/values-w500dp/dimens.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2023 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>
+    <!-- Clock carousel dimens -->
+    <dimen name="clock_carousel_item_card_width">114dp</dimen>
+    <dimen name="clock_carousel_item_card_height">124dp</dimen>
+    <dimen name="clock_carousel_guideline_margin">180dp</dimen>
+</resources>
diff --git a/res/values-w600dp/dimens.xml b/res/values-w600dp/dimens.xml
new file mode 100644
index 0000000..f9ed41b
--- /dev/null
+++ b/res/values-w600dp/dimens.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2023 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>
+    <dimen name="clock_carousel_item_width">607dp</dimen>
+
+    <!-- Clock carousel dimens -->
+    <dimen name="clock_carousel_item_card_width">114dp</dimen>
+    <dimen name="clock_carousel_item_card_height">124dp</dimen>
+    <dimen name="clock_carousel_guideline_margin">220dp</dimen>
+</resources>
diff --git a/res/values-w700dp/dimens.xml b/res/values-w700dp/dimens.xml
new file mode 100644
index 0000000..3e3fa01
--- /dev/null
+++ b/res/values-w700dp/dimens.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2023 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>
+    <!-- Clock carousel dimens -->
+    <dimen name="clock_carousel_item_card_width">114dp</dimen>
+    <dimen name="clock_carousel_item_card_height">124dp</dimen>
+    <dimen name="clock_carousel_guideline_margin">240dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/res/values-w800dp/dimens.xml b/res/values-w800dp/dimens.xml
index 6ba900e..d5032b6 100644
--- a/res/values-w800dp/dimens.xml
+++ b/res/values-w800dp/dimens.xml
@@ -18,4 +18,9 @@
     <!-- Dimensions for the customization option tiles -->
     <dimen name="option_tile_width">87dp</dimen>
     <dimen name="option_tile_linear_padding_horizontal">8dp</dimen>
+
+    <!-- Clock carousel dimens -->
+    <dimen name="clock_carousel_item_card_width">114dp</dimen>
+    <dimen name="clock_carousel_item_card_height">124dp</dimen>
+    <dimen name="clock_carousel_guideline_margin">320dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/res/values-zh-rCN/clock_colors.xml b/res/values-zh-rCN/clock_colors.xml
deleted file mode 100644
index e3c68c0..0000000
--- a/res/values-zh-rCN/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"红色"</item>
-    <item msgid="6882970855289978213">"橙色"</item>
-    <item msgid="5560732545714984533">"黄色"</item>
-    <item msgid="7246284817845434226">"绿色"</item>
-    <item msgid="6762906417604676001">"蓝色"</item>
-    <item msgid="8974135109557664892">"靛蓝色"</item>
-    <item msgid="786643557830463422">"紫罗兰色"</item>
-    <item msgid="6835537356703747621">"灰色"</item>
-    <item msgid="2470141365136884119">"蓝绿色"</item>
-  </string-array>
-</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 6057cb4..c29567c 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"自定义钟面"</string>
     <string name="clock_description" msgid="3563839327378948">"选择自定义钟面"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"更改自定义钟面"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"表盘设置"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"表盘选项 <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"时钟颜色和尺寸"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"时钟颜色和尺寸"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>、<xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"颜色"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"左侧快捷方式"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"右侧快捷方式"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"无"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"若要选择“<xliff:g id="APPNAME">%1$s</xliff:g>”，请确认满足已以下条件："</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"无法添加快捷方式"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"打开<xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"若要将<xliff:g id="APPNAME">%1$s</xliff:g>应用添加为快捷方式，请确保："</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"完成"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"快捷方式"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>、<xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"无"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"通知"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"在锁定的屏幕上显示通知"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"在锁定的屏幕上不显示通知"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"更多选项"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"在锁定屏幕上添加文字、闻曲知音和其他设置"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"更多锁屏选项"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"隐私设置、闻曲知音等"</string>
     <string name="more_colors" msgid="3191071655353004591">"更多颜色"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"主要动态主题"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"主要中性主题"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"主要鲜艳主题"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"主要炫彩主题"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"默认颜色选项"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"颜色选项 <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rHK/clock_colors.xml b/res/values-zh-rHK/clock_colors.xml
deleted file mode 100644
index 2861c3b..0000000
--- a/res/values-zh-rHK/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"紅色"</item>
-    <item msgid="6882970855289978213">"橙色"</item>
-    <item msgid="5560732545714984533">"黃色"</item>
-    <item msgid="7246284817845434226">"綠色"</item>
-    <item msgid="6762906417604676001">"藍色"</item>
-    <item msgid="8974135109557664892">"靛藍色"</item>
-    <item msgid="786643557830463422">"紫羅蘭色"</item>
-    <item msgid="6835537356703747621">"灰色"</item>
-    <item msgid="2470141365136884119">"藍綠色"</item>
-  </string-array>
-</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 54f5a16..8d0a8f0 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"自訂時鐘"</string>
     <string name="clock_description" msgid="3563839327378948">"揀選自訂時鐘"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"變更自訂時鐘"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"時鐘設定"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"錶面選項 <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"時鐘顏色及大小"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"時鐘顏色及大小"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>，<xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"顏色"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"向左捷徑"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"向右捷徑"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"無"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"請勾選以下選項以選取「<xliff:g id="APPNAME">%1$s</xliff:g>」"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"無法新增捷徑"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"開啟「<xliff:g id="APPNAME">%1$s</xliff:g>」"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"如要新增「<xliff:g id="APPNAME">%1$s</xliff:g>」應用程式為快速鍵，請確保："</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"完成"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"捷徑"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>，<xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"無"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"通知"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"在上鎖畫面顯示通知"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"在上鎖畫面隱藏通知"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"更多選項"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"在上鎖畫面發短訊、使用「歌曲識別」功能等"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"更多上鎖畫面選項"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"私隱、歌曲識別和其他設定"</string>
     <string name="more_colors" msgid="3191071655353004591">"更多顏色"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"動態主要主題"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"中性主要主題"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"鮮艷主要主題"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"熱情主要主題"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"預設顏色選項"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"顏色選項：<xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rTW/clock_colors.xml b/res/values-zh-rTW/clock_colors.xml
deleted file mode 100644
index 596109b..0000000
--- a/res/values-zh-rTW/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"紅色"</item>
-    <item msgid="6882970855289978213">"橘色"</item>
-    <item msgid="5560732545714984533">"黃色"</item>
-    <item msgid="7246284817845434226">"綠色"</item>
-    <item msgid="6762906417604676001">"藍色"</item>
-    <item msgid="8974135109557664892">"靛藍色"</item>
-    <item msgid="786643557830463422">"紫羅蘭色"</item>
-    <item msgid="6835537356703747621">"灰色"</item>
-    <item msgid="2470141365136884119">"藍綠色"</item>
-  </string-array>
-</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 6708c5d..8859ae8 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"自訂時鐘"</string>
     <string name="clock_description" msgid="3563839327378948">"選擇自訂時鐘"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"變更自訂時鐘"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"時鐘設定"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"錶面選項 <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"時鐘顏色與大小"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"時鐘顏色與大小"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_2">%2$s</xliff:g>，<xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"顏色"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"左側捷徑"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"右側捷徑"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"無"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"必須完成以下事項才能選取「<xliff:g id="APPNAME">%1$s</xliff:g>」"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"無法新增捷徑"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"開啟「<xliff:g id="APPNAME">%1$s</xliff:g>」"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"如要將「<xliff:g id="APPNAME">%1$s</xliff:g>」應用程式新增為捷徑，必須滿足以下條件"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"完成"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"捷徑"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>、<xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"無"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"通知"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"在螢幕鎖定畫面上顯示通知"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"在螢幕鎖定畫面上隱藏通知"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"更多選項"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"「在螢幕鎖定畫面上顯示特定文字」、「聽聲辨曲」和其他設定"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"更多螢幕鎖定選項"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"隱私權、聽聲辨曲和其他設定"</string>
     <string name="more_colors" msgid="3191071655353004591">"更多顏色"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"主要動態主題"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"主要自然主題"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"主要鮮豔主題"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"主要表現主題"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"預設顏色選項"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"顏色選項 <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values-zu/clock_colors.xml b/res/values-zu/clock_colors.xml
deleted file mode 100644
index f33ef25..0000000
--- a/res/values-zu/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-     Copyright (C) 2023 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-array name="clock_color_ids">
-    <item msgid="4948142733161826319">"OKUBOMVU"</item>
-    <item msgid="6882970855289978213">"OKUWOLINTSHI"</item>
-    <item msgid="5560732545714984533">"OKUPHUZI"</item>
-    <item msgid="7246284817845434226">"OKULUHLAZA OKOTSHANI"</item>
-    <item msgid="6762906417604676001">"OKULUHLAZA OKWESIBHAKABHAKA"</item>
-    <item msgid="8974135109557664892">"OKU-INDIGO"</item>
-    <item msgid="786643557830463422">"OKU-VIOLET"</item>
-    <item msgid="6835537356703747621">"OKUMPUNGA"</item>
-    <item msgid="2470141365136884119">"OKU-TEAL"</item>
-  </string-array>
-</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index bf3ad3d..e8cbd0c 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -22,7 +22,8 @@
     <string name="clock_title" msgid="1974314575211361352">"Iwashi Elingokomuntu Ngamunye"</string>
     <string name="clock_description" msgid="3563839327378948">"Khetha iwashi elingokomuntu ngamunye"</string>
     <string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Shintsha iwashi elingokomuntu ngamunye"</string>
-    <string name="clock_settings_title" msgid="2940654205471453913">"Amasethingi Ewashi"</string>
+    <string name="select_clock_action_description" msgid="5025888763471843648">"Okukhethwa kukho kobuso bewashi <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="clock_settings_title" msgid="2050906379377120431">"Umbala wewashi nosayizi"</string>
     <string name="clock_color_and_size_title" msgid="7146791234905111351">"Umbala wewashi nosayizi"</string>
     <string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="clock_color" msgid="8081608867289156163">"Umbala"</string>
@@ -116,7 +117,7 @@
     <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Isinqamuleli sangakwesokunxele"</string>
     <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Isinqamuleli sangakwesokudla"</string>
     <string name="keyguard_affordance_none" msgid="1751643933430782312">"Lutho"</string>
-    <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Ukukhetha i-`<xliff:g id="APPNAME">%1$s</xliff:g>` maka okulandelayo"</string>
+    <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Ayikwazi ukwengeza isinqamuleli"</string>
     <string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Vula i-<xliff:g id="APPNAME">%1$s</xliff:g>"</string>
     <string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Ukwengeza i-app ye-<xliff:g id="APPNAME">%1$s</xliff:g> njengesinqamuleli, qinisekisa"</string>
     <string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Kwenziwe"</string>
@@ -124,12 +125,21 @@
     <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Izinqamuleli"</string>
     <string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
     <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Lutho"</string>
-    <string name="notifications_section_title" msgid="4283049750376871538">"Izaziso"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Bonisa izaziso esikrinini sokukhiya"</string>
     <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Fihla izaziso esikrinini sokukhiya"</string>
-    <string name="more_settings_section_title" msgid="8524741850115625404">"Okunye ongakhetha kukho"</string>
-    <string name="more_settings_section_description" msgid="8787768566854880683">"Umbhalo esikrinini sokukhiya, Okudlala Manje, nokuningi"</string>
+    <string name="more_settings_section_title" msgid="1331425454775815958">"Okukhethwa kukho kokukhiya isikrini okuningi"</string>
+    <string name="more_settings_section_description" msgid="1860115709122398325">"Ubumfihlo, Okudlala Manje, nokuningi"</string>
     <string name="more_colors" msgid="3191071655353004591">"Imibala Eyengeziwe"</string>
+    <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Itimu eshintshayo eyinhloko"</string>
+    <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Itimu emaphakathi eyinhloko"</string>
+    <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Itimu edlidlizayo eyinhloko"</string>
+    <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Itimu ebizayo eyinhloko"</string>
     <string name="content_description_default_color_option" msgid="7011899327541080695">"Okukhethwa kukho kombala okuzenzakalelayo"</string>
     <string name="content_description_color_option" msgid="4169813692012119578">"Okukhethwa kukho kombala kwe-<xliff:g id="ID_1">%1$d</xliff:g>"</string>
+    <!-- no translation found for scroll_forward_and_select (6156132388656395769) -->
+    <skip />
+    <!-- no translation found for scroll_backward_and_select (5472202348434803757) -->
+    <skip />
+    <!-- no translation found for custom_clocks_label (8168419717593569347) -->
+    <skip />
 </resources>
diff --git a/res/values/clock_colors.xml b/res/values/clock_colors.xml
index 1539a92..465f0a0 100644
--- a/res/values/clock_colors.xml
+++ b/res/values/clock_colors.xml
@@ -15,7 +15,8 @@
      limitations under the License.
 -->
 <resources>
-    <string-array name="clock_color_ids">
+    <string-array translatable="false" name="clock_color_ids">
+        <item>GRAY</item>
         <item>RED</item>
         <item>ORANGE</item>
         <item>YELLOW</item>
@@ -23,10 +24,10 @@
         <item>BLUE</item>
         <item>INDIGO</item>
         <item>VIOLET</item>
-        <item>GRAY</item>
         <item>TEAL</item>
     </string-array>
     <array name="clock_color_names">
+        <item>@string/clock_color_gray</item>
         <item>@string/clock_color_red</item>
         <item>@string/clock_color_orange</item>
         <item>@string/clock_color_yellow</item>
@@ -34,10 +35,10 @@
         <item>@string/clock_color_blue</item>
         <item>@string/clock_color_indigo</item>
         <item>@string/clock_color_violet</item>
-        <item>@string/clock_color_gray</item>
         <item>@string/clock_color_teal</item>
     </array>
     <array name="clock_colors">
+        <item>#B9B9B9</item>
         <item>#FFA3A7</item>
         <item>#F7AC69</item>
         <item>#FFC951</item>
@@ -45,10 +46,10 @@
         <item>#8EC8FF</item>
         <item>#B9AAFF</item>
         <item>#F6A2FF</item>
-        <item>#B9B9B9</item>
         <item>#40D9CF</item>
     </array>
     <array name="clock_color_tone_min">
+        <item>0</item>
         <item>20</item>
         <item>20</item>
         <item>50</item>
@@ -56,10 +57,10 @@
         <item>20</item>
         <item>10</item>
         <item>20</item>
-        <item>0</item>
         <item>20</item>
     </array>
     <array name="clock_color_tone_max">
+        <item>100</item>
         <item>95</item>
         <item>95</item>
         <item>95</item>
@@ -67,7 +68,6 @@
         <item>95</item>
         <item>95</item>
         <item>97</item>
-        <item>100</item>
         <item>99</item>
     </array>
 </resources>
\ No newline at end of file
diff --git a/res/values/config.xml b/res/values/config.xml
index d992bf3..ad81e67 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -19,4 +19,8 @@
     <item type="id" name="option_tile" />
     <!-- ID for the label of an option tile -->
     <item type="id" name="option_label" />
+
+    <!-- ID for the a11y actions on carousel -->
+    <item type="id" name="action_scroll_forward" />
+    <item type="id" name="action_scroll_backward" />
 </resources>
\ No newline at end of file
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 0d5a9a8..a3e0d4a 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -33,7 +33,7 @@
     <dimen name="options_container_width">0dp</dimen>
     <dimen name="option_bottom_margin">8dp</dimen>
     <dimen name="option_padding_horizontal">2dp</dimen>
-    <dimen name="option_tile_width">82dp</dimen>
+    <dimen name="option_tile_width">80dp</dimen>
     <dimen name="option_tile_radius">20dp</dimen>
     <dimen name="option_tile_margin_horizontal">6dp</dimen>
     <dimen name="option_tile_padding_vertical">12dp</dimen>
@@ -157,11 +157,27 @@
     <dimen name="keyguard_quick_affordance_icon_size">24dp</dimen>
 
     <dimen name="clock_carousel_item_width">190dp</dimen>
-    <dimen name="clock_carousel_item_height">380dp</dimen>
     <dimen name="clock_carousel_item_margin">16dp</dimen>
-    <dimen name="clock_carousel_guideline_margin">140dp</dimen>
-    <!-- Scale of the carousel items that are not selected and at the side -->
-    <dimen name="clock_carousel_scale" format="float">0.5</dimen>
-    <!-- Alpha of the carousel items that are not selected and at the side -->
-    <dimen name="clock_carousel_alpha" format="float">0.4</dimen>
+    <dimen name="clock_carousel_guideline_margin">100dp</dimen>
+    <dimen name="clock_carousel_item_card_width">100dp</dimen>
+    <dimen name="clock_carousel_item_card_height">108dp</dimen>
+    <dimen name="clock_carousel_guideline_margin_for_2_pane_small_width">122dp</dimen>
+
+    <!-- Clock color and size button -->
+    <dimen name="clock_color_size_button_min_height">32dp</dimen>
+    <dimen name="clock_color_size_button_horizontal_padding">12dp</dimen>
+    <dimen name="clock_color_size_button_vertical_padding">6dp</dimen>
+    <dimen name="clock_color_size_button_corner_radius">16dp</dimen>
+    <dimen name="clock_color_size_button_icon_size">20dp</dimen>
+    <dimen name="clock_color_size_button_icon_margin_end">12dp</dimen>
+
+    <!--
+    Dimension for clock translationY when swiping clock carousel in picker,
+    copied from sysui resources
+    -->
+    <dimen name="keyguard_large_clock_top_margin">-60dp</dimen>
+    <!-- Dimension for the clock view, copied from sysui resources. -->
+    <dimen name="small_clock_height">114dp</dimen>
+    <dimen name="small_clock_padding_top">28dp</dimen>
+    <dimen name="clock_padding_start">28dp</dimen>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 01113c4..680947d 100755
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -33,8 +33,11 @@
     <!-- The content description of clock entry. [CHAR LIMIT=NONE] -->
     <string name="clock_picker_entry_content_description">Change a custom clock</string>
 
+    <!-- action description for announcing selected Clock [CHAR LIMIT=NONE]-->
+    <string name="select_clock_action_description">Clock face option <xliff:g name="clock_face_description">%1$s</xliff:g></string>
+
     <!-- Title of a section of the customization picker where the user can configure Clock face. [CHAR LIMIT=19] -->
-    <string name="clock_settings_title">Clock Settings</string>
+    <string name="clock_settings_title">Clock color &amp; size</string>
 
     <!-- Title of a section of the customization picker where the user can configure clock color and size. [CHAR LIMIT=20] -->
     <string name="clock_color_and_size_title">Clock color &amp; size</string>
@@ -360,7 +363,7 @@
     enabled. The dialog contains a list of instructions that the user needs to take in order to
     enable the option before it can be selected again. [CHAR LIMIT=NONE].
     -->
-    <string name="keyguard_affordance_enablement_dialog_title">To select `<xliff:g id="appName" example="Wallet">%1$s</xliff:g>` check the following</string>
+    <string name="keyguard_affordance_enablement_dialog_headline">Can\'t add shortcut</string>
 
     <!--
     Template for an action that opens a specific app. [CHAR LIMIT=16]
@@ -412,14 +415,6 @@
     <string name="keyguard_quick_affordance_none_selected">None</string>
 
     <!--
-    Title for a section in a list of sections in the settings app that allows the user to modify
-    how notifications behave whilst the device is locked.
-
-    [CHAR LIMIT=32].
-    -->
-    <string name="notifications_section_title">Notifications</string>
-
-    <!--
     Summary for a setting that lets the user toggle between showing or hiding notifications on their
     device's lock screen. This one is shown when the user is allowing notifications to show on their
     device's lock screen.
@@ -443,7 +438,7 @@
 
     [CHAR LIMIT=32].
     -->
-    <string name="more_settings_section_title">More options</string>
+    <string name="more_settings_section_title">More lock screen options</string>
 
     <!--
     Summary for a setting that lets the user access additional settings related to lock screen
@@ -453,7 +448,7 @@
 
     [CHAR LIMIT=64].
     -->
-    <string name="more_settings_section_description">Text on lock screen, Now Playing, and more</string>
+    <string name="more_settings_section_description">Privacy, Now Playing, and more</string>
 
     <!--
     Label for button that lets the user navigate to a full-screen experience of selecting
@@ -464,6 +459,38 @@
     <string name="more_colors">More Colors</string>
 
     <!--
+    Accessibility string for a button that allows the user to select a color scheme generated from
+    their current wallpaper as the system color. This is shown in a list with other color options.
+
+    [CHAR LIMIT=NONE].
+    -->
+    <string name="content_description_dynamic_color_option">Primary dynamic theme</string>
+
+    <!--
+    Accessibility string for a button that allows the user to select a color scheme generated from
+    their current wallpaper as the system color. This is shown in a list with other color options.
+
+    [CHAR LIMIT=NONE].
+    -->
+    <string name="content_description_neutral_color_option">Primary neutral theme</string>
+
+    <!--
+    Accessibility string for a button that allows the user to select a color scheme generated from
+    their current wallpaper as the system color. This is shown in a list with other color options.
+
+    [CHAR LIMIT=NONE].
+    -->
+    <string name="content_description_vibrant_color_option">Primary vibrant theme</string>
+
+    <!--
+    Accessibility string for a button that allows the user to select a color scheme generated from
+    their current wallpaper as the system color. This is shown in a list with other color options.
+
+    [CHAR LIMIT=NONE].
+    -->
+    <string name="content_description_expressive_color_option">Primary expressive theme</string>
+
+    <!--
     Accessibility string for a button that allows the user to select the default color for their
     lock screen clock on the device. This is shown next to other buttons that allow the user to
     select from a set of custom colors.
@@ -480,4 +507,22 @@
     [CHAR LIMIT=NONE].
     -->
     <string name="content_description_color_option">Color option <xliff:g name="color_number" example="1">%1$d</xliff:g></string>
+
+    <!--
+    Accessibility label for forward scrolling in the carousel of clock faces.
+    [CHAR LIMIT=128].
+    -->
+    <string name="scroll_forward_and_select">Swipe left to choose a different clock face</string>
+
+    <!--
+    Accessibility label for backward scrolling in the carousel of clock faces.
+    [CHAR LIMIT=128].
+    -->
+    <string name="scroll_backward_and_select">Swipe right to choose a different clock face</string>
+
+    <!--
+    Accessibility label for the carousel of clock faces.
+    [CHAR LIMIT=128].
+    -->
+    <string name="custom_clocks_label">Custom Clocks</string>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 3991b65..c70b596 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -47,6 +47,7 @@
         <item name="colorAccent">@color/accent_color</item>
         <item name="colorSurface">@color/design_default_color_surface</item>
         <item name="colorOnSurface">@color/design_default_color_on_surface</item>
+        <item name="android:textAllCaps">false</item>
     </style>
 
     <!-- Snackbar margin -->
@@ -123,7 +124,7 @@
         <item name="android:fontFamily">@*android:string/config_bodyFontFamily</item>
         <item name="android:textColor">?android:textColorSecondary</item>
         <item name="android:textSize">14sp</item>
-        <item name="android:lineHeight">20dp</item>
+        <item name="android:lineHeight">16sp</item>
     </style>
 
     <style name="BetaTagTextStyle" parent="SectionTitleTextStyle">
diff --git a/res/xml/carousel_scene.xml b/res/xml/carousel_scene.xml
index 44fb556..aae3d39 100644
--- a/res/xml/carousel_scene.xml
+++ b/res/xml/carousel_scene.xml
@@ -21,119 +21,143 @@
     <Transition
         motion:constraintSetStart="@id/start"
         motion:constraintSetEnd="@+id/next"
-        motion:duration="1000"
+        motion:duration="200"
         android:id="@+id/forward">
         <OnSwipe
-            motion:dragDirection="dragLeft"
-            motion:touchAnchorSide="left" />
+            motion:dragDirection="dragStart"
+            motion:touchAnchorSide="start"
+            motion:maxVelocity="10"
+            motion:maxAcceleration="100"/>
     </Transition>
 
     <Transition
         motion:constraintSetStart="@+id/start"
         motion:constraintSetEnd="@+id/previous"
+        motion:duration="200"
         android:id="@+id/backward">
         <OnSwipe
-            motion:dragDirection="dragRight"
-            motion:touchAnchorSide="right" />
+            motion:dragDirection="dragEnd"
+            motion:touchAnchorSide="end"
+            motion:maxVelocity="10"
+            motion:maxAcceleration="100" />
     </Transition>
 
     <ConstraintSet android:id="@+id/previous">
         <Constraint
             android:id="@+id/item_view_0"
-            android:layout_width="@dimen/clock_carousel_item_width"
-            android:layout_height="@dimen/clock_carousel_item_height"
-            android:scaleX="@dimen/clock_carousel_scale"
-            android:scaleY="@dimen/clock_carousel_scale"
-            android:alpha="@dimen/clock_carousel_alpha"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
             motion:layout_constraintEnd_toStartOf="@id/guideline_start"
             motion:layout_constraintTop_toTopOf="parent"
             motion:layout_constraintBottom_toBottomOf="parent" />
+
         <Constraint
             android:id="@+id/item_view_1"
-            android:layout_width="@dimen/clock_carousel_item_width"
-            android:layout_height="@dimen/clock_carousel_item_height"
-            motion:layout_constraintWidth_max="@dimen/clock_carousel_item_width"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
+            motion:layout_constraintWidth_max="@dimen/screen_preview_width"
             motion:layout_constraintHorizontal_bias="0.5"
             motion:layout_constraintStart_toStartOf="parent"
             motion:layout_constraintEnd_toEndOf="parent"
             motion:layout_constraintTop_toTopOf="parent"
             motion:layout_constraintBottom_toBottomOf="parent" />
+
         <Constraint
             android:id="@+id/item_view_2"
-            android:layout_width="@dimen/clock_carousel_item_width"
-            android:layout_height="@dimen/clock_carousel_item_height"
-            android:scaleX="@dimen/clock_carousel_scale"
-            android:scaleY="@dimen/clock_carousel_scale"
-            android:alpha="@dimen/clock_carousel_alpha"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
             motion:layout_constraintStart_toStartOf="@id/guideline_end"
             motion:layout_constraintTop_toTopOf="parent"
             motion:layout_constraintBottom_toBottomOf="parent" />
+
+        <Constraint
+            android:id="@+id/item_view_3"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
+            motion:layout_constraintStart_toEndOf="@+id/item_view_2"
+            motion:layout_constraintTop_toTopOf="parent"
+            motion:layout_constraintBottom_toBottomOf="parent" />
     </ConstraintSet>
 
     <ConstraintSet android:id="@+id/start">
         <Constraint
+            android:id="@+id/item_view_0"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
+            motion:layout_constraintEnd_toStartOf="@+id/item_view_1"
+            motion:layout_constraintTop_toTopOf="parent"
+            motion:layout_constraintBottom_toBottomOf="parent" />
+
+        <Constraint
             android:id="@+id/item_view_1"
-            android:layout_width="@dimen/clock_carousel_item_width"
-            android:layout_height="@dimen/clock_carousel_item_height"
-            android:scaleX="@dimen/clock_carousel_scale"
-            android:scaleY="@dimen/clock_carousel_scale"
-            android:alpha="@dimen/clock_carousel_alpha"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
             motion:layout_constraintEnd_toStartOf="@id/guideline_start"
             motion:layout_constraintTop_toTopOf="parent"
             motion:layout_constraintBottom_toBottomOf="parent" />
+
         <Constraint
             android:id="@+id/item_view_2"
-            android:layout_width="@dimen/clock_carousel_item_width"
-            android:layout_height="@dimen/clock_carousel_item_height"
-            motion:layout_constraintWidth_max="@dimen/clock_carousel_item_width"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
+            motion:layout_constraintWidth_max="@dimen/screen_preview_width"
             motion:layout_constraintHorizontal_bias="0.5"
             motion:layout_constraintStart_toStartOf="parent"
             motion:layout_constraintEnd_toEndOf="parent"
             motion:layout_constraintTop_toTopOf="parent"
             motion:layout_constraintBottom_toBottomOf="parent" />
+
         <Constraint
             android:id="@+id/item_view_3"
-            android:layout_width="@dimen/clock_carousel_item_width"
-            android:layout_height="@dimen/clock_carousel_item_height"
-            android:scaleX="@dimen/clock_carousel_scale"
-            android:scaleY="@dimen/clock_carousel_scale"
-            android:alpha="@dimen/clock_carousel_alpha"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
             motion:layout_constraintStart_toStartOf="@id/guideline_end"
             motion:layout_constraintTop_toTopOf="parent"
             motion:layout_constraintBottom_toBottomOf="parent" />
+
+        <Constraint
+            android:id="@+id/item_view_4"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
+            motion:layout_constraintStart_toEndOf="@+id/item_view_3"
+            motion:layout_constraintTop_toTopOf="parent"
+            motion:layout_constraintBottom_toBottomOf="parent" />
     </ConstraintSet>
 
     <ConstraintSet android:id="@+id/next">
         <Constraint
+            android:id="@+id/item_view_1"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
+            motion:layout_constraintEnd_toStartOf="@+id/item_view_2"
+            motion:layout_constraintTop_toTopOf="parent"
+            motion:layout_constraintBottom_toBottomOf="parent" />
+
+        <Constraint
             android:id="@+id/item_view_2"
-            android:layout_width="@dimen/clock_carousel_item_width"
-            android:layout_height="@dimen/clock_carousel_item_height"
-            android:scaleX="@dimen/clock_carousel_scale"
-            android:scaleY="@dimen/clock_carousel_scale"
-            android:alpha="@dimen/clock_carousel_alpha"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
             motion:layout_constraintEnd_toStartOf="@id/guideline_start"
             motion:layout_constraintTop_toTopOf="parent"
             motion:layout_constraintBottom_toBottomOf="parent" />
+
         <Constraint
             android:id="@+id/item_view_3"
-            android:layout_width="@dimen/clock_carousel_item_width"
-            android:layout_height="@dimen/clock_carousel_item_height"
-            motion:layout_constraintWidth_max="@dimen/clock_carousel_item_width"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
+            motion:layout_constraintWidth_max="@dimen/screen_preview_width"
             motion:layout_constraintHorizontal_bias="0.5"
             motion:layout_constraintStart_toStartOf="parent"
             motion:layout_constraintEnd_toEndOf="parent"
             motion:layout_constraintTop_toTopOf="parent"
             motion:layout_constraintBottom_toBottomOf="parent" />
+
         <Constraint
             android:id="@+id/item_view_4"
-            android:layout_width="@dimen/clock_carousel_item_width"
-            android:layout_height="@dimen/clock_carousel_item_height"
-            android:scaleX="@dimen/clock_carousel_scale"
-            android:scaleY="@dimen/clock_carousel_scale"
-            android:alpha="@dimen/clock_carousel_alpha"
+            android:layout_width="@dimen/screen_preview_width"
+            android:layout_height="wrap_content"
             motion:layout_constraintStart_toStartOf="@id/guideline_end"
             motion:layout_constraintTop_toTopOf="parent"
             motion:layout_constraintBottom_toBottomOf="parent" />
     </ConstraintSet>
-
 </MotionScene>
\ No newline at end of file
diff --git a/src/com/android/customization/model/clock/BaseClockManager.java b/src/com/android/customization/model/clock/BaseClockManager.java
deleted file mode 100644
index 3434780..0000000
--- a/src/com/android/customization/model/clock/BaseClockManager.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2019 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.model.clock;
-
-import com.android.customization.model.CustomizationManager;
-
-/**
- * {@link CustomizationManager} for clock faces.
- */
-public abstract class BaseClockManager implements CustomizationManager<Clockface> {
-
-    private final ClockProvider mClockProvider;
-
-    public BaseClockManager(ClockProvider provider) {
-        mClockProvider = provider;
-    }
-
-    @Override
-    public boolean isAvailable() {
-        return mClockProvider.isAvailable();
-    }
-
-    @Override
-    public void apply(Clockface option, Callback callback) {
-        handleApply(option, callback);
-    }
-
-    @Override
-    public void fetchOptions(OptionsFetchedListener<Clockface> callback, boolean reload) {
-        mClockProvider.fetch(callback, false);
-    }
-
-    /** Returns the ID of the current clock face, which may be null for the default clock face. */
-    String getCurrentClock() {
-        return lookUpCurrentClock();
-    }
-
-    /**
-     * Implement to apply the clock picked by the user for {@link BaseClockManager#apply}.
-     *
-     * @param option Clock option, containing ID of the clock, that the user picked.
-     * @param callback Report success and failure.
-     */
-    protected abstract void handleApply(Clockface option, Callback callback);
-
-    /**
-     * Implement to look up the current clock face for {@link BaseClockManager#getCurrentClock()}.
-     *
-     * @return ID of current clock. Can be null for the default clock face.
-     */
-    protected abstract String lookUpCurrentClock();
-}
diff --git a/src/com/android/customization/model/clock/ClockManager.java b/src/com/android/customization/model/clock/ClockManager.java
deleted file mode 100644
index 4e77a49..0000000
--- a/src/com/android/customization/model/clock/ClockManager.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2019 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.model.clock;
-
-import android.content.ContentResolver;
-import android.provider.Settings.Secure;
-import android.text.TextUtils;
-
-import com.android.customization.module.ThemesUserEventLogger;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-/**
- * {@link CustomizationManager} for clock faces that implements apply by writing to secure settings.
- */
-public class ClockManager extends BaseClockManager {
-
-    // TODO: use constant from Settings.Secure
-    static final String CLOCK_FACE_SETTING = "lock_screen_custom_clock_face";
-    private static final String CLOCK_FIELD = "clock";
-    private static final String TIMESTAMP_FIELD = "_applied_timestamp";
-    private final ContentResolver mContentResolver;
-    private final ThemesUserEventLogger mEventLogger;
-
-    public ClockManager(ContentResolver resolver, ClockProvider provider,
-            ThemesUserEventLogger logger) {
-        super(provider);
-        mContentResolver = resolver;
-        mEventLogger = logger;
-    }
-
-    @Override
-    protected void handleApply(Clockface option, Callback callback) {
-        boolean stored;
-        try {
-            final JSONObject json = new JSONObject();
-            json.put(CLOCK_FIELD, option.getId());
-            json.put(TIMESTAMP_FIELD, System.currentTimeMillis());
-            stored = Secure.putString(mContentResolver, CLOCK_FACE_SETTING, json.toString());
-        } catch (JSONException ex) {
-            stored = false;
-        }
-        if (stored) {
-            mEventLogger.logClockApplied(option);
-            callback.onSuccess();
-        } else {
-            callback.onError(null);
-        }
-    }
-
-    @Override
-    protected String lookUpCurrentClock() {
-        final String value = Secure.getString(mContentResolver, CLOCK_FACE_SETTING);
-        if (TextUtils.isEmpty(value)) {
-            return value;
-        }
-        try {
-            final JSONObject json = new JSONObject(value);
-            return json.getString(CLOCK_FIELD);
-        } catch (JSONException ex) {
-            return value;
-        }
-    }
-}
diff --git a/src/com/android/customization/model/clock/ClockProvider.java b/src/com/android/customization/model/clock/ClockProvider.java
deleted file mode 100644
index d9a6779..0000000
--- a/src/com/android/customization/model/clock/ClockProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2019 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.model.clock;
-
-import com.android.customization.model.CustomizationManager.OptionsFetchedListener;
-
-/**
- * Interface for a class that can retrieve Themes from the system.
- */
-public interface ClockProvider {
-    /**
-     * Returns whether clockfaces are available in the current setup.
-     */
-    boolean isAvailable();
-
-    /**
-     * Retrieve the available clockfaces.
-     * @param callback called when the clockfaces have been retrieved (or immediately if cached)
-     * @param reload whether to reload clockfaces if they're cached.
-     */
-    void fetch(OptionsFetchedListener<Clockface> callback, boolean reload);
-}
diff --git a/src/com/android/customization/model/clock/Clockface.java b/src/com/android/customization/model/clock/Clockface.java
deleted file mode 100644
index 9bdcaef..0000000
--- a/src/com/android/customization/model/clock/Clockface.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2019 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.model.clock;
-
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.ImageView;
-
-import com.android.customization.model.CustomizationManager;
-import com.android.customization.model.CustomizationOption;
-import com.android.wallpaper.R;
-import com.android.wallpaper.asset.Asset;
-
-public class Clockface implements CustomizationOption<Clockface> {
-
-    private final String mTitle;
-    private final String mId;
-    private final Asset mPreview;
-    private final Asset mThumbnail;
-
-    private Clockface(String title, String id, Asset preview, Asset thumbnail) {
-        mTitle = title;
-        mId = id;
-        mPreview = preview;
-        mThumbnail = thumbnail;
-    }
-
-    @Override
-    public String getTitle() {
-        return mTitle;
-    }
-
-    @Override
-    public void bindThumbnailTile(View view) {
-        ImageView thumbView = view.findViewById(R.id.clock_option_thumbnail);
-        mThumbnail.loadDrawableWithTransition(thumbView.getContext(), thumbView, 50, null,
-                thumbView.getResources().getColor(android.R.color.transparent, null));
-    }
-
-    @Override
-    public boolean isActive(CustomizationManager<Clockface> manager) {
-        String currentClock = ((BaseClockManager) manager).getCurrentClock();
-        // Empty clock Id is the default system clock
-        return (TextUtils.isEmpty(currentClock) && TextUtils.isEmpty(mId))
-                || (mId != null && mId.equals(currentClock));
-    }
-
-    @Override
-    public int getLayoutResId() {
-        return R.layout.clock_option;
-    }
-
-    public Asset getPreviewAsset() {
-        return mPreview;
-    }
-
-    public String getId() {
-        return mId;
-    }
-
-    public static class Builder {
-        private String mTitle;
-        private String mId;
-        private Asset mPreview;
-        private Asset mThumbnail;
-
-        public Clockface build() {
-            return new Clockface(mTitle, mId, mPreview, mThumbnail);
-        }
-
-        public Builder setTitle(String title) {
-            mTitle = title;
-            return this;
-        }
-
-        public Builder setId(String id) {
-            mId = id;
-            return this;
-        }
-
-        public Builder setPreview(Asset preview) {
-            mPreview = preview;
-            return this;
-        }
-
-        public Builder setThumbnail(Asset thumbnail) {
-            mThumbnail = thumbnail;
-            return this;
-        }
-    }
-}
diff --git a/src/com/android/customization/model/clock/ContentProviderClockProvider.java b/src/com/android/customization/model/clock/ContentProviderClockProvider.java
deleted file mode 100644
index f0df031..0000000
--- a/src/com/android/customization/model/clock/ContentProviderClockProvider.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package com.android.customization.model.clock;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.ProviderInfo;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Handler;
-import android.os.Looper;
-import android.text.TextUtils;
-import android.util.Log;
-
-import com.android.customization.model.CustomizationManager.OptionsFetchedListener;
-import com.android.customization.model.clock.Clockface.Builder;
-import com.android.wallpaper.R;
-import com.android.wallpaper.asset.ContentUriAsset;
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-public class ContentProviderClockProvider implements ClockProvider {
-
-    private static final String TAG = "ContentProviderClockProvider";
-    private static final ExecutorService sExecutorService = Executors.newSingleThreadExecutor();
-    private static final String LIST_OPTIONS = "list_options";
-    private static final String COL_TITLE = "title";
-    private static final String COL_ID = "id";
-    private static final String COL_THUMBNAIL = "thumbnail";
-    private static final String COL_PREVIEW = "preview";
-
-    private final Context mContext;
-    private final ProviderInfo mProviderInfo;
-    private List<Clockface> mClocks;
-    private boolean mClockContentAvailable;
-
-    public ContentProviderClockProvider(Context context) {
-        mContext = context;
-        String providerAuthority = mContext.getString(R.string.clocks_provider_authority);
-        // TODO: check permissions if needed
-        mProviderInfo = TextUtils.isEmpty(providerAuthority) ? null
-                : mContext.getPackageManager().resolveContentProvider(providerAuthority,
-                        PackageManager.MATCH_SYSTEM_ONLY);
-
-        if (TextUtils.isEmpty(mContext.getString(R.string.clocks_stub_package))) {
-            mClockContentAvailable = false;
-        } else {
-            try {
-                ApplicationInfo applicationInfo = mContext.getPackageManager().getApplicationInfo(
-                        mContext.getString(R.string.clocks_stub_package),
-                        PackageManager.MATCH_SYSTEM_ONLY);
-                mClockContentAvailable = applicationInfo != null;
-            } catch (NameNotFoundException e) {
-                mClockContentAvailable = false;
-            }
-        }
-    }
-
-    @Override
-    public boolean isAvailable() {
-        return mProviderInfo != null && mClockContentAvailable
-                && (mClocks == null || !mClocks.isEmpty());
-    }
-
-    @Override
-    public void fetch(OptionsFetchedListener<Clockface> callback, boolean reload) {
-        if (!isAvailable()) {
-            if (callback != null) {
-                callback.onError(null);
-            }
-            return;
-        }
-        if (mClocks != null && !reload) {
-            if (callback != null) {
-                if (!mClocks.isEmpty()) {
-                    callback.onOptionsLoaded(mClocks);
-                } else {
-                    callback.onError(null);
-                }
-            }
-            return;
-        }
-        sExecutorService.submit(() -> {
-            Uri optionsUri = new Uri.Builder()
-                    .scheme(ContentResolver.SCHEME_CONTENT)
-                    .authority(mProviderInfo.authority)
-                    .appendPath(LIST_OPTIONS)
-                    .build();
-
-            ContentResolver resolver = mContext.getContentResolver();
-
-            List<Clockface> clockfaces = new ArrayList<>();
-            try (Cursor c = resolver.query(optionsUri, null, null, null, null)) {
-                while (c != null && c.moveToNext()) {
-                    String id = c.getString(c.getColumnIndex(COL_ID));
-                    String title = c.getString(c.getColumnIndex(COL_TITLE));
-                    String thumbnailUri = c.getString(c.getColumnIndex(COL_THUMBNAIL));
-                    String previewUri = c.getString(c.getColumnIndex(COL_PREVIEW));
-                    Uri thumbnail = Uri.parse(thumbnailUri);
-                    Uri preview = Uri.parse(previewUri);
-
-                    Clockface.Builder builder = new Builder();
-                    builder.setId(id).setTitle(title)
-                            .setThumbnail(new ContentUriAsset(mContext, thumbnail,
-                                    RequestOptions.fitCenterTransform()))
-                            .setPreview(new ContentUriAsset(mContext, preview,
-                                    RequestOptions.fitCenterTransform()));
-                    clockfaces.add(builder.build());
-                }
-                Glide.get(mContext).clearDiskCache();
-            } catch (Exception e) {
-                clockfaces = null;
-                Log.e(TAG, "Failed to query clock face options.", e);
-            }
-            final List<Clockface> clockfaceList = clockfaces;
-            new Handler(Looper.getMainLooper()).post(() -> {
-                mClocks = clockfaceList;
-                if (callback != null) {
-                    if (!mClocks.isEmpty()) {
-                        callback.onOptionsLoaded(mClocks);
-                    } else {
-                        callback.onError(null);
-                    }
-                }
-            });
-        });
-    }
-}
diff --git a/src/com/android/customization/model/clock/custom/ClockCustomManager.java b/src/com/android/customization/model/clock/custom/ClockCustomManager.java
deleted file mode 100644
index 0815a3e..0000000
--- a/src/com/android/customization/model/clock/custom/ClockCustomManager.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.model.clock.custom;
-
-import com.android.customization.model.CustomizationManager;
-
-import com.google.common.collect.Lists;
-
-/**
- * {@link CustomizationManager} for clock faces.
- */
-public class ClockCustomManager implements CustomizationManager<ClockOption> {
-    @Override
-    public boolean isAvailable() {
-        return true;
-    }
-
-    @Override
-    public void apply(ClockOption option, Callback callback) {
-        // TODO(/b241966062) execute applying the clock when user selects a clock
-    }
-
-    @Override
-    public void fetchOptions(OptionsFetchedListener<ClockOption> callback, boolean reload) {
-        // TODO(/b241966062) fetch the real clock metadata from the ClockRegistry
-        callback.onOptionsLoaded(
-                Lists.newArrayList(new ClockOption(), new ClockOption(), new ClockOption(),
-                        new ClockOption(), new ClockOption()));
-    }
-}
diff --git a/src/com/android/customization/model/clock/custom/ClockOption.java b/src/com/android/customization/model/clock/custom/ClockOption.java
deleted file mode 100644
index 5a9f051..0000000
--- a/src/com/android/customization/model/clock/custom/ClockOption.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.model.clock.custom;
-
-import android.view.View;
-
-import com.android.customization.model.CustomizationManager;
-import com.android.customization.model.CustomizationOption;
-import com.android.wallpaper.R;
-
-/**
- * {@link CustomizationOption} for a clock face.
- */
-public class ClockOption implements CustomizationOption<ClockOption> {
-
-    @Override
-    public String getTitle() {
-        // TODO(/b241966062) use the title from the clock metadata
-        return "title";
-    }
-
-    @Override
-    public void bindThumbnailTile(View view) {
-        // TODO(/b241966062) bind the thumbnail
-    }
-
-    @Override
-    public boolean isActive(CustomizationManager<ClockOption> manager) {
-        return false;
-    }
-
-
-    @Override
-    public int getLayoutResId() {
-        return R.layout.clock_option;
-    }
-}
diff --git a/src/com/android/customization/model/color/ColorCustomizationManager.java b/src/com/android/customization/model/color/ColorCustomizationManager.java
index 29f6ba6..790c86f 100644
--- a/src/com/android/customization/model/color/ColorCustomizationManager.java
+++ b/src/com/android/customization/model/color/ColorCustomizationManager.java
@@ -181,7 +181,23 @@
         if (lockWallpaperColors != null && mLockWallpaperColors.equals(mHomeWallpaperColors)) {
             lockWallpaperColors = null;
         }
-        mProvider.fetch(callback, reload, mHomeWallpaperColors, lockWallpaperColors);
+        mProvider.fetch(callback, reload, mHomeWallpaperColors,
+                lockWallpaperColors,  /* shouldUseRevampedUi= */ false);
+    }
+
+    /**
+     * Fetch options function for the customization hub revamped UI
+     *
+     * TODO (b/276417460): refactor to reduce code repetition with the other fetch options function
+     */
+    public void fetchRevampedUIOptions(OptionsFetchedListener<ColorOption> callback,
+            boolean reload) {
+        WallpaperColors lockWallpaperColors = mLockWallpaperColors;
+        if (lockWallpaperColors != null && mLockWallpaperColors.equals(mHomeWallpaperColors)) {
+            lockWallpaperColors = null;
+        }
+        mProvider.fetch(callback, reload, mHomeWallpaperColors,
+                lockWallpaperColors,  /* shouldUseRevampedUi= */ true);
     }
 
     /**
diff --git a/src/com/android/customization/model/color/ColorOptionImpl.kt b/src/com/android/customization/model/color/ColorOptionImpl.kt
new file mode 100644
index 0000000..3273ce2
--- /dev/null
+++ b/src/com/android/customization/model/color/ColorOptionImpl.kt
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2023 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.model.color
+
+import android.content.Context
+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.wallpaper.R
+
+/**
+ * Represents a color option in the revamped UI, it can be used for both wallpaper and preset colors
+ */
+class ColorOptionImpl(
+    title: String?,
+    overlayPackages: Map<String, String?>,
+    isDefault: Boolean,
+    private val source: String?,
+    style: Style,
+    index: Int,
+    private val previewInfo: PreviewInfo,
+    val type: ColorType,
+) : ColorOption(title, overlayPackages, isDefault, style, index) {
+
+    class PreviewInfo(
+        @ColorInt val lightColors: IntArray,
+        @ColorInt val darkColors: IntArray,
+    ) : ColorOption.PreviewInfo {
+        @ColorInt
+        fun resolveColors(darkTheme: Boolean): IntArray {
+            return if (darkTheme) darkColors else lightColors
+        }
+    }
+
+    override fun bindThumbnailTile(view: View?) {
+        // Do nothing. This function will no longer be used in the Revamped UI
+    }
+
+    override fun getLayoutResId(): Int {
+        return R.layout.color_option
+    }
+
+    override fun getPreviewInfo(): PreviewInfo {
+        return previewInfo
+    }
+
+    override fun getContentDescription(context: Context): CharSequence? {
+        return title
+    }
+
+    override fun getSource(): String? {
+        return source
+    }
+
+    class Builder {
+        var title: String? = null
+
+        @ColorInt var lightColors: IntArray = intArrayOf()
+
+        @ColorInt var darkColors: IntArray = intArrayOf()
+
+        @ColorSource var source: String? = null
+        var isDefault = false
+        var style = Style.TONAL_SPOT
+        var index = 0
+        var packages: MutableMap<String, String?> = HashMap()
+        var type = ColorType.WALLPAPER_COLOR
+
+        fun build(): ColorOptionImpl {
+            return ColorOptionImpl(
+                title,
+                packages,
+                isDefault,
+                source,
+                style,
+                index,
+                createPreviewInfo(),
+                type
+            )
+        }
+
+        private fun createPreviewInfo(): PreviewInfo {
+            return PreviewInfo(lightColors, darkColors)
+        }
+
+        fun addOverlayPackage(category: String?, packageName: String?): ColorOptionImpl.Builder {
+            category?.let { packages[category] = packageName }
+            return this
+        }
+    }
+}
diff --git a/src/com/android/customization/model/color/ColorOptionsProvider.java b/src/com/android/customization/model/color/ColorOptionsProvider.java
index 2803c7b..166b4da 100644
--- a/src/com/android/customization/model/color/ColorOptionsProvider.java
+++ b/src/com/android/customization/model/color/ColorOptionsProvider.java
@@ -70,8 +70,12 @@
      * @param homeWallpaperColors to get seed colors from
      * @param lockWallpaperColors WallpaperColors from the lockscreen wallpaper to get seeds from,
      *                            if different than homeWallpaperColors
+     * @param shouldUseRevampedUi fetches color options with new preview mappings for the revamped
+     *                            UI if set to true
      */
     void fetch(OptionsFetchedListener<ColorOption> callback, boolean reload,
             @Nullable WallpaperColors homeWallpaperColors,
-            @Nullable WallpaperColors lockWallpaperColors);
+            @Nullable WallpaperColors lockWallpaperColors,
+            boolean shouldUseRevampedUi
+    );
 }
diff --git a/src/com/android/customization/model/color/ColorProvider.kt b/src/com/android/customization/model/color/ColorProvider.kt
index f91ec6b..63d298d 100644
--- a/src/com/android/customization/model/color/ColorProvider.kt
+++ b/src/com/android/customization/model/color/ColorProvider.kt
@@ -34,11 +34,12 @@
 import com.android.customization.model.color.ColorOptionsProvider.COLOR_SOURCE_HOME
 import com.android.customization.model.color.ColorOptionsProvider.COLOR_SOURCE_LOCK
 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.wallpaper.R
 import com.android.wallpaper.compat.WallpaperManagerCompat
 import com.android.wallpaper.module.InjectorProvider
-import java.util.*
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.SupervisorJob
@@ -48,7 +49,7 @@
 /**
  * Default implementation of {@link ColorOptionsProvider} that reads preset colors from a stub APK.
  */
-class ColorProvider(context: Context, stubPackageName: String) :
+class ColorProvider(private val context: Context, stubPackageName: String) :
     ResourcesApkProvider(context, stubPackageName), ColorOptionsProvider {
 
     companion object {
@@ -67,6 +68,10 @@
             arrayOf(Style.TONAL_SPOT, Style.SPRITZ, Style.VIBRANT, Style.EXPRESSIVE)
         else arrayOf(Style.TONAL_SPOT)
 
+    private val monochromeEnabled =
+        InjectorProvider.getInjector().getFlags().isMonochromaticThemeEnabled(mContext)
+    private var monochromeBundleName: String? = null
+
     private val scope =
         if (mContext is LifecycleOwner) {
             mContext.lifecycleScope
@@ -87,7 +92,8 @@
         callback: OptionsFetchedListener<ColorOption>?,
         reload: Boolean,
         homeWallpaperColors: WallpaperColors?,
-        lockWallpaperColors: WallpaperColors?
+        lockWallpaperColors: WallpaperColors?,
+        shouldUseRevampedUi: Boolean
     ) {
         val wallpaperColorsChanged =
             this.homeWallpaperColors != homeWallpaperColors ||
@@ -100,10 +106,14 @@
             scope.launch {
                 try {
                     if (colorBundles == null || reload) {
-                        loadPreset()
+                        loadPreset(shouldUseRevampedUi)
                     }
                     if (wallpaperColorsChanged || reload) {
-                        loadSeedColors(homeWallpaperColors, lockWallpaperColors)
+                        loadSeedColors(
+                            homeWallpaperColors,
+                            lockWallpaperColors,
+                            shouldUseRevampedUi
+                        )
                     }
                 } catch (e: Throwable) {
                     colorsAvailable = false
@@ -127,7 +137,8 @@
 
     private fun loadSeedColors(
         homeWallpaperColors: WallpaperColors?,
-        lockWallpaperColors: WallpaperColors?
+        lockWallpaperColors: WallpaperColors?,
+        shouldUseRevampedUi: Boolean,
     ) {
         if (homeWallpaperColors == null) return
 
@@ -147,7 +158,8 @@
                 colorsPerSource,
                 if (shouldLockColorsGoFirst) COLOR_SOURCE_LOCK else COLOR_SOURCE_HOME,
                 true,
-                bundles
+                bundles,
+                shouldUseRevampedUi
             )
             // Second half of the colors
             buildColorSeeds(
@@ -155,13 +167,45 @@
                 MAX_SEED_COLORS - bundles.size / styleSize,
                 if (shouldLockColorsGoFirst) COLOR_SOURCE_HOME else COLOR_SOURCE_LOCK,
                 false,
-                bundles
+                bundles,
+                shouldUseRevampedUi
             )
         } else {
-            buildColorSeeds(homeWallpaperColors, colorsPerSource, COLOR_SOURCE_HOME, true, bundles)
+            buildColorSeeds(
+                homeWallpaperColors,
+                colorsPerSource,
+                COLOR_SOURCE_HOME,
+                true,
+                bundles,
+                shouldUseRevampedUi
+            )
         }
 
-        bundles.addAll(colorBundles?.filterNot { it is ColorSeedOption } ?: emptyList())
+        if (shouldUseRevampedUi) {
+            // Insert monochrome in the second position if it is enabled and included in preset
+            // colors
+            if (monochromeEnabled) {
+                monochromeBundleName?.let {
+                    bundles.add(
+                        1,
+                        buildRevampedUIPreset(
+                            it,
+                            -1,
+                            Style.MONOCHROMATIC,
+                            ColorType.WALLPAPER_COLOR
+                        )
+                    )
+                }
+            }
+            bundles.addAll(
+                colorBundles?.filterNot {
+                    (it as ColorOptionImpl).type == ColorType.WALLPAPER_COLOR
+                }
+                    ?: emptyList()
+            )
+        } else {
+            bundles.addAll(colorBundles?.filterNot { it is ColorSeedOption } ?: emptyList())
+        }
         colorBundles = bundles
     }
 
@@ -170,13 +214,14 @@
         maxColors: Int,
         source: String,
         containsDefault: Boolean,
-        bundles: MutableList<ColorOption>
+        bundles: MutableList<ColorOption>,
+        shouldUseRevampedUi: Boolean,
     ) {
         val seedColors = ColorScheme.getSeedColors(wallpaperColors)
         val defaultSeed = seedColors.first()
-        buildBundle(defaultSeed, 0, containsDefault, source, bundles)
+        buildBundle(defaultSeed, 0, containsDefault, source, bundles, shouldUseRevampedUi)
         for ((i, colorInt) in seedColors.drop(1).take(maxColors - 1).withIndex()) {
-            buildBundle(colorInt, i + 1, false, source, bundles)
+            buildBundle(colorInt, i + 1, false, source, bundles, shouldUseRevampedUi)
         }
     }
 
@@ -185,38 +230,72 @@
         i: Int,
         isDefault: Boolean,
         source: String,
-        bundles: MutableList<ColorOption>
+        bundles: MutableList<ColorOption>,
+        shouldUseRevampedUi: Boolean,
     ) {
         // TODO(b/202145216): Measure time cost in the loop.
-        for (style in styleList) {
-            val builder = ColorSeedOption.Builder()
-            val lightColorScheme = ColorScheme(colorInt, /* darkTheme= */ false, style)
-            val darkColorScheme = ColorScheme(colorInt, /* darkTheme= */ true, style)
-            builder
-                .setLightColors(lightColorScheme.getLightColorPreview())
-                .setDarkColors(darkColorScheme.getDarkColorPreview())
-                .addOverlayPackage(
+        if (shouldUseRevampedUi) {
+            for (style in styleList) {
+                val lightColorScheme = ColorScheme(colorInt, /* darkTheme= */ false, style)
+                val darkColorScheme = ColorScheme(colorInt, /* darkTheme= */ true, style)
+                val builder = ColorOptionImpl.Builder()
+                builder.lightColors = getRevampedUILightColorPreview(lightColorScheme)
+                builder.darkColors = getRevampedUIDarkColorPreview(darkColorScheme)
+                builder.addOverlayPackage(
                     OVERLAY_CATEGORY_SYSTEM_PALETTE,
                     if (isDefault) "" else toColorString(colorInt)
                 )
-                .addOverlayPackage(
-                    OVERLAY_CATEGORY_COLOR,
-                    if (isDefault) "" else toColorString(colorInt)
-                )
-                .setSource(source)
-                .setStyle(style)
+                builder.title =
+                    when (style) {
+                        Style.TONAL_SPOT ->
+                            context.getString(R.string.content_description_dynamic_color_option)
+                        Style.SPRITZ ->
+                            context.getString(R.string.content_description_neutral_color_option)
+                        Style.VIBRANT ->
+                            context.getString(R.string.content_description_vibrant_color_option)
+                        Style.EXPRESSIVE ->
+                            context.getString(R.string.content_description_expressive_color_option)
+                        else -> context.getString(R.string.content_description_dynamic_color_option)
+                    }
+                builder.source = source
+                builder.style = style
                 // Color option index value starts from 1.
-                .setIndex(i + 1)
+                builder.index = i + 1
+                builder.isDefault = isDefault
+                builder.type = ColorType.WALLPAPER_COLOR
+                bundles.add(builder.build())
+            }
+        } else {
+            for (style in styleList) {
+                val lightColorScheme = ColorScheme(colorInt, /* darkTheme= */ false, style)
+                val darkColorScheme = ColorScheme(colorInt, /* darkTheme= */ true, style)
+                val builder = ColorSeedOption.Builder()
+                builder
+                    .setLightColors(lightColorScheme.getLightColorPreview())
+                    .setDarkColors(darkColorScheme.getDarkColorPreview())
+                    .addOverlayPackage(
+                        OVERLAY_CATEGORY_SYSTEM_PALETTE,
+                        if (isDefault) "" else toColorString(colorInt)
+                    )
+                    .addOverlayPackage(
+                        OVERLAY_CATEGORY_COLOR,
+                        if (isDefault) "" else toColorString(colorInt)
+                    )
+                    .setSource(source)
+                    .setStyle(style)
+                    // Color option index value starts from 1.
+                    .setIndex(i + 1)
 
-            if (isDefault) builder.asDefault()
+                if (isDefault) builder.asDefault()
 
-            bundles.add(builder.build())
+                bundles.add(builder.build())
+            }
         }
     }
 
     /**
      * Returns the colors for the light theme version of the preview of a ColorScheme based on this
-     * order: |-------| | 0 | 1 | |---+---| | 2 | 3 | |-------|
+     * order: top left, top right, bottom left, bottom right
      */
     @ColorInt
     private fun ColorScheme.getLightColorPreview(): IntArray {
@@ -240,13 +319,101 @@
 
     /**
      * Returns the color for the dark theme version of the preview of a ColorScheme based on this
-     * order: |-------| | 0 | 1 | |---+---| | 2 | 3 | |-------|
+     * order: top left, top right, bottom left, bottom right
      */
     @ColorInt
     private fun ColorScheme.getDarkColorPreview(): IntArray {
         return getLightColorPreview()
     }
 
+    /**
+     * Returns the light theme version of the Revamped UI preview of a ColorScheme based on this
+     * order: top left, top right, bottom left, bottom right
+     *
+     * This color mapping corresponds to GM3 colors: Primary (light), Primary (light), Secondary
+     * LStar 85, and Tertiary LStar 70
+     */
+    @ColorInt
+    private fun getRevampedUILightColorPreview(colorScheme: ColorScheme): IntArray {
+        return intArrayOf(
+            setAlphaComponent(colorScheme.accent1.s600, ALPHA_MASK),
+            setAlphaComponent(colorScheme.accent1.s600, ALPHA_MASK),
+            ColorStateList.valueOf(colorScheme.accent2.s500).withLStar(85f).colors[0],
+            setAlphaComponent(colorScheme.accent3.s300, ALPHA_MASK),
+        )
+    }
+
+    /**
+     * Returns the dark theme version of the Revamped UI preview of a ColorScheme based on this
+     * order: top left, top right, bottom left, bottom right
+     *
+     * This color mapping corresponds to GM3 colors: Primary (dark), Primary (dark), Secondary LStar
+     * 35, and Tertiary LStar 70
+     */
+    @ColorInt
+    private fun getRevampedUIDarkColorPreview(colorScheme: ColorScheme): IntArray {
+        return intArrayOf(
+            setAlphaComponent(colorScheme.accent1.s200, ALPHA_MASK),
+            setAlphaComponent(colorScheme.accent1.s200, ALPHA_MASK),
+            ColorStateList.valueOf(colorScheme.accent2.s500).withLStar(35f).colors[0],
+            setAlphaComponent(colorScheme.accent3.s300, ALPHA_MASK),
+        )
+    }
+
+    /**
+     * Returns the light theme version of the Revamped UI preview of a ColorScheme based on this
+     * order: top left, top right, bottom left, bottom right
+     *
+     * This color mapping corresponds to GM3 colors: Primary LStar 0, Primary LStar 0, Secondary
+     * LStar 85, and Tertiary LStar 70
+     */
+    @ColorInt
+    private fun getRevampedUILightMonochromePreview(colorScheme: ColorScheme): IntArray {
+        return intArrayOf(
+            setAlphaComponent(colorScheme.accent1.s1000, ALPHA_MASK),
+            setAlphaComponent(colorScheme.accent1.s1000, ALPHA_MASK),
+            ColorStateList.valueOf(colorScheme.accent2.s500).withLStar(85f).colors[0],
+            setAlphaComponent(colorScheme.accent3.s300, ALPHA_MASK),
+        )
+    }
+
+    /**
+     * Returns the dark theme version of the Revamped UI preview of a ColorScheme based on this
+     * order: top left, top right, bottom left, bottom right
+     *
+     * This color mapping corresponds to GM3 colors: Primary LStar 99, Primary LStar 99, Secondary
+     * LStar 35, and Tertiary LStar 70
+     */
+    @ColorInt
+    private fun getRevampedUIDarkMonochromePreview(colorScheme: ColorScheme): IntArray {
+        return intArrayOf(
+            setAlphaComponent(colorScheme.accent1.s10, ALPHA_MASK),
+            setAlphaComponent(colorScheme.accent1.s10, ALPHA_MASK),
+            ColorStateList.valueOf(colorScheme.accent2.s500).withLStar(35f).colors[0],
+            setAlphaComponent(colorScheme.accent3.s300, ALPHA_MASK),
+        )
+    }
+
+    /**
+     * Returns the Revamped UI preview of a preset ColorScheme based on this order: top left, top
+     * right, bottom left, bottom right
+     */
+    private fun getRevampedUIPresetColorPreview(colorScheme: ColorScheme, seed: Int): IntArray {
+        val colors =
+            when (colorScheme.style) {
+                Style.FRUIT_SALAD -> intArrayOf(seed, colorScheme.accent1.s200)
+                Style.TONAL_SPOT -> intArrayOf(colorScheme.accentColor, colorScheme.accentColor)
+                Style.RAINBOW -> intArrayOf(colorScheme.accent1.s200, colorScheme.accent1.s200)
+                else -> intArrayOf(colorScheme.accent1.s100, colorScheme.accent1.s100)
+            }
+        return intArrayOf(
+            colors[0],
+            colors[1],
+            colors[0],
+            colors[1],
+        )
+    }
+
     private fun ColorScheme.getPresetColorPreview(seed: Int): IntArray {
         return when (this.style) {
             Style.FRUIT_SALAD -> intArrayOf(seed, this.accent1.s100)
@@ -260,7 +427,7 @@
         }
     }
 
-    private suspend fun loadPreset() =
+    private suspend fun loadPreset(shouldUseRevampedUi: Boolean) =
         withContext(Dispatchers.IO) {
             val extractor = ColorBundlePreviewExtractor(mContext)
             val bundles: MutableList<ColorOption> = ArrayList()
@@ -269,52 +436,134 @@
             // Color option index value starts from 1.
             var index = 1
             val maxPresetColors = if (themeStyleEnabled) bundleNames.size else MAX_PRESET_COLORS
-            for (bundleName in bundleNames.take(maxPresetColors)) {
-                val builder = ColorBundle.Builder()
-                builder.title = getItemStringFromStub(COLOR_BUNDLE_NAME_PREFIX, bundleName)
-                builder.setIndex(index)
-                val colorFromStub = getItemColorFromStub(COLOR_BUNDLE_MAIN_COLOR_PREFIX, bundleName)
-                extractor.addPrimaryColor(builder, colorFromStub)
-                extractor.addSecondaryColor(builder, colorFromStub)
-                if (themeStyleEnabled) {
-                    val styleName =
-                        try {
-                            getItemStringFromStub(COLOR_BUNDLE_STYLE_PREFIX, bundleName)
-                        } catch (e: Resources.NotFoundException) {
-                            null
-                        }
-                    extractor.addColorStyle(builder, styleName)
-                    val style =
-                        try {
-                            if (styleName != null) Style.valueOf(styleName) else Style.TONAL_SPOT
-                        } catch (e: IllegalArgumentException) {
-                            Style.TONAL_SPOT
-                        }
 
-                    if (
-                        style == Style.MONOCHROMATIC &&
-                            !InjectorProvider.getInjector()
-                                .getFlags()
-                                .isMonochromaticThemeEnabled(mContext)
-                    ) {
-                        continue
+            if (shouldUseRevampedUi) {
+                // keep track of whether monochrome is included in preset colors to determine
+                // inclusion in wallpaper colors
+                var hasMonochrome = false
+                for (bundleName in bundleNames.take(maxPresetColors)) {
+                    if (themeStyleEnabled) {
+                        val styleName =
+                            try {
+                                getItemStringFromStub(COLOR_BUNDLE_STYLE_PREFIX, bundleName)
+                            } catch (e: Resources.NotFoundException) {
+                                null
+                            }
+                        val style =
+                            try {
+                                if (styleName != null) Style.valueOf(styleName)
+                                else Style.TONAL_SPOT
+                            } catch (e: IllegalArgumentException) {
+                                Style.TONAL_SPOT
+                            }
+
+                        if (style == Style.MONOCHROMATIC) {
+                            if (!monochromeEnabled) {
+                                continue
+                            }
+                            hasMonochrome = true
+                            monochromeBundleName = bundleName
+                        }
+                        bundles.add(buildRevampedUIPreset(bundleName, index, style))
+                    } else {
+                        bundles.add(buildRevampedUIPreset(bundleName, index, null))
                     }
 
-                    val darkColors =
-                        ColorScheme(colorFromStub, true, style).getPresetColorPreview(colorFromStub)
-                    val lightColors =
-                        ColorScheme(colorFromStub, false, style)
-                            .getPresetColorPreview(colorFromStub)
-                    builder.setColorPrimaryDark(darkColors[0]).setColorSecondaryDark(darkColors[1])
-                    builder
-                        .setColorPrimaryLight(lightColors[0])
-                        .setColorSecondaryLight(lightColors[1])
+                    index++
                 }
+                if (!hasMonochrome) {
+                    monochromeBundleName = null
+                }
+            } else {
+                for (bundleName in bundleNames.take(maxPresetColors)) {
+                    val builder = ColorBundle.Builder()
+                    builder.title = getItemStringFromStub(COLOR_BUNDLE_NAME_PREFIX, bundleName)
+                    builder.setIndex(index)
+                    val colorFromStub =
+                        getItemColorFromStub(COLOR_BUNDLE_MAIN_COLOR_PREFIX, bundleName)
+                    extractor.addPrimaryColor(builder, colorFromStub)
+                    extractor.addSecondaryColor(builder, colorFromStub)
+                    if (themeStyleEnabled) {
+                        val styleName =
+                            try {
+                                getItemStringFromStub(COLOR_BUNDLE_STYLE_PREFIX, bundleName)
+                            } catch (e: Resources.NotFoundException) {
+                                null
+                            }
+                        extractor.addColorStyle(builder, styleName)
+                        val style =
+                            try {
+                                if (styleName != null) Style.valueOf(styleName)
+                                else Style.TONAL_SPOT
+                            } catch (e: IllegalArgumentException) {
+                                Style.TONAL_SPOT
+                            }
 
-                bundles.add(builder.build(mContext))
-                index++
+                        if (style == Style.MONOCHROMATIC && !monochromeEnabled) {
+                            continue
+                        }
+
+                        val darkColors =
+                            ColorScheme(colorFromStub, /* darkTheme= */ true, style)
+                                .getPresetColorPreview(colorFromStub)
+                        val lightColors =
+                            ColorScheme(colorFromStub, /* darkTheme= */ false, style)
+                                .getPresetColorPreview(colorFromStub)
+                        builder
+                            .setColorPrimaryDark(darkColors[0])
+                            .setColorSecondaryDark(darkColors[1])
+                        builder
+                            .setColorPrimaryLight(lightColors[0])
+                            .setColorSecondaryLight(lightColors[1])
+                    }
+
+                    bundles.add(builder.build(mContext))
+                    index++
+                }
             }
 
             colorBundles = bundles
         }
+
+    private fun buildRevampedUIPreset(
+        bundleName: String,
+        index: Int,
+        style: Style? = null,
+        type: ColorType = ColorType.PRESET_COLOR,
+    ): ColorOptionImpl {
+        val builder = ColorOptionImpl.Builder()
+        builder.title = getItemStringFromStub(COLOR_BUNDLE_NAME_PREFIX, bundleName)
+        builder.index = index
+        builder.source = ColorOptionsProvider.COLOR_SOURCE_PRESET
+        builder.type = type
+        val colorFromStub = getItemColorFromStub(COLOR_BUNDLE_MAIN_COLOR_PREFIX, bundleName)
+        var darkColorScheme = ColorScheme(colorFromStub, /* darkTheme= */ true)
+        var lightColorScheme = ColorScheme(colorFromStub, /* darkTheme= */ false)
+        val lightColor = lightColorScheme.accentColor
+        val darkColor = darkColorScheme.accentColor
+        var lightColors = intArrayOf(lightColor, lightColor, lightColor, lightColor)
+        var darkColors = intArrayOf(darkColor, darkColor, darkColor, darkColor)
+        builder.addOverlayPackage(OVERLAY_CATEGORY_COLOR, toColorString(colorFromStub))
+        builder.addOverlayPackage(OVERLAY_CATEGORY_SYSTEM_PALETTE, toColorString(colorFromStub))
+        if (style != null) {
+            builder.style = style
+
+            lightColorScheme = ColorScheme(colorFromStub, /* darkTheme= */ false, style)
+            darkColorScheme = ColorScheme(colorFromStub, /* darkTheme= */ true, style)
+
+            when (style) {
+                Style.MONOCHROMATIC -> {
+                    darkColors = getRevampedUIDarkMonochromePreview(darkColorScheme)
+                    lightColors = getRevampedUILightMonochromePreview(lightColorScheme)
+                }
+                else -> {
+                    darkColors = getRevampedUIPresetColorPreview(darkColorScheme, colorFromStub)
+                    lightColors = getRevampedUIPresetColorPreview(lightColorScheme, colorFromStub)
+                }
+            }
+        }
+        builder.lightColors = lightColors
+        builder.darkColors = darkColors
+        return builder.build()
+    }
 }
diff --git a/src/com/android/customization/model/color/ColorSeedOption.java b/src/com/android/customization/model/color/ColorSeedOption.java
index ba61ed1..ed38049 100644
--- a/src/com/android/customization/model/color/ColorSeedOption.java
+++ b/src/com/android/customization/model/color/ColorSeedOption.java
@@ -100,6 +100,7 @@
         /**
          * Returns the colors to be applied corresponding with the current
          * configuration's UI mode.
+         * @param res resources to read to the UI mode configuration from
          * @return one of {@link #lightColors} or {@link #darkColors}
          */
         @ColorInt
@@ -108,6 +109,17 @@
                     == Configuration.UI_MODE_NIGHT_YES;
             return night ? darkColors : lightColors;
         }
+
+        /**
+         * Returns the preview colors based on whether dark theme or light theme colors are
+         * requested.
+         * @param darkTheme if true, returns dark theme colors, otherwise returns light theme colors
+         * @return one of {@link #lightColors} or {@link #darkColors}
+         */
+        @ColorInt
+        public int[] resolveColors(boolean darkTheme) {
+            return darkTheme ? darkColors : lightColors;
+        }
     }
 
     /**
diff --git a/src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt b/src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt
index d8cad82..6ab561f 100644
--- a/src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt
+++ b/src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt
@@ -122,11 +122,11 @@
                         }
                     },
                     wallpaperInteractor = wallpaperInteractor,
+                    screen = CustomizationSections.Screen.HOME_SCREEN,
                 ),
-            lifecycleOwner = this,
+            lifecycleOwner = viewLifecycleOwner,
             offsetToStart = false,
-            screen = CustomizationSections.Screen.HOME_SCREEN,
-            onPreviewDirty = { activity?.recreate() },
+            onWallpaperPreviewDirty = { activity?.recreate() },
         )
     }
 }
diff --git a/src/com/android/customization/module/CustomizationInjector.kt b/src/com/android/customization/module/CustomizationInjector.kt
index 306ef04..5f8f9d3 100644
--- a/src/com/android/customization/module/CustomizationInjector.kt
+++ b/src/com/android/customization/module/CustomizationInjector.kt
@@ -15,8 +15,8 @@
  */
 package com.android.customization.module
 
-import android.app.Activity
 import android.content.Context
+import androidx.activity.ComponentActivity
 import androidx.fragment.app.FragmentActivity
 import com.android.customization.model.theme.OverlayManagerCompat
 import com.android.customization.model.theme.ThemeBundleProvider
@@ -26,6 +26,7 @@
 import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
 import com.android.customization.picker.clock.ui.viewmodel.ClockSectionViewModel
 import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
+import com.android.customization.picker.clock.utils.ClockDescriptionUtils
 import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
 import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
 import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor
@@ -47,11 +48,13 @@
         context: Context,
     ): KeyguardQuickAffordancePickerInteractor
 
-    fun getClockRegistry(context: Context): ClockRegistry
+    fun getClockRegistry(context: Context): ClockRegistry?
 
     fun getClockPickerInteractor(context: Context): ClockPickerInteractor
 
-    fun getClockSectionViewModel(context: Context): ClockSectionViewModel
+    fun getClockSectionViewModel(
+        context: Context,
+    ): ClockSectionViewModel
 
     fun getColorPickerInteractor(
         context: Context,
@@ -63,12 +66,17 @@
         wallpaperColorsViewModel: WallpaperColorsViewModel,
     ): ColorPickerViewModel.Factory
 
-    fun getClockCarouselViewModel(context: Context): ClockCarouselViewModel
+    fun getClockCarouselViewModelFactory(
+        interactor: ClockPickerInteractor,
+    ): ClockCarouselViewModel.Factory
 
-    fun getClockViewFactory(activity: Activity): ClockViewFactory
+    fun getClockViewFactory(activity: ComponentActivity): ClockViewFactory
 
     fun getClockSettingsViewModelFactory(
         context: Context,
         wallpaperColorsViewModel: WallpaperColorsViewModel,
+        clockViewFactory: ClockViewFactory,
     ): ClockSettingsViewModel.Factory
+
+    fun getClockDescriptionUtils(): ClockDescriptionUtils
 }
diff --git a/src/com/android/customization/module/DefaultCustomizationSections.java b/src/com/android/customization/module/DefaultCustomizationSections.java
index 232e948..b408a89 100644
--- a/src/com/android/customization/module/DefaultCustomizationSections.java
+++ b/src/com/android/customization/module/DefaultCustomizationSections.java
@@ -1,5 +1,6 @@
 package com.android.customization.module;
 
+import android.app.WallpaperManager;
 import android.os.Bundle;
 
 import androidx.annotation.Nullable;
@@ -23,6 +24,7 @@
 import com.android.customization.picker.notifications.ui.section.NotificationSectionController;
 import com.android.customization.picker.notifications.ui.viewmodel.NotificationSectionViewModel;
 import com.android.customization.picker.preview.ui.section.PreviewWithClockCarouselSectionController;
+import com.android.customization.picker.preview.ui.section.PreviewWithThemeSectionController;
 import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor;
 import com.android.customization.picker.quickaffordance.ui.section.KeyguardQuickAffordanceSectionController;
 import com.android.customization.picker.quickaffordance.ui.viewmodel.KeyguardQuickAffordancePickerViewModel;
@@ -38,9 +40,8 @@
 import com.android.wallpaper.module.CustomizationSections;
 import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor;
 import com.android.wallpaper.picker.customization.ui.section.ConnectedSectionController;
-import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewSectionController;
 import com.android.wallpaper.picker.customization.ui.section.WallpaperQuickSwitchSectionController;
-import com.android.wallpaper.picker.customization.ui.viewmodel.WallpaperQuickSwitchViewModel;
+import com.android.wallpaper.picker.customization.ui.viewmodel.CustomizationPickerViewModel;
 import com.android.wallpaper.util.DisplayUtils;
 
 import java.util.ArrayList;
@@ -55,7 +56,7 @@
             mKeyguardQuickAffordancePickerViewModelFactory;
     private final NotificationSectionViewModel.Factory mNotificationSectionViewModelFactory;
     private final BaseFlags mFlags;
-    private final ClockCarouselViewModel mClockCarouselViewModel;
+    private final ClockCarouselViewModel.Factory mClockCarouselViewModelFactory;
     private final ClockViewFactory mClockViewFactory;
     private final DarkModeSnapshotRestorer mDarkModeSnapshotRestorer;
     private final ThemedIconSnapshotRestorer mThemedIconSnapshotRestorer;
@@ -68,7 +69,7 @@
                     keyguardQuickAffordancePickerViewModelFactory,
             NotificationSectionViewModel.Factory notificationSectionViewModelFactory,
             BaseFlags flags,
-            ClockCarouselViewModel clockCarouselViewModel,
+            ClockCarouselViewModel.Factory clockCarouselViewModelFactory,
             ClockViewFactory clockViewFactory,
             DarkModeSnapshotRestorer darkModeSnapshotRestorer,
             ThemedIconSnapshotRestorer themedIconSnapshotRestorer,
@@ -79,7 +80,7 @@
                 keyguardQuickAffordancePickerViewModelFactory;
         mNotificationSectionViewModelFactory = notificationSectionViewModelFactory;
         mFlags = flags;
-        mClockCarouselViewModel = clockCarouselViewModel;
+        mClockCarouselViewModelFactory = clockCarouselViewModelFactory;
         mClockViewFactory = clockViewFactory;
         mDarkModeSnapshotRestorer = darkModeSnapshotRestorer;
         mThemedIconSnapshotRestorer = themedIconSnapshotRestorer;
@@ -98,8 +99,10 @@
             @Nullable Bundle savedInstanceState,
             CurrentWallpaperInfoFactory wallpaperInfoFactory,
             DisplayUtils displayUtils,
-            WallpaperQuickSwitchViewModel wallpaperQuickSwitchViewModel,
-            WallpaperInteractor wallpaperInteractor) {
+            CustomizationPickerViewModel customizationPickerViewModel,
+            WallpaperInteractor wallpaperInteractor,
+            WallpaperManager wallpaperManager,
+            boolean isTwoPaneAndSmallWidth) {
         List<CustomizationSectionController<?>> sectionControllers = new ArrayList<>();
 
         // Wallpaper section.
@@ -112,19 +115,26 @@
                         wallpaperInfoFactory,
                         wallpaperColorsViewModel,
                         displayUtils,
-                        mClockCarouselViewModel,
+                        mClockCarouselViewModelFactory,
                         mClockViewFactory,
+                        wallpaperPreviewNavigator,
                         sectionNavigationController,
-                        wallpaperInteractor)
-                        : new ScreenPreviewSectionController(
+                        wallpaperInteractor,
+                        mThemedIconInteractor,
+                        wallpaperManager,
+                        isTwoPaneAndSmallWidth)
+                        : new PreviewWithThemeSectionController(
                                 activity,
                                 lifecycleOwner,
                                 screen,
                                 wallpaperInfoFactory,
                                 wallpaperColorsViewModel,
                                 displayUtils,
-                                sectionNavigationController,
-                                wallpaperInteractor));
+                                wallpaperPreviewNavigator,
+                                wallpaperInteractor,
+                                mThemedIconInteractor,
+                                wallpaperManager,
+                                isTwoPaneAndSmallWidth));
 
         sectionControllers.add(
                 new ConnectedSectionController(
@@ -138,10 +148,11 @@
                                 lifecycleOwner),
                         // Wallpaper quick switch section.
                         new WallpaperQuickSwitchSectionController(
-                                screen,
-                                wallpaperQuickSwitchViewModel,
+                                customizationPickerViewModel.getWallpaperQuickSwitchViewModel(
+                                        screen),
                                 lifecycleOwner,
-                                sectionNavigationController),
+                                sectionNavigationController,
+                                savedInstanceState == null),
                         /* reverseOrderWhenHorizontal= */ true));
 
         switch (screen) {
diff --git a/src/com/android/customization/module/StatsLogUserEventLogger.java b/src/com/android/customization/module/StatsLogUserEventLogger.java
index 9645454..32e0599 100644
--- a/src/com/android/customization/module/StatsLogUserEventLogger.java
+++ b/src/com/android/customization/module/StatsLogUserEventLogger.java
@@ -44,7 +44,6 @@
 
 import androidx.annotation.Nullable;
 
-import com.android.customization.model.clock.Clockface;
 import com.android.customization.model.color.ColorOption;
 import com.android.customization.model.grid.GridOption;
 import com.android.customization.model.theme.ThemeBundle;
@@ -237,22 +236,6 @@
     }
 
     @Override
-    public void logClockSelected(Clockface clock) {
-        new SysUiStatsLogger()
-                .setAction(StyleEnums.PICKER_SELECT)
-                .setClockPackageHash(Objects.hashCode(clock.getId()))
-                .log();
-    }
-
-    @Override
-    public void logClockApplied(Clockface clock) {
-        new SysUiStatsLogger()
-                .setAction(StyleEnums.PICKER_APPLIED)
-                .setClockPackageHash(Objects.hashCode(clock.getId()))
-                .log();
-    }
-
-    @Override
     public void logGridSelected(GridOption grid) {
         new SysUiStatsLogger()
                 .setAction(StyleEnums.PICKER_SELECT)
diff --git a/src/com/android/customization/module/ThemePickerInjector.kt b/src/com/android/customization/module/ThemePickerInjector.kt
index eb20037..cceb896 100644
--- a/src/com/android/customization/module/ThemePickerInjector.kt
+++ b/src/com/android/customization/module/ThemePickerInjector.kt
@@ -15,8 +15,8 @@
  */
 package com.android.customization.module
 
-import android.app.Activity
 import android.app.UiModeManager
+import android.app.WallpaperManager
 import android.content.Context
 import android.content.Intent
 import android.net.Uri
@@ -25,6 +25,8 @@
 import androidx.activity.ComponentActivity
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.DefaultLifecycleObserver
+import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.ViewModelProvider
 import com.android.customization.model.color.ColorCustomizationManager
 import com.android.customization.model.color.ColorOptionsProvider
@@ -44,10 +46,13 @@
 import com.android.customization.picker.clock.data.repository.ClockPickerRepositoryImpl
 import com.android.customization.picker.clock.data.repository.ClockRegistryProvider
 import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
+import com.android.customization.picker.clock.domain.interactor.ClockPickerSnapshotRestorer
 import com.android.customization.picker.clock.ui.view.ClockViewFactory
 import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
 import com.android.customization.picker.clock.ui.viewmodel.ClockSectionViewModel
 import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
+import com.android.customization.picker.clock.utils.ClockDescriptionUtils
+import com.android.customization.picker.clock.utils.ThemePickerClockDescriptionUtils
 import com.android.customization.picker.color.data.repository.ColorPickerRepositoryImpl
 import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
 import com.android.customization.picker.color.domain.interactor.ColorPickerSnapshotRestorer
@@ -79,11 +84,9 @@
 import com.android.wallpaper.picker.customization.data.repository.WallpaperRepository
 import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
 import com.android.wallpaper.picker.undo.domain.interactor.SnapshotRestorer
-import kotlinx.coroutines.DelicateCoroutinesApi
+import com.android.wallpaper.util.ScreenSizeCalculator
 import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.GlobalScope
 
-@OptIn(DelicateCoroutinesApi::class)
 open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInjector {
     private var customizationSections: CustomizationSections? = null
     private var userEventLogger: UserEventLogger? = null
@@ -99,11 +102,11 @@
     private var keyguardQuickAffordanceSnapshotRestorer: KeyguardQuickAffordanceSnapshotRestorer? =
         null
     private var notificationsSnapshotRestorer: NotificationsSnapshotRestorer? = null
-    private var clockRegistry: ClockRegistry? = null
     private var clockPickerInteractor: ClockPickerInteractor? = null
     private var clockSectionViewModel: ClockSectionViewModel? = null
-    private var clockCarouselViewModel: ClockCarouselViewModel? = null
-    private var clockViewFactory: ClockViewFactory? = null
+    private var clockCarouselViewModelFactory: ClockCarouselViewModel.Factory? = null
+    private var clockViewFactories: MutableMap<Int, ClockViewFactory> = HashMap()
+    private var clockPickerSnapshotRestorer: ClockPickerSnapshotRestorer? = null
     private var notificationsInteractor: NotificationsInteractor? = null
     private var notificationSectionViewModelFactory: NotificationSectionViewModel.Factory? = null
     private var colorPickerInteractor: ColorPickerInteractor? = null
@@ -114,9 +117,11 @@
     private var themedIconSnapshotRestorer: ThemedIconSnapshotRestorer? = null
     private var themedIconInteractor: ThemedIconInteractor? = null
     private var clockSettingsViewModelFactory: ClockSettingsViewModel.Factory? = null
+    private var clockDescriptionUtils: ClockDescriptionUtils? = null
     private var gridInteractor: GridInteractor? = null
     private var gridSnapshotRestorer: GridSnapshotRestorer? = null
     private var gridScreenViewModelFactory: GridScreenViewModel.Factory? = null
+    private var clockRegistryProvider: ClockRegistryProvider? = null
 
     override fun getCustomizationSections(activity: ComponentActivity): CustomizationSections {
         return customizationSections
@@ -131,7 +136,9 @@
                         interactor = getNotificationsInteractor(activity),
                     ),
                     getFlags(),
-                    getClockCarouselViewModel(activity),
+                    getClockCarouselViewModelFactory(
+                        getClockPickerInteractor(activity.applicationContext),
+                    ),
                     getClockViewFactory(activity),
                     getDarkModeSnapshotRestorer(activity),
                     getThemedIconSnapshotRestorer(activity),
@@ -177,7 +184,7 @@
     @Synchronized
     override fun getUserEventLogger(context: Context): ThemesUserEventLogger {
         return if (userEventLogger != null) userEventLogger as ThemesUserEventLogger
-        else StatsLogUserEventLogger(context).also { userEventLogger = it }
+        else StatsLogUserEventLogger(context.applicationContext).also { userEventLogger = it }
     }
 
     @Synchronized
@@ -190,17 +197,23 @@
         return fragmentFactory ?: ThemePickerFragmentFactory().also { fragmentFactory }
     }
 
-    override fun getSnapshotRestorers(context: Context): Map<Int, SnapshotRestorer> {
+    override fun getSnapshotRestorers(
+        context: Context,
+    ): Map<Int, SnapshotRestorer> {
         return super<WallpaperPicker2Injector>.getSnapshotRestorers(context).toMutableMap().apply {
             this[KEY_QUICK_AFFORDANCE_SNAPSHOT_RESTORER] =
                 getKeyguardQuickAffordanceSnapshotRestorer(context)
-            this[KEY_WALLPAPER_SNAPSHOT_RESTORER] = getWallpaperSnapshotRestorer(context)
+            // TODO(b/285047815): Enable after adding wallpaper id for default static wallpaper
+            if (getFlags().isWallpaperRestorerEnabled()) {
+                this[KEY_WALLPAPER_SNAPSHOT_RESTORER] = getWallpaperSnapshotRestorer(context)
+            }
             this[KEY_NOTIFICATIONS_SNAPSHOT_RESTORER] = getNotificationsSnapshotRestorer(context)
             this[KEY_DARK_MODE_SNAPSHOT_RESTORER] = getDarkModeSnapshotRestorer(context)
             this[KEY_THEMED_ICON_SNAPSHOT_RESTORER] = getThemedIconSnapshotRestorer(context)
             this[KEY_APP_GRID_SNAPSHOT_RESTORER] = getGridSnapshotRestorer(context)
             this[KEY_COLOR_PICKER_SNAPSHOT_RESTORER] =
                 getColorPickerSnapshotRestorer(context, getWallpaperColorsViewModel())
+            this[KEY_CLOCKS_SNAPSHOT_RESTORER] = getClockPickerSnapshotRestorer(context)
         }
     }
 
@@ -218,17 +231,24 @@
     }
 
     override fun getWallpaperInteractor(context: Context): WallpaperInteractor {
+        val appContext = context.applicationContext
         return wallpaperInteractor
             ?: WallpaperInteractor(
                     repository =
                         WallpaperRepository(
-                            scope = GlobalScope,
-                            client = WallpaperClientImpl(context = context),
+                            scope = getApplicationCoroutineScope(),
+                            client =
+                                WallpaperClientImpl(
+                                    context = appContext,
+                                    infoFactory = getCurrentWallpaperInfoFactory(appContext),
+                                    wallpaperManager = WallpaperManager.getInstance(appContext)
+                                ),
+                            wallpaperPreferences = getPreferences(context = appContext),
                             backgroundDispatcher = Dispatchers.IO,
                         ),
                     shouldHandleReload = {
                         TextUtils.equals(
-                            getColorCustomizationManager(context).currentColorSource,
+                            getColorCustomizationManager(appContext).currentColorSource,
                             ColorOptionsProvider.COLOR_SOURCE_PRESET
                         )
                     }
@@ -250,42 +270,32 @@
     ): KeyguardQuickAffordancePickerViewModel.Factory {
         return keyguardQuickAffordancePickerViewModelFactory
             ?: KeyguardQuickAffordancePickerViewModel.Factory(
-                    context,
+                    context.applicationContext,
                     getKeyguardQuickAffordancePickerInteractor(context),
+                    getWallpaperInteractor(context),
                     getCurrentWallpaperInfoFactory(context),
-                ) { intent ->
-                    context.startActivity(intent)
-                }
-                .also { keyguardQuickAffordancePickerViewModelFactory = it }
-    }
-
-    fun getNotificationSectionViewModelFactory(
-        context: Context,
-    ): NotificationSectionViewModel.Factory {
-        return notificationSectionViewModelFactory
-            ?: NotificationSectionViewModel.Factory(
-                    interactor = getNotificationsInteractor(context),
                 )
-                .also { notificationSectionViewModelFactory = it }
+                .also { keyguardQuickAffordancePickerViewModelFactory = it }
     }
 
     private fun getKeyguardQuickAffordancePickerInteractorImpl(
         context: Context
     ): KeyguardQuickAffordancePickerInteractor {
         val client = getKeyguardQuickAffordancePickerProviderClient(context)
+        val appContext = context.applicationContext
         return KeyguardQuickAffordancePickerInteractor(
             KeyguardQuickAffordancePickerRepository(client, Dispatchers.IO),
             client
         ) {
-            getKeyguardQuickAffordanceSnapshotRestorer(context)
+            getKeyguardQuickAffordanceSnapshotRestorer(appContext)
         }
     }
 
-    protected fun getKeyguardQuickAffordancePickerProviderClient(
+    private fun getKeyguardQuickAffordancePickerProviderClient(
         context: Context
     ): CustomizationProviderClient {
         return customizationProviderClient
-            ?: CustomizationProviderClientImpl(context, Dispatchers.IO).also {
+            ?: CustomizationProviderClientImpl(context.applicationContext, Dispatchers.IO).also {
                 customizationProviderClient = it
             }
     }
@@ -301,6 +311,33 @@
                 .also { keyguardQuickAffordanceSnapshotRestorer = it }
     }
 
+    fun getNotificationSectionViewModelFactory(
+        context: Context,
+    ): NotificationSectionViewModel.Factory {
+        return notificationSectionViewModelFactory
+            ?: NotificationSectionViewModel.Factory(
+                    interactor = getNotificationsInteractor(context),
+                )
+                .also { notificationSectionViewModelFactory = it }
+    }
+
+    private fun getNotificationsInteractor(
+        context: Context,
+    ): NotificationsInteractor {
+        val appContext = context.applicationContext
+        return notificationsInteractor
+            ?: NotificationsInteractor(
+                    repository =
+                        NotificationsRepository(
+                            scope = getApplicationCoroutineScope(),
+                            backgroundDispatcher = Dispatchers.IO,
+                            secureSettingsRepository = getSecureSettingsRepository(context),
+                        ),
+                    snapshotRestorer = { getNotificationsSnapshotRestorer(appContext) },
+                )
+                .also { notificationsInteractor = it }
+    }
+
     private fun getNotificationsSnapshotRestorer(context: Context): NotificationsSnapshotRestorer {
         return notificationsSnapshotRestorer
             ?: NotificationsSnapshotRestorer(
@@ -313,79 +350,102 @@
     }
 
     override fun getClockRegistry(context: Context): ClockRegistry {
-        return clockRegistry
-            ?: ClockRegistryProvider(
-                    context = context,
-                    coroutineScope = GlobalScope,
-                    mainDispatcher = Dispatchers.Main,
-                    backgroundDispatcher = Dispatchers.IO,
-                )
-                .get()
-                .also { clockRegistry = it }
+        return (clockRegistryProvider
+                ?: ClockRegistryProvider(
+                        context = context.applicationContext,
+                        coroutineScope = getApplicationCoroutineScope(),
+                        mainDispatcher = Dispatchers.Main,
+                        backgroundDispatcher = Dispatchers.IO,
+                    )
+                    .also { clockRegistryProvider = it })
+            .get()
     }
 
     override fun getClockPickerInteractor(
         context: Context,
     ): ClockPickerInteractor {
+        val appContext = context.applicationContext
         return clockPickerInteractor
             ?: ClockPickerInteractor(
-                    ClockPickerRepositoryImpl(
-                        secureSettingsRepository = getSecureSettingsRepository(context),
-                        registry = getClockRegistry(context),
-                        scope = GlobalScope,
-                    ),
+                    repository =
+                        ClockPickerRepositoryImpl(
+                            secureSettingsRepository = getSecureSettingsRepository(appContext),
+                            registry = getClockRegistry(appContext),
+                            scope = getApplicationCoroutineScope(),
+                            mainDispatcher = Dispatchers.Main,
+                        ),
+                    snapshotRestorer = { getClockPickerSnapshotRestorer(appContext) },
                 )
                 .also { clockPickerInteractor = it }
     }
 
-    override fun getClockSectionViewModel(context: Context): ClockSectionViewModel {
-        return clockSectionViewModel
-            ?: ClockSectionViewModel(context, getClockPickerInteractor(context)).also {
-                clockSectionViewModel = it
-            }
-    }
-
-    override fun getClockCarouselViewModel(context: Context): ClockCarouselViewModel {
-        return clockCarouselViewModel
-            ?: ClockCarouselViewModel(getClockPickerInteractor(context)).also {
-                clockCarouselViewModel = it
-            }
-    }
-
-    override fun getClockViewFactory(activity: Activity): ClockViewFactory {
-        return clockViewFactory
-            ?: ClockViewFactory(activity, getClockRegistry(activity)).also { clockViewFactory = it }
-    }
-
-    protected fun getNotificationsInteractor(
+    override fun getClockSectionViewModel(
         context: Context,
-    ): NotificationsInteractor {
-        return notificationsInteractor
-            ?: NotificationsInteractor(
-                    repository =
-                        NotificationsRepository(
-                            scope = GlobalScope,
-                            backgroundDispatcher = Dispatchers.IO,
-                            secureSettingsRepository = getSecureSettingsRepository(context),
-                        ),
-                    snapshotRestorer = { getNotificationsSnapshotRestorer(context) },
+    ): ClockSectionViewModel {
+        return clockSectionViewModel
+            ?: ClockSectionViewModel(
+                    context.applicationContext,
+                    getClockPickerInteractor(context.applicationContext)
                 )
-                .also { notificationsInteractor = it }
+                .also { clockSectionViewModel = it }
+    }
+
+    override fun getClockCarouselViewModelFactory(
+        interactor: ClockPickerInteractor,
+    ): ClockCarouselViewModel.Factory {
+        return clockCarouselViewModelFactory
+            ?: ClockCarouselViewModel.Factory(interactor, Dispatchers.IO).also {
+                clockCarouselViewModelFactory = it
+            }
+    }
+
+    override fun getClockViewFactory(activity: ComponentActivity): ClockViewFactory {
+        val activityHashCode = activity.hashCode()
+        return clockViewFactories[activityHashCode]
+            ?: ClockViewFactory(
+                    activity.applicationContext,
+                    ScreenSizeCalculator.getInstance()
+                        .getScreenSize(activity.windowManager.defaultDisplay),
+                    WallpaperManager.getInstance(activity.applicationContext),
+                    getClockRegistry(activity.applicationContext),
+                )
+                .also {
+                    clockViewFactories[activityHashCode] = it
+                    activity.lifecycle.addObserver(
+                        object : DefaultLifecycleObserver {
+                            override fun onDestroy(owner: LifecycleOwner) {
+                                super.onDestroy(owner)
+                                clockViewFactories[activityHashCode]?.onDestroy()
+                                clockViewFactories.remove(activityHashCode)
+                            }
+                        }
+                    )
+                }
+    }
+
+    private fun getClockPickerSnapshotRestorer(
+        context: Context,
+    ): ClockPickerSnapshotRestorer {
+        return clockPickerSnapshotRestorer
+            ?: ClockPickerSnapshotRestorer(getClockPickerInteractor(context)).also {
+                clockPickerSnapshotRestorer = it
+            }
     }
 
     override fun getColorPickerInteractor(
         context: Context,
         wallpaperColorsViewModel: WallpaperColorsViewModel,
     ): ColorPickerInteractor {
+        val appContext = context.applicationContext
         return colorPickerInteractor
             ?: ColorPickerInteractor(
                     repository =
                         ColorPickerRepositoryImpl(
                             wallpaperColorsViewModel,
-                            getColorCustomizationManager(context)
+                            getColorCustomizationManager(appContext)
                         ),
                     snapshotRestorer = {
-                        getColorPickerSnapshotRestorer(context, wallpaperColorsViewModel)
+                        getColorPickerSnapshotRestorer(appContext, wallpaperColorsViewModel)
                     }
                 )
                 .also { colorPickerInteractor = it }
@@ -397,7 +457,7 @@
     ): ColorPickerViewModel.Factory {
         return colorPickerViewModelFactory
             ?: ColorPickerViewModel.Factory(
-                    context,
+                    context.applicationContext,
                     getColorPickerInteractor(context, wallpaperColorsViewModel),
                 )
                 .also { colorPickerViewModelFactory = it }
@@ -424,10 +484,11 @@
     fun getDarkModeSnapshotRestorer(
         context: Context,
     ): DarkModeSnapshotRestorer {
+        val appContext = context.applicationContext
         return darkModeSnapshotRestorer
             ?: DarkModeSnapshotRestorer(
-                    context = context,
-                    manager = context.getSystemService(Context.UI_MODE_SERVICE) as UiModeManager,
+                    context = appContext,
+                    manager = appContext.getSystemService(Context.UI_MODE_SERVICE) as UiModeManager,
                     backgroundDispatcher = Dispatchers.IO,
                 )
                 .also { darkModeSnapshotRestorer = it }
@@ -459,19 +520,28 @@
     override fun getClockSettingsViewModelFactory(
         context: Context,
         wallpaperColorsViewModel: WallpaperColorsViewModel,
+        clockViewFactory: ClockViewFactory,
     ): ClockSettingsViewModel.Factory {
         return clockSettingsViewModelFactory
             ?: ClockSettingsViewModel.Factory(
-                    context,
+                    context.applicationContext,
                     getClockPickerInteractor(context),
                     getColorPickerInteractor(
                         context,
                         wallpaperColorsViewModel,
                     ),
-                )
+                ) { clockId ->
+                    clockId?.let { clockViewFactory.getController(clockId).config.isReactiveToTone }
+                        ?: false
+                }
                 .also { clockSettingsViewModelFactory = it }
     }
 
+    override fun getClockDescriptionUtils(): ClockDescriptionUtils {
+        return clockDescriptionUtils
+            ?: ThemePickerClockDescriptionUtils().also { clockDescriptionUtils = it }
+    }
+
     fun getGridScreenViewModelFactory(
         context: Context,
     ): ViewModelProvider.Factory {
@@ -486,16 +556,17 @@
     private fun getGridInteractor(
         context: Context,
     ): GridInteractor {
+        val appContext = context.applicationContext
         return gridInteractor
             ?: GridInteractor(
-                    applicationScope = GlobalScope,
+                    applicationScope = getApplicationCoroutineScope(),
                     repository =
                         GridRepositoryImpl(
-                            applicationScope = GlobalScope,
+                            applicationScope = getApplicationCoroutineScope(),
                             manager = GridOptionsManager.getInstance(context),
                             backgroundDispatcher = Dispatchers.IO,
                         ),
-                    snapshotRestorer = { getGridSnapshotRestorer(context) },
+                    snapshotRestorer = { getGridSnapshotRestorer(appContext) },
                 )
                 .also { gridInteractor = it }
     }
@@ -526,6 +597,7 @@
         private val KEY_APP_GRID_SNAPSHOT_RESTORER = KEY_THEMED_ICON_SNAPSHOT_RESTORER + 1
         @JvmStatic
         private val KEY_COLOR_PICKER_SNAPSHOT_RESTORER = KEY_APP_GRID_SNAPSHOT_RESTORER + 1
+        @JvmStatic private val KEY_CLOCKS_SNAPSHOT_RESTORER = KEY_COLOR_PICKER_SNAPSHOT_RESTORER + 1
 
         /**
          * When this injector is overridden, this is the minimal value that should be used by
@@ -533,6 +605,6 @@
          *
          * It should always be greater than the biggest restorer key.
          */
-        @JvmStatic protected val MIN_SNAPSHOT_RESTORER_KEY = KEY_COLOR_PICKER_SNAPSHOT_RESTORER + 1
+        @JvmStatic protected val MIN_SNAPSHOT_RESTORER_KEY = KEY_CLOCKS_SNAPSHOT_RESTORER + 1
     }
 }
diff --git a/src/com/android/customization/module/ThemesUserEventLogger.java b/src/com/android/customization/module/ThemesUserEventLogger.java
index 3e5bb54..b1a87b9 100644
--- a/src/com/android/customization/module/ThemesUserEventLogger.java
+++ b/src/com/android/customization/module/ThemesUserEventLogger.java
@@ -15,7 +15,6 @@
  */
 package com.android.customization.module;
 
-import com.android.customization.model.clock.Clockface;
 import com.android.customization.model.color.ColorOption;
 import com.android.customization.model.grid.GridOption;
 import com.android.customization.model.theme.ThemeBundle;
@@ -38,10 +37,6 @@
      */
     void logColorApplied(int action, ColorOption colorOption);
 
-    void logClockSelected(Clockface clock);
-
-    void logClockApplied(Clockface clock);
-
     void logGridSelected(GridOption grid);
 
     void logGridApplied(GridOption grid);
diff --git a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepository.kt b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepository.kt
index ae66ce3..57f77b0 100644
--- a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepository.kt
+++ b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepository.kt
@@ -33,7 +33,7 @@
 
     val selectedClockSize: Flow<ClockSize>
 
-    fun setSelectedClock(clockId: String)
+    suspend fun setSelectedClock(clockId: String)
 
     /**
      * Set clock color to the settings.
@@ -42,7 +42,7 @@
      * @param colorToneProgress color tone from 0 to 100 to apply to the selected color
      * @param seedColor the actual clock color after blending the selected color and color tone
      */
-    fun setClockColor(
+    suspend fun setClockColor(
         selectedColorId: String?,
         @IntRange(from = 0, to = 100) colorToneProgress: Int,
         @ColorInt seedColor: Int?,
diff --git a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt
index 880a00b..be6c6cb 100644
--- a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt
+++ b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt
@@ -24,6 +24,7 @@
 import com.android.systemui.plugins.ClockMetadata
 import com.android.systemui.shared.clocks.ClockRegistry
 import com.android.wallpaper.settings.data.repository.SecureSettingsRepository
+import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.channels.awaitClose
@@ -32,6 +33,7 @@
 import kotlinx.coroutines.flow.SharedFlow
 import kotlinx.coroutines.flow.SharingStarted
 import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.flowOn
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.mapLatest
 import kotlinx.coroutines.flow.mapNotNull
@@ -43,6 +45,7 @@
     private val secureSettingsRepository: SecureSettingsRepository,
     private val registry: ClockRegistry,
     scope: CoroutineScope,
+    mainDispatcher: CoroutineDispatcher,
 ) : ClockPickerRepository {
 
     @OptIn(ExperimentalCoroutinesApi::class)
@@ -67,6 +70,7 @@
                 send()
                 awaitClose { registry.unregisterClockChangeListener(listener) }
             }
+            .flowOn(mainDispatcher)
             .mapLatest { allClocks ->
                 // Loading list of clock plugins can cause many consecutive calls of
                 // onAvailableClocksChanged(). We only care about the final fully-initiated clock
@@ -108,9 +112,10 @@
                 send()
                 awaitClose { registry.unregisterClockChangeListener(listener) }
             }
+            .flowOn(mainDispatcher)
             .mapNotNull { it }
 
-    override fun setSelectedClock(clockId: String) {
+    override suspend fun setSelectedClock(clockId: String) {
         registry.mutateSetting { oldSettings ->
             val newSettings = oldSettings.copy(clockId = clockId)
             newSettings.metadata = oldSettings.metadata
@@ -118,7 +123,7 @@
         }
     }
 
-    override fun setClockColor(
+    override suspend fun setClockColor(
         selectedColorId: String?,
         @IntRange(from = 0, to = 100) colorToneProgress: Int,
         @ColorInt seedColor: Int?,
@@ -137,6 +142,7 @@
         secureSettingsRepository
             .intSetting(
                 name = Settings.Secure.LOCKSCREEN_USE_DOUBLE_LINE_CLOCK,
+                defaultValue = DEFAULT_CLOCK_SIZE,
             )
             .map { setting -> setting == 1 }
             .map { isDynamic -> if (isDynamic) ClockSize.DYNAMIC else ClockSize.SMALL }
@@ -189,5 +195,8 @@
 
         // The color tone to apply to the selected color
         private const val KEY_METADATA_COLOR_TONE_PROGRESS = "metadataColorToneProgress"
+
+        // The default clock size is 1, which means dynamic
+        private const val DEFAULT_CLOCK_SIZE = 1
     }
 }
diff --git a/src/com/android/customization/picker/clock/data/repository/ClockRegistryProvider.kt b/src/com/android/customization/picker/clock/data/repository/ClockRegistryProvider.kt
index bfe87c9..652ffdd 100644
--- a/src/com/android/customization/picker/clock/data/repository/ClockRegistryProvider.kt
+++ b/src/com/android/customization/picker/clock/data/repository/ClockRegistryProvider.kt
@@ -43,25 +43,28 @@
     private val mainDispatcher: CoroutineDispatcher,
     private val backgroundDispatcher: CoroutineDispatcher,
 ) {
-    private val pluginManager: PluginManager by lazy { createPluginManager(context) }
     private val clockRegistry: ClockRegistry by lazy {
         ClockRegistry(
-                context,
-                pluginManager,
-                coroutineScope,
-                mainDispatcher,
-                backgroundDispatcher,
-                isEnabled = true,
-                handleAllUsers = false,
-                DefaultClockProvider(context, LayoutInflater.from(context), context.resources)
-            )
-            .apply { registerListeners() }
+            context,
+            createPluginManager(context),
+            coroutineScope,
+            mainDispatcher,
+            backgroundDispatcher,
+            isEnabled = true,
+            handleAllUsers = false,
+            DefaultClockProvider(context, LayoutInflater.from(context), context.resources),
+            keepAllLoaded = true,
+            subTag = "Picker",
+        )
     }
 
-    fun get(): ClockRegistry {
-        return clockRegistry
+    init {
+        // Listeners in ClockRegistry get cleaned up when app ended
+        clockRegistry.registerListeners()
     }
 
+    fun get() = clockRegistry
+
     private fun createPluginManager(context: Context): PluginManager {
         val privilegedPlugins = listOf<String>()
         val isDebugDevice = true
@@ -70,7 +73,7 @@
             PluginInstance.Factory(
                 this::class.java.classLoader,
                 PluginInstance.InstanceFactory<Plugin>(),
-                PluginInstance.VersionChecker(),
+                PluginInstance.VersionCheckerImpl(),
                 privilegedPlugins,
                 isDebugDevice,
             )
diff --git a/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt
index 6f3657a..30887e5 100644
--- a/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt
+++ b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt
@@ -22,15 +22,21 @@
 import com.android.customization.picker.clock.data.repository.ClockPickerRepository
 import com.android.customization.picker.clock.shared.ClockSize
 import com.android.customization.picker.clock.shared.model.ClockMetadataModel
+import com.android.customization.picker.clock.shared.model.ClockSnapshotModel
+import javax.inject.Provider
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.firstOrNull
 import kotlinx.coroutines.flow.map
 
 /**
  * Interactor for accessing application clock settings, as well as selecting and configuring custom
  * clocks.
  */
-class ClockPickerInteractor(private val repository: ClockPickerRepository) {
+class ClockPickerInteractor(
+    private val repository: ClockPickerRepository,
+    private val snapshotRestorer: Provider<ClockPickerSnapshotRestorer>,
+) {
 
     val allClocks: Flow<List<ClockMetadataModel>> = repository.allClocks
 
@@ -47,19 +53,69 @@
 
     val selectedClockSize: Flow<ClockSize> = repository.selectedClockSize
 
-    fun setSelectedClock(clockId: String) {
-        repository.setSelectedClock(clockId)
+    suspend fun setSelectedClock(clockId: String) {
+        // Use the [clockId] to override saved clock id, since it might not be updated in time
+        setClockOption(ClockSnapshotModel(clockId = clockId))
     }
 
-    fun setClockColor(
+    suspend fun setClockColor(
         selectedColorId: String?,
         @IntRange(from = 0, to = 100) colorToneProgress: Int,
         @ColorInt seedColor: Int?,
     ) {
-        repository.setClockColor(selectedColorId, colorToneProgress, seedColor)
+        // Use the color to override saved color, since it might not be updated in time
+        setClockOption(
+            ClockSnapshotModel(
+                selectedColorId = selectedColorId,
+                colorToneProgress = colorToneProgress,
+                seedColor = seedColor,
+            )
+        )
     }
 
     suspend fun setClockSize(size: ClockSize) {
-        repository.setClockSize(size)
+        // Use the [ClockSize] to override saved clock size, since it might not be updated in time
+        setClockOption(ClockSnapshotModel(clockSize = size))
+    }
+
+    suspend fun setClockOption(clockSnapshotModel: ClockSnapshotModel) {
+        // [ClockCarouselViewModel] is monitoring the [ClockPickerInteractor.setSelectedClock] job,
+        // so it needs to finish last.
+        storeCurrentClockOption(clockSnapshotModel)
+
+        clockSnapshotModel.clockSize?.let { repository.setClockSize(it) }
+        clockSnapshotModel.colorToneProgress?.let {
+            repository.setClockColor(
+                selectedColorId = clockSnapshotModel.selectedColorId,
+                colorToneProgress = clockSnapshotModel.colorToneProgress,
+                seedColor = clockSnapshotModel.seedColor
+            )
+        }
+        clockSnapshotModel.clockId?.let { repository.setSelectedClock(it) }
+    }
+
+    /**
+     * Gets the [ClockSnapshotModel] from the storage and override with [latestOption].
+     *
+     * The storage might be in the middle of a write, and not reflecting the user's options, always
+     * pass in a [ClockSnapshotModel] if we know it's the latest option from a user's point of view.
+     *
+     * [selectedColorId] and [seedColor] have null state collide with nullable type, but we know
+     * they are presented whenever there's a [colorToneProgress].
+     */
+    suspend fun getCurrentClockToRestore(latestOption: ClockSnapshotModel? = null) =
+        ClockSnapshotModel(
+            clockId = latestOption?.clockId ?: selectedClockId.firstOrNull(),
+            clockSize = latestOption?.clockSize ?: selectedClockSize.firstOrNull(),
+            colorToneProgress = latestOption?.colorToneProgress ?: colorToneProgress.firstOrNull(),
+            selectedColorId = latestOption?.colorToneProgress?.let { latestOption.selectedColorId }
+                    ?: selectedColorId.firstOrNull(),
+            seedColor = latestOption?.colorToneProgress?.let { latestOption.seedColor }
+                    ?: seedColor.firstOrNull(),
+        )
+
+    private suspend fun storeCurrentClockOption(clockSnapshotModel: ClockSnapshotModel) {
+        val option = getCurrentClockToRestore(clockSnapshotModel)
+        snapshotRestorer.get().storeSnapshot(option)
     }
 }
diff --git a/src/com/android/customization/picker/clock/domain/interactor/ClockPickerSnapshotRestorer.kt b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerSnapshotRestorer.kt
new file mode 100644
index 0000000..ecaf10f
--- /dev/null
+++ b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerSnapshotRestorer.kt
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2023 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.picker.clock.domain.interactor
+
+import android.text.TextUtils
+import android.util.Log
+import com.android.customization.picker.clock.shared.model.ClockSnapshotModel
+import com.android.wallpaper.picker.undo.domain.interactor.SnapshotRestorer
+import com.android.wallpaper.picker.undo.domain.interactor.SnapshotStore
+import com.android.wallpaper.picker.undo.shared.model.RestorableSnapshot
+
+/** Handles state restoration for clocks. */
+class ClockPickerSnapshotRestorer(private val interactor: ClockPickerInteractor) :
+    SnapshotRestorer {
+    private var snapshotStore: SnapshotStore = SnapshotStore.NOOP
+    private var originalOption: ClockSnapshotModel? = null
+
+    override suspend fun setUpSnapshotRestorer(
+        store: SnapshotStore,
+    ): RestorableSnapshot {
+        snapshotStore = store
+        originalOption = interactor.getCurrentClockToRestore()
+        return snapshot(originalOption)
+    }
+
+    override suspend fun restoreToSnapshot(snapshot: RestorableSnapshot) {
+        originalOption?.let { optionToRestore ->
+            if (
+                TextUtils.isEmpty(optionToRestore.clockId) ||
+                    optionToRestore.clockId != snapshot.args[KEY_CLOCK_ID] ||
+                    optionToRestore.clockSize?.toString() != snapshot.args[KEY_CLOCK_SIZE] ||
+                    optionToRestore.colorToneProgress?.toString() !=
+                        snapshot.args[KEY_COLOR_TONE_PROGRESS] ||
+                    optionToRestore.seedColor?.toString() != snapshot.args[KEY_SEED_COLOR] ||
+                    optionToRestore.selectedColorId != snapshot.args[KEY_COLOR_ID]
+            ) {
+                Log.wtf(
+                    TAG,
+                    """ Original clock option does not match snapshot option to restore to. The
+                        | current implementation doesn't support undo, only a reset back to the
+                        | original clock option."""
+                        .trimMargin(),
+                )
+            }
+
+            interactor.setClockOption(optionToRestore)
+        }
+    }
+
+    fun storeSnapshot(clockSnapshotModel: ClockSnapshotModel) {
+        snapshotStore.store(snapshot(clockSnapshotModel))
+    }
+
+    private fun snapshot(clockSnapshotModel: ClockSnapshotModel? = null): RestorableSnapshot {
+        val options =
+            if (clockSnapshotModel == null) emptyMap()
+            else
+                buildMap {
+                    clockSnapshotModel.clockId?.let { put(KEY_CLOCK_ID, it) }
+                    clockSnapshotModel.clockSize?.let { put(KEY_CLOCK_SIZE, it.toString()) }
+                    clockSnapshotModel.selectedColorId?.let { put(KEY_COLOR_ID, it) }
+                    clockSnapshotModel.colorToneProgress?.let {
+                        put(KEY_COLOR_TONE_PROGRESS, it.toString())
+                    }
+                    clockSnapshotModel.seedColor?.let { put(KEY_SEED_COLOR, it.toString()) }
+                }
+
+        return RestorableSnapshot(options)
+    }
+
+    companion object {
+        private const val TAG = "ClockPickerSnapshotRestorer"
+        private const val KEY_CLOCK_ID = "clock_id"
+        private const val KEY_CLOCK_SIZE = "clock_size"
+        private const val KEY_COLOR_ID = "color_id"
+        private const val KEY_COLOR_TONE_PROGRESS = "color_tone_progress"
+        private const val KEY_SEED_COLOR = "seed_color"
+    }
+}
diff --git a/src/com/android/customization/picker/clock/domain/interactor/ClocksSnapshotRestorer.kt b/src/com/android/customization/picker/clock/domain/interactor/ClocksSnapshotRestorer.kt
deleted file mode 100644
index 7bb3232..0000000
--- a/src/com/android/customization/picker/clock/domain/interactor/ClocksSnapshotRestorer.kt
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2023 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.picker.clock.domain.interactor
-
-import com.android.wallpaper.picker.undo.domain.interactor.SnapshotRestorer
-import com.android.wallpaper.picker.undo.domain.interactor.SnapshotStore
-import com.android.wallpaper.picker.undo.shared.model.RestorableSnapshot
-
-/** Handles state restoration for clocks. */
-class ClocksSnapshotRestorer : SnapshotRestorer {
-    override suspend fun setUpSnapshotRestorer(
-        store: SnapshotStore,
-    ): RestorableSnapshot {
-        // TODO(b/262924055): implement as part of the clock settings screen.
-        return RestorableSnapshot(mapOf())
-    }
-
-    override suspend fun restoreToSnapshot(snapshot: RestorableSnapshot) {
-        // TODO(b/262924055): implement as part of the clock settings screen.
-    }
-}
diff --git a/src/com/android/customization/picker/clock/shared/model/ClockSnapshotModel.kt b/src/com/android/customization/picker/clock/shared/model/ClockSnapshotModel.kt
new file mode 100644
index 0000000..942cc59
--- /dev/null
+++ b/src/com/android/customization/picker/clock/shared/model/ClockSnapshotModel.kt
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2023 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.picker.clock.shared.model
+
+import androidx.annotation.ColorInt
+import androidx.annotation.IntRange
+import com.android.customization.picker.clock.shared.ClockSize
+
+/** Models application state for a clock option in a picker experience. */
+data class ClockSnapshotModel(
+    val clockId: String? = null,
+    val clockSize: ClockSize? = null,
+    val selectedColorId: String? = null,
+    @IntRange(from = 0, to = 100) val colorToneProgress: Int? = null,
+    @ColorInt val seedColor: Int? = null,
+)
diff --git a/src/com/android/customization/picker/clock/ui/adapter/ClockSettingsTabAdapter.kt b/src/com/android/customization/picker/clock/ui/adapter/ClockSettingsTabAdapter.kt
index 746fdb3..981a8e8 100644
--- a/src/com/android/customization/picker/clock/ui/adapter/ClockSettingsTabAdapter.kt
+++ b/src/com/android/customization/picker/clock/ui/adapter/ClockSettingsTabAdapter.kt
@@ -54,7 +54,7 @@
         val item = items[position]
         holder.itemView.isSelected = item.isSelected
         holder.textView.text = item.name
-        holder.textView.setOnClickListener(
+        holder.itemView.setOnClickListener(
             if (item.onClicked != null) {
                 View.OnClickListener { item.onClicked.invoke() }
             } else {
diff --git a/src/com/android/customization/picker/clock/ui/binder/CarouselAccessibilityDelegate.kt b/src/com/android/customization/picker/clock/ui/binder/CarouselAccessibilityDelegate.kt
new file mode 100644
index 0000000..5e3c26e
--- /dev/null
+++ b/src/com/android/customization/picker/clock/ui/binder/CarouselAccessibilityDelegate.kt
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2023 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.picker.clock.ui.binder
+
+import android.content.Context
+import android.os.Bundle
+import android.view.View
+import android.view.accessibility.AccessibilityNodeInfo
+import com.android.wallpaper.R
+
+class CarouselAccessibilityDelegate(
+    private val context: Context,
+    private val scrollForwardCallback: () -> Unit,
+    private val scrollBackwardCallback: () -> Unit
+) : View.AccessibilityDelegate() {
+
+    var contentDescriptionOfSelectedClock = ""
+
+    private val ACTION_SCROLL_BACKWARD = R.id.action_scroll_backward
+    private val ACTION_SCROLL_FORWARD = R.id.action_scroll_forward
+
+    override fun onInitializeAccessibilityNodeInfo(host: View?, info: AccessibilityNodeInfo?) {
+        super.onInitializeAccessibilityNodeInfo(host, info)
+        info?.isScrollable = true
+        info?.addAction(
+            AccessibilityNodeInfo.AccessibilityAction(
+                ACTION_SCROLL_FORWARD,
+                context.getString(R.string.scroll_forward_and_select)
+            )
+        )
+        info?.addAction(
+            AccessibilityNodeInfo.AccessibilityAction(
+                ACTION_SCROLL_BACKWARD,
+                context.getString(R.string.scroll_backward_and_select)
+            )
+        )
+        info?.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_ACCESSIBILITY_FOCUS)
+        // We need to specifically set the content description since for some reason the talkback
+        // service does not go to children of the clock carousel in the view hierarchy
+        info?.contentDescription = contentDescriptionOfSelectedClock
+    }
+
+    override fun performAccessibilityAction(host: View?, action: Int, args: Bundle?): Boolean {
+        when (action) {
+            ACTION_SCROLL_BACKWARD -> {
+                scrollBackwardCallback.invoke()
+                return true
+            }
+            ACTION_SCROLL_FORWARD -> {
+                scrollForwardCallback.invoke()
+                return true
+            }
+        }
+        return super.performAccessibilityAction(host, action, args)
+    }
+}
diff --git a/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt b/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
index 9ad735d..89fac89 100644
--- a/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
+++ b/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
@@ -15,10 +15,12 @@
  */
 package com.android.customization.picker.clock.ui.binder
 
+import android.content.Context
 import android.view.ViewGroup
 import android.widget.FrameLayout
 import androidx.core.view.isVisible
 import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleEventObserver
 import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.lifecycleScope
 import androidx.lifecycle.repeatOnLifecycle
@@ -26,26 +28,39 @@
 import com.android.customization.picker.clock.ui.view.ClockViewFactory
 import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
 import com.android.wallpaper.R
+import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewClickView
+import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.launch
 
 object ClockCarouselViewBinder {
-    /**
-     * The binding is used by the view where there is an action executed from another view, e.g.
-     * toggling show/hide of the view that the binder is holding.
-     */
-    interface Binding {
-        fun show()
-        fun hide()
-    }
 
     @JvmStatic
     fun bind(
+        context: Context,
         carouselView: ClockCarouselView,
         singleClockView: ViewGroup,
+        screenPreviewClickView: ScreenPreviewClickView,
         viewModel: ClockCarouselViewModel,
         clockViewFactory: ClockViewFactory,
         lifecycleOwner: LifecycleOwner,
-    ): Binding {
+        isTwoPaneAndSmallWidth: Boolean,
+    ) {
+        carouselView.setClockViewFactory(clockViewFactory)
+        clockViewFactory.updateRegionDarkness()
+        val carouselAccessibilityDelegate =
+            CarouselAccessibilityDelegate(
+                context,
+                scrollForwardCallback = {
+                    // Callback code for scrolling forward
+                    carouselView.transitionToNext()
+                },
+                scrollBackwardCallback = {
+                    // Callback code for scrolling backward
+                    carouselView.transitionToPrevious()
+                }
+            )
+        screenPreviewClickView.accessibilityDelegate = carouselAccessibilityDelegate
+
         val singleClockHostView =
             singleClockView.requireViewById<FrameLayout>(R.id.single_clock_host_view)
         lifecycleOwner.lifecycleScope.launch {
@@ -53,17 +68,29 @@
                 launch { viewModel.isCarouselVisible.collect { carouselView.isVisible = it } }
 
                 launch {
-                    viewModel.allClockIds.collect { allClockIds ->
+                    combine(viewModel.selectedClockSize, viewModel.allClocks, ::Pair).collect {
+                        (size, allClocks) ->
                         carouselView.setUpClockCarouselView(
-                            clockIds = allClockIds,
-                            onGetClockPreview = { clockId -> clockViewFactory.getView(clockId) },
-                            onClockSelected = { clockId -> viewModel.setSelectedClock(clockId) },
+                            clockSize = size,
+                            clocks = allClocks,
+                            onClockSelected = { clock ->
+                                viewModel.setSelectedClock(clock.clockId)
+                            },
+                            isTwoPaneAndSmallWidth = isTwoPaneAndSmallWidth,
                         )
                     }
                 }
 
                 launch {
+                    viewModel.allClocks.collect {
+                        it.forEach { clock -> clockViewFactory.updateTimeFormat(clock.clockId) }
+                    }
+                }
+
+                launch {
                     viewModel.selectedIndex.collect { selectedIndex ->
+                        carouselAccessibilityDelegate.contentDescriptionOfSelectedClock =
+                            carouselView.getContentDescription(selectedIndex)
                         carouselView.setSelectedClockIndex(selectedIndex)
                     }
                 }
@@ -79,7 +106,7 @@
                 launch {
                     viewModel.clockId.collect { clockId ->
                         singleClockHostView.removeAllViews()
-                        val clockView = clockViewFactory.getView(clockId)
+                        val clockView = clockViewFactory.getLargeView(clockId)
                         // The clock view might still be attached to an existing parent. Detach
                         // before adding to another parent.
                         (clockView.parent as? ViewGroup)?.removeView(clockView)
@@ -89,22 +116,18 @@
             }
         }
 
-        lifecycleOwner.lifecycleScope.launch {
-            lifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) {
-                clockViewFactory.registerTimeTicker()
+        lifecycleOwner.lifecycle.addObserver(
+            LifecycleEventObserver { source, event ->
+                when (event) {
+                    Lifecycle.Event.ON_RESUME -> {
+                        clockViewFactory.registerTimeTicker(source)
+                    }
+                    Lifecycle.Event.ON_PAUSE -> {
+                        clockViewFactory.unregisterTimeTicker(source)
+                    }
+                    else -> {}
+                }
             }
-            // When paused
-            clockViewFactory.unregisterTimeTicker()
-        }
-
-        return object : Binding {
-            override fun show() {
-                viewModel.showClockCarousel(true)
-            }
-
-            override fun hide() {
-                viewModel.showClockCarousel(false)
-            }
-        }
+        )
     }
 }
diff --git a/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt b/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt
index 66d9251..4f4bd1b 100644
--- a/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt
+++ b/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt
@@ -15,13 +15,17 @@
  */
 package com.android.customization.picker.clock.ui.binder
 
+import android.content.res.Configuration
+import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
-import android.widget.FrameLayout
+import android.widget.LinearLayout
 import android.widget.SeekBar
+import androidx.core.view.doOnPreDraw
 import androidx.core.view.isInvisible
 import androidx.core.view.isVisible
 import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleEventObserver
 import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.lifecycleScope
 import androidx.lifecycle.repeatOnLifecycle
@@ -29,38 +33,37 @@
 import androidx.recyclerview.widget.RecyclerView
 import com.android.customization.picker.clock.shared.ClockSize
 import com.android.customization.picker.clock.ui.adapter.ClockSettingsTabAdapter
+import com.android.customization.picker.clock.ui.view.ClockHostView
 import com.android.customization.picker.clock.ui.view.ClockSizeRadioButtonGroup
 import com.android.customization.picker.clock.ui.view.ClockViewFactory
 import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
-import com.android.customization.picker.color.ui.adapter.ColorOptionAdapter
+import com.android.customization.picker.color.ui.binder.ColorOptionIconBinder
 import com.android.customization.picker.common.ui.view.ItemSpacing
 import com.android.wallpaper.R
+import com.android.wallpaper.picker.option.ui.binder.OptionItemBinder
+import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.mapNotNull
 import kotlinx.coroutines.launch
 
 /** Bind between the clock settings screen and its view model. */
 object ClockSettingsBinder {
+    private const val SLIDER_ENABLED_ALPHA = 1f
+    private const val SLIDER_DISABLED_ALPHA = .3f
+    private const val COLOR_PICKER_ITEM_PREFIX_ID = 1234
+
     fun bind(
         view: View,
         viewModel: ClockSettingsViewModel,
         clockViewFactory: ClockViewFactory,
         lifecycleOwner: LifecycleOwner,
     ) {
-        val clockHostView: FrameLayout = view.requireViewById(R.id.clock_host_view)
-
+        val clockHostView: ClockHostView = view.requireViewById(R.id.clock_host_view)
         val tabView: RecyclerView = view.requireViewById(R.id.tabs)
         val tabAdapter = ClockSettingsTabAdapter()
         tabView.adapter = tabAdapter
         tabView.layoutManager = LinearLayoutManager(view.context, RecyclerView.HORIZONTAL, false)
         tabView.addItemDecoration(ItemSpacing(ItemSpacing.TAB_ITEM_SPACING_DP))
-
-        val colorOptionContainerView: RecyclerView = view.requireViewById(R.id.color_options)
-        val colorOptionAdapter = ColorOptionAdapter()
-        colorOptionContainerView.adapter = colorOptionAdapter
-        colorOptionContainerView.layoutManager =
-            LinearLayoutManager(view.context, RecyclerView.HORIZONTAL, false)
-        colorOptionContainerView.addItemDecoration(ItemSpacing(ItemSpacing.ITEM_SPACING_DP))
-
+        val colorOptionContainerListView: LinearLayout = view.requireViewById(R.id.color_options)
         val slider: SeekBar = view.requireViewById(R.id.slider)
         slider.setOnSeekBarChangeListener(
             object : SeekBar.OnSeekBarChangeListener {
@@ -72,7 +75,9 @@
 
                 override fun onStartTrackingTouch(seekBar: SeekBar?) = Unit
                 override fun onStopTrackingTouch(seekBar: SeekBar?) {
-                    seekBar?.progress?.let { viewModel.onSliderProgressStop(it) }
+                    seekBar?.progress?.let {
+                        lifecycleOwner.lifecycleScope.launch { viewModel.onSliderProgressStop(it) }
+                    }
                 }
             }
         )
@@ -90,17 +95,6 @@
         lifecycleOwner.lifecycleScope.launch {
             lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
                 launch {
-                    viewModel.selectedClockId
-                        .mapNotNull { it }
-                        .collect { clockId ->
-                            val clockView = clockViewFactory.getView(clockId)
-                            (clockView.parent as? ViewGroup)?.removeView(clockView)
-                            clockHostView.removeAllViews()
-                            clockHostView.addView(clockView)
-                        }
-                }
-
-                launch {
                     viewModel.seedColor.collect { seedColor ->
                         viewModel.selectedClockId.value?.let { selectedClockId ->
                             clockViewFactory.updateColor(selectedClockId, seedColor)
@@ -127,35 +121,90 @@
 
                 launch {
                     viewModel.colorOptions.collect { colorOptions ->
-                        colorOptionAdapter.setItems(colorOptions)
+                        colorOptions.forEachIndexed { index, colorOption ->
+                            colorOption.payload?.let { payload ->
+                                val item =
+                                    LayoutInflater.from(view.context)
+                                        .inflate(
+                                            R.layout.clock_color_option,
+                                            colorOptionContainerListView,
+                                            false,
+                                        ) as LinearLayout
+                                val darkMode =
+                                    (view.resources.configuration.uiMode and
+                                        Configuration.UI_MODE_NIGHT_MASK ==
+                                        Configuration.UI_MODE_NIGHT_YES)
+                                ColorOptionIconBinder.bind(
+                                    item.requireViewById(R.id.foreground),
+                                    payload,
+                                    darkMode
+                                )
+                                OptionItemBinder.bind(
+                                    view = item,
+                                    viewModel = colorOptions[index],
+                                    lifecycleOwner = lifecycleOwner,
+                                    foregroundTintSpec = null,
+                                )
+
+                                val id = COLOR_PICKER_ITEM_PREFIX_ID + index
+                                item.id = id
+                                colorOptionContainerListView.addView(item)
+                            }
+                        }
                     }
                 }
 
                 launch {
                     viewModel.selectedColorOptionPosition.collect { selectedPosition ->
                         if (selectedPosition != -1) {
-                            // We use "post" because we need to give the adapter item a pass to
-                            // update the view.
-                            colorOptionContainerView.post {
-                                colorOptionContainerView.smoothScrollToPosition(selectedPosition)
-                            }
+                            val colorOptionContainerListView: LinearLayout =
+                                view.requireViewById(R.id.color_options)
+
+                            val selectedView =
+                                colorOptionContainerListView.findViewById<View>(
+                                    COLOR_PICKER_ITEM_PREFIX_ID + selectedPosition
+                                )
+                            selectedView?.parent?.requestChildFocus(selectedView, selectedView)
                         }
                     }
                 }
 
                 launch {
-                    viewModel.selectedClockSize.collect { size ->
-                        when (size) {
-                            ClockSize.DYNAMIC -> {
-                                sizeOptions.radioButtonDynamic.isChecked = true
-                                sizeOptions.radioButtonSmall.isChecked = false
-                            }
-                            ClockSize.SMALL -> {
-                                sizeOptions.radioButtonDynamic.isChecked = false
-                                sizeOptions.radioButtonSmall.isChecked = true
+                    combine(
+                            viewModel.selectedClockId.mapNotNull { it },
+                            viewModel.selectedClockSize,
+                            ::Pair,
+                        )
+                        .collect { (clockId, size) ->
+                            clockHostView.removeAllViews()
+                            val clockView =
+                                when (size) {
+                                    ClockSize.DYNAMIC -> clockViewFactory.getLargeView(clockId)
+                                    ClockSize.SMALL -> clockViewFactory.getSmallView(clockId)
+                                }
+                            // The clock view might still be attached to an existing parent. Detach
+                            // before adding to another parent.
+                            (clockView.parent as? ViewGroup)?.removeView(clockView)
+                            clockHostView.addView(clockView)
+                            when (size) {
+                                ClockSize.DYNAMIC -> {
+                                    sizeOptions.radioButtonDynamic.isChecked = true
+                                    sizeOptions.radioButtonSmall.isChecked = false
+                                    clockHostView.doOnPreDraw {
+                                        it.pivotX = it.width / 2F
+                                        it.pivotY = it.height / 2F
+                                    }
+                                }
+                                ClockSize.SMALL -> {
+                                    sizeOptions.radioButtonDynamic.isChecked = false
+                                    sizeOptions.radioButtonSmall.isChecked = true
+                                    clockHostView.doOnPreDraw {
+                                        it.pivotX = 0F
+                                        it.pivotY = 0F
+                                    }
+                                }
                             }
                         }
-                    }
                 }
 
                 launch {
@@ -165,17 +214,27 @@
                 }
 
                 launch {
-                    viewModel.isSliderEnabled.collect { isEnabled -> slider.isEnabled = isEnabled }
+                    viewModel.isSliderEnabled.collect { isEnabled ->
+                        slider.isEnabled = isEnabled
+                        slider.alpha =
+                            if (isEnabled) SLIDER_ENABLED_ALPHA else SLIDER_DISABLED_ALPHA
+                    }
                 }
             }
         }
 
-        lifecycleOwner.lifecycleScope.launch {
-            lifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) {
-                clockViewFactory.registerTimeTicker()
+        lifecycleOwner.lifecycle.addObserver(
+            LifecycleEventObserver { source, event ->
+                when (event) {
+                    Lifecycle.Event.ON_RESUME -> {
+                        clockViewFactory.registerTimeTicker(source)
+                    }
+                    Lifecycle.Event.ON_PAUSE -> {
+                        clockViewFactory.unregisterTimeTicker(source)
+                    }
+                    else -> {}
+                }
             }
-            // When paused
-            clockViewFactory.unregisterTimeTicker()
-        }
+        )
     }
 }
diff --git a/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragment.kt b/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragment.kt
index 7e53ac4..f138d6a 100644
--- a/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragment.kt
+++ b/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragment.kt
@@ -36,7 +36,7 @@
         setUpToolbar(view)
         clockRegistry =
             (InjectorProvider.getInjector() as ThemePickerInjector).getClockRegistry(
-                requireContext()
+                requireContext(),
             )
         val listInUse = clockRegistry.getClocks().filter { "NOT_IN_USE" !in it.clockId }
 
diff --git a/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt b/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
index c5cde53..f4684d8 100644
--- a/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
+++ b/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
@@ -26,6 +26,7 @@
 import com.android.customization.picker.clock.ui.binder.ClockSettingsBinder
 import com.android.systemui.shared.clocks.shared.model.ClockPreviewConstants
 import com.android.wallpaper.R
+import com.android.wallpaper.module.CustomizationSections
 import com.android.wallpaper.module.InjectorProvider
 import com.android.wallpaper.picker.AppbarFragment
 import com.android.wallpaper.picker.customization.ui.binder.ScreenPreviewBinder
@@ -66,70 +67,77 @@
         val colorViewModel = injector.getWallpaperColorsViewModel()
         val displayUtils = injector.getDisplayUtils(context)
         ScreenPreviewBinder.bind(
-                activity = activity,
-                previewView = lockScreenView,
-                viewModel =
-                    ScreenPreviewViewModel(
-                        previewUtils =
-                            PreviewUtils(
-                                context = context,
-                                authority =
-                                    resources.getString(
-                                        R.string.lock_screen_preview_provider_authority,
-                                    ),
-                            ),
-                        wallpaperInfoProvider = {
-                            suspendCancellableCoroutine { continuation ->
-                                injector
-                                    .getCurrentWallpaperInfoFactory(context)
-                                    .createCurrentWallpaperInfos(
-                                        { homeWallpaper, lockWallpaper, _ ->
-                                            continuation.resume(
-                                                homeWallpaper ?: lockWallpaper,
-                                                null,
-                                            )
-                                        },
-                                        /* forceRefresh= */ true,
-                                    )
-                            }
-                        },
-                        onWallpaperColorChanged = { colors ->
-                            colorViewModel.setLockWallpaperColors(colors)
-                        },
-                        initialExtrasProvider = {
-                            Bundle().apply {
-                                // Hide the clock from the system UI rendered preview so we can
-                                // place the carousel on top of it.
-                                putBoolean(
-                                    ClockPreviewConstants.KEY_HIDE_CLOCK,
-                                    true,
+            activity = activity,
+            previewView = lockScreenView,
+            viewModel =
+                ScreenPreviewViewModel(
+                    previewUtils =
+                        PreviewUtils(
+                            context = context,
+                            authority =
+                                resources.getString(
+                                    R.string.lock_screen_preview_provider_authority,
+                                ),
+                        ),
+                    wallpaperInfoProvider = { forceReload ->
+                        suspendCancellableCoroutine { continuation ->
+                            injector
+                                .getCurrentWallpaperInfoFactory(context)
+                                .createCurrentWallpaperInfos(
+                                    { homeWallpaper, lockWallpaper, _ ->
+                                        continuation.resume(
+                                            lockWallpaper ?: homeWallpaper,
+                                            null,
+                                        )
+                                    },
+                                    forceReload,
                                 )
-                            }
-                        },
-                    ),
-                lifecycleOwner = this,
-                offsetToStart = displayUtils.isSingleDisplayOrUnfoldedHorizontalHinge(activity),
-            )
-            .show()
+                        }
+                    },
+                    onWallpaperColorChanged = { colors ->
+                        colorViewModel.setLockWallpaperColors(colors)
+                    },
+                    initialExtrasProvider = {
+                        Bundle().apply {
+                            // Hide the clock from the system UI rendered preview so we can
+                            // place the carousel on top of it.
+                            putBoolean(
+                                ClockPreviewConstants.KEY_HIDE_CLOCK,
+                                true,
+                            )
+                        }
+                    },
+                    wallpaperInteractor = injector.getWallpaperInteractor(requireContext()),
+                    screen = CustomizationSections.Screen.LOCK_SCREEN,
+                ),
+            lifecycleOwner = this,
+            offsetToStart = displayUtils.isSingleDisplayOrUnfoldedHorizontalHinge(activity),
+            onWallpaperPreviewDirty = { activity.recreate() },
+        )
 
         ClockSettingsBinder.bind(
             view,
             ViewModelProvider(
-                    requireActivity(),
+                    this,
                     injector.getClockSettingsViewModelFactory(
                         context,
                         injector.getWallpaperColorsViewModel(),
+                        injector.getClockViewFactory(activity),
                     ),
                 )
                 .get(),
             injector.getClockViewFactory(activity),
-            this@ClockSettingsFragment,
+            viewLifecycleOwner,
         )
 
         return view
     }
 
     override fun getDefaultTitle(): CharSequence {
-        return requireContext().getString(R.string.clock_settings_title)
+        return requireContext().getString(R.string.clock_color_and_size_title)
+    }
+
+    override fun getToolbarColorId(): Int {
+        return android.R.color.transparent
     }
 }
diff --git a/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt b/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt
index 90d7c42..8764e54 100644
--- a/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt
+++ b/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt
@@ -16,14 +16,24 @@
 package com.android.customization.picker.clock.ui.view
 
 import android.content.Context
+import android.content.res.Resources
 import android.util.AttributeSet
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import android.widget.FrameLayout
 import androidx.constraintlayout.helper.widget.Carousel
+import androidx.constraintlayout.motion.widget.MotionLayout
+import androidx.constraintlayout.widget.ConstraintSet
+import androidx.core.view.doOnPreDraw
 import androidx.core.view.get
+import androidx.core.view.isNotEmpty
+import com.android.customization.picker.clock.shared.ClockSize
+import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselItemViewModel
+import com.android.systemui.plugins.ClockController
 import com.android.wallpaper.R
+import com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
+import java.lang.Float.max
 
 class ClockCarouselView(
     context: Context,
@@ -34,53 +44,475 @@
         attrs,
     ) {
 
-    private val carousel: Carousel
+    val carousel: Carousel
+    private val motionLayout: MotionLayout
     private lateinit var adapter: ClockCarouselAdapter
+    private lateinit var clockViewFactory: ClockViewFactory
+    private var toCenterClockController: ClockController? = null
+    private var offCenterClockController: ClockController? = null
+    private var toCenterClockScaleView: View? = null
+    private var offCenterClockScaleView: View? = null
+    private var toCenterClockHostView: ClockHostView? = null
+    private var offCenterClockHostView: ClockHostView? = null
+    private var toCenterCardView: View? = null
+    private var offCenterCardView: View? = null
 
     init {
-        val view = LayoutInflater.from(context).inflate(R.layout.clock_carousel, this)
-        carousel = view.requireViewById(R.id.carousel)
+        val clockCarousel = LayoutInflater.from(context).inflate(R.layout.clock_carousel, this)
+        carousel = clockCarousel.requireViewById(R.id.carousel)
+        motionLayout = clockCarousel.requireViewById(R.id.motion_container)
+        motionLayout.contentDescription = context.getString(R.string.custom_clocks_label)
+    }
+
+    /**
+     * Make sure to set [clockViewFactory] before calling any functions from [ClockCarouselView].
+     */
+    fun setClockViewFactory(factory: ClockViewFactory) {
+        clockViewFactory = factory
+    }
+
+    fun transitionToNext() {
+        val index = (carousel.currentIndex + 1) % carousel.count
+        if (index < carousel.count && index > 0) {
+            carousel.transitionToIndex(index, 0)
+        }
+    }
+
+    fun transitionToPrevious() {
+        val index = (carousel.currentIndex - 1) % carousel.count
+        if (index < carousel.count && index > 0) {
+            carousel.transitionToIndex(index, 0)
+        }
+    }
+
+    fun getContentDescription(index: Int): String {
+        return adapter.getContentDescription(index, resources)
     }
 
     fun setUpClockCarouselView(
-        clockIds: List<String>,
-        onGetClockPreview: (clockId: String) -> View,
-        onClockSelected: (clockId: String) -> Unit,
+        clockSize: ClockSize,
+        clocks: List<ClockCarouselItemViewModel>,
+        onClockSelected: (clock: ClockCarouselItemViewModel) -> Unit,
+        isTwoPaneAndSmallWidth: Boolean,
     ) {
-        adapter = ClockCarouselAdapter(clockIds, onGetClockPreview, onClockSelected)
+        if (isTwoPaneAndSmallWidth) {
+            overrideScreenPreviewWidth()
+        }
+
+        adapter = ClockCarouselAdapter(clockSize, clocks, clockViewFactory, onClockSelected)
         carousel.setAdapter(adapter)
         carousel.refresh()
+        motionLayout.setTransitionListener(
+            object : MotionLayout.TransitionListener {
+
+                override fun onTransitionStarted(
+                    motionLayout: MotionLayout?,
+                    startId: Int,
+                    endId: Int
+                ) {
+                    if (motionLayout == null) {
+                        return
+                    }
+                    when (clockSize) {
+                        ClockSize.DYNAMIC -> prepareDynamicClockView(motionLayout, endId)
+                        ClockSize.SMALL -> prepareSmallClockView(motionLayout, endId)
+                    }
+                    prepareCardView(motionLayout, endId)
+                    setCarouselItemAnimationState(true)
+                }
+
+                override fun onTransitionChange(
+                    motionLayout: MotionLayout?,
+                    startId: Int,
+                    endId: Int,
+                    progress: Float,
+                ) {
+                    when (clockSize) {
+                        ClockSize.DYNAMIC -> onDynamicClockViewTransition(progress)
+                        ClockSize.SMALL -> onSmallClockViewTransition(progress)
+                    }
+                    onCardViewTransition(progress)
+                }
+
+                override fun onTransitionCompleted(motionLayout: MotionLayout?, currentId: Int) {
+                    setCarouselItemAnimationState(currentId == R.id.start)
+                }
+
+                private fun prepareDynamicClockView(motionLayout: MotionLayout, endId: Int) {
+                    val scalingDownClockId = adapter.clocks[carousel.currentIndex].clockId
+                    val scalingUpIdx =
+                        if (endId == R.id.next) (carousel.currentIndex + 1) % adapter.count()
+                        else (carousel.currentIndex - 1 + adapter.count()) % adapter.count()
+                    val scalingUpClockId = adapter.clocks[scalingUpIdx].clockId
+                    offCenterClockController = clockViewFactory.getController(scalingDownClockId)
+                    toCenterClockController = clockViewFactory.getController(scalingUpClockId)
+                    offCenterClockScaleView = motionLayout.findViewById(R.id.clock_scale_view_2)
+                    toCenterClockScaleView =
+                        motionLayout.findViewById(
+                            if (endId == R.id.next) R.id.clock_scale_view_3
+                            else R.id.clock_scale_view_1
+                        )
+                }
+
+                private fun prepareSmallClockView(motionLayout: MotionLayout, endId: Int) {
+                    offCenterClockHostView = motionLayout.findViewById(R.id.clock_host_view_2)
+                    toCenterClockHostView =
+                        motionLayout.findViewById(
+                            if (endId == R.id.next) R.id.clock_host_view_3
+                            else R.id.clock_host_view_1
+                        )
+                }
+
+                private fun prepareCardView(motionLayout: MotionLayout, endId: Int) {
+                    offCenterCardView = motionLayout.findViewById(R.id.item_card_2)
+                    toCenterCardView =
+                        motionLayout.findViewById(
+                            if (endId == R.id.next) R.id.item_card_3 else R.id.item_card_1
+                        )
+                }
+
+                private fun onCardViewTransition(progress: Float) {
+                    offCenterCardView?.alpha = getShowingAlpha(progress)
+                    toCenterCardView?.alpha = getHidingAlpha(progress)
+                }
+
+                private fun onDynamicClockViewTransition(progress: Float) {
+                    offCenterClockController
+                        ?.largeClock
+                        ?.animations
+                        ?.onPickerCarouselSwiping(1 - progress)
+                    toCenterClockController
+                        ?.largeClock
+                        ?.animations
+                        ?.onPickerCarouselSwiping(progress)
+                    val scalingDownScale = getScalingDownScale(progress)
+                    val scalingUpScale = getScalingUpScale(progress)
+                    offCenterClockScaleView?.scaleX = scalingDownScale
+                    offCenterClockScaleView?.scaleY = scalingDownScale
+                    toCenterClockScaleView?.scaleX = scalingUpScale
+                    toCenterClockScaleView?.scaleY = scalingUpScale
+                }
+
+                private fun onSmallClockViewTransition(progress: Float) {
+                    val offCenterClockHostView = offCenterClockHostView ?: return
+                    val toCenterClockHostView = toCenterClockHostView ?: return
+                    val offCenterClockFrame =
+                        if (offCenterClockHostView.isNotEmpty()) {
+                            offCenterClockHostView[0]
+                        } else {
+                            null
+                        }
+                            ?: return
+                    val toCenterClockFrame =
+                        if (toCenterClockHostView.isNotEmpty()) {
+                            toCenterClockHostView[0]
+                        } else {
+                            null
+                        }
+                            ?: return
+                    offCenterClockHostView.doOnPreDraw {
+                        it.pivotX = progress * it.width / 2
+                        it.pivotY = progress * it.height / 2
+                    }
+                    toCenterClockHostView.doOnPreDraw {
+                        it.pivotX = (1 - progress) * it.width / 2
+                        it.pivotY = (1 - progress) * it.height / 2
+                    }
+                    offCenterClockFrame.translationX =
+                        getTranslationDistance(
+                            offCenterClockHostView.width,
+                            offCenterClockFrame.width,
+                            offCenterClockFrame.left,
+                        ) * progress
+                    offCenterClockFrame.translationY =
+                        getTranslationDistance(
+                            offCenterClockHostView.height,
+                            offCenterClockFrame.height,
+                            offCenterClockFrame.top,
+                        ) * progress
+                    toCenterClockFrame.translationX =
+                        getTranslationDistance(
+                            toCenterClockHostView.width,
+                            toCenterClockFrame.width,
+                            toCenterClockFrame.left,
+                        ) * (1 - progress)
+                    toCenterClockFrame.translationY =
+                        getTranslationDistance(
+                            toCenterClockHostView.height,
+                            toCenterClockFrame.height,
+                            toCenterClockFrame.top,
+                        ) * (1 - progress)
+                }
+
+                private fun setCarouselItemAnimationState(isStart: Boolean) {
+                    when (clockSize) {
+                        ClockSize.DYNAMIC -> onDynamicClockViewTransition(if (isStart) 0f else 1f)
+                        ClockSize.SMALL -> onSmallClockViewTransition(if (isStart) 0f else 1f)
+                    }
+                    onCardViewTransition(if (isStart) 0f else 1f)
+                }
+
+                override fun onTransitionTrigger(
+                    motionLayout: MotionLayout?,
+                    triggerId: Int,
+                    positive: Boolean,
+                    progress: Float
+                ) {}
+            }
+        )
     }
 
     fun setSelectedClockIndex(
         index: Int,
     ) {
-        carousel.jumpToIndex(index)
+        // jumpToIndex to the same position can cause the views unnecessarily populate again.
+        // Only call jumpToIndex when the jump-to index is different from the current carousel.
+        if (index != carousel.currentIndex) {
+            carousel.jumpToIndex(index)
+        }
     }
 
-    class ClockCarouselAdapter(
-        val clockIds: List<String>,
-        val onGetClockPreview: (clockId: String) -> View,
-        val onClockSelected: (clockId: String) -> Unit,
+    private fun overrideScreenPreviewWidth() {
+        val overrideWidth =
+            context.resources.getDimensionPixelSize(
+                R.dimen.screen_preview_width_for_2_pane_small_width
+            )
+        itemViewIds.forEach { id ->
+            val itemView = motionLayout.requireViewById<FrameLayout>(id)
+            val itemViewLp = itemView.layoutParams
+            itemViewLp.width = overrideWidth
+            itemView.layoutParams = itemViewLp
+
+            getClockScaleViewId(id)?.let {
+                val scaleView = motionLayout.requireViewById<FixedWidthDisplayRatioFrameLayout>(it)
+                val scaleViewLp = scaleView.layoutParams
+                scaleViewLp.width = overrideWidth
+                scaleView.layoutParams = scaleViewLp
+            }
+        }
+
+        val previousConstaintSet = motionLayout.getConstraintSet(R.id.previous)
+        val startConstaintSet = motionLayout.getConstraintSet(R.id.start)
+        val nextConstaintSet = motionLayout.getConstraintSet(R.id.next)
+        val constaintSetList =
+            listOf<ConstraintSet>(previousConstaintSet, startConstaintSet, nextConstaintSet)
+        constaintSetList.forEach { constraintSet ->
+            itemViewIds.forEach { id ->
+                constraintSet.getConstraint(id)?.let { constraint ->
+                    val layout = constraint.layout
+                    if (
+                        constraint.layout.mWidth ==
+                            context.resources.getDimensionPixelSize(R.dimen.screen_preview_width)
+                    ) {
+                        layout.mWidth = overrideWidth
+                    }
+                    if (
+                        constraint.layout.widthMax ==
+                            context.resources.getDimensionPixelSize(R.dimen.screen_preview_width)
+                    ) {
+                        layout.widthMax = overrideWidth
+                    }
+                }
+            }
+        }
+    }
+
+    private class ClockCarouselAdapter(
+        val clockSize: ClockSize,
+        val clocks: List<ClockCarouselItemViewModel>,
+        private val clockViewFactory: ClockViewFactory,
+        private val onClockSelected: (clock: ClockCarouselItemViewModel) -> Unit
     ) : Carousel.Adapter {
 
+        fun getContentDescription(index: Int, resources: Resources): String {
+            return clocks[index].getContentDescription(resources)
+        }
+
         override fun count(): Int {
-            return clockIds.size
+            return clocks.size
         }
 
         override fun populate(view: View?, index: Int) {
-            val viewRoot = view as ViewGroup
-            val clockHostView = viewRoot[0] as ViewGroup
+            val viewRoot = view as? ViewGroup ?: return
+            val cardView =
+                getClockCardViewId(viewRoot.id)?.let { viewRoot.findViewById(it) as? View }
+                    ?: return
+            val clockScaleView =
+                getClockScaleViewId(viewRoot.id)?.let { viewRoot.findViewById(it) as? View }
+                    ?: return
+            val clockHostView =
+                getClockHostViewId(viewRoot.id)?.let { viewRoot.findViewById(it) as? ClockHostView }
+                    ?: return
+            val clockId = clocks[index].clockId
+
+            // Add the clock view to the cloc host view
             clockHostView.removeAllViews()
-            val clockView = onGetClockPreview(clockIds[index])
+            val clockView =
+                when (clockSize) {
+                    ClockSize.DYNAMIC -> clockViewFactory.getLargeView(clockId)
+                    ClockSize.SMALL -> clockViewFactory.getSmallView(clockId)
+                }
             // The clock view might still be attached to an existing parent. Detach before adding to
             // another parent.
             (clockView.parent as? ViewGroup)?.removeView(clockView)
             clockHostView.addView(clockView)
+
+            val isMiddleView = isMiddleView(viewRoot.id)
+
+            // Accessibility
+            viewRoot.contentDescription = getContentDescription(index, view.resources)
+            viewRoot.isSelected = isMiddleView
+
+            when (clockSize) {
+                ClockSize.DYNAMIC ->
+                    initializeDynamicClockView(
+                        isMiddleView,
+                        clockScaleView,
+                        clockId,
+                        clockHostView,
+                    )
+                ClockSize.SMALL ->
+                    initializeSmallClockView(
+                        isMiddleView,
+                        clockHostView,
+                        clockView,
+                    )
+            }
+            cardView.alpha = if (isMiddleView) 0f else 1f
+        }
+
+        private fun initializeDynamicClockView(
+            isMiddleView: Boolean,
+            clockScaleView: View,
+            clockId: String,
+            clockHostView: ClockHostView,
+        ) {
+            clockHostView.doOnPreDraw {
+                it.pivotX = it.width / 2F
+                it.pivotY = it.height / 2F
+            }
+            if (isMiddleView) {
+                clockScaleView.scaleX = 1f
+                clockScaleView.scaleY = 1f
+                clockViewFactory
+                    .getController(clockId)
+                    .largeClock
+                    .animations
+                    .onPickerCarouselSwiping(1F)
+            } else {
+                clockScaleView.scaleX = CLOCK_CAROUSEL_VIEW_SCALE
+                clockScaleView.scaleY = CLOCK_CAROUSEL_VIEW_SCALE
+                clockViewFactory
+                    .getController(clockId)
+                    .largeClock
+                    .animations
+                    .onPickerCarouselSwiping(0F)
+            }
+        }
+
+        private fun initializeSmallClockView(
+            isMiddleView: Boolean,
+            clockHostView: ClockHostView,
+            clockView: View,
+        ) {
+            clockHostView.doOnPreDraw {
+                if (isMiddleView) {
+                    it.pivotX = 0F
+                    it.pivotY = 0F
+                    clockView.translationX = 0F
+                    clockView.translationY = 0F
+                } else {
+                    it.pivotX = it.width / 2F
+                    it.pivotY = it.height / 2F
+                    clockView.translationX =
+                        getTranslationDistance(
+                            clockHostView.width,
+                            clockView.width,
+                            clockView.left,
+                        )
+                    clockView.translationY =
+                        getTranslationDistance(
+                            clockHostView.height,
+                            clockView.height,
+                            clockView.top,
+                        )
+                }
+            }
         }
 
         override fun onNewItem(index: Int) {
-            onClockSelected.invoke(clockIds[index])
+            onClockSelected.invoke(clocks[index])
+        }
+    }
+
+    companion object {
+        const val CLOCK_CAROUSEL_VIEW_SCALE = 0.5f
+
+        val itemViewIds =
+            listOf(
+                R.id.item_view_0,
+                R.id.item_view_1,
+                R.id.item_view_2,
+                R.id.item_view_3,
+                R.id.item_view_4
+            )
+
+        fun getScalingUpScale(progress: Float) =
+            CLOCK_CAROUSEL_VIEW_SCALE + progress * (1f - CLOCK_CAROUSEL_VIEW_SCALE)
+
+        fun getScalingDownScale(progress: Float) = 1f - progress * (1f - CLOCK_CAROUSEL_VIEW_SCALE)
+
+        // This makes the card only starts to reveal in the last quarter of the trip so
+        // the card won't overlap the preview.
+        fun getShowingAlpha(progress: Float) = max(progress - 0.75f, 0f) * 4
+
+        // This makes the card starts to hide in the first quarter of the trip so the
+        // card won't overlap the preview.
+        fun getHidingAlpha(progress: Float) = max(1f - progress * 4, 0f)
+
+        fun getClockHostViewId(rootViewId: Int): Int? {
+            return when (rootViewId) {
+                R.id.item_view_0 -> R.id.clock_host_view_0
+                R.id.item_view_1 -> R.id.clock_host_view_1
+                R.id.item_view_2 -> R.id.clock_host_view_2
+                R.id.item_view_3 -> R.id.clock_host_view_3
+                R.id.item_view_4 -> R.id.clock_host_view_4
+                else -> null
+            }
+        }
+
+        fun getClockScaleViewId(rootViewId: Int): Int? {
+            return when (rootViewId) {
+                R.id.item_view_0 -> R.id.clock_scale_view_0
+                R.id.item_view_1 -> R.id.clock_scale_view_1
+                R.id.item_view_2 -> R.id.clock_scale_view_2
+                R.id.item_view_3 -> R.id.clock_scale_view_3
+                R.id.item_view_4 -> R.id.clock_scale_view_4
+                else -> null
+            }
+        }
+
+        fun getClockCardViewId(rootViewId: Int): Int? {
+            return when (rootViewId) {
+                R.id.item_view_0 -> R.id.item_card_0
+                R.id.item_view_1 -> R.id.item_card_1
+                R.id.item_view_2 -> R.id.item_card_2
+                R.id.item_view_3 -> R.id.item_card_3
+                R.id.item_view_4 -> R.id.item_card_4
+                else -> null
+            }
+        }
+
+        fun isMiddleView(rootViewId: Int): Boolean {
+            return rootViewId == R.id.item_view_2
+        }
+
+        private fun getTranslationDistance(
+            hostLength: Int,
+            frameLength: Int,
+            edgeDimen: Int,
+        ): Float {
+            return ((hostLength - frameLength) / 2 - edgeDimen).toFloat()
         }
     }
 }
diff --git a/src/com/android/customization/picker/clock/ui/view/ClockHostView.kt b/src/com/android/customization/picker/clock/ui/view/ClockHostView.kt
new file mode 100644
index 0000000..512fcd1
--- /dev/null
+++ b/src/com/android/customization/picker/clock/ui/view/ClockHostView.kt
@@ -0,0 +1,55 @@
+package com.android.customization.picker.clock.ui.view
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.View
+import android.view.View.MeasureSpec.EXACTLY
+import android.widget.FrameLayout
+import com.android.wallpaper.util.ScreenSizeCalculator
+
+/**
+ * The parent view for each clock view in picker carousel This view will give a container with the
+ * same size of lockscreen to layout clock and scale down it to the size in picker carousel
+ * according to ratio of preview to LS
+ */
+class ClockHostView(
+    context: Context,
+    attrs: AttributeSet?,
+) : FrameLayout(context, attrs) {
+    private var previewRatio: Float = 1F
+        set(value) {
+            if (field != value) {
+                field = value
+                scaleX = previewRatio
+                scaleY = previewRatio
+                invalidate()
+            }
+        }
+
+    override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
+        super.onMeasure(widthMeasureSpec, heightMeasureSpec)
+        val screenSize = ScreenSizeCalculator.getInstance().getScreenSize(display)
+        previewRatio = measuredWidth / screenSize.x.toFloat()
+    }
+
+    /**
+     * In clock picker, we want to clock layout and render at lockscreen size and scale down so that
+     * the preview in clock carousel will be the same as lockscreen
+     */
+    override fun measureChildWithMargins(
+        child: View?,
+        parentWidthMeasureSpec: Int,
+        widthUsed: Int,
+        parentHeightMeasureSpec: Int,
+        heightUsed: Int
+    ) {
+        val screenSize = ScreenSizeCalculator.getInstance().getScreenSize(display)
+        super.measureChildWithMargins(
+            child,
+            MeasureSpec.makeMeasureSpec(screenSize.x, EXACTLY),
+            widthUsed,
+            MeasureSpec.makeMeasureSpec(screenSize.y, EXACTLY),
+            heightUsed
+        )
+    }
+}
diff --git a/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt b/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt
index 7f480de..3f6f423 100644
--- a/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt
+++ b/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt
@@ -15,61 +15,226 @@
  */
 package com.android.customization.picker.clock.ui.view
 
-import android.app.Activity
+import android.app.WallpaperColors
+import android.app.WallpaperManager
+import android.content.Context
+import android.content.res.Resources
+import android.graphics.Point
+import android.graphics.Rect
 import android.view.View
+import android.widget.FrameLayout
 import androidx.annotation.ColorInt
+import androidx.core.text.util.LocalePreferences
+import androidx.lifecycle.LifecycleOwner
 import com.android.systemui.plugins.ClockController
+import com.android.systemui.plugins.WeatherData
 import com.android.systemui.shared.clocks.ClockRegistry
 import com.android.wallpaper.R
-import com.android.wallpaper.util.ScreenSizeCalculator
 import com.android.wallpaper.util.TimeUtils.TimeTicker
+import java.util.concurrent.ConcurrentHashMap
 
+/**
+ * Provide reusable clock view and related util functions.
+ *
+ * @property screenSize The Activity or Fragment's window size.
+ */
 class ClockViewFactory(
-    private val activity: Activity,
+    private val appContext: Context,
+    val screenSize: Point,
+    private val wallpaperManager: WallpaperManager,
     private val registry: ClockRegistry,
 ) {
+    private val resources = appContext.resources
+    private val timeTickListeners: ConcurrentHashMap<Int, TimeTicker> = ConcurrentHashMap()
     private val clockControllers: HashMap<String, ClockController> = HashMap()
-    private var ticker: TimeTicker? = null
+    private val smallClockFrames: HashMap<String, FrameLayout> = HashMap()
 
-    fun getView(clockId: String): View {
-        return (clockControllers[clockId] ?: initClockController(clockId)).largeClock.view
+    fun getController(clockId: String): ClockController {
+        return clockControllers[clockId]
+            ?: initClockController(clockId).also { clockControllers[clockId] = it }
     }
 
+    /**
+     * Reset the large view to its initial state when getting the view. This is because some view
+     * configs, e.g. animation state, might change during the reuse of the clock view in the app.
+     */
+    fun getLargeView(clockId: String): View {
+        return getController(clockId).largeClock.let {
+            it.animations.onPickerCarouselSwiping(1F)
+            it.view
+        }
+    }
+
+    /**
+     * Reset the small view to its initial state when getting the view. This is because some view
+     * configs, e.g. translation X, might change during the reuse of the clock view in the app.
+     */
+    fun getSmallView(clockId: String): View {
+        val smallClockFrame =
+            smallClockFrames[clockId]
+                ?: createSmallClockFrame().also {
+                    it.addView(getController(clockId).smallClock.view)
+                    smallClockFrames[clockId] = it
+                }
+        smallClockFrame.translationX = 0F
+        smallClockFrame.translationY = 0F
+        return smallClockFrame
+    }
+
+    private fun createSmallClockFrame(): FrameLayout {
+        val smallClockFrame = FrameLayout(appContext)
+        val layoutParams =
+            FrameLayout.LayoutParams(
+                FrameLayout.LayoutParams.WRAP_CONTENT,
+                resources.getDimensionPixelSize(R.dimen.small_clock_height)
+            )
+        layoutParams.topMargin = getSmallClockTopMargin()
+        layoutParams.marginStart = getSmallClockStartPadding()
+        smallClockFrame.layoutParams = layoutParams
+        smallClockFrame.clipChildren = false
+        return smallClockFrame
+    }
+
+    private fun getSmallClockTopMargin() =
+        getStatusBarHeight(appContext.resources) +
+            appContext.resources.getDimensionPixelSize(R.dimen.small_clock_padding_top)
+
+    private fun getSmallClockStartPadding() =
+        appContext.resources.getDimensionPixelSize(R.dimen.clock_padding_start)
+
     fun updateColorForAllClocks(@ColorInt seedColor: Int?) {
         clockControllers.values.forEach { it.events.onSeedColorChanged(seedColor = seedColor) }
     }
 
     fun updateColor(clockId: String, @ColorInt seedColor: Int?) {
-        return (clockControllers[clockId] ?: initClockController(clockId))
+        clockControllers[clockId]?.events?.onSeedColorChanged(seedColor)
+    }
+
+    fun updateRegionDarkness() {
+        val isRegionDark = isLockscreenWallpaperDark()
+        clockControllers.values.forEach {
+            it.largeClock.events.onRegionDarknessChanged(isRegionDark)
+            it.smallClock.events.onRegionDarknessChanged(isRegionDark)
+        }
+    }
+
+    private fun isLockscreenWallpaperDark(): Boolean {
+        val colors = wallpaperManager.getWallpaperColors(WallpaperManager.FLAG_LOCK)
+        return (colors?.colorHints?.and(WallpaperColors.HINT_SUPPORTS_DARK_TEXT)) == 0
+    }
+
+    fun updateTimeFormat(clockId: String) {
+        getController(clockId)
             .events
-            .onSeedColorChanged(seedColor)
+            .onTimeFormatChanged(android.text.format.DateFormat.is24HourFormat(appContext))
     }
 
-    fun registerTimeTicker() {
-        ticker =
-            TimeTicker.registerNewReceiver(activity.applicationContext) {
-                clockControllers.values.forEach { it.largeClock.events.onTimeTick() }
-            }
+    fun registerTimeTicker(owner: LifecycleOwner) {
+        val hashCode = owner.hashCode()
+        if (timeTickListeners.keys.contains(hashCode)) {
+            return
+        }
+
+        timeTickListeners[hashCode] = TimeTicker.registerNewReceiver(appContext) { onTimeTick() }
     }
 
-    fun unregisterTimeTicker() {
-        activity.applicationContext.unregisterReceiver(ticker)
+    fun onDestroy() {
+        timeTickListeners.forEach { (_, timeTicker) -> appContext.unregisterReceiver(timeTicker) }
+        timeTickListeners.clear()
+        clockControllers.clear()
+        smallClockFrames.clear()
+    }
+
+    private fun onTimeTick() {
+        clockControllers.values.forEach {
+            it.largeClock.events.onTimeTick()
+            it.smallClock.events.onTimeTick()
+        }
+    }
+
+    fun unregisterTimeTicker(owner: LifecycleOwner) {
+        val hashCode = owner.hashCode()
+        timeTickListeners[hashCode]?.let {
+            appContext.unregisterReceiver(it)
+            timeTickListeners.remove(hashCode)
+        }
     }
 
     private fun initClockController(clockId: String): ClockController {
         val controller =
-            registry.createExampleClock(clockId).also { it?.initialize(activity.resources, 0f, 0f) }
+            registry.createExampleClock(clockId).also { it?.initialize(resources, 0f, 0f) }
         checkNotNull(controller)
-        val screenSizeCalculator = ScreenSizeCalculator.getInstance()
-        val screenSize = screenSizeCalculator.getScreenSize(activity.windowManager.defaultDisplay)
-        val ratio =
-            activity.resources.getDimensionPixelSize(R.dimen.screen_preview_height).toFloat() /
-                screenSize.y.toFloat()
+
+        val isWallpaperDark = isLockscreenWallpaperDark()
+        // Initialize large clock
+        controller.largeClock.events.onRegionDarknessChanged(isWallpaperDark)
         controller.largeClock.events.onFontSettingChanged(
-            activity.resources.getDimensionPixelSize(R.dimen.large_clock_text_size).toFloat() *
-                ratio
+            resources.getDimensionPixelSize(R.dimen.large_clock_text_size).toFloat()
         )
-        clockControllers[clockId] = controller
+        controller.largeClock.events.onTargetRegionChanged(getLargeClockRegion())
+
+        // Initialize small clock
+        controller.smallClock.events.onRegionDarknessChanged(isWallpaperDark)
+        controller.smallClock.events.onFontSettingChanged(
+            resources.getDimensionPixelSize(R.dimen.small_clock_text_size).toFloat()
+        )
+        controller.smallClock.events.onTargetRegionChanged(getSmallClockRegion())
+
+        // Use placeholder for weather clock preview in picker.
+        // Use locale default temp unit since assistant default is not available in this context.
+        val useCelsius =
+            LocalePreferences.getTemperatureUnit() == LocalePreferences.TemperatureUnit.CELSIUS
+        controller.events.onWeatherDataChanged(
+            WeatherData(
+                description = DESCRIPTION_PLACEHODLER,
+                state = WEATHERICON_PLACEHOLDER,
+                temperature =
+                    if (useCelsius) TEMPERATURE_CELSIUS_PLACEHOLDER
+                    else TEMPERATURE_FAHRENHEIT_PLACEHOLDER,
+                useCelsius = useCelsius,
+            )
+        )
         return controller
     }
+
+    /**
+     * Simulate the function of getLargeClockRegion in KeyguardClockSwitch so that we can get a
+     * proper region corresponding to lock screen in picker and for onTargetRegionChanged to scale
+     * and position the clock view
+     */
+    private fun getLargeClockRegion(): Rect {
+        val largeClockTopMargin =
+            resources.getDimensionPixelSize(R.dimen.keyguard_large_clock_top_margin)
+        val targetHeight = resources.getDimensionPixelSize(R.dimen.large_clock_text_size) * 2
+        val top = (screenSize.y / 2 - targetHeight / 2 + largeClockTopMargin / 2)
+        return Rect(0, top, screenSize.x, (top + targetHeight))
+    }
+
+    /**
+     * Simulate the function of getSmallClockRegion in KeyguardClockSwitch so that we can get a
+     * proper region corresponding to lock screen in picker and for onTargetRegionChanged to scale
+     * and position the clock view
+     */
+    private fun getSmallClockRegion(): Rect {
+        val topMargin = getSmallClockTopMargin()
+        val targetHeight = resources.getDimensionPixelSize(R.dimen.small_clock_height)
+        return Rect(getSmallClockStartPadding(), topMargin, screenSize.x, topMargin + targetHeight)
+    }
+
+    companion object {
+        const val DESCRIPTION_PLACEHODLER = ""
+        const val TEMPERATURE_FAHRENHEIT_PLACEHOLDER = 58
+        const val TEMPERATURE_CELSIUS_PLACEHOLDER = 21
+        val WEATHERICON_PLACEHOLDER = WeatherData.WeatherStateIcon.MOSTLY_SUNNY
+        const val USE_CELSIUS_PLACEHODLER = false
+
+        private fun getStatusBarHeight(resource: Resources): Int {
+            var result = 0
+            val resourceId: Int = resource.getIdentifier("status_bar_height", "dimen", "android")
+            if (resourceId > 0) {
+                result = resource.getDimensionPixelSize(resourceId)
+            }
+            return result
+        }
+    }
 }
diff --git a/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselItemViewModel.kt b/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselItemViewModel.kt
new file mode 100644
index 0000000..708fa2f
--- /dev/null
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselItemViewModel.kt
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2023 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.picker.clock.ui.viewmodel
+
+import android.content.res.Resources
+import com.android.customization.module.CustomizationInjector
+import com.android.wallpaper.R
+import com.android.wallpaper.module.InjectorProvider
+
+class ClockCarouselItemViewModel(val clockId: String) {
+
+    /** Description for accessibility purposes when a clock is selected. */
+    fun getContentDescription(resources: Resources): String {
+        val clockContent =
+            (InjectorProvider.getInjector() as? CustomizationInjector)
+                ?.getClockDescriptionUtils()
+                ?.getDescriptionResId(clockId)
+                ?.let { resources.getString(it) }
+                ?: ""
+        return resources.getString(R.string.select_clock_action_description, clockContent)
+    }
+}
diff --git a/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModel.kt b/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModel.kt
index 60a9e85..a4f9cc4 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModel.kt
@@ -15,51 +15,60 @@
  */
 package com.android.customization.picker.clock.ui.viewmodel
 
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
 import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
+import com.android.customization.picker.clock.shared.ClockSize
+import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.Job
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.StateFlow
 import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.flatMapLatest
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.mapLatest
 import kotlinx.coroutines.flow.mapNotNull
+import kotlinx.coroutines.flow.stateIn
+import kotlinx.coroutines.launch
 
 /**
  * Clock carousel view model that provides data for the carousel of clock previews. When there is
  * only one item, we should show a single clock preview instead of a carousel.
  */
-class ClockCarouselViewModel(
+class ClockCarouselViewModel
+constructor(
     private val interactor: ClockPickerInteractor,
-) {
+    private val backgroundDispatcher: CoroutineDispatcher,
+) : ViewModel() {
     @OptIn(ExperimentalCoroutinesApi::class)
-    val allClockIds: Flow<List<String>> =
-        interactor.allClocks.mapLatest { allClocks ->
-            // Delay to avoid the case that the full list of clocks is not initiated.
-            delay(CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
-            allClocks.map { it.clockId }
-        }
+    val allClocks: StateFlow<List<ClockCarouselItemViewModel>> =
+        interactor.allClocks
+            .mapLatest { allClocks ->
+                // Delay to avoid the case that the full list of clocks is not initiated.
+                delay(CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
+                allClocks.map { ClockCarouselItemViewModel(it.clockId) }
+            }
+            .stateIn(viewModelScope, SharingStarted.Eagerly, emptyList())
+
+    val selectedClockSize: Flow<ClockSize> = interactor.selectedClockSize
 
     val seedColor: Flow<Int?> = interactor.seedColor
 
-    private val shouldShowCarousel = MutableStateFlow(false)
-    val isCarouselVisible: Flow<Boolean> =
-        combine(allClockIds.map { it.size > 1 }.distinctUntilChanged(), shouldShowCarousel) {
-                hasMoreThanOneClock,
-                shouldShowCarousel ->
-                hasMoreThanOneClock && shouldShowCarousel
-            }
-            .distinctUntilChanged()
+    val isCarouselVisible: Flow<Boolean> = allClocks.map { it.size > 1 }.distinctUntilChanged()
 
     @OptIn(ExperimentalCoroutinesApi::class)
     val selectedIndex: Flow<Int> =
-        allClockIds
+        allClocks
             .flatMapLatest { allClockIds ->
                 interactor.selectedClockId.map { selectedClockId ->
-                    val index = allClockIds.indexOf(selectedClockId)
-                    if (index >= 0) {
+                    val index = allClockIds.indexOfFirst { it.clockId == selectedClockId }
+                    /** Making sure there is no active [setSelectedClockJob] */
+                    val isSetClockIdJobActive = setSelectedClockJob?.isActive == true
+                    if (index >= 0 && !isSetClockIdJobActive) {
                         index
                     } else {
                         null
@@ -69,27 +78,33 @@
             .mapNotNull { it }
 
     // Handle the case when there is only one clock in the carousel
-    private val shouldShowSingleClock = MutableStateFlow(false)
     val isSingleClockViewVisible: Flow<Boolean> =
-        combine(allClockIds.map { it.size == 1 }.distinctUntilChanged(), shouldShowSingleClock) {
-                hasOneClock,
-                shouldShowSingleClock ->
-                hasOneClock && shouldShowSingleClock
-            }
-            .distinctUntilChanged()
+        allClocks.map { it.size == 1 }.distinctUntilChanged()
 
     val clockId: Flow<String> =
-        allClockIds
-            .map { allClockIds -> if (allClockIds.size == 1) allClockIds[0] else null }
+        allClocks
+            .map { allClockIds -> if (allClockIds.size == 1) allClockIds[0].clockId else null }
             .mapNotNull { it }
 
+    private var setSelectedClockJob: Job? = null
     fun setSelectedClock(clockId: String) {
-        interactor.setSelectedClock(clockId)
+        setSelectedClockJob?.cancel()
+        setSelectedClockJob =
+            viewModelScope.launch(backgroundDispatcher) { interactor.setSelectedClock(clockId) }
     }
 
-    fun showClockCarousel(shouldShow: Boolean) {
-        shouldShowCarousel.value = shouldShow
-        shouldShowSingleClock.value = shouldShow
+    class Factory(
+        private val interactor: ClockPickerInteractor,
+        private val backgroundDispatcher: CoroutineDispatcher,
+    ) : ViewModelProvider.Factory {
+        override fun <T : ViewModel> create(modelClass: Class<T>): T {
+            @Suppress("UNCHECKED_CAST")
+            return ClockCarouselViewModel(
+                interactor = interactor,
+                backgroundDispatcher = backgroundDispatcher,
+            )
+                as T
+        }
     }
 
     companion object {
diff --git a/src/com/android/customization/picker/clock/ui/viewmodel/ClockColorViewModel.kt b/src/com/android/customization/picker/clock/ui/viewmodel/ClockColorViewModel.kt
index ea60ae3..9d622da 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockColorViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockColorViewModel.kt
@@ -35,8 +35,8 @@
     }
 
     companion object {
-        const val DEFAULT_COLOR_TONE_MIN = 0
-        const val DEFAULT_COLOR_TONE_MAX = 100
+        private const val DEFAULT_COLOR_TONE_MIN = 0
+        private const val DEFAULT_COLOR_TONE_MAX = 100
 
         fun getPresetColorMap(resources: Resources): Map<String, ClockColorViewModel> {
             val ids = resources.getStringArray(R.array.clock_color_ids)
diff --git a/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt b/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt
index 008a125..8a65522 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt
@@ -35,7 +35,7 @@
             (selectedColorId, selectedClockSize) ->
             val colorText =
                 clockColorMap[selectedColorId]?.colorName
-                    ?: context.getString(R.string.default_theme_title)
+                    ?: appContext.getString(R.string.default_theme_title)
             val sizeText =
                 when (selectedClockSize) {
                     ClockSize.SMALL -> appContext.getString(R.string.clock_size_small)
diff --git a/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModel.kt b/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModel.kt
index c3cd217..a498c71 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModel.kt
@@ -20,15 +20,17 @@
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
-import com.android.customization.model.color.ColorBundle
-import com.android.customization.model.color.ColorSeedOption
+import com.android.customization.model.color.ColorOptionImpl
 import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
 import com.android.customization.picker.clock.shared.ClockSize
 import com.android.customization.picker.clock.shared.model.ClockMetadataModel
 import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
+import com.android.customization.picker.color.shared.model.ColorOptionModel
 import com.android.customization.picker.color.shared.model.ColorType
-import com.android.customization.picker.color.ui.viewmodel.ColorOptionViewModel
+import com.android.customization.picker.color.ui.viewmodel.ColorOptionIconViewModel
 import com.android.wallpaper.R
+import com.android.wallpaper.picker.common.text.ui.viewmodel.Text
+import com.android.wallpaper.picker.option.ui.viewmodel.OptionItemViewModel
 import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.flow.Flow
@@ -38,8 +40,8 @@
 import kotlinx.coroutines.flow.asStateFlow
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.flatMapLatest
 import kotlinx.coroutines.flow.map
-import kotlinx.coroutines.flow.mapLatest
 import kotlinx.coroutines.flow.merge
 import kotlinx.coroutines.flow.stateIn
 import kotlinx.coroutines.launch
@@ -50,6 +52,7 @@
     context: Context,
     private val clockPickerInteractor: ClockPickerInteractor,
     private val colorPickerInteractor: ColorPickerInteractor,
+    private val getIsReactiveToTone: (clockId: String?) -> Boolean,
 ) : ViewModel() {
 
     enum class Tab {
@@ -57,20 +60,27 @@
         SIZE,
     }
 
-    val colorMap = ClockColorViewModel.getPresetColorMap(context.resources)
+    private val colorMap = ClockColorViewModel.getPresetColorMap(context.resources)
 
     val selectedClockId: StateFlow<String?> =
         clockPickerInteractor.selectedClockId
             .distinctUntilChanged()
             .stateIn(viewModelScope, SharingStarted.Eagerly, null)
 
-    val selectedColorId: StateFlow<String?> =
+    private val selectedColorId: StateFlow<String?> =
         clockPickerInteractor.selectedColorId.stateIn(viewModelScope, SharingStarted.Eagerly, null)
 
     private val sliderColorToneProgress =
         MutableStateFlow(ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS)
     val isSliderEnabled: Flow<Boolean> =
-        clockPickerInteractor.selectedColorId.map { it != null }.distinctUntilChanged()
+        combine(selectedClockId, clockPickerInteractor.selectedColorId) { clockId, colorId ->
+                if (colorId == null) {
+                    false
+                } else {
+                    getIsReactiveToTone(clockId)
+                }
+            }
+            .distinctUntilChanged()
     val sliderProgress: Flow<Int> =
         merge(clockPickerInteractor.colorToneProgress, sliderColorToneProgress)
 
@@ -93,7 +103,7 @@
             )
     }
 
-    fun onSliderProgressStop(progress: Int) {
+    suspend fun onSliderProgressStop(progress: Int) {
         val selectedColorId = selectedColorId.value ?: return
         val clockColorViewModel = colorMap[selectedColorId] ?: return
         clockPickerInteractor.setClockColor(
@@ -108,135 +118,134 @@
     }
 
     @OptIn(ExperimentalCoroutinesApi::class)
-    val colorOptions: StateFlow<List<ColorOptionViewModel>> =
-        combine(colorPickerInteractor.colorOptions, clockPickerInteractor.selectedColorId, ::Pair)
-            .mapLatest { (colorOptions, selectedColorId) ->
-                // Use mapLatest and delay(100) here to prevent too many selectedClockColor update
-                // events from ClockRegistry upstream, caused by sliding the saturation level bar.
-                delay(COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
-                buildList {
-                    val defaultThemeColorOptionViewModel =
-                        (colorOptions[ColorType.WALLPAPER_COLOR]
-                                ?.find { it.isSelected }
-                                ?.colorOption as? ColorSeedOption)
-                            ?.toColorOptionViewModel(
-                                context,
-                                selectedColorId,
-                            )
-                            ?: (colorOptions[ColorType.PRESET_COLOR]
-                                    ?.find { it.isSelected }
-                                    ?.colorOption as? ColorBundle)
-                                ?.toColorOptionViewModel(
-                                    context,
-                                    selectedColorId,
-                                )
-                    if (defaultThemeColorOptionViewModel != null) {
-                        add(defaultThemeColorOptionViewModel)
-                    }
+    val colorOptions: Flow<List<OptionItemViewModel<ColorOptionIconViewModel>>> =
+        colorPickerInteractor.colorOptions.map { colorOptions ->
+            // Use mapLatest and delay(100) here to prevent too many selectedClockColor update
+            // events from ClockRegistry upstream, caused by sliding the saturation level bar.
+            delay(COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
+            buildList {
+                val defaultThemeColorOptionViewModel =
+                    (colorOptions[ColorType.WALLPAPER_COLOR]?.find { it.isSelected })
+                        ?.toOptionItemViewModel(context)
+                        ?: (colorOptions[ColorType.PRESET_COLOR]?.find { it.isSelected })
+                            ?.toOptionItemViewModel(context)
+                if (defaultThemeColorOptionViewModel != null) {
+                    add(defaultThemeColorOptionViewModel)
+                }
 
-                    val selectedColorPosition = colorMap.keys.indexOf(selectedColorId)
-
-                    colorMap.values.forEachIndexed { index, colorModel ->
-                        val isSelected = selectedColorPosition == index
-                        val colorToneProgress = ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS
-                        add(
-                            ColorOptionViewModel(
-                                color0 = colorModel.color,
-                                color1 = colorModel.color,
-                                color2 = colorModel.color,
-                                color3 = colorModel.color,
-                                contentDescription =
+                colorMap.values.forEachIndexed { index, colorModel ->
+                    val isSelectedFlow =
+                        selectedColorId
+                            .map { colorMap.keys.indexOf(it) == index }
+                            .stateIn(viewModelScope)
+                    val colorToneProgress = ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS
+                    add(
+                        OptionItemViewModel<ColorOptionIconViewModel>(
+                            key = MutableStateFlow(colorModel.colorId) as StateFlow<String>,
+                            payload =
+                                ColorOptionIconViewModel(
+                                    lightThemeColor0 = colorModel.color,
+                                    lightThemeColor1 = colorModel.color,
+                                    lightThemeColor2 = colorModel.color,
+                                    lightThemeColor3 = colorModel.color,
+                                    darkThemeColor0 = colorModel.color,
+                                    darkThemeColor1 = colorModel.color,
+                                    darkThemeColor2 = colorModel.color,
+                                    darkThemeColor3 = colorModel.color,
+                                ),
+                            text =
+                                Text.Loaded(
                                     context.getString(
                                         R.string.content_description_color_option,
                                         index,
-                                    ),
-                                isSelected = isSelected,
-                                onClick =
+                                    )
+                                ),
+                            isTextUserVisible = false,
+                            isSelected = isSelectedFlow,
+                            onClicked =
+                                isSelectedFlow.map { isSelected ->
                                     if (isSelected) {
                                         null
                                     } else {
                                         {
-                                            clockPickerInteractor.setClockColor(
-                                                selectedColorId = colorModel.colorId,
-                                                colorToneProgress = colorToneProgress,
-                                                seedColor =
-                                                    blendColorWithTone(
-                                                        color = colorModel.color,
-                                                        colorTone =
-                                                            colorModel.getColorTone(
-                                                                colorToneProgress,
-                                                            ),
-                                                    ),
-                                            )
+                                            viewModelScope.launch {
+                                                clockPickerInteractor.setClockColor(
+                                                    selectedColorId = colorModel.colorId,
+                                                    colorToneProgress = colorToneProgress,
+                                                    seedColor =
+                                                        blendColorWithTone(
+                                                            color = colorModel.color,
+                                                            colorTone =
+                                                                colorModel.getColorTone(
+                                                                    colorToneProgress,
+                                                                ),
+                                                        ),
+                                                )
+                                            }
                                         }
-                                    },
-                            )
+                                    }
+                                },
                         )
-                    }
+                    )
                 }
             }
-            .stateIn(
-                scope = viewModelScope,
-                started = SharingStarted.WhileSubscribed(),
-                initialValue = emptyList(),
-            )
+        }
 
     @OptIn(ExperimentalCoroutinesApi::class)
     val selectedColorOptionPosition: Flow<Int> =
-        colorOptions.mapLatest { it.indexOfFirst { colorOption -> colorOption.isSelected } }
+        colorOptions.flatMapLatest { colorOptions ->
+            combine(colorOptions.map { colorOption -> colorOption.isSelected }) { selectedFlags ->
+                selectedFlags.indexOfFirst { it }
+            }
+        }
 
-    private fun ColorSeedOption.toColorOptionViewModel(
-        context: Context,
-        selectedColorId: String?,
-    ): ColorOptionViewModel {
-        val colors = previewInfo.resolveColors(context.resources)
-        return ColorOptionViewModel(
-            color0 = colors[0],
-            color1 = colors[1],
-            color2 = colors[2],
-            color3 = colors[3],
-            contentDescription = getContentDescription(context).toString(),
-            title = context.getString(R.string.default_theme_title),
-            isSelected = selectedColorId == null,
-            onClick =
-                if (selectedColorId == null) {
-                    null
-                } else {
-                    {
-                        clockPickerInteractor.setClockColor(
-                            selectedColorId = null,
-                            colorToneProgress = ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
-                            seedColor = null,
-                        )
-                    }
-                },
-        )
-    }
-
-    private fun ColorBundle.toColorOptionViewModel(
-        context: Context,
-        selectedColorId: String?
-    ): ColorOptionViewModel {
-        val primaryColor = previewInfo.resolvePrimaryColor(context.resources)
-        val secondaryColor = previewInfo.resolveSecondaryColor(context.resources)
-        return ColorOptionViewModel(
-            color0 = primaryColor,
-            color1 = secondaryColor,
-            color2 = primaryColor,
-            color3 = secondaryColor,
-            contentDescription = getContentDescription(context).toString(),
-            title = context.getString(R.string.default_theme_title),
-            isSelected = selectedColorId == null,
-            onClick =
-                if (selectedColorId == null) {
-                    null
-                } else {
-                    {
-                        clockPickerInteractor.setClockColor(
-                            selectedColorId = null,
-                            colorToneProgress = ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
-                            seedColor = null,
-                        )
+    private suspend fun ColorOptionModel.toOptionItemViewModel(
+        context: Context
+    ): OptionItemViewModel<ColorOptionIconViewModel> {
+        val lightThemeColors =
+            (colorOption as ColorOptionImpl)
+                .previewInfo
+                .resolveColors(
+                    /** darkTheme= */
+                    false
+                )
+        val darkThemeColors =
+            colorOption.previewInfo.resolveColors(
+                /** darkTheme= */
+                true
+            )
+        val isSelectedFlow = selectedColorId.map { it == null }.stateIn(viewModelScope)
+        return OptionItemViewModel<ColorOptionIconViewModel>(
+            key = MutableStateFlow(key) as StateFlow<String>,
+            payload =
+                ColorOptionIconViewModel(
+                    lightThemeColor0 = lightThemeColors[0],
+                    lightThemeColor1 = lightThemeColors[1],
+                    lightThemeColor2 = lightThemeColors[2],
+                    lightThemeColor3 = lightThemeColors[3],
+                    darkThemeColor0 = darkThemeColors[0],
+                    darkThemeColor1 = darkThemeColors[1],
+                    darkThemeColor2 = darkThemeColors[2],
+                    darkThemeColor3 = darkThemeColors[3],
+                ),
+            text = Text.Loaded(context.getString(R.string.default_theme_title)),
+            isTextUserVisible = true,
+            isSelected = isSelectedFlow,
+            onClicked =
+                isSelectedFlow.map { isSelected ->
+                    if (isSelected) {
+                        null
+                    } else {
+                        {
+                            viewModelScope.launch {
+                                clockPickerInteractor.setClockColor(
+                                    selectedColorId = null,
+                                    colorToneProgress =
+                                        ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
+                                    seedColor = null,
+                                )
+                            }
+                        }
                     }
                 },
         )
@@ -295,6 +304,7 @@
         private val context: Context,
         private val clockPickerInteractor: ClockPickerInteractor,
         private val colorPickerInteractor: ColorPickerInteractor,
+        private val getIsReactiveToTone: (clockId: String?) -> Boolean,
     ) : ViewModelProvider.Factory {
         override fun <T : ViewModel> create(modelClass: Class<T>): T {
             @Suppress("UNCHECKED_CAST")
@@ -302,6 +312,7 @@
                 context = context,
                 clockPickerInteractor = clockPickerInteractor,
                 colorPickerInteractor = colorPickerInteractor,
+                getIsReactiveToTone = getIsReactiveToTone,
             )
                 as T
         }
diff --git a/src/com/android/customization/picker/clock/utils/ClockDescriptionUtils.kt b/src/com/android/customization/picker/clock/utils/ClockDescriptionUtils.kt
new file mode 100644
index 0000000..9a0b66f
--- /dev/null
+++ b/src/com/android/customization/picker/clock/utils/ClockDescriptionUtils.kt
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2023 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.picker.clock.utils
+
+import androidx.annotation.StringRes
+
+/** Provides clock description for accessibility purposes. */
+interface ClockDescriptionUtils {
+
+    /**
+     * TODO (b/287507746) : Migrate description res ID to system UI or a shared library, instead of
+     * preserving the clock description at the Wallpaper Picker side.
+     */
+    @StringRes fun getDescriptionResId(clockId: String): Int
+}
diff --git a/src/com/android/customization/picker/clock/utils/ThemePickerClockDescriptionUtils.kt b/src/com/android/customization/picker/clock/utils/ThemePickerClockDescriptionUtils.kt
new file mode 100644
index 0000000..43f19b3
--- /dev/null
+++ b/src/com/android/customization/picker/clock/utils/ThemePickerClockDescriptionUtils.kt
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2023 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.picker.clock.utils
+
+import androidx.annotation.StringRes
+import com.android.wallpaper.R
+
+class ThemePickerClockDescriptionUtils : ClockDescriptionUtils {
+    @StringRes
+    override fun getDescriptionResId(clockId: String): Int {
+        return R.string.clock_title
+    }
+}
diff --git a/src/com/android/customization/picker/color/ColorPickerFragment.kt b/src/com/android/customization/picker/color/ColorPickerFragment.kt
deleted file mode 100644
index c8ecb7f..0000000
--- a/src/com/android/customization/picker/color/ColorPickerFragment.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2023 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.picker.color
-
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.android.wallpaper.R
-import com.android.wallpaper.picker.AppbarFragment
-
-// TODO (b/262924623): Color Picker Fragment
-class ColorPickerFragment : AppbarFragment() {
-    override fun onCreateView(
-        inflater: LayoutInflater,
-        container: ViewGroup?,
-        savedInstanceState: Bundle?
-    ): View {
-        val view =
-            inflater.inflate(
-                R.layout.fragment_color_picker,
-                container,
-                false,
-            )
-        setUpToolbar(view)
-        return view
-    }
-}
diff --git a/src/com/android/customization/picker/color/data/repository/ColorPickerRepositoryImpl.kt b/src/com/android/customization/picker/color/data/repository/ColorPickerRepositoryImpl.kt
index 512a500..41ef3a5 100644
--- a/src/com/android/customization/picker/color/data/repository/ColorPickerRepositoryImpl.kt
+++ b/src/com/android/customization/picker/color/data/repository/ColorPickerRepositoryImpl.kt
@@ -16,16 +16,15 @@
  */
 package com.android.customization.picker.color.data.repository
 
-import android.app.WallpaperColors
 import android.util.Log
 import com.android.customization.model.CustomizationManager
-import com.android.customization.model.color.ColorBundle
 import com.android.customization.model.color.ColorCustomizationManager
 import com.android.customization.model.color.ColorOption
-import com.android.customization.model.color.ColorSeedOption
+import com.android.customization.model.color.ColorOptionImpl
 import com.android.customization.picker.color.shared.model.ColorOptionModel
 import com.android.customization.picker.color.shared.model.ColorType
 import com.android.systemui.monet.Style
+import com.android.wallpaper.model.WallpaperColorsModel
 import com.android.wallpaper.model.WallpaperColorsViewModel
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.StateFlow
@@ -40,9 +39,9 @@
     private val colorManager: ColorCustomizationManager,
 ) : ColorPickerRepository {
 
-    private val homeWallpaperColors: StateFlow<WallpaperColors?> =
+    private val homeWallpaperColors: StateFlow<WallpaperColorsModel?> =
         wallpaperColorsViewModel.homeWallpaperColors
-    private val lockWallpaperColors: StateFlow<WallpaperColors?> =
+    private val lockWallpaperColors: StateFlow<WallpaperColorsModel?> =
         wallpaperColorsViewModel.lockWallpaperColors
 
     override val colorOptions: Flow<Map<ColorType, List<ColorOptionModel>>> =
@@ -51,8 +50,27 @@
             }
             .map { (homeColors, lockColors) ->
                 suspendCancellableCoroutine { continuation ->
-                    colorManager.setWallpaperColors(homeColors, lockColors)
-                    colorManager.fetchOptions(
+                    if (
+                        homeColors is WallpaperColorsModel.Loading ||
+                            lockColors is WallpaperColorsModel.Loading
+                    ) {
+                        continuation.resumeWith(
+                            Result.success(
+                                mapOf(
+                                    ColorType.WALLPAPER_COLOR to listOf(),
+                                    ColorType.PRESET_COLOR to listOf()
+                                )
+                            )
+                        )
+                        return@suspendCancellableCoroutine
+                    }
+                    val homeColorsLoaded = homeColors as WallpaperColorsModel.Loaded
+                    val lockColorsLoaded = lockColors as WallpaperColorsModel.Loaded
+                    colorManager.setWallpaperColors(
+                        homeColorsLoaded.colors,
+                        lockColorsLoaded.colors
+                    )
+                    colorManager.fetchRevampedUIOptions(
                         object : CustomizationManager.OptionsFetchedListener<ColorOption?> {
                             override fun onOptionsLoaded(options: MutableList<ColorOption?>?) {
                                 val wallpaperColorOptions: MutableList<ColorOptionModel> =
@@ -60,10 +78,11 @@
                                 val presetColorOptions: MutableList<ColorOptionModel> =
                                     mutableListOf()
                                 options?.forEach { option ->
-                                    when (option) {
-                                        is ColorSeedOption ->
+                                    when ((option as ColorOptionImpl).type) {
+                                        ColorType.WALLPAPER_COLOR ->
                                             wallpaperColorOptions.add(option.toModel())
-                                        is ColorBundle -> presetColorOptions.add(option.toModel())
+                                        ColorType.PRESET_COLOR ->
+                                            presetColorOptions.add(option.toModel())
                                     }
                                 }
                                 continuation.resumeWith(
@@ -113,16 +132,16 @@
         val overlays = colorManager.currentOverlays
         val styleOrNull = colorManager.currentStyle
         val style = styleOrNull?.let { Style.valueOf(it) } ?: Style.TONAL_SPOT
-        val colorOptionBuilder =
-            // Does not matter whether ColorSeedOption or ColorBundle builder is used here
-            // because to apply the color, one just needs a generic ColorOption
-            ColorSeedOption.Builder().setSource(colorManager.currentColorSource).setStyle(style)
+        val source = colorManager.currentColorSource
+        val colorOptionBuilder = ColorOptionImpl.Builder()
+        colorOptionBuilder.source = source
+        colorOptionBuilder.style = style
         for (overlay in overlays) {
             colorOptionBuilder.addOverlayPackage(overlay.key, overlay.value)
         }
         val colorOption = colorOptionBuilder.build()
         return ColorOptionModel(
-            key = "${colorOption.style}::${colorOption.serializedPackages}",
+            key = "",
             colorOption = colorOption,
             isSelected = false,
         )
@@ -132,9 +151,9 @@
         return colorManager.currentColorSource
     }
 
-    private fun ColorOption.toModel(): ColorOptionModel {
+    private fun ColorOptionImpl.toModel(): ColorOptionModel {
         return ColorOptionModel(
-            key = "${this.style}::${this.serializedPackages}",
+            key = "${this.type}::${this.style}::${this.serializedPackages}",
             colorOption = this,
             isSelected = isActive(colorManager),
         )
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 edbf6dc..714129d 100644
--- a/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt
+++ b/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt
@@ -19,9 +19,8 @@
 import android.content.Context
 import android.graphics.Color
 import android.text.TextUtils
-import com.android.customization.model.color.ColorBundle
+import com.android.customization.model.color.ColorOptionImpl
 import com.android.customization.model.color.ColorOptionsProvider
-import com.android.customization.model.color.ColorSeedOption
 import com.android.customization.picker.color.shared.model.ColorOptionModel
 import com.android.customization.picker.color.shared.model.ColorType
 import kotlinx.coroutines.flow.MutableStateFlow
@@ -82,9 +81,7 @@
                                 ColorOptionModel(
                                     key = "${ColorType.PRESET_COLOR}::$index",
                                     colorOption = buildPresetOption(index),
-                                    isSelected =
-                                        selectedColorOptionType == ColorType.PRESET_COLOR &&
-                                            selectedColorOptionIndex == index,
+                                    isSelected = isSelected,
                                 )
                             if (isSelected) {
                                 selectedColorOption = colorOption
@@ -95,36 +92,36 @@
             )
     }
 
-    private fun buildPresetOption(index: Int): ColorBundle {
-        return ColorBundle.Builder()
+    private fun buildPresetOption(index: Int): ColorOptionImpl {
+        val builder = ColorOptionImpl.Builder()
+        builder.lightColors =
+            intArrayOf(Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT)
+        builder.darkColors =
+            intArrayOf(Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT)
+        builder.index = index
+        builder.type = ColorType.PRESET_COLOR
+        builder.source = ColorOptionsProvider.COLOR_SOURCE_PRESET
+        builder.title = "Preset"
+        builder
             .addOverlayPackage("TEST_PACKAGE_TYPE", "preset_color")
             .addOverlayPackage("TEST_PACKAGE_INDEX", "$index")
-            .setIndex(index)
-            .build(context)
+        return builder.build()
     }
 
-    private fun buildWallpaperOption(index: Int): ColorSeedOption {
-        return ColorSeedOption.Builder()
-            .setLightColors(
-                intArrayOf(
-                    Color.TRANSPARENT,
-                    Color.TRANSPARENT,
-                    Color.TRANSPARENT,
-                    Color.TRANSPARENT
-                )
-            )
-            .setDarkColors(
-                intArrayOf(
-                    Color.TRANSPARENT,
-                    Color.TRANSPARENT,
-                    Color.TRANSPARENT,
-                    Color.TRANSPARENT
-                )
-            )
+    private fun buildWallpaperOption(index: Int): ColorOptionImpl {
+        val builder = ColorOptionImpl.Builder()
+        builder.lightColors =
+            intArrayOf(Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT)
+        builder.darkColors =
+            intArrayOf(Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT)
+        builder.index = index
+        builder.type = ColorType.WALLPAPER_COLOR
+        builder.source = ColorOptionsProvider.COLOR_SOURCE_HOME
+        builder.title = "Dynamic"
+        builder
             .addOverlayPackage("TEST_PACKAGE_TYPE", "wallpaper_color")
             .addOverlayPackage("TEST_PACKAGE_INDEX", "$index")
-            .setIndex(index)
-            .build()
+        return builder.build()
     }
 
     override suspend fun select(colorOptionModel: ColorOptionModel) {
@@ -163,9 +160,9 @@
     override fun getCurrentColorOption(): ColorOptionModel = selectedColorOption
 
     override fun getCurrentColorSource(): String? =
-        when (selectedColorOption.colorOption) {
-            is ColorSeedOption -> ColorOptionsProvider.COLOR_SOURCE_HOME
-            is ColorBundle -> ColorOptionsProvider.COLOR_SOURCE_PRESET
+        when ((selectedColorOption.colorOption as ColorOptionImpl).type) {
+            ColorType.WALLPAPER_COLOR -> ColorOptionsProvider.COLOR_SOURCE_HOME
+            ColorType.PRESET_COLOR -> ColorOptionsProvider.COLOR_SOURCE_PRESET
             else -> null
         }
 
diff --git a/src/com/android/customization/picker/color/ui/adapter/ColorOptionAdapter.kt b/src/com/android/customization/picker/color/ui/adapter/ColorOptionAdapter.kt
deleted file mode 100644
index 7aa390d..0000000
--- a/src/com/android/customization/picker/color/ui/adapter/ColorOptionAdapter.kt
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2023 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.picker.color.ui.adapter
-
-import android.graphics.BlendMode
-import android.graphics.BlendModeColorFilter
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.ImageView
-import android.widget.TextView
-import androidx.core.view.isVisible
-import androidx.recyclerview.widget.RecyclerView
-import com.android.customization.picker.color.ui.viewmodel.ColorOptionViewModel
-import com.android.wallpaper.R
-
-/**
- * Adapts between color option items and views.
- *
- * TODO (b/272109171): Remove after clock settings is refactored to use OptionItemAdapter
- */
-class ColorOptionAdapter : RecyclerView.Adapter<ColorOptionAdapter.ViewHolder>() {
-
-    private val items = mutableListOf<ColorOptionViewModel>()
-    private var isTitleVisible = false
-
-    fun setItems(items: List<ColorOptionViewModel>) {
-        this.items.clear()
-        this.items.addAll(items)
-        isTitleVisible = items.any { item -> item.title != null }
-        notifyDataSetChanged()
-    }
-
-    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
-        val borderView: View = itemView.requireViewById(R.id.selection_border)
-        val backgroundView: View = itemView.requireViewById(R.id.background)
-        val color0View: ImageView = itemView.requireViewById(R.id.color_preview_0)
-        val color1View: ImageView = itemView.requireViewById(R.id.color_preview_1)
-        val color2View: ImageView = itemView.requireViewById(R.id.color_preview_2)
-        val color3View: ImageView = itemView.requireViewById(R.id.color_preview_3)
-        val optionTitleView: TextView = itemView.requireViewById(R.id.option_title)
-    }
-
-    override fun getItemCount(): Int {
-        return items.size
-    }
-
-    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
-        return ViewHolder(
-            LayoutInflater.from(parent.context)
-                .inflate(
-                    R.layout.color_option_with_background,
-                    parent,
-                    false,
-                )
-        )
-    }
-
-    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
-        val item = items[position]
-
-        holder.itemView.setOnClickListener(
-            if (item.onClick != null) {
-                View.OnClickListener { item.onClick.invoke() }
-            } else {
-                null
-            }
-        )
-        if (item.isSelected) {
-            holder.borderView.alpha = 1f
-            holder.borderView.scaleX = 1f
-            holder.borderView.scaleY = 1f
-            holder.backgroundView.scaleX = 0.86f
-            holder.backgroundView.scaleY = 0.86f
-        } else {
-            holder.borderView.alpha = 0f
-            holder.backgroundView.scaleX = 1f
-            holder.backgroundView.scaleY = 1f
-        }
-        holder.color0View.drawable.colorFilter = BlendModeColorFilter(item.color0, BlendMode.SRC)
-        holder.color1View.drawable.colorFilter = BlendModeColorFilter(item.color1, BlendMode.SRC)
-        holder.color2View.drawable.colorFilter = BlendModeColorFilter(item.color2, BlendMode.SRC)
-        holder.color3View.drawable.colorFilter = BlendModeColorFilter(item.color3, BlendMode.SRC)
-        holder.itemView.contentDescription = item.contentDescription
-        holder.optionTitleView.isVisible = isTitleVisible
-        holder.optionTitleView.text = item.title
-    }
-}
diff --git a/src/com/android/customization/picker/color/ui/adapter/ColorTypeTabAdapter.kt b/src/com/android/customization/picker/color/ui/adapter/ColorTypeTabAdapter.kt
index bb9f082..553f586 100644
--- a/src/com/android/customization/picker/color/ui/adapter/ColorTypeTabAdapter.kt
+++ b/src/com/android/customization/picker/color/ui/adapter/ColorTypeTabAdapter.kt
@@ -55,7 +55,7 @@
         val item = items[position]
         holder.itemView.isSelected = item.isSelected
         holder.textView.text = item.name
-        holder.textView.setOnClickListener(
+        holder.itemView.setOnClickListener(
             if (item.onClick != null) {
                 View.OnClickListener { item.onClick.invoke() }
             } else {
diff --git a/src/com/android/customization/picker/color/ui/binder/ColorOptionIconBinder.kt b/src/com/android/customization/picker/color/ui/binder/ColorOptionIconBinder.kt
index 1478cc4..31d3dc8 100644
--- a/src/com/android/customization/picker/color/ui/binder/ColorOptionIconBinder.kt
+++ b/src/com/android/customization/picker/color/ui/binder/ColorOptionIconBinder.kt
@@ -17,25 +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)
-        color0View.drawable.colorFilter = BlendModeColorFilter(viewModel.color0, BlendMode.SRC)
-        color1View.drawable.colorFilter = BlendModeColorFilter(viewModel.color1, BlendMode.SRC)
-        color2View.drawable.colorFilter = BlendModeColorFilter(viewModel.color2, BlendMode.SRC)
-        color3View.drawable.colorFilter = BlendModeColorFilter(viewModel.color3, BlendMode.SRC)
+        if (darkTheme) {
+            view.bindColor(
+                viewModel.darkThemeColor0,
+                viewModel.darkThemeColor1,
+                viewModel.darkThemeColor2,
+                viewModel.darkThemeColor3,
+            )
+        } else {
+            view.bindColor(
+                viewModel.lightThemeColor0,
+                viewModel.lightThemeColor1,
+                viewModel.lightThemeColor2,
+                viewModel.lightThemeColor3,
+            )
+        }
     }
 }
diff --git a/src/com/android/customization/picker/color/ui/binder/ColorPickerBinder.kt b/src/com/android/customization/picker/color/ui/binder/ColorPickerBinder.kt
index 7623048..cd9dd54 100644
--- a/src/com/android/customization/picker/color/ui/binder/ColorPickerBinder.kt
+++ b/src/com/android/customization/picker/color/ui/binder/ColorPickerBinder.kt
@@ -17,8 +17,10 @@
 
 package com.android.customization.picker.color.ui.binder
 
+import android.content.res.Configuration
+import android.os.Bundle
+import android.os.Parcelable
 import android.view.View
-import android.view.ViewGroup
 import android.widget.TextView
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.LifecycleOwner
@@ -27,12 +29,12 @@
 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
 import com.android.wallpaper.R
 import com.android.wallpaper.picker.option.ui.adapter.OptionItemAdapter
-import kotlinx.coroutines.flow.collect
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.launch
 
@@ -48,7 +50,7 @@
         view: View,
         viewModel: ColorPickerViewModel,
         lifecycleOwner: LifecycleOwner,
-    ) {
+    ): Binding {
         val colorTypeTabView: RecyclerView = view.requireViewById(R.id.color_type_tabs)
         val colorTypeTabSubheaderView: TextView = view.requireViewById(R.id.color_type_tab_subhead)
         val colorOptionContainerView: RecyclerView = view.requireViewById(R.id.color_options)
@@ -63,8 +65,11 @@
                 layoutResourceId = R.layout.color_option_2,
                 lifecycleOwner = lifecycleOwner,
                 bindIcon = { foregroundView: View, colorIcon: ColorOptionIconViewModel ->
-                    val viewGroup = foregroundView as? ViewGroup
-                    viewGroup?.let { ColorOptionIconBinder.bind(viewGroup, colorIcon) }
+                    val colorOptionIconView = foregroundView as? ColorOptionIconView
+                    val night =
+                        (view.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK ==
+                            Configuration.UI_MODE_NIGHT_YES)
+                    colorOptionIconView?.let { ColorOptionIconBinder.bind(it, colorIcon, night) }
                 }
             )
         colorOptionContainerView.adapter = colorOptionAdapter
@@ -89,9 +94,52 @@
                 launch {
                     viewModel.colorOptions.collect { colorOptions ->
                         colorOptionAdapter.setItems(colorOptions)
+                        // the same recycler view is used for different color types tabs
+                        // the scroll state of each tab should be independent of others
+                        if (layoutManagerSavedState != null) {
+                            colorOptionContainerView.post {
+                                (colorOptionContainerView.layoutManager as LinearLayoutManager)
+                                    .onRestoreInstanceState(layoutManagerSavedState)
+                                layoutManagerSavedState = null
+                            }
+                        } else {
+                            var indexToFocus = colorOptions.indexOfFirst { it.isSelected.value }
+                            indexToFocus = if (indexToFocus < 0) 0 else indexToFocus
+                            val linearLayoutManager =
+                                object : LinearLayoutManager(view.context, HORIZONTAL, false) {
+                                    override fun onLayoutCompleted(state: RecyclerView.State?) {
+                                        super.onLayoutCompleted(state)
+                                        // scrollToPosition seems to be inconsistently moving
+                                        // selected
+                                        // color to different positions
+                                        scrollToPositionWithOffset(indexToFocus, 0)
+                                    }
+                                }
+                            colorOptionContainerView.layoutManager = linearLayoutManager
+                        }
                     }
                 }
             }
         }
+        return object : Binding {
+            override fun saveInstanceState(savedState: Bundle) {
+                savedState.putParcelable(
+                    LAYOUT_MANAGER_SAVED_STATE,
+                    colorOptionContainerView.layoutManager?.onSaveInstanceState()
+                )
+            }
+
+            override fun restoreInstanceState(savedState: Bundle) {
+                layoutManagerSavedState = savedState.getParcelable(LAYOUT_MANAGER_SAVED_STATE)
+            }
+        }
     }
+
+    interface Binding {
+        fun saveInstanceState(savedState: Bundle)
+        fun restoreInstanceState(savedState: Bundle)
+    }
+
+    private val LAYOUT_MANAGER_SAVED_STATE: String = "layout_manager_state"
+    private var layoutManagerSavedState: Parcelable? = null
 }
diff --git a/src/com/android/customization/picker/color/ui/binder/ColorSectionViewBinder.kt b/src/com/android/customization/picker/color/ui/binder/ColorSectionViewBinder.kt
index 05b0916..45e3cde 100644
--- a/src/com/android/customization/picker/color/ui/binder/ColorSectionViewBinder.kt
+++ b/src/com/android/customization/picker/color/ui/binder/ColorSectionViewBinder.kt
@@ -17,9 +17,9 @@
 
 package com.android.customization.picker.color.ui.binder
 
+import android.content.res.Configuration
 import android.view.LayoutInflater
 import android.view.View
-import android.view.ViewGroup
 import android.widget.ImageView
 import android.widget.LinearLayout
 import androidx.core.view.isVisible
@@ -30,6 +30,7 @@
 import com.android.customization.picker.color.ui.viewmodel.ColorOptionIconViewModel
 import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
 import com.android.wallpaper.R
+import com.android.wallpaper.picker.common.icon.ui.viewbinder.ContentDescriptionViewBinder
 import com.android.wallpaper.picker.option.ui.viewmodel.OptionItemViewModel
 import kotlinx.coroutines.launch
 
@@ -91,10 +92,23 @@
                 })
                 .let { if (it < 0) 0 else it }
         options.subList(0, colorOptionSlotSize).forEach { item ->
+            val night =
+                (view.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK ==
+                    Configuration.UI_MODE_NIGHT_YES)
             val itemView =
                 LayoutInflater.from(view.context)
                     .inflate(R.layout.color_option_no_background, view, false)
-            item.payload?.let { ColorOptionIconBinder.bind(itemView as ViewGroup, item.payload) }
+            item.payload?.let {
+                ColorOptionIconBinder.bind(
+                    itemView.requireViewById(R.id.option_tile),
+                    item.payload,
+                    night
+                )
+                ContentDescriptionViewBinder.bind(
+                    view = itemView.requireViewById(R.id.option_tile),
+                    viewModel = item.text,
+                )
+            }
             val optionSelectedView = itemView.findViewById<ImageView>(R.id.option_selected)
 
             lifecycleOwner.lifecycleScope.launch {
diff --git a/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt b/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt
index c6b2023..78bfa43 100644
--- a/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt
+++ b/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt
@@ -15,6 +15,7 @@
  */
 package com.android.customization.picker.color.ui.fragment
 
+import android.app.WallpaperManager
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
@@ -23,21 +24,30 @@
 import androidx.cardview.widget.CardView
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.get
+import androidx.lifecycle.lifecycleScope
 import com.android.customization.model.mode.DarkModeSectionController
 import com.android.customization.module.ThemePickerInjector
 import com.android.customization.picker.color.ui.binder.ColorPickerBinder
 import com.android.wallpaper.R
+import com.android.wallpaper.model.WallpaperColorsModel
+import com.android.wallpaper.model.WallpaperColorsViewModel
+import com.android.wallpaper.module.CustomizationSections
 import com.android.wallpaper.module.InjectorProvider
 import com.android.wallpaper.picker.AppbarFragment
 import com.android.wallpaper.picker.customization.ui.binder.ScreenPreviewBinder
 import com.android.wallpaper.picker.customization.ui.viewmodel.ScreenPreviewViewModel
 import com.android.wallpaper.util.DisplayUtils
 import com.android.wallpaper.util.PreviewUtils
+import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.launch
 import kotlinx.coroutines.suspendCancellableCoroutine
+import kotlinx.coroutines.withContext
 
 @OptIn(ExperimentalCoroutinesApi::class)
 class ColorPickerFragment : AppbarFragment() {
+    private var binding: ColorPickerBinder.Binding? = null
+
     companion object {
         @JvmStatic
         fun newInstance(): ColorPickerFragment {
@@ -63,19 +73,25 @@
         val wallpaperInfoFactory = injector.getCurrentWallpaperInfoFactory(requireContext())
         val displayUtils: DisplayUtils = injector.getDisplayUtils(requireContext())
         val wcViewModel = injector.getWallpaperColorsViewModel()
-        ColorPickerBinder.bind(
-            view = view,
-            viewModel =
-                ViewModelProvider(
-                        requireActivity(),
-                        injector.getColorPickerViewModelFactory(
-                            context = requireContext(),
-                            wallpaperColorsViewModel = wcViewModel,
-                        ),
-                    )
-                    .get(),
-            lifecycleOwner = this,
-        )
+        val wallpaperManager = WallpaperManager.getInstance(requireContext())
+
+        binding =
+            ColorPickerBinder.bind(
+                view = view,
+                viewModel =
+                    ViewModelProvider(
+                            requireActivity(),
+                            injector.getColorPickerViewModelFactory(
+                                context = requireContext(),
+                                wallpaperColorsViewModel = wcViewModel,
+                            ),
+                        )
+                        .get(),
+                lifecycleOwner = this,
+            )
+
+        savedInstanceState?.let { binding?.restoreInstanceState(it) }
+
         ScreenPreviewBinder.bind(
             activity = requireActivity(),
             previewView = lockScreenView,
@@ -90,23 +106,38 @@
                                         R.string.lock_screen_preview_provider_authority,
                                     ),
                         ),
-                    wallpaperInfoProvider = {
+                    wallpaperInfoProvider = { forceReload ->
                         suspendCancellableCoroutine { continuation ->
                             wallpaperInfoFactory.createCurrentWallpaperInfos(
                                 { homeWallpaper, lockWallpaper, _ ->
+                                    lifecycleScope.launch {
+                                        if (
+                                            wcViewModel.lockWallpaperColors.value
+                                                is WallpaperColorsModel.Loading
+                                        ) {
+                                            loadInitialColors(
+                                                wallpaperManager,
+                                                wcViewModel,
+                                                CustomizationSections.Screen.LOCK_SCREEN
+                                            )
+                                        }
+                                    }
                                     continuation.resume(lockWallpaper ?: homeWallpaper, null)
                                 },
-                                /* forceRefresh= */ true,
+                                forceReload,
                             )
                         }
                     },
                     onWallpaperColorChanged = { colors ->
                         wcViewModel.setLockWallpaperColors(colors)
                     },
+                    wallpaperInteractor = injector.getWallpaperInteractor(requireContext()),
+                    screen = CustomizationSections.Screen.LOCK_SCREEN,
                 ),
             lifecycleOwner = this,
             offsetToStart =
                 displayUtils.isSingleDisplayOrUnfoldedHorizontalHinge(requireActivity()),
+            onWallpaperPreviewDirty = { activity?.recreate() },
         )
         ScreenPreviewBinder.bind(
             activity = requireActivity(),
@@ -122,23 +153,38 @@
                                         R.string.grid_control_metadata_name,
                                     ),
                         ),
-                    wallpaperInfoProvider = {
+                    wallpaperInfoProvider = { forceReload ->
                         suspendCancellableCoroutine { continuation ->
                             wallpaperInfoFactory.createCurrentWallpaperInfos(
                                 { homeWallpaper, lockWallpaper, _ ->
+                                    lifecycleScope.launch {
+                                        if (
+                                            wcViewModel.homeWallpaperColors.value
+                                                is WallpaperColorsModel.Loading
+                                        ) {
+                                            loadInitialColors(
+                                                wallpaperManager,
+                                                wcViewModel,
+                                                CustomizationSections.Screen.HOME_SCREEN
+                                            )
+                                        }
+                                    }
                                     continuation.resume(homeWallpaper ?: lockWallpaper, null)
                                 },
-                                /* forceRefresh= */ true,
+                                forceReload,
                             )
                         }
                     },
                     onWallpaperColorChanged = { colors ->
-                        wcViewModel.setLockWallpaperColors(colors)
+                        wcViewModel.setHomeWallpaperColors(colors)
                     },
+                    wallpaperInteractor = injector.getWallpaperInteractor(requireContext()),
+                    screen = CustomizationSections.Screen.HOME_SCREEN,
                 ),
             lifecycleOwner = this,
             offsetToStart =
                 displayUtils.isSingleDisplayOrUnfoldedHorizontalHinge(requireActivity()),
+            onWallpaperPreviewDirty = { activity?.recreate() },
         )
         val darkModeToggleContainerView: FrameLayout =
             view.requireViewById(R.id.dark_mode_toggle_container)
@@ -154,6 +200,35 @@
         return view
     }
 
+    private suspend fun loadInitialColors(
+        wallpaperManager: WallpaperManager,
+        colorViewModel: WallpaperColorsViewModel,
+        screen: CustomizationSections.Screen,
+    ) {
+        withContext(Dispatchers.IO) {
+            val colors =
+                wallpaperManager.getWallpaperColors(
+                    if (screen == CustomizationSections.Screen.LOCK_SCREEN) {
+                        WallpaperManager.FLAG_LOCK
+                    } else {
+                        WallpaperManager.FLAG_SYSTEM
+                    }
+                )
+            withContext(Dispatchers.Main) {
+                if (screen == CustomizationSections.Screen.LOCK_SCREEN) {
+                    colorViewModel.setLockWallpaperColors(colors)
+                } else {
+                    colorViewModel.setHomeWallpaperColors(colors)
+                }
+            }
+        }
+    }
+
+    override fun onSaveInstanceState(savedInstanceState: Bundle) {
+        super.onSaveInstanceState(savedInstanceState)
+        binding?.saveInstanceState(savedInstanceState)
+    }
+
     override fun getDefaultTitle(): CharSequence {
         return requireContext().getString(R.string.color_picker_title)
     }
diff --git a/src/com/android/customization/picker/color/ui/view/ColorOptionIconView.kt b/src/com/android/customization/picker/color/ui/view/ColorOptionIconView.kt
new file mode 100644
index 0000000..0514843
--- /dev/null
+++ b/src/com/android/customization/picker/color/ui/view/ColorOptionIconView.kt
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2023 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.picker.color.ui.view
+
+import android.annotation.ColorInt
+import android.content.Context
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.Paint
+import android.graphics.RectF
+import android.util.AttributeSet
+import android.view.View
+
+/**
+ * Draw a color option icon, which is a quadrant circle that can show at most 4 different colors.
+ */
+class ColorOptionIconView(
+    context: Context,
+    attrs: AttributeSet,
+) : View(context, attrs) {
+
+    private val paint = Paint().apply { style = Paint.Style.FILL }
+
+    private val oval = RectF()
+
+    private var color0 = DEFAULT_PLACEHOLDER_COLOR
+    private var color1 = DEFAULT_PLACEHOLDER_COLOR
+    private var color2 = DEFAULT_PLACEHOLDER_COLOR
+    private var color3 = DEFAULT_PLACEHOLDER_COLOR
+
+    private var w = 0
+    private var h = 0
+
+    /**
+     * @param color0 the color in the top left quadrant
+     * @param color1 the color in the top right quadrant
+     * @param color2 the color in the bottom left quadrant
+     * @param color3 the color in the bottom right quadrant
+     */
+    fun bindColor(
+        @ColorInt color0: Int,
+        @ColorInt color1: Int,
+        @ColorInt color2: Int,
+        @ColorInt color3: Int,
+    ) {
+        this.color0 = color0
+        this.color1 = color1
+        this.color2 = color2
+        this.color3 = color3
+        invalidate()
+    }
+
+    override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
+        this.w = w
+        this.h = h
+        super.onSizeChanged(w, h, oldw, oldh)
+    }
+
+    override fun onDraw(canvas: Canvas?) {
+        super.onDraw(canvas)
+        // The w and h need to be an even number to avoid tiny pixel-level gaps between the pies
+        w = w.roundDownToEven()
+        h = h.roundDownToEven()
+
+        val width = w.toFloat()
+        val height = h.toFloat()
+
+        oval.set(0f, 0f, width, height)
+        canvas?.apply {
+            paint.color = color3
+            drawArc(
+                oval,
+                0f,
+                90f,
+                true,
+                paint,
+            )
+            paint.color = color2
+            drawArc(
+                oval,
+                90f,
+                90f,
+                true,
+                paint,
+            )
+            paint.color = color0
+            drawArc(
+                oval,
+                180f,
+                90f,
+                true,
+                paint,
+            )
+            paint.color = color1
+            drawArc(
+                oval,
+                270f,
+                90f,
+                true,
+                paint,
+            )
+        }
+    }
+
+    companion object {
+        const val DEFAULT_PLACEHOLDER_COLOR = Color.BLACK
+
+        fun Int.roundDownToEven(): Int {
+            return if (this % 2 == 0) this else this - 1
+        }
+    }
+}
diff --git a/src/com/android/customization/picker/color/ui/viewmodel/ColorOptionIconViewModel.kt b/src/com/android/customization/picker/color/ui/viewmodel/ColorOptionIconViewModel.kt
index d32538d..8723c8c 100644
--- a/src/com/android/customization/picker/color/ui/viewmodel/ColorOptionIconViewModel.kt
+++ b/src/com/android/customization/picker/color/ui/viewmodel/ColorOptionIconViewModel.kt
@@ -20,8 +20,12 @@
 import android.annotation.ColorInt
 
 data class ColorOptionIconViewModel(
-    @ColorInt val color0: Int,
-    @ColorInt val color1: Int,
-    @ColorInt val color2: Int,
-    @ColorInt val color3: Int,
+    @ColorInt val lightThemeColor0: Int,
+    @ColorInt val lightThemeColor1: Int,
+    @ColorInt val lightThemeColor2: Int,
+    @ColorInt val lightThemeColor3: Int,
+    @ColorInt val darkThemeColor0: Int,
+    @ColorInt val darkThemeColor1: Int,
+    @ColorInt val darkThemeColor2: Int,
+    @ColorInt val darkThemeColor3: Int,
 )
diff --git a/src/com/android/customization/picker/color/ui/viewmodel/ColorPickerViewModel.kt b/src/com/android/customization/picker/color/ui/viewmodel/ColorPickerViewModel.kt
index 81a5810..67c6838 100644
--- a/src/com/android/customization/picker/color/ui/viewmodel/ColorPickerViewModel.kt
+++ b/src/com/android/customization/picker/color/ui/viewmodel/ColorPickerViewModel.kt
@@ -20,8 +20,7 @@
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
-import com.android.customization.model.color.ColorBundle
-import com.android.customization.model.color.ColorSeedOption
+import com.android.customization.model.color.ColorOptionImpl
 import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
 import com.android.customization.picker.color.shared.model.ColorType
 import com.android.wallpaper.R
@@ -31,9 +30,11 @@
 import kotlin.math.min
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.SharingStarted
 import kotlinx.coroutines.flow.StateFlow
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.shareIn
 import kotlinx.coroutines.flow.stateIn
 import kotlinx.coroutines.launch
 
@@ -92,146 +93,114 @@
     /** The list of all color options mapped by their color type */
     private val allColorOptions:
         Flow<Map<ColorType, List<OptionItemViewModel<ColorOptionIconViewModel>>>> =
-        interactor.colorOptions.map { colorOptions ->
-            colorOptions
-                .map { colorOptionEntry ->
-                    colorOptionEntry.key to
-                        when (colorOptionEntry.key) {
-                            ColorType.WALLPAPER_COLOR -> {
-                                colorOptionEntry.value.map { colorOptionModel ->
-                                    val colorSeedOption: ColorSeedOption =
-                                        colorOptionModel.colorOption as ColorSeedOption
-                                    val colors =
-                                        colorSeedOption.previewInfo.resolveColors(context.resources)
-                                    val isSelectedFlow: StateFlow<Boolean> =
-                                        interactor.activeColorOption
-                                            .map {
-                                                it?.colorOption?.isEquivalent(
-                                                    colorOptionModel.colorOption
-                                                )
-                                                    ?: colorOptionModel.isSelected
-                                            }
-                                            .stateIn(viewModelScope)
-                                    OptionItemViewModel<ColorOptionIconViewModel>(
-                                        key =
-                                            MutableStateFlow(colorOptionModel.key)
-                                                as StateFlow<String>,
-                                        payload =
-                                            ColorOptionIconViewModel(
-                                                colors[0],
-                                                colors[1],
-                                                colors[2],
-                                                colors[3]
-                                            ),
-                                        text =
-                                            Text.Loaded(
-                                                colorSeedOption
-                                                    .getContentDescription(context)
-                                                    .toString()
-                                            ),
-                                        isSelected = isSelectedFlow,
-                                        onClicked =
-                                            isSelectedFlow.map { isSelected ->
-                                                if (isSelected) {
-                                                    null
-                                                } else {
-                                                    {
-                                                        viewModelScope.launch {
-                                                            interactor.select(colorOptionModel)
-                                                        }
+        interactor.colorOptions
+            .map { colorOptions ->
+                colorOptions
+                    .map { colorOptionEntry ->
+                        colorOptionEntry.key to
+                            colorOptionEntry.value.map { colorOptionModel ->
+                                val colorOption: ColorOptionImpl =
+                                    colorOptionModel.colorOption as ColorOptionImpl
+                                val lightThemeColors =
+                                    colorOption.previewInfo.resolveColors(/* darkTheme= */ false)
+                                val darkThemeColors =
+                                    colorOption.previewInfo.resolveColors(/* darkTheme= */ true)
+                                val isSelectedFlow: StateFlow<Boolean> =
+                                    interactor.activeColorOption
+                                        .map {
+                                            it?.colorOption?.isEquivalent(
+                                                colorOptionModel.colorOption
+                                            )
+                                                ?: colorOptionModel.isSelected
+                                        }
+                                        .stateIn(viewModelScope)
+                                OptionItemViewModel<ColorOptionIconViewModel>(
+                                    key =
+                                        MutableStateFlow(colorOptionModel.key) as StateFlow<String>,
+                                    payload =
+                                        ColorOptionIconViewModel(
+                                            lightThemeColor0 = lightThemeColors[0],
+                                            lightThemeColor1 = lightThemeColors[1],
+                                            lightThemeColor2 = lightThemeColors[2],
+                                            lightThemeColor3 = lightThemeColors[3],
+                                            darkThemeColor0 = darkThemeColors[0],
+                                            darkThemeColor1 = darkThemeColors[1],
+                                            darkThemeColor2 = darkThemeColors[2],
+                                            darkThemeColor3 = darkThemeColors[3],
+                                        ),
+                                    text =
+                                        Text.Loaded(
+                                            colorOption.getContentDescription(context).toString()
+                                        ),
+                                    isTextUserVisible = false,
+                                    isSelected = isSelectedFlow,
+                                    onClicked =
+                                        isSelectedFlow.map { isSelected ->
+                                            if (isSelected) {
+                                                null
+                                            } else {
+                                                {
+                                                    viewModelScope.launch {
+                                                        interactor.select(colorOptionModel)
                                                     }
                                                 }
-                                            },
-                                    )
-                                }
-                            }
-                            ColorType.PRESET_COLOR -> {
-                                colorOptionEntry.value.map { colorOptionModel ->
-                                    val colorBundle: ColorBundle =
-                                        colorOptionModel.colorOption as ColorBundle
-                                    val primaryColor =
-                                        colorBundle.previewInfo.resolvePrimaryColor(
-                                            context.resources
-                                        )
-                                    val secondaryColor =
-                                        colorBundle.previewInfo.resolveSecondaryColor(
-                                            context.resources
-                                        )
-                                    val isSelectedFlow: StateFlow<Boolean> =
-                                        interactor.activeColorOption
-                                            .map {
-                                                it?.colorOption?.isEquivalent(
-                                                    colorOptionModel.colorOption
-                                                )
-                                                    ?: colorOptionModel.isSelected
                                             }
-                                            .stateIn(viewModelScope)
-                                    OptionItemViewModel<ColorOptionIconViewModel>(
-                                        key =
-                                            MutableStateFlow(colorOptionModel.key)
-                                                as StateFlow<String>,
-                                        payload =
-                                            ColorOptionIconViewModel(
-                                                primaryColor,
-                                                secondaryColor,
-                                                primaryColor,
-                                                secondaryColor
-                                            ),
-                                        text =
-                                            Text.Loaded(
-                                                colorBundle
-                                                    .getContentDescription(context)
-                                                    .toString()
-                                            ),
-                                        isSelected = isSelectedFlow,
-                                        onClicked =
-                                            isSelectedFlow.map { isSelected ->
-                                                if (isSelected) {
-                                                    null
-                                                } else {
-                                                    {
-                                                        viewModelScope.launch {
-                                                            interactor.select(colorOptionModel)
-                                                        }
-                                                    }
-                                                }
-                                            },
-                                    )
-                                }
+                                        },
+                                )
                             }
-                        }
-                }
-                .toMap()
-        }
+                    }
+                    .toMap()
+            }
+            .shareIn(
+                scope = viewModelScope,
+                started = SharingStarted.WhileSubscribed(),
+                replay = 1,
+            )
 
     /** The list of all available color options for the selected Color Type. */
     val colorOptions: Flow<List<OptionItemViewModel<ColorOptionIconViewModel>>> =
         combine(allColorOptions, selectedColorTypeTabId) {
-            allColorOptions: Map<ColorType, List<OptionItemViewModel<ColorOptionIconViewModel>>>,
-            selectedColorTypeIdOrNull ->
-            val selectedColorTypeId = selectedColorTypeIdOrNull ?: ColorType.WALLPAPER_COLOR
-            allColorOptions[selectedColorTypeId]!!
-        }
+                allColorOptions:
+                    Map<ColorType, List<OptionItemViewModel<ColorOptionIconViewModel>>>,
+                selectedColorTypeIdOrNull ->
+                val selectedColorTypeId = selectedColorTypeIdOrNull ?: ColorType.WALLPAPER_COLOR
+                allColorOptions[selectedColorTypeId]!!
+            }
+            .shareIn(
+                scope = viewModelScope,
+                started = SharingStarted.Eagerly,
+                replay = 1,
+            )
 
     /** The list of color options for the color section */
     val colorSectionOptions: Flow<List<OptionItemViewModel<ColorOptionIconViewModel>>> =
-        allColorOptions.map { allColorOptions ->
-            val wallpaperOptions = allColorOptions[ColorType.WALLPAPER_COLOR]
-            val presetOptions = allColorOptions[ColorType.PRESET_COLOR]
-            val subOptions =
-                wallpaperOptions!!.subList(0, min(COLOR_SECTION_OPTION_SIZE, wallpaperOptions.size))
-            // Add additional options based on preset colors if size of wallpaper color options is
-            // less than COLOR_SECTION_OPTION_SIZE
-            val additionalSubOptions =
-                presetOptions!!.subList(
-                    0,
-                    min(
-                        max(0, COLOR_SECTION_OPTION_SIZE - wallpaperOptions.size),
-                        presetOptions.size,
+        allColorOptions
+            .map { allColorOptions ->
+                val wallpaperOptions = allColorOptions[ColorType.WALLPAPER_COLOR]
+                val presetOptions = allColorOptions[ColorType.PRESET_COLOR]
+                val subOptions =
+                    wallpaperOptions!!.subList(
+                        0,
+                        min(COLOR_SECTION_OPTION_SIZE, wallpaperOptions.size)
                     )
-                )
-            subOptions + additionalSubOptions
-        }
+                // Add additional options based on preset colors if size of wallpaper color options
+                // is
+                // less than COLOR_SECTION_OPTION_SIZE
+                val additionalSubOptions =
+                    presetOptions!!.subList(
+                        0,
+                        min(
+                            max(0, COLOR_SECTION_OPTION_SIZE - wallpaperOptions.size),
+                            presetOptions.size,
+                        )
+                    )
+                subOptions + additionalSubOptions
+            }
+            .shareIn(
+                scope = viewModelScope,
+                started = SharingStarted.WhileSubscribed(),
+                replay = 1,
+            )
 
     class Factory(
         private val context: Context,
diff --git a/src/com/android/customization/picker/notifications/ui/binder/NotificationSectionBinder.kt b/src/com/android/customization/picker/notifications/ui/binder/NotificationSectionBinder.kt
index 54f9bf6..1868a4e 100644
--- a/src/com/android/customization/picker/notifications/ui/binder/NotificationSectionBinder.kt
+++ b/src/com/android/customization/picker/notifications/ui/binder/NotificationSectionBinder.kt
@@ -20,7 +20,6 @@
 import android.annotation.SuppressLint
 import android.view.View
 import android.widget.Switch
-import android.widget.TextView
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.lifecycleScope
@@ -39,19 +38,12 @@
         viewModel: NotificationSectionViewModel,
         lifecycleOwner: LifecycleOwner,
     ) {
-        val subtitle: TextView = view.requireViewById(R.id.subtitle)
         val switch: Switch = view.requireViewById(R.id.switcher)
 
         view.setOnClickListener { viewModel.onClicked() }
 
         lifecycleOwner.lifecycleScope.launch {
             lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
-                launch {
-                    viewModel.subtitleStringResourceId.collect {
-                        subtitle.text = view.context.getString(it)
-                    }
-                }
-
                 launch { viewModel.isSwitchOn.collect { switch.isChecked = it } }
             }
         }
diff --git a/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModel.kt b/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModel.kt
index 97b0448..954efa2 100644
--- a/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModel.kt
+++ b/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModel.kt
@@ -17,13 +17,11 @@
 
 package com.android.customization.picker.notifications.ui.viewmodel
 
-import androidx.annotation.StringRes
 import androidx.annotation.VisibleForTesting
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
 import com.android.customization.picker.notifications.domain.interactor.NotificationsInteractor
-import com.android.wallpaper.R
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.launch
@@ -35,16 +33,6 @@
     private val interactor: NotificationsInteractor,
 ) : ViewModel() {
 
-    /** A string resource ID for the subtitle. */
-    @StringRes
-    val subtitleStringResourceId: Flow<Int> =
-        interactor.settings.map { model ->
-            when (model.isShowNotificationsOnLockScreenEnabled) {
-                true -> R.string.show_notifications_on_lock_screen
-                false -> R.string.hide_notifications_on_lock_screen
-            }
-        }
-
     /** Whether the switch should be on. */
     val isSwitchOn: Flow<Boolean> =
         interactor.settings.map { model -> model.isShowNotificationsOnLockScreenEnabled }
diff --git a/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt b/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt
index a2afc81..8e91798 100644
--- a/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt
+++ b/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt
@@ -17,87 +17,178 @@
 
 package com.android.customization.picker.preview.ui.section
 
-import android.app.Activity
+import android.app.WallpaperManager
 import android.content.Context
+import android.graphics.Rect
+import android.view.TouchDelegate
+import android.view.View
+import android.view.View.OnAttachStateChangeListener
 import android.view.ViewGroup
 import android.view.ViewStub
+import androidx.activity.ComponentActivity
+import androidx.constraintlayout.helper.widget.Carousel
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.constraintlayout.widget.Guideline
 import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.get
 import androidx.lifecycle.lifecycleScope
+import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor
 import com.android.customization.picker.clock.ui.binder.ClockCarouselViewBinder
+import com.android.customization.picker.clock.ui.fragment.ClockSettingsFragment
 import com.android.customization.picker.clock.ui.view.ClockCarouselView
 import com.android.customization.picker.clock.ui.view.ClockViewFactory
 import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
 import com.android.wallpaper.R
-import com.android.wallpaper.model.CustomizationSectionController
+import com.android.wallpaper.model.CustomizationSectionController.CustomizationSectionNavigationController
 import com.android.wallpaper.model.WallpaperColorsViewModel
+import com.android.wallpaper.model.WallpaperPreviewNavigator
 import com.android.wallpaper.module.CurrentWallpaperInfoFactory
 import com.android.wallpaper.module.CustomizationSections
 import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
+import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewClickView
 import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewSectionController
 import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewView
 import com.android.wallpaper.util.DisplayUtils
+import kotlinx.coroutines.Job
 import kotlinx.coroutines.launch
 
-/** Controls the screen preview section. */
+/**
+ * A ThemePicker version of the [ScreenPreviewSectionController] that adjusts the preview for the
+ * clock carousel, and also updates the preview on theme changes.
+ */
 class PreviewWithClockCarouselSectionController(
-    activity: Activity,
+    activity: ComponentActivity,
     private val lifecycleOwner: LifecycleOwner,
-    private val initialScreen: CustomizationSections.Screen,
+    private val screen: CustomizationSections.Screen,
     wallpaperInfoFactory: CurrentWallpaperInfoFactory,
     colorViewModel: WallpaperColorsViewModel,
     displayUtils: DisplayUtils,
-    private val clockCarouselViewModel: ClockCarouselViewModel,
+    clockCarouselViewModelFactory: ClockCarouselViewModel.Factory,
     private val clockViewFactory: ClockViewFactory,
-    navigator: CustomizationSectionController.CustomizationSectionNavigationController,
+    wallpaperPreviewNavigator: WallpaperPreviewNavigator,
+    private val navigationController: CustomizationSectionNavigationController,
     wallpaperInteractor: WallpaperInteractor,
+    themedIconInteractor: ThemedIconInteractor,
+    wallpaperManager: WallpaperManager,
+    private val isTwoPaneAndSmallWidth: Boolean,
 ) :
-    ScreenPreviewSectionController(
+    PreviewWithThemeSectionController(
         activity,
         lifecycleOwner,
-        initialScreen,
+        screen,
         wallpaperInfoFactory,
         colorViewModel,
         displayUtils,
-        navigator,
+        wallpaperPreviewNavigator,
         wallpaperInteractor,
+        themedIconInteractor,
+        wallpaperManager,
+        isTwoPaneAndSmallWidth,
     ) {
 
-    private var clockCarouselBinding: ClockCarouselViewBinder.Binding? = null
+    private val viewModel =
+        ViewModelProvider(
+                activity,
+                clockCarouselViewModelFactory,
+            )
+            .get() as ClockCarouselViewModel
+
+    private var clockColorAndSizeButton: View? = null
 
     override val hideLockScreenClockPreview = true
 
     override fun createView(context: Context): ScreenPreviewView {
         val view = super.createView(context)
-        val carouselViewStub: ViewStub = view.requireViewById(R.id.clock_carousel_view_stub)
-        carouselViewStub.layoutResource = R.layout.clock_carousel_view
-        val carouselView = carouselViewStub.inflate() as ClockCarouselView
+        if (screen == CustomizationSections.Screen.LOCK_SCREEN) {
+            val screenPreviewClickView: ScreenPreviewClickView =
+                view.findViewById(R.id.screen_preview_click_view)
+            val clockColorAndSizeButtonStub: ViewStub =
+                view.requireViewById(R.id.clock_color_and_size_button)
+            clockColorAndSizeButtonStub.layoutResource = R.layout.clock_color_and_size_button
+            clockColorAndSizeButton = clockColorAndSizeButtonStub.inflate() as View
+            clockColorAndSizeButton?.setOnClickListener {
+                navigationController.navigateTo(ClockSettingsFragment())
+            }
+            // clockColorAndSizeButton's touch target has to be increased programmatically
+            // rather than with padding because this button only appears in the lock screen tab.
+            view.post {
+                val rect = Rect()
+                clockColorAndSizeButton?.getHitRect(rect)
+                val padding =
+                    context
+                        .getResources()
+                        .getDimensionPixelSize(R.dimen.screen_preview_section_vertical_space)
+                rect.top -= padding
+                rect.bottom += padding
+                val touchDelegate = TouchDelegate(rect, clockColorAndSizeButton)
+                view.setTouchDelegate(touchDelegate)
+            }
 
-        // TODO (b/270716937) We should handle the single clock case in the clock carousel itself
-        val singleClockViewStub: ViewStub = view.requireViewById(R.id.single_clock_view_stub)
-        singleClockViewStub.layoutResource = R.layout.single_clock_view
-        val singleClockView = singleClockViewStub.inflate() as ViewGroup
-        lifecycleOwner.lifecycleScope.launch {
-            clockCarouselBinding =
-                ClockCarouselViewBinder.bind(
-                    carouselView = carouselView,
-                    singleClockView = singleClockView,
-                    viewModel = clockCarouselViewModel,
-                    clockViewFactory = clockViewFactory,
-                    lifecycleOwner = lifecycleOwner,
-                )
-            onScreenSwitched(
-                isOnLockScreen = initialScreen == CustomizationSections.Screen.LOCK_SCREEN
-            )
+            val carouselViewStub: ViewStub = view.requireViewById(R.id.clock_carousel_view_stub)
+            carouselViewStub.layoutResource = R.layout.clock_carousel_view
+            val carouselView = carouselViewStub.inflate() as ClockCarouselView
+
+            if (isTwoPaneAndSmallWidth) {
+                val guidelineMargin =
+                    context.resources.getDimensionPixelSize(
+                        R.dimen.clock_carousel_guideline_margin_for_2_pane_small_width
+                    )
+
+                val guidelineStart = carouselView.requireViewById<Guideline>(R.id.guideline_start)
+                var layoutParams = guidelineStart.layoutParams as ConstraintLayout.LayoutParams
+                layoutParams.guideBegin = guidelineMargin
+                guidelineStart.layoutParams = layoutParams
+
+                val guidelineEnd = carouselView.requireViewById<Guideline>(R.id.guideline_end)
+                layoutParams = guidelineEnd.layoutParams as ConstraintLayout.LayoutParams
+                layoutParams.guideEnd = guidelineMargin
+                guidelineEnd.layoutParams = layoutParams
+            }
+
+            // TODO (b/270716937) We should handle the single clock case in the clock carousel
+            // itself
+            val singleClockViewStub: ViewStub = view.requireViewById(R.id.single_clock_view_stub)
+            singleClockViewStub.layoutResource = R.layout.single_clock_view
+            val singleClockView = singleClockViewStub.inflate() as ViewGroup
+
+            /**
+             * Only bind after [Carousel.onAttachedToWindow]. This is to avoid the race condition
+             * that the flow emits before attached to window where [Carousel.mMotionLayout] is still
+             * null.
+             */
+            var onAttachStateChangeListener: OnAttachStateChangeListener? = null
+            var bindJob: Job? = null
+            onAttachStateChangeListener =
+                object : OnAttachStateChangeListener {
+                    override fun onViewAttachedToWindow(view: View?) {
+                        bindJob =
+                            lifecycleOwner.lifecycleScope.launch {
+                                ClockCarouselViewBinder.bind(
+                                    context = context,
+                                    carouselView = carouselView,
+                                    singleClockView = singleClockView,
+                                    screenPreviewClickView = screenPreviewClickView,
+                                    viewModel = viewModel,
+                                    clockViewFactory = clockViewFactory,
+                                    lifecycleOwner = lifecycleOwner,
+                                    isTwoPaneAndSmallWidth = isTwoPaneAndSmallWidth,
+                                )
+                                if (onAttachStateChangeListener != null) {
+                                    carouselView.carousel.removeOnAttachStateChangeListener(
+                                        onAttachStateChangeListener,
+                                    )
+                                }
+                            }
+                    }
+
+                    override fun onViewDetachedFromWindow(view: View?) {
+                        bindJob?.cancel()
+                    }
+                }
+            carouselView.carousel.addOnAttachStateChangeListener(onAttachStateChangeListener)
         }
+
         return view
     }
-
-    override fun onScreenSwitched(isOnLockScreen: Boolean) {
-        super.onScreenSwitched(isOnLockScreen)
-        if (isOnLockScreen) {
-            clockCarouselBinding?.show()
-        } else {
-            clockCarouselBinding?.hide()
-        }
-    }
 }
diff --git a/src/com/android/customization/picker/preview/ui/section/PreviewWithThemeSectionController.kt b/src/com/android/customization/picker/preview/ui/section/PreviewWithThemeSectionController.kt
new file mode 100644
index 0000000..56c6c30
--- /dev/null
+++ b/src/com/android/customization/picker/preview/ui/section/PreviewWithThemeSectionController.kt
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2023 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.picker.preview.ui.section
+
+import android.app.Activity
+import android.app.WallpaperManager
+import android.content.Context
+import androidx.lifecycle.LifecycleOwner
+import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor
+import com.android.customization.picker.preview.ui.viewmodel.PreviewWithThemeViewModel
+import com.android.wallpaper.R
+import com.android.wallpaper.model.WallpaperColorsViewModel
+import com.android.wallpaper.model.WallpaperPreviewNavigator
+import com.android.wallpaper.module.CurrentWallpaperInfoFactory
+import com.android.wallpaper.module.CustomizationSections
+import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
+import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewSectionController
+import com.android.wallpaper.picker.customization.ui.viewmodel.ScreenPreviewViewModel
+import com.android.wallpaper.util.DisplayUtils
+import com.android.wallpaper.util.PreviewUtils
+import kotlinx.coroutines.suspendCancellableCoroutine
+
+/**
+ * A ThemePicker version of the [ScreenPreviewSectionController] that binds the preview view with
+ * the [PreviewWithThemeViewModel] to allow preview updates on theme changes.
+ */
+open class PreviewWithThemeSectionController(
+    activity: Activity,
+    lifecycleOwner: LifecycleOwner,
+    private val screen: CustomizationSections.Screen,
+    private val wallpaperInfoFactory: CurrentWallpaperInfoFactory,
+    private val colorViewModel: WallpaperColorsViewModel,
+    displayUtils: DisplayUtils,
+    wallpaperPreviewNavigator: WallpaperPreviewNavigator,
+    private val wallpaperInteractor: WallpaperInteractor,
+    private val themedIconInteractor: ThemedIconInteractor,
+    wallpaperManager: WallpaperManager,
+    isTwoPaneAndSmallWidth: Boolean,
+) :
+    ScreenPreviewSectionController(
+        activity,
+        lifecycleOwner,
+        screen,
+        wallpaperInfoFactory,
+        colorViewModel,
+        displayUtils,
+        wallpaperPreviewNavigator,
+        wallpaperInteractor,
+        wallpaperManager,
+        isTwoPaneAndSmallWidth
+    ) {
+    override fun createScreenPreviewViewModel(context: Context): ScreenPreviewViewModel {
+        return PreviewWithThemeViewModel(
+            previewUtils =
+                if (isOnLockScreen) {
+                    PreviewUtils(
+                        context = context,
+                        authority =
+                            context.getString(
+                                R.string.lock_screen_preview_provider_authority,
+                            ),
+                    )
+                } else {
+                    PreviewUtils(
+                        context = context,
+                        authorityMetadataKey =
+                            context.getString(
+                                R.string.grid_control_metadata_name,
+                            ),
+                    )
+                },
+            wallpaperInfoProvider = { forceReload ->
+                suspendCancellableCoroutine { continuation ->
+                    wallpaperInfoFactory.createCurrentWallpaperInfos(
+                        { homeWallpaper, lockWallpaper, _ ->
+                            val wallpaper =
+                                if (isOnLockScreen) {
+                                    lockWallpaper ?: homeWallpaper
+                                } else {
+                                    homeWallpaper ?: lockWallpaper
+                                }
+                            loadInitialColors(
+                                context = context,
+                                screen = screen,
+                            )
+                            continuation.resume(wallpaper, null)
+                        },
+                        forceReload,
+                    )
+                }
+            },
+            onWallpaperColorChanged = { colors ->
+                if (isOnLockScreen) {
+                    colorViewModel.setLockWallpaperColors(colors)
+                } else {
+                    colorViewModel.setHomeWallpaperColors(colors)
+                }
+            },
+            initialExtrasProvider = { getInitialExtras(isOnLockScreen) },
+            wallpaperInteractor = wallpaperInteractor,
+            themedIconInteractor = themedIconInteractor,
+            screen = screen,
+        )
+    }
+}
diff --git a/src/com/android/customization/picker/preview/ui/viewmodel/PreviewWithThemeViewModel.kt b/src/com/android/customization/picker/preview/ui/viewmodel/PreviewWithThemeViewModel.kt
new file mode 100644
index 0000000..435878d
--- /dev/null
+++ b/src/com/android/customization/picker/preview/ui/viewmodel/PreviewWithThemeViewModel.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2023 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.picker.preview.ui.viewmodel
+
+import android.app.WallpaperColors
+import android.os.Bundle
+import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor
+import com.android.wallpaper.model.WallpaperInfo
+import com.android.wallpaper.module.CustomizationSections
+import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
+import com.android.wallpaper.picker.customization.ui.viewmodel.ScreenPreviewViewModel
+import com.android.wallpaper.util.PreviewUtils
+import kotlinx.coroutines.flow.Flow
+
+/** A ThemePicker version of the [ScreenPreviewViewModel] */
+class PreviewWithThemeViewModel(
+    previewUtils: PreviewUtils,
+    initialExtrasProvider: () -> Bundle? = { null },
+    wallpaperInfoProvider: suspend (forceReload: Boolean) -> WallpaperInfo?,
+    onWallpaperColorChanged: (WallpaperColors?) -> Unit = {},
+    wallpaperInteractor: WallpaperInteractor,
+    private val themedIconInteractor: ThemedIconInteractor? = null,
+    screen: CustomizationSections.Screen,
+) :
+    ScreenPreviewViewModel(
+        previewUtils,
+        initialExtrasProvider,
+        wallpaperInfoProvider,
+        onWallpaperColorChanged,
+        wallpaperInteractor,
+        screen,
+    ) {
+    override fun workspaceUpdateEvents(): Flow<Boolean>? = themedIconInteractor?.isActivated
+}
diff --git a/src/com/android/customization/picker/quickaffordance/data/repository/KeyguardQuickAffordancePickerRepository.kt b/src/com/android/customization/picker/quickaffordance/data/repository/KeyguardQuickAffordancePickerRepository.kt
index c432bd9..b17af80 100644
--- a/src/com/android/customization/picker/quickaffordance/data/repository/KeyguardQuickAffordancePickerRepository.kt
+++ b/src/com/android/customization/picker/quickaffordance/data/repository/KeyguardQuickAffordancePickerRepository.kt
@@ -80,9 +80,9 @@
             name = name,
             iconResourceId = iconResourceId,
             isEnabled = isEnabled,
-            enablementInstructions = enablementInstructions ?: emptyList(),
+            enablementExplanation = enablementExplanation ?: "",
             enablementActionText = enablementActionText,
-            enablementActionComponentName = enablementActionComponentName,
+            enablementActionIntent = enablementActionIntent,
             configureIntent = configureIntent,
         )
     }
diff --git a/src/com/android/customization/picker/quickaffordance/shared/model/KeyguardQuickAffordancePickerAffordanceModel.kt b/src/com/android/customization/picker/quickaffordance/shared/model/KeyguardQuickAffordancePickerAffordanceModel.kt
index 7b04ff1..e53f790 100644
--- a/src/com/android/customization/picker/quickaffordance/shared/model/KeyguardQuickAffordancePickerAffordanceModel.kt
+++ b/src/com/android/customization/picker/quickaffordance/shared/model/KeyguardQuickAffordancePickerAffordanceModel.kt
@@ -31,18 +31,18 @@
     @DrawableRes val iconResourceId: Int,
     /** Whether this quick affordance is enabled. */
     val isEnabled: Boolean,
-    /** If not enabled, the list of user-visible steps to re-enable it. */
-    val enablementInstructions: List<String>,
+    /** If not enabled, the user-visible message explaining why. */
+    val enablementExplanation: String,
     /**
      * If not enabled, an optional label for a button that takes the user to a destination where
      * they can re-enable it.
      */
     val enablementActionText: String?,
     /**
-     * If not enabled, an optional component name (package and action) for a button that takes the
-     * user to a destination where they can re-enable it.
+     * If not enabled, an optional [Intent] for a button that takes the user to a destination where
+     * they can re-enable it.
      */
-    val enablementActionComponentName: String?,
+    val enablementActionIntent: Intent?,
     /** Optional [Intent] to use to start an activity to configure this affordance. */
     val configureIntent: Intent?,
 )
diff --git a/src/com/android/customization/picker/quickaffordance/ui/adapter/SlotTabAdapter.kt b/src/com/android/customization/picker/quickaffordance/ui/adapter/SlotTabAdapter.kt
index 5203ed3..6879ffc 100644
--- a/src/com/android/customization/picker/quickaffordance/ui/adapter/SlotTabAdapter.kt
+++ b/src/com/android/customization/picker/quickaffordance/ui/adapter/SlotTabAdapter.kt
@@ -55,7 +55,7 @@
         val item = items[position]
         holder.itemView.isSelected = item.isSelected
         holder.textView.text = item.name
-        holder.textView.setOnClickListener(
+        holder.itemView.setOnClickListener(
             if (item.onClicked != null) {
                 View.OnClickListener { item.onClicked.invoke() }
             } else {
diff --git a/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePickerBinder.kt b/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePickerBinder.kt
index 4395f5e..68367c8 100644
--- a/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePickerBinder.kt
+++ b/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePickerBinder.kt
@@ -126,6 +126,15 @@
                             }
                     }
                 }
+
+                launch {
+                    viewModel.activityStartRequests.collect { intent ->
+                        if (intent != null) {
+                            view.context.startActivity(intent)
+                            viewModel.onActivityStarted()
+                        }
+                    }
+                }
             }
         }
     }
diff --git a/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePreviewBinder.kt b/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePreviewBinder.kt
index 58a082d..5b6d353 100644
--- a/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePreviewBinder.kt
+++ b/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePreviewBinder.kt
@@ -25,7 +25,7 @@
 import androidx.lifecycle.flowWithLifecycle
 import androidx.lifecycle.lifecycleScope
 import com.android.customization.picker.quickaffordance.ui.viewmodel.KeyguardQuickAffordancePickerViewModel
-import com.android.systemui.shared.quickaffordance.shared.model.KeyguardQuickAffordancePreviewConstants
+import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants
 import com.android.wallpaper.R
 import com.android.wallpaper.picker.customization.ui.binder.ScreenPreviewBinder
 import kotlinx.coroutines.launch
@@ -49,6 +49,7 @@
                 lifecycleOwner = lifecycleOwner,
                 offsetToStart = offsetToStart,
                 dimWallpaper = true,
+                onWallpaperPreviewDirty = { activity.recreate() },
             )
 
         previewView.contentDescription =
@@ -61,10 +62,8 @@
                 .flowWithLifecycle(lifecycleOwner.lifecycle, Lifecycle.State.STARTED)
                 .collect { slotId ->
                     binding.sendMessage(
-                        KeyguardQuickAffordancePreviewConstants.MESSAGE_ID_SLOT_SELECTED,
-                        Bundle().apply {
-                            putString(KeyguardQuickAffordancePreviewConstants.KEY_SLOT_ID, slotId)
-                        },
+                        KeyguardPreviewConstants.MESSAGE_ID_SLOT_SELECTED,
+                        Bundle().apply { putString(KeyguardPreviewConstants.KEY_SLOT_ID, slotId) },
                     )
                 }
         }
diff --git a/src/com/android/customization/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModel.kt b/src/com/android/customization/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModel.kt
index 14b6acc..f832cde 100644
--- a/src/com/android/customization/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModel.kt
+++ b/src/com/android/customization/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModel.kt
@@ -27,16 +27,17 @@
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
 import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor
-import com.android.systemui.shared.customization.data.content.CustomizationProviderContract
 import com.android.systemui.shared.keyguard.shared.model.KeyguardQuickAffordanceSlots
-import com.android.systemui.shared.quickaffordance.shared.model.KeyguardQuickAffordancePreviewConstants
+import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants
 import com.android.wallpaper.R
 import com.android.wallpaper.module.CurrentWallpaperInfoFactory
+import com.android.wallpaper.module.CustomizationSections
 import com.android.wallpaper.picker.common.button.ui.viewmodel.ButtonStyle
 import com.android.wallpaper.picker.common.button.ui.viewmodel.ButtonViewModel
 import com.android.wallpaper.picker.common.dialog.ui.viewmodel.DialogViewModel
 import com.android.wallpaper.picker.common.icon.ui.viewmodel.Icon
 import com.android.wallpaper.picker.common.text.ui.viewmodel.Text
+import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
 import com.android.wallpaper.picker.customization.ui.viewmodel.ScreenPreviewViewModel
 import com.android.wallpaper.picker.option.ui.viewmodel.OptionItemViewModel
 import com.android.wallpaper.util.PreviewUtils
@@ -60,8 +61,8 @@
 private constructor(
     context: Context,
     private val quickAffordanceInteractor: KeyguardQuickAffordancePickerInteractor,
+    private val wallpaperInteractor: WallpaperInteractor,
     private val wallpaperInfoFactory: CurrentWallpaperInfoFactory,
-    activityStarter: (Intent) -> Unit,
 ) : ViewModel() {
 
     @SuppressLint("StaticFieldLeak") private val applicationContext = context.applicationContext
@@ -79,25 +80,27 @@
             initialExtrasProvider = {
                 Bundle().apply {
                     putString(
-                        KeyguardQuickAffordancePreviewConstants.KEY_INITIALLY_SELECTED_SLOT_ID,
+                        KeyguardPreviewConstants.KEY_INITIALLY_SELECTED_SLOT_ID,
                         selectedSlotId.value,
                     )
                     putBoolean(
-                        KeyguardQuickAffordancePreviewConstants.KEY_HIGHLIGHT_QUICK_AFFORDANCES,
+                        KeyguardPreviewConstants.KEY_HIGHLIGHT_QUICK_AFFORDANCES,
                         true,
                     )
                 }
             },
-            wallpaperInfoProvider = {
+            wallpaperInfoProvider = { forceReload ->
                 suspendCancellableCoroutine { continuation ->
                     wallpaperInfoFactory.createCurrentWallpaperInfos(
                         { homeWallpaper, lockWallpaper, _ ->
                             continuation.resume(lockWallpaper ?: homeWallpaper, null)
                         },
-                        /* forceRefresh= */ true,
+                        forceReload,
                     )
                 }
             },
+            wallpaperInteractor = wallpaperInteractor,
+            screen = CustomizationSections.Screen.LOCK_SCREEN,
         )
 
     /** A locally-selected slot, if the user ever switched from the original one. */
@@ -258,16 +261,15 @@
                                     showEnablementDialog(
                                         icon = affordanceIcon,
                                         name = affordance.name,
-                                        instructions = affordance.enablementInstructions,
+                                        explanation = affordance.enablementExplanation,
                                         actionText = affordance.enablementActionText,
-                                        actionComponentName =
-                                            affordance.enablementActionComponentName,
+                                        actionIntent = affordance.enablementActionIntent,
                                     )
                                 }
                             },
                         onLongClicked =
                             if (affordance.configureIntent != null) {
-                                { activityStarter(affordance.configureIntent) }
+                                { requestActivityStart(affordance.configureIntent) }
                             } else {
                                 null
                             },
@@ -313,17 +315,40 @@
      */
     val dialog: Flow<DialogViewModel?> = _dialog.asStateFlow()
 
+    private val _activityStartRequests = MutableStateFlow<Intent?>(null)
+    /**
+     * Requests to start an activity with the given [Intent].
+     *
+     * Important: once the activity is started, the [Intent] should be consumed by calling
+     * [onActivityStarted].
+     */
+    val activityStartRequests: StateFlow<Intent?> = _activityStartRequests.asStateFlow()
+
     /** Notifies that the dialog has been dismissed in the UI. */
     fun onDialogDismissed() {
         _dialog.value = null
     }
 
+    /**
+     * Notifies that an activity request from [activityStartRequests] has been fulfilled (e.g. the
+     * activity was started and the view-model can forget needing to start this activity).
+     */
+    fun onActivityStarted() {
+        _activityStartRequests.value = null
+    }
+
+    private fun requestActivityStart(
+        intent: Intent,
+    ) {
+        _activityStartRequests.value = intent
+    }
+
     private fun showEnablementDialog(
         icon: Drawable,
         name: String,
-        instructions: List<String>,
+        explanation: String,
         actionText: String?,
-        actionComponentName: String?,
+        actionIntent: Intent?,
     ) {
         _dialog.value =
             DialogViewModel(
@@ -332,35 +357,39 @@
                         drawable = icon,
                         contentDescription = null,
                     ),
-                title = Text.Loaded(name),
-                message =
-                    Text.Loaded(
-                        buildString {
-                            instructions.forEachIndexed { index, instruction ->
-                                if (index > 0) {
-                                    append('\n')
-                                }
-
-                                append(instruction)
-                            }
-                        }
-                    ),
+                headline = Text.Resource(R.string.keyguard_affordance_enablement_dialog_headline),
+                message = Text.Loaded(explanation),
                 buttons =
-                    listOf(
-                        ButtonViewModel(
-                            text = actionText?.let { Text.Loaded(actionText) }
-                                    ?: Text.Resource(
-                                        R.string
-                                            .keyguard_affordance_enablement_dialog_dismiss_button,
+                    buildList {
+                        add(
+                            ButtonViewModel(
+                                text =
+                                    Text.Resource(
+                                        if (actionText != null) {
+                                            // This is not the only button on the dialog.
+                                            R.string.cancel
+                                        } else {
+                                            // This is the only button on the dialog.
+                                            R.string
+                                                .keyguard_affordance_enablement_dialog_dismiss_button
+                                        }
                                     ),
-                            style = ButtonStyle.Primary,
-                            onClicked = {
-                                actionComponentName.toIntent()?.let { intent ->
-                                    applicationContext.startActivity(intent)
-                                }
-                            }
-                        ),
-                    ),
+                                style = ButtonStyle.Secondary,
+                            ),
+                        )
+
+                        if (actionText != null) {
+                            add(
+                                ButtonViewModel(
+                                    text = Text.Loaded(actionText),
+                                    style = ButtonStyle.Primary,
+                                    onClicked = {
+                                        actionIntent?.let { intent -> requestActivityStart(intent) }
+                                    }
+                                ),
+                            )
+                        }
+                    },
             )
     }
 
@@ -398,29 +427,6 @@
         return quickAffordanceInteractor.getAffordanceIcon(iconResourceId)
     }
 
-    private fun String?.toIntent(): Intent? {
-        if (isNullOrEmpty()) {
-            return null
-        }
-
-        val splitUp =
-            split(
-                CustomizationProviderContract.LockScreenQuickAffordances.AffordanceTable
-                    .COMPONENT_NAME_SEPARATOR
-            )
-        check(splitUp.size == 1 || splitUp.size == 2) {
-            "Illegal component name \"$this\". Must be either just an action or a package and an" +
-                " action separated by a" +
-                " \"${CustomizationProviderContract.LockScreenQuickAffordances.AffordanceTable.COMPONENT_NAME_SEPARATOR}\"!"
-        }
-
-        return Intent(splitUp.last()).apply {
-            if (splitUp.size > 1) {
-                setPackage(splitUp[0])
-            }
-        }
-    }
-
     private fun toDescriptionText(
         context: Context,
         slots: Map<String, KeyguardQuickAffordanceSlotViewModel>,
@@ -455,16 +461,16 @@
     class Factory(
         private val context: Context,
         private val quickAffordanceInteractor: KeyguardQuickAffordancePickerInteractor,
+        private val wallpaperInteractor: WallpaperInteractor,
         private val wallpaperInfoFactory: CurrentWallpaperInfoFactory,
-        private val activityStarter: (Intent) -> Unit,
     ) : ViewModelProvider.Factory {
         override fun <T : ViewModel> create(modelClass: Class<T>): T {
             @Suppress("UNCHECKED_CAST")
             return KeyguardQuickAffordancePickerViewModel(
                 context = context,
                 quickAffordanceInteractor = quickAffordanceInteractor,
+                wallpaperInteractor = wallpaperInteractor,
                 wallpaperInfoFactory = wallpaperInfoFactory,
-                activityStarter = activityStarter,
             )
                 as T
         }
diff --git a/tests/robotests/src/com/android/customization/model/clock/BaseClockManagerTest.java b/tests/robotests/src/com/android/customization/model/clock/BaseClockManagerTest.java
deleted file mode 100644
index eeff531..0000000
--- a/tests/robotests/src/com/android/customization/model/clock/BaseClockManagerTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2019 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.model.clock;
-
-import static junit.framework.TestCase.assertTrue;
-import static junit.framework.TestCase.fail;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.anyBoolean;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import androidx.annotation.Nullable;
-
-import com.android.customization.model.CustomizationManager.Callback;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-
-@RunWith(RobolectricTestRunner.class)
-public class BaseClockManagerTest {
-
-    private static final String CURRENT_CLOCK = "current_clock";
-
-    @Mock ClockProvider mProvider;
-    private TestClockManager mManager;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mManager = new TestClockManager(mProvider);
-    }
-
-    @Test
-    public void testIsAvailable() {
-        // GIVEN that the ClockProvider is available
-        when(mProvider.isAvailable()).thenReturn(true);
-        // THEN the BaseClockManager is true
-        assertTrue(mManager.isAvailable());
-    }
-
-    @Test
-    public void testApply() {
-        final String id = "id";
-        Clockface clock = new Clockface.Builder().setId(id).build();
-
-        mManager.apply(clock, new Callback() {
-            @Override
-            public void onSuccess() {
-                //Nothing to do here, the test passed
-            }
-            @Override
-            public void onError(@Nullable Throwable throwable) {
-                fail("onError was called when grid had been applied successfully");
-            }
-        });
-
-        assertEquals(id, mManager.getClockId());
-    }
-
-    @Test
-    public void testFetch() {
-        mManager.fetchOptions(null, false);
-        verify(mProvider).fetch(eq(null), anyBoolean());
-    }
-
-    /**
-     * Testable BaseClockManager that provides basic implementations of abstract methods.
-     */
-    private static final class TestClockManager extends BaseClockManager {
-
-        private String mClockId;
-
-        TestClockManager(ClockProvider provider) {
-            super(provider);
-        }
-
-        String getClockId() {
-            return mClockId;
-        }
-
-        @Override
-        protected void handleApply(Clockface option, Callback callback) {
-            mClockId = option.getId();
-            callback.onSuccess();
-        }
-
-        @Override
-        protected String lookUpCurrentClock() {
-            return CURRENT_CLOCK;
-        }
-    }
-}
diff --git a/tests/robotests/src/com/android/customization/model/clock/ClockManagerTest.java b/tests/robotests/src/com/android/customization/model/clock/ClockManagerTest.java
deleted file mode 100644
index 574548a..0000000
--- a/tests/robotests/src/com/android/customization/model/clock/ClockManagerTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2019 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.model.clock;
-
-import static junit.framework.TestCase.fail;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.verify;
-
-import android.content.ContentResolver;
-import android.provider.Settings.Secure;
-
-import androidx.annotation.Nullable;
-
-import com.android.customization.model.CustomizationManager.Callback;
-import com.android.customization.module.ThemesUserEventLogger;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class ClockManagerTest {
-
-    private static final String CLOCK_ID = "id";
-    private static final String CLOCK_FIELD = "clock";
-    private static final String CLOCK_FACE_SETTING = "fake_clock_face_setting";
-
-    @Mock ClockProvider mProvider;
-    @Mock ThemesUserEventLogger mLogger;
-    private ContentResolver mContentResolver;
-    private ClockManager mManager;
-    @Mock private Clockface mMockClockface;
-    @Mock private Callback mMockCallback;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContentResolver = RuntimeEnvironment.application.getContentResolver();
-        mManager = new ClockManager(mContentResolver, mProvider, mLogger);
-    }
-
-    @Test
-    public void testApply() throws JSONException {
-        Clockface clock = new Clockface.Builder().setId(CLOCK_ID).build();
-
-        mManager.apply(clock, new Callback() {
-            @Override
-            public void onSuccess() {
-                //Nothing to do here, the test passed
-            }
-
-            @Override
-            public void onError(@Nullable Throwable throwable) {
-                fail("onError was called when grid had been applied successfully");
-            }
-        });
-
-        // THEN the clock id is written to secure settings.
-        JSONObject json =
-                new JSONObject(Secure.getString(mContentResolver, ClockManager.CLOCK_FACE_SETTING));
-        assertEquals(CLOCK_ID, json.getString(CLOCK_FIELD));
-        // AND the event is logged
-        verify(mLogger).logClockApplied(clock);
-    }
-
-    @Test
-    public void testApply_whenJSONExceptionOccurs_callsOnError() {
-        doAnswer((invocation) -> {
-            throw new JSONException("Fake Test Excepton");
-        }).when(mMockClockface).getId();
-
-        mManager.apply(mMockClockface, mMockCallback);
-
-        verify(mMockCallback).onError(null);
-    }
-
-    @Test
-    public void testGetCurrentClock_returnsClockId() throws JSONException {
-        // Secure settings contains a clock id
-        JSONObject json = new JSONObject().put(CLOCK_FIELD, CLOCK_ID);
-        Secure.putString(mContentResolver, ClockManager.CLOCK_FACE_SETTING, json.toString());
-
-        // The current clock is that id
-        assertEquals(CLOCK_ID, mManager.getCurrentClock());
-    }
-
-    @Test
-    public void testGetCurrentClock_whenJSONExceptionOccurs_returnsClockFaceSetting() {
-        // Secure settings contains a clock face setting with invalid format to cause JSONException.
-        Secure.putString(mContentResolver, ClockManager.CLOCK_FACE_SETTING, CLOCK_FACE_SETTING);
-
-        // The current clock is the clock face setting which is saved in secure settings.
-        assertEquals(CLOCK_FACE_SETTING, mManager.getCurrentClock());
-    }
-
-    @Test
-    public void testGetCurrentClock_withNullIdInSecureSettings_returnsNullId() {
-        // Secure settings contains a null clock id
-        Secure.putString(mContentResolver, ClockManager.CLOCK_FACE_SETTING, /* value= */ null);
-
-        // The current clock is null
-        assertEquals(null, mManager.getCurrentClock());
-    }
-
-    @Test
-    public void testGetCurrentClock_withEmptyIdInSecureSettings_returnsEmptyId() {
-        // Secure settings contains an empty clock id
-        Secure.putString(mContentResolver, ClockManager.CLOCK_FACE_SETTING, /* value= */ "");
-
-        // The current clock is empty
-        assertEquals("", mManager.getCurrentClock());
-    }
-}
diff --git a/tests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt b/tests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
index 1d9457a..a29d559 100644
--- a/tests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
+++ b/tests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
@@ -61,8 +61,8 @@
     fun setUp() {
         context = InstrumentationRegistry.getInstrumentation().targetContext
         val testDispatcher = StandardTestDispatcher()
-        testScope = TestScope(testDispatcher)
         Dispatchers.setMain(testDispatcher)
+        testScope = TestScope(testDispatcher)
         repository = FakeColorPickerRepository(context = context)
         store = FakeSnapshotStore()
 
diff --git a/tests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt b/tests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt
index 103ae84..3f10674 100644
--- a/tests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt
+++ b/tests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt
@@ -34,10 +34,14 @@
 import com.android.wallpaper.module.InjectorProvider
 import com.android.wallpaper.picker.common.icon.ui.viewmodel.Icon
 import com.android.wallpaper.picker.common.text.ui.viewmodel.Text
+import com.android.wallpaper.picker.customization.data.repository.WallpaperRepository
+import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
 import com.android.wallpaper.picker.option.ui.viewmodel.OptionItemViewModel
 import com.android.wallpaper.testing.FakeSnapshotStore
+import com.android.wallpaper.testing.FakeWallpaperClient
 import com.android.wallpaper.testing.TestCurrentWallpaperInfoFactory
 import com.android.wallpaper.testing.TestInjector
+import com.android.wallpaper.testing.TestWallpaperPreferences
 import com.android.wallpaper.testing.collectLastValue
 import com.google.common.truth.Truth.assertThat
 import com.google.common.truth.Truth.assertWithMessage
@@ -66,8 +70,7 @@
     private lateinit var testScope: TestScope
     private lateinit var client: FakeCustomizationProviderClient
     private lateinit var quickAffordanceInteractor: KeyguardQuickAffordancePickerInteractor
-
-    private var latestStartedActivityIntent: Intent? = null
+    private lateinit var wallpaperInteractor: WallpaperInteractor
 
     @Before
     fun setUp() {
@@ -94,12 +97,22 @@
                         .apply { runBlocking { setUpSnapshotRestorer(FakeSnapshotStore()) } }
                 },
             )
+        wallpaperInteractor =
+            WallpaperInteractor(
+                repository =
+                    WallpaperRepository(
+                        scope = testScope.backgroundScope,
+                        client = FakeWallpaperClient(),
+                        wallpaperPreferences = TestWallpaperPreferences(),
+                        backgroundDispatcher = testDispatcher,
+                    ),
+            )
         underTest =
             KeyguardQuickAffordancePickerViewModel.Factory(
                     context = context,
                     quickAffordanceInteractor = quickAffordanceInteractor,
+                    wallpaperInteractor = wallpaperInteractor,
                     wallpaperInfoFactory = TestCurrentWallpaperInfoFactory(context),
-                    activityStarter = { intent -> latestStartedActivityIntent = intent },
                 )
                 .create(KeyguardQuickAffordancePickerViewModel::class.java)
     }
@@ -233,12 +246,13 @@
             val slots = collectLastValue(underTest.slots)
             val quickAffordances = collectLastValue(underTest.quickAffordances)
             val dialog = collectLastValue(underTest.dialog)
+            val activityStartRequest = collectLastValue(underTest.activityStartRequests)
 
-            val enablementInstructions = listOf("instruction1", "instruction2")
+            val enablementExplanation = "enablementExplanation"
             val enablementActionText = "enablementActionText"
             val packageName = "packageName"
             val action = "action"
-            val enablementActionComponentName = "$packageName/$action"
+            val enablementActionIntent = Intent(action).apply { `package` = packageName }
             // Lets add a disabled affordance to the picker:
             val affordanceIndex =
                 client.addAffordance(
@@ -247,9 +261,9 @@
                         name = "disabled",
                         iconResourceId = 1,
                         isEnabled = false,
-                        enablementInstructions = enablementInstructions,
+                        enablementExplanation = enablementExplanation,
                         enablementActionText = enablementActionText,
-                        enablementActionComponentName = enablementActionComponentName,
+                        enablementActionIntent = enablementActionIntent,
                     )
                 )
 
@@ -259,16 +273,26 @@
             // We expect there to be a dialog that should be shown:
             assertThat(dialog()?.icon)
                 .isEqualTo(Icon.Loaded(FakeCustomizationProviderClient.ICON_1, null))
-            assertThat(dialog()?.title).isEqualTo(Text.Loaded("disabled"))
-            assertThat(dialog()?.message)
-                .isEqualTo(Text.Loaded(enablementInstructions.joinToString("\n")))
-            assertThat(dialog()?.buttons?.size).isEqualTo(1)
-            assertThat(dialog()?.buttons?.first()?.text)
-                .isEqualTo(Text.Loaded(enablementActionText))
+            assertThat(dialog()?.headline)
+                .isEqualTo(Text.Resource(R.string.keyguard_affordance_enablement_dialog_headline))
+            assertThat(dialog()?.message).isEqualTo(Text.Loaded(enablementExplanation))
+            assertThat(dialog()?.buttons?.size).isEqualTo(2)
+            assertThat(dialog()?.buttons?.first()?.text).isEqualTo(Text.Resource(R.string.cancel))
+            assertThat(dialog()?.buttons?.get(1)?.text).isEqualTo(Text.Loaded(enablementActionText))
+
+            // When the button is clicked, we expect an intent of the given enablement action
+            // component name to be emitted.
+            dialog()?.buttons?.get(1)?.onClicked?.invoke()
+            assertThat(activityStartRequest()?.`package`).isEqualTo(packageName)
+            assertThat(activityStartRequest()?.action).isEqualTo(action)
+
+            // Once we report that the activity was started, the activity start request should be
+            // nullified.
+            underTest.onActivityStarted()
+            assertThat(activityStartRequest()).isNull()
 
             // Once we report that the dialog has been dismissed by the user, we expect there to be
-            // no
-            // dialog to be shown:
+            // no dialog to be shown:
             underTest.onDialogDismissed()
             assertThat(dialog()).isNull()
         }
@@ -277,6 +301,7 @@
     fun `Start settings activity when long-pressing an affordance`() =
         testScope.runTest {
             val quickAffordances = collectLastValue(underTest.quickAffordances)
+            val activityStartRequest = collectLastValue(underTest.activityStartRequests)
 
             // Lets add a configurable affordance to the picker:
             val configureIntent = Intent("some.action")
@@ -294,7 +319,11 @@
             // Lets try to long-click the affordance:
             quickAffordances()?.get(affordanceIndex + 1)?.onLongClicked?.invoke()
 
-            assertThat(latestStartedActivityIntent).isEqualTo(configureIntent)
+            assertThat(activityStartRequest()).isEqualTo(configureIntent)
+            // Once we report that the activity was started, the activity start request should be
+            // nullified.
+            underTest.onActivityStarted()
+            assertThat(activityStartRequest()).isNull()
         }
 
     @Test
diff --git a/tests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt b/tests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
index 2ef4e97..bf2766d 100644
--- a/tests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
+++ b/tests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
@@ -56,11 +56,11 @@
     private val _selectedClockSize = MutableStateFlow(ClockSize.SMALL)
     override val selectedClockSize: Flow<ClockSize> = _selectedClockSize.asStateFlow()
 
-    override fun setSelectedClock(clockId: String) {
+    override suspend fun setSelectedClock(clockId: String) {
         selectedClockId.value = clockId
     }
 
-    override fun setClockColor(
+    override suspend fun setClockColor(
         selectedColorId: String?,
         @IntRange(from = 0, to = 100) colorToneProgress: Int,
         @ColorInt seedColor: Int?,
@@ -75,12 +75,16 @@
     }
 
     companion object {
+        const val CLOCK_ID_0 = "clock0"
+        const val CLOCK_ID_1 = "clock1"
+        const val CLOCK_ID_2 = "clock2"
+        const val CLOCK_ID_3 = "clock3"
         val fakeClocks =
             listOf(
-                ClockMetadataModel("clock0", "clock0", null, 50, null),
-                ClockMetadataModel("clock1", "clock1", null, 50, null),
-                ClockMetadataModel("clock2", "clock2", null, 50, null),
-                ClockMetadataModel("clock3", "clock3", null, 50, null),
+                ClockMetadataModel(CLOCK_ID_0, "clock0", null, 50, null),
+                ClockMetadataModel(CLOCK_ID_1, "clock1", null, 50, null),
+                ClockMetadataModel(CLOCK_ID_2, "clock2", null, 50, null),
+                ClockMetadataModel(CLOCK_ID_3, "clock3", null, 50, null),
             )
         const val CLOCK_COLOR_ID = "RED"
         const val CLOCK_COLOR_TONE_PROGRESS = 87
diff --git a/tests/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractorTest.kt b/tests/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractorTest.kt
index cd41d7d..1a7ebb5 100644
--- a/tests/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractorTest.kt
+++ b/tests/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractorTest.kt
@@ -3,10 +3,12 @@
 import androidx.test.filters.SmallTest
 import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
 import com.android.customization.picker.clock.shared.ClockSize
+import com.android.wallpaper.testing.FakeSnapshotStore
 import com.android.wallpaper.testing.collectLastValue
 import com.google.common.truth.Truth
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.test.StandardTestDispatcher
 import kotlinx.coroutines.test.resetMain
 import kotlinx.coroutines.test.runTest
@@ -28,7 +30,15 @@
     fun setUp() {
         val testDispatcher = StandardTestDispatcher()
         Dispatchers.setMain(testDispatcher)
-        underTest = ClockPickerInteractor(FakeClockPickerRepository())
+        underTest =
+            ClockPickerInteractor(
+                repository = FakeClockPickerRepository(),
+                snapshotRestorer = {
+                    ClockPickerSnapshotRestorer(interactor = underTest).apply {
+                        runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) }
+                    }
+                },
+            )
     }
 
     @After
diff --git a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
index 63f77bd..c5eb796 100644
--- a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
+++ b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
@@ -16,13 +16,18 @@
 package com.android.customization.picker.clock.ui.viewmodel
 
 import androidx.test.filters.SmallTest
+import com.android.customization.picker.clock.data.repository.ClockPickerRepository
 import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
 import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
+import com.android.customization.picker.clock.domain.interactor.ClockPickerSnapshotRestorer
 import com.android.customization.picker.clock.shared.model.ClockMetadataModel
+import com.android.wallpaper.testing.FakeSnapshotStore
 import com.android.wallpaper.testing.collectLastValue
 import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.test.StandardTestDispatcher
 import kotlinx.coroutines.test.advanceTimeBy
 import kotlinx.coroutines.test.resetMain
@@ -52,11 +57,13 @@
             )
         )
     }
+    private lateinit var testDispatcher: CoroutineDispatcher
     private lateinit var underTest: ClockCarouselViewModel
+    private lateinit var interactor: ClockPickerInteractor
 
     @Before
     fun setUp() {
-        val testDispatcher = StandardTestDispatcher()
+        testDispatcher = StandardTestDispatcher()
         Dispatchers.setMain(testDispatcher)
     }
 
@@ -67,54 +74,60 @@
 
     @Test
     fun setSelectedClock() = runTest {
-        underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithMultipleClocks))
+        underTest =
+            ClockCarouselViewModel(
+                getClockPickerInteractor(repositoryWithMultipleClocks),
+                testDispatcher
+            )
         val observedSelectedIndex = collectLastValue(underTest.selectedIndex)
         advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
+
         underTest.setSelectedClock(FakeClockPickerRepository.fakeClocks[2].clockId)
+
         assertThat(observedSelectedIndex()).isEqualTo(2)
     }
 
     @Test
-    fun setShouldShowCarousel() = runTest {
-        underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithMultipleClocks))
+    fun multipleClockCase() = runTest {
+        underTest =
+            ClockCarouselViewModel(
+                getClockPickerInteractor(repositoryWithMultipleClocks),
+                testDispatcher
+            )
         val observedIsCarouselVisible = collectLastValue(underTest.isCarouselVisible)
-        advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
-        underTest.showClockCarousel(false)
-        assertThat(observedIsCarouselVisible()).isFalse()
-        underTest.showClockCarousel(true)
-        assertThat(observedIsCarouselVisible()).isTrue()
-    }
-
-    @Test
-    fun shouldNotShowCarouselWhenSingleClock() = runTest {
-        underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithSingleClock))
-        val observedIsCarouselVisible = collectLastValue(underTest.isCarouselVisible)
-        advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
-        underTest.showClockCarousel(false)
-        assertThat(observedIsCarouselVisible()).isFalse()
-        underTest.showClockCarousel(true)
-        assertThat(observedIsCarouselVisible()).isFalse()
-    }
-
-    @Test
-    fun setShouldShowSingleClock() = runTest {
-        underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithSingleClock))
         val observedIsSingleClockViewVisible = collectLastValue(underTest.isSingleClockViewVisible)
+
         advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
-        underTest.showClockCarousel(false)
+
+        assertThat(observedIsCarouselVisible()).isTrue()
         assertThat(observedIsSingleClockViewVisible()).isFalse()
-        underTest.showClockCarousel(true)
+    }
+
+    @Test
+    fun singleClockCase() = runTest {
+        underTest =
+            ClockCarouselViewModel(
+                getClockPickerInteractor(repositoryWithSingleClock),
+                testDispatcher
+            )
+        val observedIsCarouselVisible = collectLastValue(underTest.isCarouselVisible)
+        val observedIsSingleClockViewVisible = collectLastValue(underTest.isSingleClockViewVisible)
+
+        advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
+
+        assertThat(observedIsCarouselVisible()).isFalse()
         assertThat(observedIsSingleClockViewVisible()).isTrue()
     }
 
-    @Test
-    fun shouldNotShowSingleClockWhenMultipleClocks() = runTest {
-        underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithMultipleClocks))
-        val observedIsSingleClockViewVisible = collectLastValue(underTest.isSingleClockViewVisible)
-        advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
-        underTest.showClockCarousel(false)
-        assertThat(observedIsSingleClockViewVisible()).isFalse()
-        underTest.showClockCarousel(true)
-        assertThat(observedIsSingleClockViewVisible()).isFalse()
+    private fun getClockPickerInteractor(repository: ClockPickerRepository): ClockPickerInteractor {
+        return ClockPickerInteractor(
+                repository = repository,
+                snapshotRestorer = {
+                    ClockPickerSnapshotRestorer(interactor = interactor).apply {
+                        runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) }
+                    }
+                }
+            )
+            .also { interactor = it }
     }
 }
diff --git a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt
index 61976ad..293e393 100644
--- a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt
+++ b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt
@@ -19,12 +19,15 @@
 import androidx.test.platform.app.InstrumentationRegistry
 import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
 import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
+import com.android.customization.picker.clock.domain.interactor.ClockPickerSnapshotRestorer
 import com.android.customization.picker.clock.shared.ClockSize
 import com.android.customization.picker.clock.shared.model.ClockMetadataModel
+import com.android.wallpaper.testing.FakeSnapshotStore
 import com.android.wallpaper.testing.collectLastValue
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.test.StandardTestDispatcher
 import kotlinx.coroutines.test.resetMain
 import kotlinx.coroutines.test.runTest
@@ -50,7 +53,15 @@
         Dispatchers.setMain(testDispatcher)
         val context = InstrumentationRegistry.getInstrumentation().targetContext
         clockColorMap = ClockColorViewModel.getPresetColorMap(context.resources)
-        interactor = ClockPickerInteractor(FakeClockPickerRepository())
+        interactor =
+            ClockPickerInteractor(
+                repository = FakeClockPickerRepository(),
+                snapshotRestorer = {
+                    ClockPickerSnapshotRestorer(interactor = interactor).apply {
+                        runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) }
+                    }
+                },
+            )
         underTest =
             ClockSectionViewModel(
                 context,
@@ -65,18 +76,20 @@
 
     @Test
     fun setSelectedClock() = runTest {
-        val colorRed = clockColorMap.values.first()
+        val colorGrey = clockColorMap.values.first()
         val observedSelectedClockColorAndSizeText =
             collectLastValue(underTest.selectedClockColorAndSizeText)
+
         interactor.setClockColor(
-            colorRed.colorId,
+            colorGrey.colorId,
             ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
             ClockSettingsViewModel.blendColorWithTone(
-                colorRed.color,
-                colorRed.getColorTone(ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS),
+                colorGrey.color,
+                colorGrey.getColorTone(ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS),
             )
         )
         interactor.setClockSize(ClockSize.DYNAMIC)
-        assertThat(observedSelectedClockColorAndSizeText()).isEqualTo("Red, dynamic")
+
+        assertThat(observedSelectedClockColorAndSizeText()).isEqualTo("Grey, dynamic")
     }
 }
diff --git a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt
index d53288d..f58baf8 100644
--- a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt
+++ b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt
@@ -5,6 +5,7 @@
 import androidx.test.platform.app.InstrumentationRegistry
 import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
 import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
+import com.android.customization.picker.clock.domain.interactor.ClockPickerSnapshotRestorer
 import com.android.customization.picker.clock.shared.ClockSize
 import com.android.customization.picker.clock.shared.model.ClockMetadataModel
 import com.android.customization.picker.color.data.repository.FakeColorPickerRepository
@@ -15,8 +16,10 @@
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.launch
 import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.test.StandardTestDispatcher
+import kotlinx.coroutines.test.TestScope
 import kotlinx.coroutines.test.advanceTimeBy
 import kotlinx.coroutines.test.resetMain
 import kotlinx.coroutines.test.runTest
@@ -33,15 +36,37 @@
 class ClockSettingsViewModelTest {
 
     private lateinit var context: Context
+    private lateinit var testScope: TestScope
     private lateinit var colorPickerInteractor: ColorPickerInteractor
+    private lateinit var clockPickerInteractor: ClockPickerInteractor
     private lateinit var underTest: ClockSettingsViewModel
     private lateinit var colorMap: Map<String, ClockColorViewModel>
+    // We make the condition that CLOCK_ID_3 is not reactive to tone
+    private val getIsReactiveToTone: (clockId: String?) -> Boolean = { clockId ->
+        when (clockId) {
+            FakeClockPickerRepository.CLOCK_ID_0 -> true
+            FakeClockPickerRepository.CLOCK_ID_1 -> true
+            FakeClockPickerRepository.CLOCK_ID_2 -> true
+            FakeClockPickerRepository.CLOCK_ID_3 -> false
+            else -> false
+        }
+    }
 
     @Before
     fun setUp() {
         val testDispatcher = StandardTestDispatcher()
         Dispatchers.setMain(testDispatcher)
         context = InstrumentationRegistry.getInstrumentation().targetContext
+        testScope = TestScope(testDispatcher)
+        clockPickerInteractor =
+            ClockPickerInteractor(
+                repository = FakeClockPickerRepository(),
+                snapshotRestorer = {
+                    ClockPickerSnapshotRestorer(interactor = clockPickerInteractor).apply {
+                        runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) }
+                    }
+                },
+            )
         colorPickerInteractor =
             ColorPickerInteractor(
                 repository = FakeColorPickerRepository(context = context),
@@ -54,11 +79,16 @@
         underTest =
             ClockSettingsViewModel.Factory(
                     context = context,
-                    clockPickerInteractor = ClockPickerInteractor(FakeClockPickerRepository()),
+                    clockPickerInteractor = clockPickerInteractor,
                     colorPickerInteractor = colorPickerInteractor,
+                    getIsReactiveToTone = getIsReactiveToTone,
                 )
                 .create(ClockSettingsViewModel::class.java)
         colorMap = ClockColorViewModel.getPresetColorMap(context.resources)
+
+        testScope.launch {
+            clockPickerInteractor.setSelectedClock(FakeClockPickerRepository.CLOCK_ID_0)
+        }
     }
 
     @After
@@ -88,15 +118,20 @@
         val observedSeedColor = collectLastValue(underTest.seedColor)
         // Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from colorOptions
         advanceTimeBy(ClockSettingsViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
-        assertThat(observedClockColorOptions()!![0].isSelected).isTrue()
-        assertThat(observedClockColorOptions()!![0].onClick).isNull()
+        val option0IsSelected = collectLastValue(observedClockColorOptions()!![0].isSelected)
+        val option0OnClicked = collectLastValue(observedClockColorOptions()!![0].onClicked)
+        assertThat(option0IsSelected()).isTrue()
+        assertThat(option0OnClicked()).isNull()
         assertThat(observedSelectedColorOptionPosition()).isEqualTo(0)
 
-        observedClockColorOptions()!![1].onClick?.invoke()
+        val option1OnClickedBefore = collectLastValue(observedClockColorOptions()!![1].onClicked)
+        option1OnClickedBefore()?.invoke()
         // Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from colorOptions
         advanceTimeBy(ClockSettingsViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
-        assertThat(observedClockColorOptions()!![1].isSelected).isTrue()
-        assertThat(observedClockColorOptions()!![1].onClick).isNull()
+        val option1IsSelected = collectLastValue(observedClockColorOptions()!![1].isSelected)
+        val option1OnClickedAfter = collectLastValue(observedClockColorOptions()!![1].onClicked)
+        assertThat(option1IsSelected()).isTrue()
+        assertThat(option1OnClickedAfter()).isNull()
         assertThat(observedSelectedColorOptionPosition()).isEqualTo(1)
         assertThat(observedSliderProgress())
             .isEqualTo(ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS)
@@ -120,10 +155,12 @@
         val observedSeedColor = collectLastValue(underTest.seedColor)
         // Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from colorOptions
         advanceTimeBy(ClockSettingsViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
-        assertThat(observedClockColorOptions()!![0].isSelected).isTrue()
+        val option0IsSelected = collectLastValue(observedClockColorOptions()!![0].isSelected)
+        assertThat(option0IsSelected()).isTrue()
         assertThat(observedIsSliderEnabled()).isFalse()
 
-        observedClockColorOptions()!![1].onClick?.invoke()
+        val option1OnClicked = collectLastValue(observedClockColorOptions()!![1].onClicked)
+        option1OnClicked()?.invoke()
 
         // Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from colorOptions
         advanceTimeBy(ClockSettingsViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
@@ -132,7 +169,7 @@
         underTest.onSliderProgressChanged(targetProgress1)
         assertThat(observedSliderProgress()).isEqualTo(targetProgress1)
         val targetProgress2 = 55
-        underTest.onSliderProgressStop(targetProgress2)
+        testScope.launch { underTest.onSliderProgressStop(targetProgress2) }
         assertThat(observedSliderProgress()).isEqualTo(targetProgress2)
         val expectedSelectedColorModel = colorMap.values.first() // RED
         assertThat(observedSeedColor())
@@ -153,4 +190,21 @@
         underTest.setClockSize(ClockSize.SMALL)
         assertThat(observedClockSize()).isEqualTo(ClockSize.SMALL)
     }
+
+    @Test
+    fun getIsReactiveToTone() = runTest {
+        val observedClockColorOptions = collectLastValue(underTest.colorOptions)
+        val isSliderEnabled = collectLastValue(underTest.isSliderEnabled)
+        // Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from colorOptions
+        advanceTimeBy(ClockSettingsViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
+        val option1OnClicked = collectLastValue(observedClockColorOptions()!![1].onClicked)
+        option1OnClicked()?.invoke()
+
+        clockPickerInteractor.setSelectedClock(FakeClockPickerRepository.CLOCK_ID_0)
+        assertThat(isSliderEnabled()).isTrue()
+
+        // We make the condition that CLOCK_ID_0 is not reactive to tone
+        clockPickerInteractor.setSelectedClock(FakeClockPickerRepository.CLOCK_ID_3)
+        assertThat(isSliderEnabled()).isFalse()
+    }
 }
diff --git a/tests/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModelTest.kt b/tests/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModelTest.kt
index 6442609..63334f2 100644
--- a/tests/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModelTest.kt
+++ b/tests/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModelTest.kt
@@ -84,18 +84,14 @@
     @Test
     fun `toggles back and forth`() =
         testScope.runTest {
-            val subtitleStringResId = collectLastValue(underTest.subtitleStringResourceId)
             val isSwitchOn = collectLastValue(underTest.isSwitchOn)
 
-            val initialSubtitleStringRes = subtitleStringResId()
             val initialIsSwitchOn = isSwitchOn()
 
             underTest.onClicked()
-            assertThat(subtitleStringResId()).isNotEqualTo(initialSubtitleStringRes)
             assertThat(isSwitchOn()).isNotEqualTo(initialIsSwitchOn)
 
             underTest.onClicked()
-            assertThat(subtitleStringResId()).isEqualTo(initialSubtitleStringRes)
             assertThat(isSwitchOn()).isEqualTo(initialIsSwitchOn)
         }
 }
diff --git a/tests/src/com/android/customization/testing/TestCustomizationInjector.kt b/tests/src/com/android/customization/testing/TestCustomizationInjector.kt
deleted file mode 100644
index b49e654..0000000
--- a/tests/src/com/android/customization/testing/TestCustomizationInjector.kt
+++ /dev/null
@@ -1,289 +0,0 @@
-package com.android.customization.testing
-
-import android.app.Activity
-import android.content.Context
-import android.text.TextUtils
-import androidx.fragment.app.FragmentActivity
-import com.android.customization.model.color.ColorCustomizationManager
-import com.android.customization.model.color.ColorOptionsProvider
-import com.android.customization.model.theme.OverlayManagerCompat
-import com.android.customization.model.theme.ThemeBundleProvider
-import com.android.customization.model.theme.ThemeManager
-import com.android.customization.module.CustomizationInjector
-import com.android.customization.module.CustomizationPreferences
-import com.android.customization.module.ThemesUserEventLogger
-import com.android.customization.picker.clock.data.repository.ClockRegistryProvider
-import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
-import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
-import com.android.customization.picker.clock.ui.view.ClockViewFactory
-import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
-import com.android.customization.picker.clock.ui.viewmodel.ClockSectionViewModel
-import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
-import com.android.customization.picker.color.data.repository.ColorPickerRepository
-import com.android.customization.picker.color.data.repository.ColorPickerRepositoryImpl
-import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
-import com.android.customization.picker.color.domain.interactor.ColorPickerSnapshotRestorer
-import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
-import com.android.customization.picker.quickaffordance.data.repository.KeyguardQuickAffordancePickerRepository
-import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor
-import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordanceSnapshotRestorer
-import com.android.systemui.shared.clocks.ClockRegistry
-import com.android.systemui.shared.customization.data.content.CustomizationProviderClient
-import com.android.systemui.shared.customization.data.content.CustomizationProviderClientImpl
-import com.android.wallpaper.config.BaseFlags
-import com.android.wallpaper.model.WallpaperColorsViewModel
-import com.android.wallpaper.module.DrawableLayerResolver
-import com.android.wallpaper.module.PackageStatusNotifier
-import com.android.wallpaper.module.UserEventLogger
-import com.android.wallpaper.picker.customization.data.content.WallpaperClientImpl
-import com.android.wallpaper.picker.customization.data.repository.WallpaperRepository
-import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
-import com.android.wallpaper.picker.undo.domain.interactor.SnapshotRestorer
-import com.android.wallpaper.testing.TestInjector
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.GlobalScope
-
-/** Test implementation of the dependency injector. */
-class TestCustomizationInjector : TestInjector(), CustomizationInjector {
-    private var customizationPreferences: CustomizationPreferences? = null
-    private var themeManager: ThemeManager? = null
-    private var packageStatusNotifier: PackageStatusNotifier? = null
-    private var drawableLayerResolver: DrawableLayerResolver? = null
-    private var userEventLogger: UserEventLogger? = null
-    private var wallpaperInteractor: WallpaperInteractor? = null
-    private var keyguardQuickAffordancePickerInteractor: KeyguardQuickAffordancePickerInteractor? =
-        null
-    private var flags: BaseFlags? = null
-    private var customizationProviderClient: CustomizationProviderClient? = null
-    private var keyguardQuickAffordanceSnapshotRestorer: KeyguardQuickAffordanceSnapshotRestorer? =
-        null
-    private var clockRegistry: ClockRegistry? = null
-    private var clockPickerInteractor: ClockPickerInteractor? = null
-    private var clockSectionViewModel: ClockSectionViewModel? = null
-    private var clockViewFactory: ClockViewFactory? = null
-    private var colorPickerRepository: ColorPickerRepository? = null
-    private var colorPickerInteractor: ColorPickerInteractor? = null
-    private var colorPickerViewModelFactory: ColorPickerViewModel.Factory? = null
-    private var colorPickerSnapshotRestorer: ColorPickerSnapshotRestorer? = null
-    private var colorCustomizationManager: ColorCustomizationManager? = null
-    private var clockCarouselViewModel: ClockCarouselViewModel? = null
-    private var clockSettingsViewModelFactory: ClockSettingsViewModel.Factory? = null
-
-    override fun getCustomizationPreferences(context: Context): CustomizationPreferences {
-        return customizationPreferences
-            ?: TestDefaultCustomizationPreferences(context).also { customizationPreferences = it }
-    }
-
-    override fun getThemeManager(
-        provider: ThemeBundleProvider,
-        activity: FragmentActivity,
-        overlayManagerCompat: OverlayManagerCompat,
-        logger: ThemesUserEventLogger
-    ): ThemeManager {
-        return themeManager
-            ?: TestThemeManager(provider, activity, overlayManagerCompat, logger).also {
-                themeManager = it
-            }
-    }
-
-    override fun getPackageStatusNotifier(context: Context): PackageStatusNotifier {
-        return packageStatusNotifier
-            ?: TestPackageStatusNotifier().also {
-                packageStatusNotifier = TestPackageStatusNotifier()
-            }
-    }
-
-    override fun getDrawableLayerResolver(): DrawableLayerResolver {
-        return drawableLayerResolver
-            ?: TestDrawableLayerResolver().also { drawableLayerResolver = it }
-    }
-
-    override fun getUserEventLogger(context: Context): UserEventLogger {
-        return userEventLogger ?: TestThemesUserEventLogger().also { userEventLogger = it }
-    }
-
-    override fun getWallpaperInteractor(context: Context): WallpaperInteractor {
-        return wallpaperInteractor
-            ?: WallpaperInteractor(
-                    repository =
-                        WallpaperRepository(
-                            scope = GlobalScope,
-                            client = WallpaperClientImpl(context = context),
-                            backgroundDispatcher = Dispatchers.IO,
-                        ),
-                    shouldHandleReload = {
-                        TextUtils.equals(
-                            getColorCustomizationManager(context).currentColorSource,
-                            ColorOptionsProvider.COLOR_SOURCE_PRESET
-                        )
-                    }
-                )
-                .also { wallpaperInteractor = it }
-    }
-
-    override fun getKeyguardQuickAffordancePickerInteractor(
-        context: Context
-    ): KeyguardQuickAffordancePickerInteractor {
-        return keyguardQuickAffordancePickerInteractor
-            ?: createCustomizationProviderClient(context).also {
-                keyguardQuickAffordancePickerInteractor = it
-            }
-    }
-
-    private fun createCustomizationProviderClient(
-        context: Context
-    ): KeyguardQuickAffordancePickerInteractor {
-        val client: CustomizationProviderClient =
-            CustomizationProviderClientImpl(context, Dispatchers.IO)
-        return KeyguardQuickAffordancePickerInteractor(
-            KeyguardQuickAffordancePickerRepository(client, Dispatchers.IO),
-            client
-        ) {
-            getKeyguardQuickAffordanceSnapshotRestorer(context)
-        }
-    }
-
-    override fun getFlags(): BaseFlags {
-        return flags ?: object : BaseFlags() {}.also { flags = it }
-    }
-
-    override fun getSnapshotRestorers(context: Context): Map<Int, SnapshotRestorer> {
-        val restorers: MutableMap<Int, SnapshotRestorer> = HashMap()
-        restorers[KEY_QUICK_AFFORDANCE_SNAPSHOT_RESTORER] =
-            getKeyguardQuickAffordanceSnapshotRestorer(context)
-        restorers[KEY_COLOR_PICKER_SNAPSHOT_RESTORER] =
-            getColorPickerSnapshotRestorer(context, getWallpaperColorsViewModel())
-        return restorers
-    }
-
-    /** Returns the [CustomizationProviderClient]. */
-    private fun getKeyguardQuickAffordancePickerProviderClient(
-        context: Context
-    ): CustomizationProviderClient {
-        return customizationProviderClient
-            ?: CustomizationProviderClientImpl(context, Dispatchers.IO).also {
-                customizationProviderClient = it
-            }
-    }
-
-    private fun getKeyguardQuickAffordanceSnapshotRestorer(
-        context: Context
-    ): KeyguardQuickAffordanceSnapshotRestorer {
-        return keyguardQuickAffordanceSnapshotRestorer
-            ?: KeyguardQuickAffordanceSnapshotRestorer(
-                    getKeyguardQuickAffordancePickerInteractor(context),
-                    getKeyguardQuickAffordancePickerProviderClient(context)
-                )
-                .also { keyguardQuickAffordanceSnapshotRestorer = it }
-    }
-
-    override fun getClockRegistry(context: Context): ClockRegistry {
-        return clockRegistry
-            ?: ClockRegistryProvider(context, GlobalScope, Dispatchers.Main, Dispatchers.IO)
-                .get()
-                .also { clockRegistry = it }
-    }
-
-    override fun getClockPickerInteractor(context: Context): ClockPickerInteractor {
-        return clockPickerInteractor
-            ?: ClockPickerInteractor(FakeClockPickerRepository()).also {
-                clockPickerInteractor = it
-            }
-    }
-
-    override fun getClockSectionViewModel(context: Context): ClockSectionViewModel {
-        return clockSectionViewModel
-            ?: ClockSectionViewModel(context, getClockPickerInteractor(context)).also {
-                clockSectionViewModel = it
-            }
-    }
-
-    private fun getColorPickerRepository(
-        context: Context,
-        wallpaperColorsViewModel: WallpaperColorsViewModel,
-    ): ColorPickerRepository {
-        return colorPickerRepository
-            ?: ColorPickerRepositoryImpl(
-                wallpaperColorsViewModel,
-                getColorCustomizationManager(context)
-            )
-    }
-
-    override fun getColorPickerInteractor(
-        context: Context,
-        wallpaperColorsViewModel: WallpaperColorsViewModel,
-    ): ColorPickerInteractor {
-        return colorPickerInteractor
-            ?: ColorPickerInteractor(
-                    repository = getColorPickerRepository(context, wallpaperColorsViewModel),
-                    snapshotRestorer = {
-                        getColorPickerSnapshotRestorer(context, wallpaperColorsViewModel)
-                    },
-                )
-                .also { colorPickerInteractor = it }
-    }
-
-    override fun getColorPickerViewModelFactory(
-        context: Context,
-        wallpaperColorsViewModel: WallpaperColorsViewModel,
-    ): ColorPickerViewModel.Factory {
-        return colorPickerViewModelFactory
-            ?: ColorPickerViewModel.Factory(
-                    context,
-                    getColorPickerInteractor(context, wallpaperColorsViewModel),
-                )
-                .also { colorPickerViewModelFactory = it }
-    }
-
-    private fun getColorPickerSnapshotRestorer(
-        context: Context,
-        wallpaperColorsViewModel: WallpaperColorsViewModel
-    ): ColorPickerSnapshotRestorer {
-        return colorPickerSnapshotRestorer
-            ?: ColorPickerSnapshotRestorer(
-                    getColorPickerInteractor(context, wallpaperColorsViewModel)
-                )
-                .also { colorPickerSnapshotRestorer = it }
-    }
-
-    private fun getColorCustomizationManager(context: Context): ColorCustomizationManager {
-        return colorCustomizationManager
-            ?: ColorCustomizationManager.getInstance(context, OverlayManagerCompat(context)).also {
-                colorCustomizationManager = it
-            }
-    }
-
-    override fun getClockCarouselViewModel(context: Context): ClockCarouselViewModel {
-        return clockCarouselViewModel
-            ?: ClockCarouselViewModel(getClockPickerInteractor(context)).also {
-                clockCarouselViewModel = it
-            }
-    }
-
-    override fun getClockViewFactory(activity: Activity): ClockViewFactory {
-        return clockViewFactory
-            ?: ClockViewFactory(activity, getClockRegistry(activity)).also { clockViewFactory = it }
-    }
-
-    override fun getClockSettingsViewModelFactory(
-        context: Context,
-        wallpaperColorsViewModel: WallpaperColorsViewModel,
-    ): ClockSettingsViewModel.Factory {
-        return clockSettingsViewModelFactory
-            ?: ClockSettingsViewModel.Factory(
-                    context,
-                    getClockPickerInteractor(context),
-                    getColorPickerInteractor(
-                        context,
-                        wallpaperColorsViewModel,
-                    ),
-                )
-                .also { clockSettingsViewModelFactory = it }
-    }
-
-    companion object {
-        private const val KEY_QUICK_AFFORDANCE_SNAPSHOT_RESTORER = 1
-        private const val KEY_COLOR_PICKER_SNAPSHOT_RESTORER =
-            KEY_QUICK_AFFORDANCE_SNAPSHOT_RESTORER + 1
-    }
-}
diff --git a/tests/src/com/android/customization/testing/TestThemesUserEventLogger.java b/tests/src/com/android/customization/testing/TestThemesUserEventLogger.java
index 9250a86..2bb2082 100644
--- a/tests/src/com/android/customization/testing/TestThemesUserEventLogger.java
+++ b/tests/src/com/android/customization/testing/TestThemesUserEventLogger.java
@@ -1,6 +1,5 @@
 package com.android.customization.testing;
 
-import com.android.customization.model.clock.Clockface;
 import com.android.customization.model.color.ColorOption;
 import com.android.customization.model.grid.GridOption;
 import com.android.customization.model.theme.ThemeBundle;
@@ -28,16 +27,6 @@
     }
 
     @Override
-    public void logClockSelected(Clockface clock) {
-        // Do nothing.
-    }
-
-    @Override
-    public void logClockApplied(Clockface clock) {
-        // Do nothing.
-    }
-
-    @Override
     public void logGridSelected(GridOption grid) {
         // Do nothing.
     }
