diff --git a/Android.bp b/Android.bp
index 4dbe399..d3a7c51 100644
--- a/Android.bp
+++ b/Android.bp
@@ -35,6 +35,13 @@
     ],
 }
 
+// Production-only files that should be excluded in tests.
+filegroup {
+    name: "ThemePicker_src_prod",
+    visibility: [":__subpackages__"],
+    srcs: ["src_override/com/android/customization/picker/CustomizationPickerApplication.java"],
+}
+
 filegroup {
     name: "ThemePicker_Manifest",
     srcs: [
@@ -66,8 +73,9 @@
         + "$(location soong_zip) -o $(out) -C $$RES_DIR -D $$RES_DIR"
 }
 
+// Common defaults that doesn't have ThemePicker specifics.
 java_defaults {
-    name: "ThemePicker_defaults",
+    name: "ThemePicker_common_defaults",
 
     static_libs: [
         "guava",
@@ -92,7 +100,6 @@
     srcs: [
         ":WallpaperPicker2_srcs",
         ":ThemePicker_srcs",
-        ":ThemePicker_src_overrides",
     ],
 
     required: ["android.software.theme_picker.xml"],
@@ -111,6 +118,12 @@
     system_ext_specific: true,
 }
 
+java_defaults {
+    name: "ThemePicker_defaults",
+    defaults: ["ThemePicker_common_defaults"],
+    srcs: [":ThemePicker_src_overrides"],
+}
+
 prebuilt_etc {
     name: "android.software.theme_picker.xml",
     system_ext_specific: true,
diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg
index b659bfa..a165f4b 100644
--- a/PREUPLOAD.cfg
+++ b/PREUPLOAD.cfg
@@ -2,3 +2,5 @@
 checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPLOAD_COMMIT}
 
 ktfmt_hook = ${REPO_ROOT}/external/ktfmt/ktfmt.py --check -i ${REPO_ROOT}/packages/apps/ThemePicker/ktfmt_includes.txt ${PREUPLOAD_FILES}
+
+flag_hook = ${REPO_ROOT}/frameworks/base/packages/SystemUI/flag_check.py --msg=${PREUPLOAD_COMMIT_MESSAGE} --files=${PREUPLOAD_FILES} --project=${REPO_PATH}
diff --git a/TEST_MAPPING b/TEST_MAPPING
index 6345ffb..560897b 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -2,6 +2,7 @@
   "presubmit": [
     {
       "name": "WallpaperPickerGoogleTests",
+      "keywords": ["internal"],
       "options": [
         {
           "exclude-annotation": "org.junit.Ignore"
diff --git a/res/layout-land/activity_custom_theme.xml b/res/layout-land/activity_custom_theme.xml
deleted file mode 100644
index 59296df..0000000
--- a/res/layout-land/activity_custom_theme.xml
+++ /dev/null
@@ -1,63 +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.
--->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context="com.android.customization.picker.theme.CustomThemeActivity">
-
-    <FrameLayout
-        android:id="@+id/fragment_container"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"/>
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="bottom"
-        android:orientation="horizontal">
-        <Space
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_weight="1"
-            android:layout_gravity="bottom"/>
-
-        <FrameLayout
-            android:id="@+id/custom_theme_nav"
-            android:layout_width="0dp"
-            android:layout_height="@dimen/custom_theme_nav_height"
-            android:layout_weight="1"
-            android:paddingHorizontal="12dp">
-            <Button
-                android:id="@+id/previous_button"
-                style="@style/ActionSecondaryButton"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="start|center_vertical"
-                android:text="@string/custom_theme_previous"/>
-            <Button
-                android:id="@+id/next_button"
-                style="@style/ActionPrimaryButton"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="end|center_vertical"
-                android:text="@string/custom_theme_next"/>
-        </FrameLayout>
-    </LinearLayout>
-
-</FrameLayout>
diff --git a/res/layout-land/fragment_custom_theme_component.xml b/res/layout-land/fragment_custom_theme_component.xml
deleted file mode 100644
index 2679bdf..0000000
--- a/res/layout-land/fragment_custom_theme_component.xml
+++ /dev/null
@@ -1,75 +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="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    android:background="?android:colorPrimary">
-    <include layout="@layout/section_header"/>
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="horizontal">
-
-        <FrameLayout
-            android:id="@+id/component_preview_container"
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_weight="1"
-            android:background="?android:colorPrimary">
-            <include
-                android:id="@+id/component_preview_content"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_marginHorizontal="@dimen/preview_page_horizontal_margin"
-                android:layout_marginTop="@dimen/preview_page_top_margin"
-                android:layout_marginBottom="@dimen/component_preview_page_bottom_margin"
-                layout="@layout/theme_component_preview"/>
-        </FrameLayout>
-        <View
-            android:layout_width="1dp"
-            android:layout_height="match_parent"
-            android:background="?android:colorForeground"/>
-        <LinearLayout
-            android:id="@+id/options_section"
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_weight="1"
-            android:paddingTop="10dp"
-            android:paddingBottom="@dimen/custom_theme_nav_height"
-            android:orientation="vertical">
-
-            <TextView
-                android:id="@+id/component_options_title"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:layout_margin="10dp"
-                android:textAlignment="center"
-                android:textAppearance="@style/TitleTextAppearance"/>
-
-            <androidx.recyclerview.widget.RecyclerView
-                android:id="@+id/options_container"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_weight="1"/>
-
-        </LinearLayout>
-    </LinearLayout>
-</LinearLayout>
diff --git a/res/layout-land/fragment_custom_theme_name.xml b/res/layout-land/fragment_custom_theme_name.xml
deleted file mode 100644
index a60b9c2..0000000
--- a/res/layout-land/fragment_custom_theme_name.xml
+++ /dev/null
@@ -1,76 +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="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    android:background="?android:colorPrimary">
-    <include layout="@layout/section_header"/>
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="horizontal">
-        <FrameLayout
-            android:id="@+id/component_preview_container"
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_weight="1"
-            android:paddingTop="@dimen/preview_content_padding_top"
-            android:paddingBottom="@dimen/preview_content_padding_bottom"
-            android:clipToPadding="false"
-            android:background="?android:colorSecondary">
-            <include layout="@layout/theme_preview_card"/>
-        </FrameLayout>
-        <LinearLayout
-            android:id="@+id/options_section"
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_weight="1"
-            android:paddingTop="10dp"
-            android:paddingBottom="@dimen/custom_theme_nav_height"
-            android:paddingVertical="10dp"
-            android:clipToPadding="false"
-            android:orientation="vertical">
-
-            <TextView
-                android:id="@+id/component_options_title"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:layout_margin="10dp"
-                android:textAlignment="center"
-                android:textAppearance="@style/TitleTextAppearance"/>
-
-            <FrameLayout
-                android:layout_width="match_parent"
-                android:layout_height="@dimen/options_container_height"
-                android:layout_gravity="center">
-
-                <EditText
-                    style="@style/CustomThemeNameEditText"
-                    android:id="@+id/custom_theme_name"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="center"
-                    android:minWidth="300dp"/>
-            </FrameLayout>
-
-        </LinearLayout>
-    </LinearLayout>
-</LinearLayout>
diff --git a/res/layout-land/fragment_theme_picker.xml b/res/layout-land/fragment_theme_picker.xml
deleted file mode 100644
index d358037..0000000
--- a/res/layout-land/fragment_theme_picker.xml
+++ /dev/null
@@ -1,82 +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="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    android:background="?android:colorPrimary">
-    <include layout="@layout/section_header"/>
-
-    <FrameLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-        <LinearLayout
-            android:id="@+id/content_section"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:orientation="horizontal">
-
-            <FrameLayout
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="1">
-                <FrameLayout
-                    android:id="@+id/preview_card_container"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:paddingTop="@dimen/preview_content_padding_top"
-                    android:paddingBottom="@dimen/preview_content_padding_bottom"
-                    android:clipToPadding="false"
-                    android:background="?android:colorSecondary">
-                    <include layout="@layout/theme_preview_card"/>
-                </FrameLayout>
-            </FrameLayout>
-
-            <androidx.recyclerview.widget.RecyclerView
-                android:id="@+id/options_container"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="1"
-                android:paddingVertical="10dp" />
-        </LinearLayout>
-
-        <androidx.core.widget.ContentLoadingProgressBar
-            android:id="@+id/loading_indicator"
-            style="@android:style/Widget.DeviceDefault.ProgressBar"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="200dp"
-            android:layout_gravity="center_horizontal|top"
-            android:indeterminate="true"/>
-
-        <FrameLayout
-            android:id="@+id/error_section"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:visibility="gone">
-            <TextView
-                android:id="@+id/error_message"
-                style="@style/TitleTextAppearance"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:gravity="center"
-                android:text="@string/something_went_wrong"/>
-        </FrameLayout>
-    </FrameLayout>
-</LinearLayout>
diff --git a/res/layout/activity_custom_theme.xml b/res/layout/activity_custom_theme.xml
deleted file mode 100644
index 24d58b7..0000000
--- a/res/layout/activity_custom_theme.xml
+++ /dev/null
@@ -1,53 +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"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    tools:context="com.android.customization.picker.theme.CustomThemeActivity">
-
-    <FrameLayout
-        android:id="@+id/fragment_container"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1"/>
-
-    <FrameLayout
-        android:id="@+id/custom_theme_nav"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/custom_theme_nav_height"
-        android:paddingHorizontal="12dp"
-        android:background="?android:colorPrimary">
-        <Button
-            android:id="@+id/previous_button"
-            style="@style/ActionSecondaryButton"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="start|center_vertical"
-            android:text="@string/custom_theme_previous"/>
-        <Button
-            android:id="@+id/next_button"
-            style="@style/ActionPrimaryButton"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="end|center_vertical"
-            android:text="@string/custom_theme_next"/>
-    </FrameLayout>
-</LinearLayout>
diff --git a/res/layout/clock_color_option.xml b/res/layout/clock_color_option.xml
index e5aa3d6..6d82062 100644
--- a/res/layout/clock_color_option.xml
+++ b/res/layout/clock_color_option.xml
@@ -22,7 +22,7 @@
     android:orientation="vertical"
     android:clipChildren="false">
 
-    <include layout="@layout/color_option_2"/>
+    <include layout="@layout/color_option"/>
 
     <TextView
         android:id="@+id/text"
diff --git a/res/layout/clock_size_radio_button_group.xml b/res/layout/clock_size_radio_button_group.xml
deleted file mode 100644
index 56d0ab7..0000000
--- a/res/layout/clock_size_radio_button_group.xml
+++ /dev/null
@@ -1,88 +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.
-  ~
-  -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical">
-
-    <LinearLayout
-        android:id="@+id/button_container_dynamic"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="8dp"
-        android:orientation="horizontal">
-
-        <RadioButton
-            android:id="@+id/radio_button_dynamic"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:layout_marginEnd="8dp"
-            android:clickable="false" />
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical">
-
-            <TextView
-                style="@style/SectionTitleTextStyle"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/clock_size_dynamic" />
-
-            <TextView
-                style="@style/SectionSubtitleTextStyle"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/clock_size_dynamic_description" />
-        </LinearLayout>
-    </LinearLayout>
-
-    <LinearLayout
-        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
-            android:id="@+id/radio_button_large"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:layout_marginEnd="8dp"
-            android:clickable="false" />
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical">
-            <TextView
-                style="@style/SectionTitleTextStyle"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/clock_size_small" />
-
-            <TextView
-                style="@style/SectionSubtitleTextStyle"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/clock_size_small_description" />
-        </LinearLayout>
-    </LinearLayout>
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/color_option.xml b/res/layout/color_option.xml
index d9a7136..dff03d0 100644
--- a/res/layout/color_option.xml
+++ b/res/layout/color_option.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?><!--
-     Copyright (C) 2022 The Android Open Source Project
+     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.
@@ -13,91 +13,39 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<!-- Enclosing layout must be match_parent so that we can center content within -->
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
+<!-- Content description is set programmatically on the parent FrameLayout -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="@dimen/option_item_size"
     android:layout_height="wrap_content"
-    android:layout_gravity="center"
-    android:clipChildren="false"
-    android:gravity="center"
-    android:padding="@dimen/option_tile_grid_tile_padding_min">
+    android:orientation="vertical"
+    android:clipChildren="false">
+    <FrameLayout
+        android:id="@+id/icon_container"
+        android:layout_width="@dimen/option_item_size"
+        android:layout_height="@dimen/option_item_size"
+        android:clipChildren="false">
 
-    <!--
-        This displays the background. It is dynamically sized, constrained remain square and
-        have a maximum size, and be centered within its parent.
-     -->
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:layout_gravity="center"
-        android:background="@drawable/option_border_color"
-        android:gravity="center"
-        android:padding="@dimen/option_tile_grid_icon_padding_min"
-        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_max="@dimen/option_tile_width">
+        <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" />
 
-        <!-- This is the color wheel itself, constrained to a maximum size and centered -->
-        <androidx.constraintlayout.widget.ConstraintLayout
-            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_constraintEnd_toEndOf="parent"
-            app:layout_constraintHeight_max="@dimen/component_color_chip_small_diameter_default"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintWidth_max="@dimen/component_color_chip_small_diameter_default">
+        <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="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" />
+        <com.android.customization.picker.color.ui.view.ColorOptionIconView
+            android:id="@+id/foreground"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_margin="@dimen/color_seed_chip_margin2"/>
+    </FrameLayout>
+</LinearLayout>
 
-            <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>
-    </androidx.constraintlayout.widget.ConstraintLayout>
-</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/color_option_2.xml b/res/layout/color_option_2.xml
deleted file mode 100644
index dff03d0..0000000
--- a/res/layout/color_option_2.xml
+++ /dev/null
@@ -1,51 +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 -->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    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_item_size"
-        android:layout_height="@dimen/option_item_size"
-        android:clipChildren="false">
-
-        <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" />
-
-        <com.android.customization.picker.color.ui.view.ColorOptionIconView
-            android:id="@+id/foreground"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_margin="@dimen/color_seed_chip_margin2"/>
-    </FrameLayout>
-</LinearLayout>
-
diff --git a/res/layout/color_options_view.xml b/res/layout/color_options_view.xml
deleted file mode 100644
index 65028a6..0000000
--- a/res/layout/color_options_view.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2022 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/color_option_container"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_horizontal"
-        android:orientation="horizontal" />
-</FrameLayout>
diff --git a/res/layout/color_pages_view.xml b/res/layout/color_pages_view.xml
deleted file mode 100644
index 3ccbd41..0000000
--- a/res/layout/color_pages_view.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2022 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <androidx.viewpager2.widget.ViewPager2
-        android:id="@+id/color_page_container"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"/>
-    <com.android.wallpaper.widget.PageIndicator
-        android:id="@+id/color_page_indicator"
-        android:layout_marginTop="@dimen/color_page_indicator_margin_top"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:visibility="gone"
-        android:layout_gravity="center"/>
-</LinearLayout>
diff --git a/res/layout/color_section_view2.xml b/res/layout/color_section_view.xml
similarity index 97%
rename from res/layout/color_section_view2.xml
rename to res/layout/color_section_view.xml
index 9dbdf15..cfa9be3 100644
--- a/res/layout/color_section_view2.xml
+++ b/res/layout/color_section_view.xml
@@ -14,7 +14,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<com.android.customization.picker.color.ui.view.ColorSectionView2 xmlns:android="http://schemas.android.com/apk/res/android"
+<com.android.customization.picker.color.ui.view.ColorSectionView xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -64,4 +64,4 @@
         android:textColor="@color/system_primary"
         android:visibility="gone"
         tools:ignore="UseCompatTextViewDrawableXml" />
-</com.android.customization.picker.color.ui.view.ColorSectionView2>
+</com.android.customization.picker.color.ui.view.ColorSectionView>
diff --git a/res/layout/custom_theme_option.xml b/res/layout/custom_theme_option.xml
deleted file mode 100644
index aff43a9..0000000
--- a/res/layout/custom_theme_option.xml
+++ /dev/null
@@ -1,51 +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="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingHorizontal="@dimen/option_padding_horizontal"
-    android:paddingBottom="@dimen/option_bottom_margin"
-    android:clipChildren="false"
-    android:clipToPadding="false"
-    android:orientation="vertical">
-
-    <TextView
-        android:id="@+id/option_label"
-        android:layout_width="@dimen/option_tile_width"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_horizontal"
-        android:layout_marginBottom="@dimen/theme_option_label_margin"
-        android:ellipsize="end"
-        android:gravity="center_horizontal"
-        android:maxLines="1"
-        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_custom">
-        <ImageView
-            android:layout_width="@dimen/option_icon_size"
-            android:layout_height="@dimen/option_icon_size"
-            android:layout_gravity="center"
-            android:src="@drawable/ic_add_24px"
-            android:tint="?android:attr/colorAccent" />
-    </FrameLayout>
-</LinearLayout>
diff --git a/res/layout/fragment_clock_settings.xml b/res/layout/fragment_clock_settings.xml
index 5736265..75dae7e 100644
--- a/res/layout/fragment_clock_settings.xml
+++ b/res/layout/fragment_clock_settings.xml
@@ -14,7 +14,6 @@
   ~ limitations under the License.
   ~
   -->
-
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -153,17 +152,37 @@
                     android:layout_gravity="center_vertical"
                     android:minHeight="48dp"
                     android:thumb="@null"
+                    android:contentDescription="@string/accessibility_clock_slider_description"
                     android:background="@null"
                     android:paddingHorizontal="16dp"
                     android:progressDrawable="@drawable/saturation_progress_drawable"
                     android:splitTrack="false" />
             </LinearLayout>
 
-            <com.android.customization.picker.clock.ui.view.ClockSizeRadioButtonGroup
+            <RadioGroup
                 android:id="@+id/clock_size_radio_button_group"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:paddingHorizontal="16dp" />
+                android:orientation="vertical"
+                android:layout_marginHorizontal="16dp">
+                <!-- The radio button text is set when binding the view -->
+                <RadioButton android:id="@+id/radio_dynamic"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingStart="8dp"
+                    android:maxLines="3"
+                    android:ellipsize="end"
+                    android:singleLine="false"
+                    android:layout_marginBottom="8dp"/>
+                <!-- The radio button text is set when binding the view -->
+                <RadioButton android:id="@+id/radio_small"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingStart="8dp"
+                    android:maxLines="3"
+                    android:ellipsize="end"
+                    android:singleLine="false" />
+            </RadioGroup>
         </FrameLayout>
     </LinearLayout>
 </LinearLayout>
diff --git a/res/layout/fragment_color_picker.xml b/res/layout/fragment_color_picker.xml
index ebff6a4..d33fb1f 100644
--- a/res/layout/fragment_color_picker.xml
+++ b/res/layout/fragment_color_picker.xml
@@ -133,7 +133,7 @@
             It's critical for any TextViews inside the included layout to have text.
             -->
             <include
-                layout="@layout/color_option_2"
+                layout="@layout/color_option"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:visibility="invisible" />
diff --git a/res/layout/fragment_custom_theme_component.xml b/res/layout/fragment_custom_theme_component.xml
deleted file mode 100644
index 7bae84b..0000000
--- a/res/layout/fragment_custom_theme_component.xml
+++ /dev/null
@@ -1,93 +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"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    android:background="?android:colorPrimary">
-    <include layout="@layout/section_header"/>
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-        <FrameLayout
-            android:id="@+id/component_preview_container"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:background="?android:colorPrimary"
-            app:layout_constrainedHeight="true"
-            app:layout_constraintBottom_toTopOf="@+id/divider"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintHeight_max="@dimen/preview_pager_max_height"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintVertical_bias="0.0"
-            app:layout_constraintHeight_percent="@dimen/preview_pager_maximum_height_ratio">
-
-            <include
-                android:id="@+id/component_preview_content"
-                layout="@layout/theme_component_preview"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"/>
-        </FrameLayout>
-
-        <View
-            android:id="@+id/divider"
-            android:layout_width="match_parent"
-            android:layout_height="1dp"
-            android:background="?android:colorForeground"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/component_preview_container"
-            app:layout_constraintBottom_toTopOf="@+id/component_scroll_view"/>
-
-        <ScrollView
-            android:id="@+id/component_scroll_view"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/divider"
-            app:layout_constraintBottom_toBottomOf="parent">
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="vertical">
-        
-                <TextView
-                    android:id="@+id/component_options_title"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_marginVertical="18dp"
-                    android:layout_marginHorizontal="16dp"
-                    android:textAlignment="center"
-                    android:textAppearance="@style/TitleTextAppearance"
-                    android:textSize="@dimen/component_options_title_size" />
-
-                <androidx.recyclerview.widget.RecyclerView
-                    android:id="@+id/options_container"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="center_horizontal"/>
-            </LinearLayout>
-        </ScrollView>
-    </androidx.constraintlayout.widget.ConstraintLayout>
-</LinearLayout>
diff --git a/res/layout/fragment_custom_theme_name.xml b/res/layout/fragment_custom_theme_name.xml
deleted file mode 100644
index 98edd29..0000000
--- a/res/layout/fragment_custom_theme_name.xml
+++ /dev/null
@@ -1,86 +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"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-    <include layout="@layout/section_header"/>
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-        <FrameLayout
-            android:id="@+id/component_preview_container"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:paddingTop="@dimen/preview_content_padding_top"
-            android:paddingBottom="@dimen/preview_content_padding_bottom"
-            android:clipToPadding="false"
-            app:layout_constrainedHeight="true"
-            app:layout_constraintBottom_toTopOf="@+id/component_scroll_view"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintHeight_max="@dimen/preview_pager_max_height"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintVertical_bias="0.0"
-            app:layout_constraintHeight_percent="@dimen/preview_pager_maximum_height_ratio">
-
-            <include layout="@layout/theme_preview_card"/>
-        </FrameLayout>
-
-        <ScrollView
-                android:id="@+id/component_scroll_view"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:background="?android:colorPrimary"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@+id/component_preview_container"
-                app:layout_constraintBottom_toBottomOf="parent">
-
-            <LinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical">
-
-                <TextView
-                        android:id="@+id/component_options_title"
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginVertical="18dp"
-                        android:layout_marginHorizontal="16dp"
-                        android:textAlignment="center"
-                        android:textAppearance="@style/TitleTextAppearance"
-                        android:textSize="@dimen/component_options_title_size"/>
-
-                <EditText
-                        android:id="@+id/custom_theme_name"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_marginVertical="16dp"
-                        android:layout_marginHorizontal="16dp"
-                        android:layout_gravity="center|top"
-                        android:importantForAutofill="no"
-                        android:minWidth="300dp"
-                        style="@style/CustomThemeNameEditText"/>
-            </LinearLayout>
-        </ScrollView>
-    </androidx.constraintlayout.widget.ConstraintLayout>
-</LinearLayout>
diff --git a/res/layout/fragment_grid.xml b/res/layout/fragment_grid.xml
index 8c97d45..f022268 100644
--- a/res/layout/fragment_grid.xml
+++ b/res/layout/fragment_grid.xml
@@ -81,7 +81,7 @@
             It's critical for any TextViews inside the included layout to have text.
             -->
             <include
-                layout="@layout/grid_option_2"
+                layout="@layout/grid_option"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:visibility="invisible" />
diff --git a/res/layout/fragment_theme_full_preview.xml b/res/layout/fragment_theme_full_preview.xml
deleted file mode 100644
index 762af07..0000000
--- a/res/layout/fragment_theme_full_preview.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2020 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="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <include layout="@layout/section_header"/>
-
-    <FrameLayout
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1"
-        android:paddingTop="@dimen/full_preview_page_default_padding_top"
-        android:paddingBottom="@dimen/full_preview_page_default_padding_bottom"
-        android:clipToPadding="false">
-
-        <include layout="@layout/theme_preview_card"/>
-    </FrameLayout>
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/fragment_theme_picker.xml b/res/layout/fragment_theme_picker.xml
deleted file mode 100644
index 0ecfdd0..0000000
--- a/res/layout/fragment_theme_picker.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2018 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"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-    <include layout="@layout/section_header"/>
-
-    <FrameLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-        <androidx.constraintlayout.widget.ConstraintLayout
-            android:id="@+id/content_section"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent">
-            <FrameLayout
-                android:id="@+id/preview_card_container"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:paddingTop="@dimen/preview_content_padding_top"
-                android:paddingBottom="@dimen/preview_content_padding_bottom"
-                android:clipToPadding="false"
-                app:layout_constrainedHeight="true"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintTop_toTopOf="parent"
-                app:layout_constraintBottom_toTopOf="@id/options_container"
-                app:layout_constraintHeight_max="@dimen/preview_pager_max_height"
-                app:layout_constraintVertical_bias="0.0"
-                app:layout_constraintHeight_percent="@dimen/preview_pager_maximum_height_ratio">
-                <include layout="@layout/theme_preview_card"/>
-            </FrameLayout>
-
-            <androidx.recyclerview.widget.RecyclerView
-                android:id="@+id/options_container"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_gravity="bottom|center_horizontal"
-                android:layout_marginTop="10dp"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintTop_toBottomOf="@+id/preview_card_container"
-                app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintVertical_bias="1.0"/>
-        </androidx.constraintlayout.widget.ConstraintLayout>
-
-        <androidx.core.widget.ContentLoadingProgressBar
-            android:id="@+id/loading_indicator"
-            style="@android:style/Widget.DeviceDefault.ProgressBar"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="200dp"
-            android:layout_gravity="center_horizontal|top"
-            android:indeterminate="true"/>
-
-        <FrameLayout
-            android:id="@+id/error_section"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:visibility="gone">
-            <TextView
-                android:id="@+id/error_message"
-                style="@style/TitleTextAppearance"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:gravity="center"
-                android:text="@string/something_went_wrong"/>
-        </FrameLayout>
-    </FrameLayout>
-</LinearLayout>
diff --git a/res/layout/grid_option.xml b/res/layout/grid_option.xml
index 0931dea..efed018 100644
--- a/res/layout/grid_option.xml
+++ b/res/layout/grid_option.xml
@@ -1,47 +1,70 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-     Copyright (C) 2019 The Android Open Source Project
+  ~ 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.
+  ~
+  -->
 
-     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"
+<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:paddingBottom="@dimen/option_bottom_margin"
-    android:clipChildren="false"
-    android:clipToPadding="false"
-    android:orientation="vertical">
+    android:orientation="vertical"
+    android:gravity="center_horizontal"
+    android:clipChildren="false">
 
     <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:padding="@dimen/option_tile_padding_vertical"
-        android:background="@drawable/option_border"
-        android:gravity="center">
+        android:layout_width="@dimen/option_item_size"
+        android:layout_height="@dimen/option_item_size"
+        android:clipChildren="false">
+
         <ImageView
-            android:id="@+id/grid_option_thumbnail"
+            android:id="@id/selection_border"
             android:layout_width="match_parent"
-            android:layout_height="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/foreground"
+            android:layout_width="58dp"
+            android:layout_height="58dp"
+            android:layout_gravity="center" />
+
     </FrameLayout>
 
+    <View
+        android:layout_width="0dp"
+        android:layout_height="8dp" />
+
     <TextView
-        android:id="@+id/option_label"
+        android:id="@id/text"
         android:layout_width="wrap_content"
-        android:layout_height="24dp"
-        android:layout_gravity="center_horizontal"
-        android:layout_marginTop="@dimen/theme_option_label_margin"
-        android:gravity="center"
-        android:textAppearance="@style/OptionTitleTextAppearance" />
+        android:layout_height="wrap_content"
+        android:textColor="@color/system_on_surface"
+        android:singleLine="true"
+        android:ellipsize="end"
+        android:text="Placeholder for stable size calculation, please do not remove."
+        tools:ignore="HardcodedText" />
+
 </LinearLayout>
diff --git a/res/layout/grid_option_2.xml b/res/layout/grid_option_2.xml
deleted file mode 100644
index efed018..0000000
--- a/res/layout/grid_option_2.xml
+++ /dev/null
@@ -1,70 +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.
-  ~
-  -->
-
-<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:gravity="center_horizontal"
-    android:clipChildren="false">
-
-    <FrameLayout
-        android:layout_width="@dimen/option_item_size"
-        android:layout_height="@dimen/option_item_size"
-        android:clipChildren="false">
-
-        <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/foreground"
-            android:layout_width="58dp"
-            android:layout_height="58dp"
-            android:layout_gravity="center" />
-
-    </FrameLayout>
-
-    <View
-        android:layout_width="0dp"
-        android:layout_height="8dp" />
-
-    <TextView
-        android:id="@id/text"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textColor="@color/system_on_surface"
-        android:singleLine="true"
-        android:ellipsize="end"
-        android:text="Placeholder for stable size calculation, please do not remove."
-        tools:ignore="HardcodedText" />
-
-</LinearLayout>
diff --git a/res/layout/grid_section_view.xml b/res/layout/grid_section_view.xml
index a7b2b1f..b423ea7 100644
--- a/res/layout/grid_section_view.xml
+++ b/res/layout/grid_section_view.xml
@@ -14,7 +14,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<com.android.customization.picker.grid.GridSectionView
+<com.android.customization.picker.grid.ui.view.GridSectionView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -53,4 +53,4 @@
         android:background="@drawable/picker_section_icon_background"
         android:contentDescription="@string/gird_picker_entry_content_description" />
 
-</com.android.customization.picker.grid.GridSectionView>
\ No newline at end of file
+</com.android.customization.picker.grid.ui.view.GridSectionView>
\ No newline at end of file
diff --git a/res/layout/notification_section.xml b/res/layout/notification_section.xml
index f490e00..3e29a4e 100644
--- a/res/layout/notification_section.xml
+++ b/res/layout/notification_section.xml
@@ -39,6 +39,7 @@
         android:id="@+id/switcher"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:focusable="false"
         android:clickable="false"
         android:layout_gravity="center"
         style="@style/Switch.SettingsLib"
diff --git a/res/layout/preview_card_color_content.xml b/res/layout/preview_card_color_content.xml
deleted file mode 100644
index 9ab90c1..0000000
--- a/res/layout/preview_card_color_content.xml
+++ /dev/null
@@ -1,160 +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="match_parent"
-    android:layout_height="match_parent"
-    android:layout_gravity="center"
-    android:gravity="center_horizontal"
-    android:orientation="vertical">
-    <LinearLayout
-        android:layout_width="@dimen/preview_theme_color_component_size"
-        android:layout_height="wrap_content"
-        android:gravity="center|bottom"
-        android:orientation="horizontal">
-        <FrameLayout
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="@dimen/preview_theme_icon_size"
-            android:layout_weight="1">
-            <ImageView
-                android:layout_width="@dimen/preview_theme_icon_size"
-                android:layout_height="@dimen/preview_theme_icon_size"
-                android:layout_gravity="center"
-                android:id="@+id/preview_color_qs_0_bg"/>
-            <ImageView
-                android:layout_width="@dimen/preview_theme_tile_size"
-                android:layout_height="@dimen/preview_theme_tile_size"
-                android:layout_gravity="center"
-                android:id="@+id/preview_color_qs_0_icon"
-                android:tint="@color/tile_enabled_icon_color"/>
-        </FrameLayout>
-        <Space
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_weight="0" />
-        <FrameLayout
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="@dimen/preview_theme_icon_size"
-            android:layout_weight="1">
-            <ImageView
-                android:layout_width="@dimen/preview_theme_icon_size"
-                android:layout_height="@dimen/preview_theme_icon_size"
-                android:layout_gravity="center"
-                android:id="@+id/preview_color_qs_1_bg"/>
-            <ImageView
-                android:layout_width="@dimen/preview_theme_tile_size"
-                android:layout_height="@dimen/preview_theme_tile_size"
-                android:layout_gravity="center"
-                android:id="@+id/preview_color_qs_1_icon"
-                android:tint="@color/tile_enabled_icon_color"/>
-        </FrameLayout>
-        <Space
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_weight="0" />
-        <FrameLayout
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="@dimen/preview_theme_icon_size"
-            android:layout_weight="1">
-            <ImageView
-                android:layout_width="@dimen/preview_theme_icon_size"
-                android:layout_height="@dimen/preview_theme_icon_size"
-                android:layout_gravity="center"
-                android:id="@+id/preview_color_qs_2_bg"/>
-            <ImageView
-                android:layout_width="@dimen/preview_theme_tile_size"
-                android:layout_height="@dimen/preview_theme_tile_size"
-                android:layout_gravity="center"
-                android:id="@+id/preview_color_qs_2_icon"
-                android:color="@color/tile_enabled_icon_color"/>
-        </FrameLayout>
-    </LinearLayout>
-    <Space
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1" />
-    <LinearLayout
-        android:layout_width="@dimen/preview_theme_color_component_size"
-        android:layout_height="wrap_content"
-        android:layout_weight="0"
-        android:orientation="horizontal"
-        android:gravity="center">
-        <SeekBar
-            android:id="@+id/preview_seekbar"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:tint="@color/theme_preview_icon_color"
-            android:maxHeight="2dp"
-            android:progress="1"
-            android:clickable="true"
-            android:max="3"/>
-    </LinearLayout>
-    <Space
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1" />
-    <LinearLayout
-        android:layout_width="@dimen/preview_theme_color_component_size"
-        android:layout_height="wrap_content"
-        android:gravity="center"
-        android:orientation="horizontal">
-        <FrameLayout
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="@dimen/preview_theme_icon_size"
-            android:layout_weight="1">
-            <CheckBox
-                android:id="@+id/preview_check_selected"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:checked="true"
-                android:enabled="false"/>
-        </FrameLayout>
-        <Space
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_weight="0" />
-        <FrameLayout
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="@dimen/preview_theme_icon_size"
-            android:layout_weight="1">
-            <RadioButton
-                android:id="@+id/preview_radio_selected"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:checked="true"
-                android:enabled="false"/>
-        </FrameLayout>
-        <Space
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_weight="0" />
-        <FrameLayout
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="@dimen/preview_theme_icon_size"
-            android:layout_weight="1">
-            <Switch
-                android:id="@+id/preview_toggle_selected"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:checked="true"
-                android:enabled="false"/>
-        </FrameLayout>
-    </LinearLayout>
-</LinearLayout>
diff --git a/res/layout/preview_card_font_content.xml b/res/layout/preview_card_font_content.xml
deleted file mode 100644
index 408778e..0000000
--- a/res/layout/preview_card_font_content.xml
+++ /dev/null
@@ -1,55 +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"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:layout_gravity="center"
-    android:orientation="vertical"
-    tools:showIn="@layout/theme_preview_card">
-    <TextView
-        style="@style/FontCardTitleStyle"
-        android:id="@+id/font_card_title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:gravity="center_horizontal"
-        android:maxLines="1"
-        android:text="@string/font_card_title"/>
-    <Space
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1"/>
-    <View
-        android:id="@+id/font_card_divider"
-        android:layout_width="16dp"
-        android:layout_height="2dp"
-        android:layout_gravity="center"
-        android:background="?android:colorAccent"/>
-    <Space
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1"/>
-    <TextView
-        style="@style/FontCardBodyTextStyle"
-        android:id="@+id/font_card_body"
-        android:layout_height="wrap_content"
-        android:layout_gravity="bottom|center_horizontal"
-        android:gravity="center_horizontal"
-        android:text="@string/font_card_body"/>
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/preview_card_icon_content.xml b/res/layout/preview_card_icon_content.xml
deleted file mode 100644
index 29620c8..0000000
--- a/res/layout/preview_card_icon_content.xml
+++ /dev/null
@@ -1,91 +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="match_parent"
-    android:layout_height="match_parent"
-    android:layout_gravity="center"
-    android:gravity="center_horizontal"
-    android:orientation="vertical">
-    <LinearLayout
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:gravity="center_horizontal"
-        android:orientation="horizontal">
-        <ImageView
-            android:id="@+id/preview_icon_0"
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="@dimen/preview_theme_icon_size"
-            android:layout_weight="1"
-            android:tint="@color/theme_preview_icon_color"/>
-        <Space
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="match_parent"
-            android:layout_weight="0" />
-        <ImageView
-            android:id="@+id/preview_icon_1"
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="@dimen/preview_theme_icon_size"
-            android:layout_weight="1"
-            android:tint="@color/theme_preview_icon_color"/>
-        <Space
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="match_parent"
-            android:layout_weight="0" />
-        <ImageView
-            android:id="@+id/preview_icon_2"
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="@dimen/preview_theme_icon_size"
-            android:layout_weight="1"
-            android:tint="@color/theme_preview_icon_color"/>
-    </LinearLayout>
-    <Space
-        android:layout_width="match_parent"
-        android:layout_height="68dp" />
-    <LinearLayout
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:gravity="bottom|center_horizontal"
-        android:orientation="horizontal">
-        <ImageView
-            android:id="@+id/preview_icon_3"
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="@dimen/preview_theme_icon_size"
-            android:layout_weight="1"
-            android:tint="@color/theme_preview_icon_color"/>
-        <Space
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="match_parent"
-            android:layout_weight="0" />
-        <ImageView
-            android:id="@+id/preview_icon_4"
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="@dimen/preview_theme_icon_size"
-            android:layout_weight="1"
-            android:tint="@color/theme_preview_icon_color"/>
-        <Space
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="match_parent"
-            android:layout_weight="0" />
-        <ImageView
-            android:id="@+id/preview_icon_5"
-            android:layout_width="@dimen/preview_theme_icon_size"
-            android:layout_height="@dimen/preview_theme_icon_size"
-            android:layout_weight="1"
-            android:tint="@color/theme_preview_icon_color"/>
-    </LinearLayout>
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/preview_card_shape_content.xml b/res/layout/preview_card_shape_content.xml
deleted file mode 100644
index 0afa6bc..0000000
--- a/res/layout/preview_card_shape_content.xml
+++ /dev/null
@@ -1,127 +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="match_parent"
-    android:layout_height="match_parent"
-    android:layout_gravity="center"
-    android:gravity="center_horizontal"
-    android:orientation="vertical">
-        <LinearLayout
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:gravity="center_horizontal"
-            android:orientation="horizontal">
-                <FrameLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1">
-                        <ImageView
-                            android:id="@+id/shape_preview_icon_0"
-                            android:layout_width="@dimen/preview_theme_shape_size"
-                            android:layout_height="@dimen/preview_theme_shape_size"
-                            android:layout_gravity="center_horizontal"
-                            android:layout_margin="4dp"
-                            android:elevation="4dp"/>
-                </FrameLayout>
-                <Space
-                    android:layout_width="@dimen/preview_theme_shape_size"
-                    android:layout_height="match_parent"
-                    android:layout_weight="0" />
-                <FrameLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1">
-                        <ImageView
-                            android:id="@+id/shape_preview_icon_1"
-                            android:layout_width="@dimen/preview_theme_shape_size"
-                            android:layout_height="@dimen/preview_theme_shape_size"
-                            android:layout_gravity="center_horizontal"
-                            android:layout_margin="4dp"
-                            android:elevation="4dp"/>
-                </FrameLayout>
-                <Space
-                    android:layout_width="@dimen/preview_theme_shape_size"
-                    android:layout_height="match_parent"
-                    android:layout_weight="0" />
-                <FrameLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1">
-                        <ImageView
-                            android:id="@+id/shape_preview_icon_2"
-                            android:layout_width="@dimen/preview_theme_shape_size"
-                            android:layout_height="@dimen/preview_theme_shape_size"
-                            android:layout_gravity="center_horizontal"
-                            android:layout_margin="4dp"
-                            android:elevation="4dp"/>
-                </FrameLayout>
-        </LinearLayout>
-        <Space
-            android:layout_width="match_parent"
-            android:layout_height="60dp" />
-        <LinearLayout
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:gravity="bottom|center_horizontal"
-            android:orientation="horizontal">
-                <FrameLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1">
-                        <ImageView
-                            android:id="@+id/shape_preview_icon_3"
-                            android:layout_width="@dimen/preview_theme_shape_size"
-                            android:layout_height="@dimen/preview_theme_shape_size"
-                            android:layout_gravity="center_horizontal"
-                            android:layout_margin="4dp"
-                            android:elevation="4dp"/>
-                </FrameLayout>
-                <Space
-                    android:layout_width="@dimen/preview_theme_shape_size"
-                    android:layout_height="match_parent"
-                    android:layout_weight="0" />
-                <FrameLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1">
-                        <ImageView
-                            android:id="@+id/shape_preview_icon_4"
-                            android:layout_width="@dimen/preview_theme_shape_size"
-                            android:layout_height="@dimen/preview_theme_shape_size"
-                            android:layout_gravity="center_horizontal"
-                            android:layout_margin="4dp"
-                            android:elevation="4dp"/>
-                </FrameLayout>
-                <Space
-                    android:layout_width="@dimen/preview_theme_shape_size"
-                    android:layout_height="match_parent"
-                    android:layout_weight="0" />
-                <FrameLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1">
-                        <ImageView
-                            android:id="@+id/shape_preview_icon_5"
-                            android:layout_width="@dimen/preview_theme_shape_size"
-                            android:layout_height="@dimen/preview_theme_shape_size"
-                            android:layout_margin="4dp"
-                            android:layout_gravity="center_horizontal"
-                            android:elevation="4dp"/>
-                </FrameLayout>
-        </LinearLayout>
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/theme_color_option.xml b/res/layout/theme_color_option.xml
deleted file mode 100644
index 8d55626..0000000
--- a/res/layout/theme_color_option.xml
+++ /dev/null
@@ -1,30 +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.
--->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_gravity="center"
-    android:layout_marginTop="28dp"
-    android:layout_marginHorizontal="@dimen/component_options_margin_horizontal">
-
-    <ImageView
-        android:id="@+id/option_tile"
-        android:layout_width="@dimen/component_color_chip_container_size"
-        android:layout_height="@dimen/component_color_chip_container_size"
-        android:layout_gravity="center"
-        android:scaleType="center"/>
-</FrameLayout>
diff --git a/res/layout/theme_component_preview.xml b/res/layout/theme_component_preview.xml
deleted file mode 100644
index 67abe6b..0000000
--- a/res/layout/theme_component_preview.xml
+++ /dev/null
@@ -1,58 +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.
--->
-<androidx.constraintlayout.widget.ConstraintLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:id="@+id/theme_preview_card_background"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:clipToPadding="false"
-    android:maxHeight="@dimen/preview_theme_max_height"
-    android:minHeight="@dimen/preview_theme_min_height"
-    android:paddingTop="64dp">
-
-        <TextView
-            android:id="@+id/theme_preview_card_header"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_horizontal"
-            android:drawablePadding="@dimen/theme_preview_header_drawable_padding"
-            android:textAppearance="@style/CardTitleTextAppearance"
-            android:importantForAccessibility="no"
-            app:layout_constraintBottom_toTopOf="@id/theme_preview_card_body_container"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintHorizontal_bias="0.5"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintVertical_chainStyle="spread_inside"
-            tools:text="Default"/>
-
-        <FrameLayout
-            android:id="@+id/theme_preview_card_body_container"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_marginTop="@dimen/preview_theme_content_margin"
-            android:clipChildren="false"
-            android:importantForAccessibility="noHideDescendants"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintHeight_max="@dimen/preview_theme_content_max_height"
-            app:layout_constraintHeight_min="@dimen/preview_theme_content_min_height"
-            app:layout_constraintHorizontal_bias="0.5"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/theme_preview_card_header"/>
-</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/theme_font_option.xml b/res/layout/theme_font_option.xml
deleted file mode 100644
index dea4f78..0000000
--- a/res/layout/theme_font_option.xml
+++ /dev/null
@@ -1,41 +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:orientation="vertical">
-
-    <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:layout_marginHorizontal="@dimen/component_options_margin_horizontal"
-        android:background="@drawable/option_border">
-        <TextView
-            android:id="@+id/thumbnail_text"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center"
-            android:textSize="@dimen/font_comonent_option_thumbnail_size"
-            android:textAlignment="center"
-            android:textColor="?android:attr/colorForeground"
-            android:text="@string/font_component_option_thumbnail"/>
-    </FrameLayout>
-</LinearLayout>
diff --git a/res/layout/theme_icon_option.xml b/res/layout/theme_icon_option.xml
deleted file mode 100644
index 292b8cd..0000000
--- a/res/layout/theme_icon_option.xml
+++ /dev/null
@@ -1,38 +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:orientation="vertical">
-
-    <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:layout_marginHorizontal="@dimen/component_options_margin_horizontal"
-        android:background="@drawable/option_border">
-        <ImageView
-            android:id="@+id/option_icon"
-            android:layout_width="@dimen/component_icon_thumb_size"
-            android:layout_height="@dimen/component_icon_thumb_size"
-            android:layout_gravity="center"
-            android:tint="?android:colorForeground"/>
-    </FrameLayout>
-</LinearLayout>
diff --git a/res/layout/theme_info_view.xml b/res/layout/theme_info_view.xml
deleted file mode 100644
index 085a35e..0000000
--- a/res/layout/theme_info_view.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2020 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.
--->
-<com.android.customization.picker.theme.ThemeInfoView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:gravity="center_horizontal"
-    android:orientation="vertical"
-    android:padding="@dimen/wallpaper_info_pane_padding"
-    android:theme="@style/WallpaperPicker.BottomPaneStyle">
-
-    <TextView
-        android:id="@+id/style_info_title"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="@dimen/theme_info_margin"
-        android:gravity="center"
-        android:lineHeight="24dp"
-        android:textAppearance="@style/SubtitleTextAppearance"
-        android:textColor="?android:textColorPrimary"
-        android:textSize="16sp"
-        android:text="@string/style_info_description"/>
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        android:gravity="center">
-
-        <TextView
-            android:id="@+id/font_preview"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center"
-            android:layout_marginHorizontal="@dimen/theme_info_margin"
-            android:importantForAccessibility="no"
-            android:textSize="@dimen/theme_info_text_size"
-            android:textColor="?android:attr/colorForeground"
-            android:text="@string/font_component_option_thumbnail"/>
-
-        <ImageView
-            android:id="@+id/qs_preview_icon"
-            android:layout_width="@dimen/theme_info_icon_size"
-            android:layout_height="@dimen/theme_info_icon_size"
-            android:layout_marginHorizontal="@dimen/theme_info_margin"
-            android:tint="?android:textColorPrimary"/>
-
-        <ImageView
-            android:id="@+id/app_preview_icon"
-            android:layout_width="@dimen/theme_info_icon_size"
-            android:layout_height="@dimen/theme_info_icon_size"
-            android:layout_marginHorizontal="@dimen/theme_info_margin"
-            android:layout_marginVertical="@dimen/theme_info_app_preview_icon_margin"
-            android:elevation="@dimen/theme_info_app_preview_icon_elevation"/>
-
-        <ImageView
-            android:id="@+id/shape_preview_icon"
-            android:layout_width="@dimen/theme_info_icon_size"
-            android:layout_height="@dimen/theme_info_icon_size"
-            android:layout_marginHorizontal="@dimen/theme_info_margin"/>
-    </LinearLayout>
-</com.android.customization.picker.theme.ThemeInfoView>
\ No newline at end of file
diff --git a/res/layout/theme_option.xml b/res/layout/theme_option.xml
deleted file mode 100644
index bdf82d0..0000000
--- a/res/layout/theme_option.xml
+++ /dev/null
@@ -1,74 +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="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingHorizontal="@dimen/option_padding_horizontal"
-    android:paddingBottom="@dimen/option_bottom_margin"
-    android:clipChildren="false"
-    android:clipToPadding="false"
-    android:orientation="vertical">
-
-    <TextView
-        android:id="@+id/option_label"
-        android:layout_width="@dimen/option_tile_width"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_horizontal"
-        android:layout_marginBottom="@dimen/theme_option_label_margin"
-        android:ellipsize="end"
-        android:gravity="center_horizontal"
-        android:maxLines="1"
-        android:textAppearance="@style/OptionTitleTextAppearance"/>
-    <RelativeLayout
-        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/theme_option_icon"
-            android:layout_width="@dimen/theme_option_icon_sample_width"
-            android:layout_height="@dimen/theme_option_icon_sample_height"
-            android:layout_alignParentTop="true"
-            android:layout_alignParentStart="true"
-            android:tint="?android:colorForeground"/>
-        <ImageView
-            android:id="@+id/theme_option_shape"
-            android:layout_width="@dimen/theme_option_shape_sample_width"
-            android:layout_height="@dimen/theme_option_shape_sample_height"
-            android:layout_alignBottom="@+id/theme_option_icon"
-            android:layout_toEndOf="@id/theme_option_icon"
-            android:layout_marginStart="@dimen/theme_option_sample_margin"/>
-        <TextView
-            android:id="@+id/theme_option_font"
-            android:layout_width="@dimen/theme_option_font_sample_width"
-            android:layout_height="@dimen/theme_option_font_sample_height"
-            android:layout_gravity="center"
-            android:layout_below="@id/theme_option_icon"
-            android:layout_marginTop="@dimen/option_bottom_margin"
-            android:autoSizeMaxTextSize="@dimen/theme_option_font_text_size"
-            android:autoSizeMinTextSize="@dimen/theme_option_font_min_text_size"
-            android:autoSizeTextType="uniform"
-            android:gravity="center"
-            android:letterSpacing=".2"
-            android:text="@string/theme_font_example"
-            android:textAlignment="center"
-            android:textSize="@dimen/theme_option_font_text_size" />
-    </RelativeLayout>
-</LinearLayout>
diff --git a/res/layout/theme_preview_app_icon_shape.xml b/res/layout/theme_preview_app_icon_shape.xml
deleted file mode 100644
index fe95f90..0000000
--- a/res/layout/theme_preview_app_icon_shape.xml
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2020 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.
--->
-<androidx.constraintlayout.widget.ConstraintLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/app_row_0"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintBottom_toTopOf="@id/app_row_1">
-
-        <LinearLayout
-            android:id="@+id/app_item_0"
-            android:layout_width="@dimen/preview_theme_app_icon_size"
-            android:layout_height="wrap_content"
-            android:gravity="center_horizontal"
-            android:orientation="vertical"
-            android:clipChildren="false"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintEnd_toStartOf="@id/app_item_1"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent">
-            <ImageView
-                android:id="@+id/shape_preview_icon_0"
-                android:layout_width="@dimen/preview_theme_app_icon_size"
-                android:layout_height="@dimen/preview_theme_app_icon_size"
-                android:elevation="4dp"/>
-            <TextView
-                android:id="@+id/shape_preview_icon_app_name_0"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/preview_theme_app_icon_shape_text_margin_top"
-                android:textSize="@dimen/preview_theme_app_icon_shape_text_size"
-                android:lineHeight="20dp"
-                android:singleLine="true"/>
-        </LinearLayout>
-
-        <LinearLayout
-            android:id="@+id/app_item_1"
-            android:layout_width="@dimen/preview_theme_app_icon_size"
-            android:layout_height="wrap_content"
-            android:gravity="center_horizontal"
-            android:orientation="vertical"
-            android:clipChildren="false"
-            app:layout_constraintStart_toEndOf="@id/app_item_0"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent">
-            <ImageView
-                android:id="@+id/shape_preview_icon_1"
-                android:layout_width="@dimen/preview_theme_app_icon_size"
-                android:layout_height="@dimen/preview_theme_app_icon_size"
-                android:elevation="4dp"/>
-            <TextView
-                android:id="@+id/shape_preview_icon_app_name_1"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/preview_theme_app_icon_shape_text_margin_top"
-                android:textSize="@dimen/preview_theme_app_icon_shape_text_size"
-                android:lineHeight="20dp"
-                android:singleLine="true"/>
-        </LinearLayout>
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/app_row_1"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/app_row_0"
-        app:layout_constraintBottom_toBottomOf="parent">
-        <LinearLayout
-            android:id="@+id/app_item_2"
-            android:layout_width="@dimen/preview_theme_app_icon_size"
-            android:layout_height="wrap_content"
-            android:gravity="center_horizontal"
-            android:orientation="vertical"
-            android:clipChildren="false"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintEnd_toStartOf="@id/app_item_3"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent">
-            <ImageView
-                android:id="@+id/shape_preview_icon_2"
-                android:layout_width="@dimen/preview_theme_app_icon_size"
-                android:layout_height="@dimen/preview_theme_app_icon_size"
-                android:elevation="4dp"/>
-            <TextView
-                android:id="@+id/shape_preview_icon_app_name_2"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/preview_theme_app_icon_shape_text_margin_top"
-                android:textSize="@dimen/preview_theme_app_icon_shape_text_size"
-                android:lineHeight="20dp"
-                android:singleLine="true"/>
-        </LinearLayout>
-
-        <LinearLayout
-            android:id="@+id/app_item_3"
-            android:layout_width="@dimen/preview_theme_app_icon_size"
-            android:layout_height="wrap_content"
-            android:gravity="center_horizontal"
-            android:orientation="vertical"
-            android:clipChildren="false"
-            app:layout_constraintStart_toEndOf="@id/app_item_2"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent">
-            <ImageView
-                android:id="@+id/shape_preview_icon_3"
-                android:layout_width="@dimen/preview_theme_app_icon_size"
-                android:layout_height="@dimen/preview_theme_app_icon_size"
-                android:elevation="4dp"/>
-            <TextView
-                android:id="@+id/shape_preview_icon_app_name_3"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/preview_theme_app_icon_shape_text_margin_top"
-                android:textSize="@dimen/preview_theme_app_icon_shape_text_size"
-                android:lineHeight="20dp"
-                android:singleLine="true"/>
-        </LinearLayout>
-    </androidx.constraintlayout.widget.ConstraintLayout>
-</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/theme_preview_card.xml b/res/layout/theme_preview_card.xml
deleted file mode 100644
index 4fc8995..0000000
--- a/res/layout/theme_preview_card.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2020 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.
--->
-<androidx.cardview.widget.CardView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/FullContentPreviewCard"
-    android:id="@+id/theme_preview_card"
-    android:contentDescription="@string/theme_preview_card_content_description"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:layout_gravity="center">
-
-    <ImageView
-        android:id="@+id/wallpaper_preview_image"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="?android:colorPrimary" />
-
-    <SurfaceView
-        android:id="@+id/wallpaper_preview_surface"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-    <FrameLayout
-        android:id="@+id/theme_preview_container"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:importantForAccessibility="noHideDescendants" />
-</androidx.cardview.widget.CardView>
\ No newline at end of file
diff --git a/res/layout/theme_preview_color_icons.xml b/res/layout/theme_preview_color_icons.xml
deleted file mode 100644
index e87a7a1..0000000
--- a/res/layout/theme_preview_color_icons.xml
+++ /dev/null
@@ -1,181 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2020 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.
--->
-<androidx.cardview.widget.CardView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/color_icons_section"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:paddingHorizontal="@dimen/preview_theme_color_icons_padding_horizontal"
-        android:paddingTop="@dimen/preview_theme_color_icons_padding_top"
-        android:paddingBottom="@dimen/preview_theme_color_icons_padding_bottom"
-        android:orientation="vertical"
-        android:background="?android:colorBackground">
-
-        <!-- Title -->
-        <TextView
-            android:id="@+id/color_icons_section_title"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/theme_preview_icons_section_title"
-            android:textSize="@dimen/preview_theme_color_icons_title_text_size"
-            android:textColor="?android:textColorSecondary"
-            android:lineHeight="16dp"
-            android:gravity="center"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintBottom_toTopOf="@id/qs_icons"
-            app:layout_constraintVertical_bias="0.0"
-            app:layout_constraintVertical_chainStyle="spread_inside" />
-
-        <!-- QS icons -->
-        <LinearLayout
-            android:id="@+id/qs_icons"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/color_icons_section_title"
-            app:layout_constraintBottom_toTopOf="@id/button_icons">
-            <FrameLayout
-                android:layout_width="@dimen/preview_theme_color_icons_icon_size"
-                android:layout_height="@dimen/preview_theme_color_icons_icon_size">
-                <ImageView
-                    android:id="@+id/preview_color_qs_0_bg"
-                    android:layout_width="@dimen/preview_theme_color_icons_icon_size"
-                    android:layout_height="@dimen/preview_theme_color_icons_icon_size"/>
-                <ImageView
-                    android:id="@+id/preview_color_qs_0_icon"
-                    android:layout_width="@dimen/preview_theme_color_icons_tile_size"
-                    android:layout_height="@dimen/preview_theme_color_icons_tile_size"
-                    android:tint="?android:textColorPrimary"
-                    android:layout_gravity="center"/>
-            </FrameLayout>
-            <Space
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"/>
-            <FrameLayout
-                android:layout_width="@dimen/preview_theme_color_icons_icon_size"
-                android:layout_height="@dimen/preview_theme_color_icons_icon_size"
-                android:layout_gravity="center_horizontal">
-                <ImageView
-                    android:id="@+id/preview_color_qs_1_bg"
-                    android:layout_width="@dimen/preview_theme_color_icons_icon_size"
-                    android:layout_height="@dimen/preview_theme_color_icons_icon_size"/>
-                <ImageView
-                    android:id="@+id/preview_color_qs_1_icon"
-                    android:layout_width="@dimen/preview_theme_color_icons_tile_size"
-                    android:layout_height="@dimen/preview_theme_color_icons_tile_size"
-                    android:tint="?android:textColorPrimary"
-                    android:layout_gravity="center"/>
-            </FrameLayout>
-            <Space
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"/>
-            <FrameLayout
-                android:layout_width="@dimen/preview_theme_color_icons_icon_size"
-                android:layout_height="@dimen/preview_theme_color_icons_icon_size">
-                <ImageView
-                    android:id="@+id/preview_color_qs_2_bg"
-                    android:layout_width="@dimen/preview_theme_color_icons_icon_size"
-                    android:layout_height="@dimen/preview_theme_color_icons_icon_size"/>
-                <ImageView
-                    android:id="@+id/preview_color_qs_2_icon"
-                    android:layout_width="@dimen/preview_theme_color_icons_tile_size"
-                    android:layout_height="@dimen/preview_theme_color_icons_tile_size"
-                    android:tint="?android:textColorPrimary"
-                    android:layout_gravity="center"/>
-            </FrameLayout>
-            <Space
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"/>
-            <FrameLayout
-                android:layout_width="@dimen/preview_theme_color_icons_icon_size"
-                android:layout_height="@dimen/preview_theme_color_icons_icon_size">
-                <ImageView
-                    android:id="@+id/preview_color_qs_3_bg"
-                    android:layout_width="@dimen/preview_theme_color_icons_icon_size"
-                    android:layout_height="@dimen/preview_theme_color_icons_icon_size"/>
-                <ImageView
-                    android:id="@+id/preview_color_qs_3_icon"
-                    android:layout_width="@dimen/preview_theme_color_icons_tile_size"
-                    android:layout_height="@dimen/preview_theme_color_icons_tile_size"
-                    android:tint="?android:textColorPrimary"
-                    android:layout_gravity="center"/>
-            </FrameLayout>
-        </LinearLayout>
-
-        <!-- Icons of CheckBox/RadioButton/Switch. -->
-        <RelativeLayout
-            android:id="@+id/button_icons"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/qs_icons"
-            app:layout_constraintBottom_toBottomOf="parent">
-            <FrameLayout
-                android:layout_width="@dimen/preview_theme_icon_size"
-                android:layout_height="@dimen/preview_theme_icon_size"
-                android:layout_alignParentStart="true">
-                <CheckBox
-                    android:id="@+id/preview_check_selected"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="center"
-                    android:checked="true"
-                    android:enabled="false"/>
-            </FrameLayout>
-
-            <FrameLayout
-                android:layout_width="@dimen/preview_theme_icon_size"
-                android:layout_height="@dimen/preview_theme_icon_size"
-                android:layout_centerHorizontal="true">
-                <RadioButton
-                    android:id="@+id/preview_radio_selected"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="center"
-                    android:checked="true"
-                    android:enabled="false"/>
-            </FrameLayout>
-
-            <FrameLayout
-                android:layout_width="wrap_content"
-                android:layout_height="@dimen/preview_theme_icon_size"
-                android:layout_alignParentEnd="true">
-                <Switch
-                    android:id="@+id/preview_toggle_selected"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="center"
-                    android:checked="true"
-                    android:enabled="false"/>
-            </FrameLayout>
-        </RelativeLayout>
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-</androidx.cardview.widget.CardView>
diff --git a/res/layout/theme_preview_content.xml b/res/layout/theme_preview_content.xml
deleted file mode 100644
index 4b29617..0000000
--- a/res/layout/theme_preview_content.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2020 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.
--->
-<androidx.constraintlayout.widget.ConstraintLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingTop="@dimen/preview_theme_content_padding_top"
-    android:paddingBottom="@dimen/preview_theme_content_padding_bottom"
-    android:clipToPadding="false"
-    android:clipChildren="false">
-
-    <FrameLayout
-        android:id="@+id/topbar_container"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginHorizontal="@dimen/preview_theme_topbar_container_margin_horizontal"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintBottom_toTopOf="@id/smart_space_date"
-        app:layout_constraintVertical_bias="0.0"
-        app:layout_constraintVertical_chainStyle="spread_inside">
-        <include layout="@layout/theme_preview_topbar" />
-    </FrameLayout>
-
-    <TextView
-        android:id="@+id/smart_space_date"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:textSize="@dimen/preview_theme_smart_space_date_size"
-        android:singleLine="true"
-        android:gravity="center|bottom"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/topbar_container"
-        app:layout_constraintBottom_toTopOf="@id/app_icon_shape_container"
-        app:layout_constraintHeight_percent="0.1" />
-
-    <FrameLayout
-        android:id="@+id/app_icon_shape_container"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/smart_space_date"
-        app:layout_constraintBottom_toTopOf="@id/color_icons_container"
-        app:layout_constraintHeight_percent="0.49">
-        <include layout="@layout/theme_preview_app_icon_shape" />
-    </FrameLayout>
-
-    <FrameLayout
-        android:id="@+id/color_icons_container"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_marginHorizontal="@dimen/preview_theme_color_icons_container_margin_horizontal"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/app_icon_shape_container"
-        app:layout_constraintBottom_toTopOf="@id/theme_qsb_container"
-        app:layout_constraintHeight_percent="0.275">
-        <include layout="@layout/theme_preview_color_icons" />
-    </FrameLayout>
-
-    <FrameLayout
-        android:id="@+id/theme_qsb_container"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_marginHorizontal="@dimen/preview_theme_qsb_container_margin_horizontal"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/color_icons_container"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintHeight_percent="0.1">
-        <include layout="@layout/theme_cover_qsb" />
-    </FrameLayout>
-
-</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/theme_preview_topbar.xml b/res/layout/theme_preview_topbar.xml
deleted file mode 100644
index af69de9..0000000
--- a/res/layout/theme_preview_topbar.xml
+++ /dev/null
@@ -1,56 +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.
--->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:id="@+id/theme_preview_top_bar"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    tools:visibility="visible"
-    tools:showIn="@layout/theme_preview_card">
-    <TextView
-        android:id="@+id/theme_preview_clock"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="start|center_vertical"
-        android:textColor="?android:textColorSecondary"
-        android:textSize="@dimen/preview_theme_cover_topbar_clock_size"
-        tools:text="8:10"/>
-    <LinearLayout
-        android:id="@+id/theme_preview_top_bar_icons"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="end|center_vertical"
-        android:orientation="horizontal">
-        <ImageView
-            android:id="@+id/preview_icon_0"
-            android:layout_width="@dimen/preview_theme_cover_topbar_icon_size"
-            android:layout_height="@dimen/preview_theme_cover_topbar_icon_size"
-            android:tint="?android:textColorSecondary"/>
-        <ImageView
-            android:id="@+id/preview_icon_1"
-            android:layout_width="@dimen/preview_theme_cover_topbar_icon_size"
-            android:layout_height="@dimen/preview_theme_cover_topbar_icon_size"
-            android:layout_marginHorizontal="8dp"
-            android:tint="?android:textColorSecondary"/>
-        <ImageView
-            android:id="@+id/preview_icon_2"
-            android:layout_width="@dimen/preview_theme_cover_topbar_icon_size"
-            android:layout_height="@dimen/preview_theme_cover_topbar_icon_size"
-            android:tint="?android:textColorSecondary"/>
-    </LinearLayout>
-</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/theme_shape_option.xml b/res/layout/theme_shape_option.xml
deleted file mode 100644
index c5682c0..0000000
--- a/res/layout/theme_shape_option.xml
+++ /dev/null
@@ -1,33 +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:orientation="vertical">
-    <FrameLayout
-        android:id="@+id/option_tile"
-        android:layout_width="@dimen/option_tile_width"
-        android:layout_height="@dimen/option_tile_width"
-        android:layout_gravity="center"
-        android:layout_marginHorizontal="@dimen/component_options_margin_horizontal">
-        <ImageView
-            android:id="@+id/shape_thumbnail"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_gravity="center"/>
-    </FrameLayout>
-</LinearLayout>
diff --git a/res/menu/custom_theme_editor_menu.xml b/res/menu/custom_theme_editor_menu.xml
deleted file mode 100644
index 7019181..0000000
--- a/res/menu/custom_theme_editor_menu.xml
+++ /dev/null
@@ -1,23 +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.
--->
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/custom_theme_delete"
-        android:title="@string/custom_theme_delete"
-        android:icon="@drawable/ic_delete_24px"
-        android:showAsAction="always"/>
-</menu>
\ No newline at end of file
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index e016927..f6ba1f8 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>
@@ -40,7 +41,8 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Horlosiegrootte verander na gelang van sluitskerminhoud"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Groot"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Klein"</string>
-    <string name="grid_title" msgid="1688173478777254123">"Programrooster"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"’n Klein horlosie word in die hoek van jou skerm gewys"</string>
+    <string name="grid_title" msgid="1688173478777254123">"Approoster"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Pas toe"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Tik om te wysig"</string>
     <string name="keep_my_wallpaper" msgid="8012385376769568517">"Hou huidige muurpapier"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Voeg jou gunstelinglettertipes op elke skerm by"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Kies \'n roostergrootte"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Roostergrootteverandering sal werkspasie herlaai; kan paar sekondes neem."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Herlaai tans werkspasie met %1$s rooster"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Kon nie werkspasie met %1$s rooster herlaai nie"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Styl is suksesvol gestel"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Horlosie is suksesvol gestel"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Rooster is suksesvol gestel"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Gepasmaakte kleur"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Gepasmaakte vorm"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Gepasmaakte stylnaam"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Kleurintensiteit"</string>
     <string name="mode_title" msgid="2394873501427436055">"Donkertema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Tydelik gedeaktiveer vanweë Batterybespaarder"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema het verander"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Swiep links om ’n ander horlosieskerm te kies"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Swiep regs om ’n ander horlosieskerm te kies"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Gepasmaakte horlosies"</string>
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 2c61157..d377f40 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>
@@ -37,19 +38,20 @@
     <string name="clock_color_teal" msgid="7499223425741344251">"ደማቅ አረንጓዴ-ሰማያዊ"</string>
     <string name="clock_size" msgid="5028923902364418263">"መጠን"</string>
     <string name="clock_size_dynamic" msgid="1023930312455061642">"ተለዋዋጭ"</string>
-    <string name="clock_size_dynamic_description" msgid="2776620745774561662">"የClock መጠን በማያ ገጽ ቁልፍ ይዘት መሰረት ይለወጣል"</string>
+    <string name="clock_size_dynamic_description" msgid="2776620745774561662">"የClock መጠን በማያ ገፅ ቁልፍ ይዘት መሰረት ይለወጣል"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"ትልቅ"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"ትንሽ"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"በእርስዎ ማያ ገፅ ጥግ ላይ ትንሽ ሰዓት ይታያል"</string>
     <string name="grid_title" msgid="1688173478777254123">"የመተግበሪያ ፍርግርግ"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"ተግብር"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ለማርትዕ መታ ያድርጉ"</string>
     <string name="keep_my_wallpaper" msgid="8012385376769568517">"የአሁኑን ልጣፍ ያቆዩት"</string>
-    <string name="theme_preview_card_content_description" msgid="5989222908619535533">"የቅጥ ቅድመ-እይታ"</string>
-    <string name="grid_preview_card_content_description" msgid="8449383777584714842">"የፍርግርግ ቅድመ-እይታ"</string>
-    <string name="font_preview_content_description" msgid="128230439293337891">"የቅርጸ-ቁምፊ ቅድመ-እይታ"</string>
-    <string name="icon_preview_content_description" msgid="7761101284351952890">"የአዶ ቅድመ-እይታ"</string>
-    <string name="color_preview_content_description" msgid="4879120462082058124">"የቀለም ቅድመ-እይታ"</string>
-    <string name="shape_preview_content_description" msgid="6479487796176550432">"የቅርጽ ቅድመ-እይታ"</string>
+    <string name="theme_preview_card_content_description" msgid="5989222908619535533">"የቅጥ ቅድመ-ዕይታ"</string>
+    <string name="grid_preview_card_content_description" msgid="8449383777584714842">"የፍርግርግ ቅድመ-ዕይታ"</string>
+    <string name="font_preview_content_description" msgid="128230439293337891">"የቅርጸ-ቁምፊ ቅድመ-ዕይታ"</string>
+    <string name="icon_preview_content_description" msgid="7761101284351952890">"የአዶ ቅድመ-ዕይታ"</string>
+    <string name="color_preview_content_description" msgid="4879120462082058124">"የቀለም ቅድመ-ዕይታ"</string>
+    <string name="shape_preview_content_description" msgid="6479487796176550432">"የቅርጽ ቅድመ-ዕይታ"</string>
     <string name="option_applied_description" msgid="5022305212078053534">"<xliff:g id="ID_1">%1$s</xliff:g>፣ አሁን ላይ ተፈጻሚ ሆኗል"</string>
     <string name="option_applied_previewed_description" msgid="5269654286638446858">"<xliff:g id="ID_1">%1$s</xliff:g>, currently applied and previewed"</string>
     <string name="option_previewed_description" msgid="3467217598865047661">"<xliff:g id="ID_1">%1$s</xliff:g>, currently previewed"</string>
@@ -62,9 +64,12 @@
     <string name="preview_name_shape" msgid="5676971146080968721">"ቅርጽ"</string>
     <string name="preview_name_wallpaper" msgid="1738652462949531828">"ልጣፍ"</string>
     <string name="font_card_title" msgid="2343292653502548685">"ABC • abc • 123"</string>
-    <string name="font_card_body" msgid="6790525594503904468">"የእርስዎን ተወዳጅ ቁፊዎች ወደ ሁሉም ማያ ገጽ ያክሉ"</string>
+    <string name="font_card_body" msgid="6790525594503904468">"የእርስዎን ተወዳጅ ቁፊዎች ወደ ሁሉም ማያ ገፅ ያክሉ"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"የፍርግርግ መጠን ይምረጡ"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"የፍርግርግ መጠንን መለወጥ መሥሪያ ቦታን ዳግም ይጭናል እና ጥቂት ደቂቃዎችን ሊወስድ ይችላል።"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"በ%1$s ፍርግርግ መሥሪያ ቦታን እንደገና መጫን"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"በ%1$s ፍርግርግ መሥሪያ ቦታን እንደገና መጫን አልተሳካም"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"ቅጥ በተሳካ ሁኔታ ተቀናብሯል"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"ሰዓት በተሳካ ሁኔታ ተቀናብሯል"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"ፍርግርግ በተሳካ ሁኔታ ተቀናብሯል"</string>
@@ -89,15 +94,16 @@
     <string name="use_style_instead_body" msgid="3051937045807471496">"የመረጧቸው ክፍላተ አካላት የ <xliff:g id="ID_1">%1$s</xliff:g> ቅጥ ጋር ይዛመዳሉ። በምትኩ <xliff:g id="ID_2">%1$s</xliff:g> መጠቀም ይፈልጋሉ?"</string>
     <string name="use_style_button" msgid="1754493078383627019">"<xliff:g id="ID_1">%1$s</xliff:g>ን ይጠቀሙ"</string>
     <string name="no_thanks" msgid="7286616980115687627">"አይ፣ አመሰግናለሁ"</string>
-    <string name="clock_preview_content_description" msgid="5460561185905717460">"የ<xliff:g id="ID_1">%1$s</xliff:g> ሰዓት ቅድመ-እይታ"</string>
+    <string name="clock_preview_content_description" msgid="5460561185905717460">"የ<xliff:g id="ID_1">%1$s</xliff:g> ሰዓት ቅድመ-ዕይታ"</string>
     <string name="something_went_wrong" msgid="529840112449799117">"ውይ! የሆነ ችግር ተፈጥሯል።"</string>
     <string name="theme_preview_icons_section_title" msgid="7064768910744000643">"ቀለም / አዶዎች"</string>
-    <string name="style_info_description" msgid="2612473574431003251">"የቅርጸ-ቁምፊ፣ የአዶዎች፣ የመተግበሪያ ቅርጽ እና የቀለም ቅድመ-እይታ"</string>
+    <string name="style_info_description" msgid="2612473574431003251">"የቅርጸ-ቁምፊ፣ የአዶዎች፣ የመተግበሪያ ቅርጽ እና የቀለም ቅድመ-ዕይታ"</string>
     <string name="accessibility_custom_font_title" msgid="966867359157303705">"ብጁ ቅርጸ-ቁምፊ"</string>
     <string name="accessibility_custom_icon_title" msgid="5753297905849062296">"ብጁ አዶ"</string>
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"ብጁ ቀለም"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"ብጁ ቅርጽ"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"ብጁ የቅጥ ስም"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"የቀለም ጥንካሬ"</string>
     <string name="mode_title" msgid="2394873501427436055">"ጠቆር ያለ ገጽታ"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"በባትሪ ኃይል ቆጣቢ ምክንያት ለጊዜው ተሰናክሏል"</string>
     <string name="mode_changed" msgid="2243581369395418584">"ገጽታ ተቀይሯል"</string>
@@ -116,7 +122,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,13 +130,17 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"በማያ ገጽ ቁልፉ ላይ ማሳወቂያዎችን አሳይ"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"በማያ ገጽ ቁልፉ ላይ ማሳወቂያዎችን ደብቅ"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"በማያ ገፅ ቁልፉ ላይ ማሳወቂያዎችን አሳይ"</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-ar/strings.xml b/res/values-ar/strings.xml
index f3a3fae..86670d7 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"يتغير حجم الساعة وفقًا للمحتوى على شاشة القفل."</string>
     <string name="clock_size_large" msgid="3143248715744138979">"كبير"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"صغير"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"تظهر ساعة صغيرة في زاوية الشاشة."</string>
     <string name="grid_title" msgid="1688173478777254123">"شبكة التطبيقات"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"تطبيق"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"انقُر للتعديل."</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"يمكنك إضافة خطوطك المفضّلة إلى كل شاشة."</string>
     <string name="grid_options_title" msgid="7071930966989877023">"اختيار حجم الشبكة"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"سيؤدي تغيير حجم الشبكة إلى إعادة تحميل مساحة العمل وقد يستغرق ذلك بضع ثوانٍ."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"إعادة تحميل مساحة العمل باستخدام شبكة %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"تعذّرت إعادة تحميل مساحة العمل باستخدام شبكة %1$s."</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"تم ضبط النمط."</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"تم ضبط الساعة."</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"تم ضبط الشبكة."</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"لون مخصص"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"شكل مخصص"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"اسم نمط مخصص"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"كثافة اللون"</string>
     <string name="mode_title" msgid="2394873501427436055">"المظهر الداكن"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"تم الإيقاف مؤقتًا بسبب تفعيل ميزة \"توفير شحن البطارية\"."</string>
     <string name="mode_changed" msgid="2243581369395418584">"تم تغيير المظهر."</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"إظهار الإشعارات على شاشة القفل"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"إخفاء الإشعارات على شاشة القفل"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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-as/strings.xml b/res/values-as/strings.xml
index 6279d5d..ac66386 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"বন্ধ স্ক্ৰীনৰ সমল অনুসৰি ঘড়ীৰ আকাৰ সলনি হয়"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"ডাঙৰ"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"সৰু"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"আপোনাৰ স্ক্ৰীনখনৰ চুকত এটা সৰু ঘড়ীয়ে দেখুৱায়"</string>
     <string name="grid_title" msgid="1688173478777254123">"এপৰ গ্ৰিড"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"প্ৰয়োগ কৰক"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"সম্পাদনা কৰিবলৈ টিপক"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"প্ৰত্যেকখন স্ক্ৰীনত আপোনাৰ প্ৰিয় ফ’ণ্ট যোগ দিয়ক"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"এটা গ্ৰিডৰ আকাৰ বাছনি কৰক"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"গ্ৰিড আকাৰ সলনি কৰিলে ৱৰ্কস্পেছ পুনৰ ল’ড হ’ব আৰু কেইছেকেণ্ডমান সময় লাগিব পাৰে।"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s গ্ৰিডৰ সৈতে ৱৰ্কস্পেছ পুনৰ ল’ড কৰি থকা হৈছে"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s গ্ৰিডৰ সৈতে ৱৰ্কস্পেছ পুনৰ ল’ড কৰিব পৰা নগ’ল"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"শৈলী সফলতাৰে ছেট কৰা হ’ল"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"ঘড়ী সফলতাৰে ছেট কৰা হ’ল"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"গ্ৰিড সফলতাৰে ছেট কৰা হ’ল"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"কাষ্টম ৰং"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"কাষ্টম আকৃতি"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"কাষ্টম শৈলীৰ নাম"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"ৰঙৰ গাঢ়তা"</string>
     <string name="mode_title" msgid="2394873501427436055">"গাঢ় ৰঙৰ থীম"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"বেটাৰী সঞ্চয়কাৰীৰ বাবে অস্থায়ীভাৱে অক্ষম কৰা হৈছে"</string>
     <string name="mode_changed" msgid="2243581369395418584">"থীম সলনি কৰা হৈছে"</string>
@@ -116,7 +122,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,13 +130,17 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"বন্ধ স্ক্ৰীনত জাননী দেখুৱাওক"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"বন্ধ স্ক্ৰীনত জাননী লুকুৱাওক"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"লক স্ক্ৰীনত জাননী দেখুৱাওক"</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-az/strings.xml b/res/values-az/strings.xml
index 8a971ed..8b04e46 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Saat ölçüsü kilid ekranının məzmununa görə dəyişir"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Böyük"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Kiçik"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Ekranın mərkəzində kiçik saat görünür"</string>
     <string name="grid_title" msgid="1688173478777254123">"Tətbiq toru"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Tətbiq edin"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Redaktə etmək üçün klikləyin"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Sevimli şriftlərinizi hər ekrana əlavə edin"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Tor ölçüsü seçin"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Tor ölçüsü dəyişəndə iş yeri yenidən yüklənəcək."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s toru ilə iş yeri yenidən yüklənir"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s toru ilə iş yeri yenidən yüklənmədi"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Üslub uğurla ayarlandı"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Saat uğurla ayarlandı"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Tor uğurla ayarlandı"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Fərdi rəng"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Fərdi forma"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Fərdi üslub adı"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Rəng intensivliyi"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tünd tema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Enerjiyə Qənaət rejiminə görə müvəqqəti deaktivdir"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema dəyişdirildi"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Fərqli siferblat seçmək üçün sola sürüşdürün"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Fərqli siferblat seçmək üçün sağa sürüşdürün"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Fərdi saatlar"</string>
 </resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index f887be1..423424c 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>
@@ -39,7 +40,8 @@
     <string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamički"</string>
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Veličina sata se menja u skladu sa sadržajem zaključanog ekrana"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Veliko"</string>
-    <string name="clock_size_small" msgid="2280449912094164133">"Malo"</string>
+    <string name="clock_size_small" msgid="2280449912094164133">"Mali"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Mali sat se prikazuje u uglu ekrana"</string>
     <string name="grid_title" msgid="1688173478777254123">"Mreža apl."</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Primeni"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Dodirnite da biste izmenili"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Dodajte omiljene fontove na svaki ekran"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Odaberite veličinu mreže"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Nova veličina mreže ponovo učitava radni prostor za par sekundi."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Radni prostor se ponovo učitava uz mrežu %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Ponovno učitavanje radnog prostora uz mrežu %1$s nije uspelo"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stil je podešen"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Podešavanje sata je uspelo"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Mreža je podešena"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Prilagođena boja"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Prilagođeni oblik"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Prilagođeni naziv stila"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intenzitet boja"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tamna tema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Privremeno je onemogućeno zbog uštede baterije"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema je promenjena"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Prevucite nalevo da biste odabrali drugi brojčanik"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Prevucite nadesno da biste odabrali drugi brojčanik"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Prilagođeni satovi"</string>
 </resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index fec9d8b..dc2321d 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Памер гадзінніка змяняецца ў залежнасці ад змесціва на экране блакіроўкі"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Вялікі"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Дробны"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Невялікі гадзіннік у вугле экрана"</string>
     <string name="grid_title" msgid="1688173478777254123">"Сетка праграм"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Ужыць"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Дакраніцеся, каб рэдагаваць"</string>
@@ -55,7 +57,7 @@
     <string name="option_previewed_description" msgid="3467217598865047661">"<xliff:g id="ID_1">%1$s</xliff:g>, цяпер папярэдне паказваецца"</string>
     <string name="option_change_applied_previewed_description" msgid="9197311327728570816">"<xliff:g id="ID_1">%1$s</xliff:g>, змяніце выбранае і папярэдне прагледжанае"</string>
     <string name="theme_description" msgid="3697012391785254635">"Шрыфт: <xliff:g id="ID_1">%1$s</xliff:g>, значкі: <xliff:g id="ID_2">%2$s</xliff:g>, фігура: <xliff:g id="ID_3">%3$s</xliff:g>, колер: <xliff:g id="ID_4">%4$s</xliff:g>"</string>
-    <string name="default_theme_title" msgid="2555741736622366797">"Стандартна"</string>
+    <string name="default_theme_title" msgid="2555741736622366797">"Стандарт"</string>
     <string name="preview_name_font" msgid="4465423899630037038">"Шрыфт"</string>
     <string name="preview_name_icon" msgid="6818927315316316440">"Значок"</string>
     <string name="preview_name_color" msgid="8776203144994416172">"Колер"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Дадавайце любімыя шрыфты на кожны экран"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Выберыце памер сеткі"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Пры змене памеру сеткі будзе абноўлена працоўная вобласць. Увесь працэс можа заняць некалькі секунд."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Ідзе абнаўленне працоўнай вобласці з сеткай %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Не ўдалося абнавіць працоўную вобласць з сеткай %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Стыль паспяхова зададзены"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Гадзіннік паспяхова зададзены"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Сетка паспяхова зададзена"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Карыстальніцкі колер"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Карыстальніцкая форма"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Назва карыстальніцкага стылю"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Інтэнсіўнасць колеру"</string>
     <string name="mode_title" msgid="2394873501427436055">"Цёмная тэма"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Часова выключана ў рэжыме эканоміі зараду"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Тэма зменена"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"Паказваць апавяшчэнні на экране блакіроўкі"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Не паказваць апавяшчэнні на экране блакіроўкі"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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-bg/strings.xml b/res/values-bg/strings.xml
index eb5386d..0e1fbc7 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Размерът на часовника се променя според съдържанието на заключения екран"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Голям"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Малък"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"В ъгъла на екрана се показва малък часовник"</string>
     <string name="grid_title" msgid="1688173478777254123">"Решетка с прил."</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Прилагане"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Докоснете, за да редактирате"</string>
@@ -55,7 +57,7 @@
     <string name="option_previewed_description" msgid="3467217598865047661">"Понастоящем е визуализирана опцията „<xliff:g id="ID_1">%1$s</xliff:g>“"</string>
     <string name="option_change_applied_previewed_description" msgid="9197311327728570816">"Промяна на избраната и визуализирана опция „<xliff:g id="ID_1">%1$s</xliff:g>“"</string>
     <string name="theme_description" msgid="3697012391785254635">"Шрифт: <xliff:g id="ID_1">%1$s</xliff:g> – икони: <xliff:g id="ID_2">%2$s</xliff:g> – форма: <xliff:g id="ID_3">%3$s</xliff:g> – цвят: <xliff:g id="ID_4">%4$s</xliff:g>"</string>
-    <string name="default_theme_title" msgid="2555741736622366797">"Основно"</string>
+    <string name="default_theme_title" msgid="2555741736622366797">"Основен"</string>
     <string name="preview_name_font" msgid="4465423899630037038">"Шрифт"</string>
     <string name="preview_name_icon" msgid="6818927315316316440">"Икона"</string>
     <string name="preview_name_color" msgid="8776203144994416172">"Цвят"</string>
@@ -64,7 +66,10 @@
     <string name="font_card_title" msgid="2343292653502548685">"ABC • abc • 123"</string>
     <string name="font_card_body" msgid="6790525594503904468">"Добавете любимите си шрифтове на всеки екран"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Избиране на размер на решетката"</string>
-    <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Преоразм. на решетката презарежда раб. простр. и отнема няколко сек."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Работното пространство се презарежда с решетка с размер %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Презареждането на работното пространство с решетка с размер %1$s не бе успешно"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Стилът бе зададен успешно"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Часовникът бе зададен успешно"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Решетката бе зададена успешно"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Персонализиран цвят"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Персонализирана фигура"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Име на персонализирания стил"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Наситеност на цветовете"</string>
     <string name="mode_title" msgid="2394873501427436055">"Тъмна тема"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Временно деактивирано с цел режим за запазване на батерията"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Темата бе променена"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"Показване на известията на заключения екран"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Скриване на известията на заключения екран"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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/strings.xml b/res/values-bn/strings.xml
index b3a323a..f4f4a92 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -22,8 +22,9 @@
     <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="clock_color_and_size_title" msgid="7146791234905111351">"ঘড়ির রঙ &amp; সাইজ"</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>
     <string name="clock_color_red" msgid="3843504214807597810">"লাল"</string>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"লক স্ক্রিনের কন্টেন্ট অনুযায়ী ঘড়ির সাইজ পরিবর্তন হয়"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"বড়"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"ছোট করুন"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"স্ক্রিনের কোনায় একটি ছোট ঘড়ি দেখানো হয়"</string>
     <string name="grid_title" msgid="1688173478777254123">"অ্যাপ গ্রিড"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"প্রয়োগ করুন"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"এডিট করতে ট্যাপ করুন"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"প্রতিটি স্ক্রিনে আপনার পছন্দের ফন্ট যোগ করুন"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"গ্রিডের সাইজ বেছে নিন"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"গ্রিড সাইজ বদলালে ওয়ার্কস্পেস রিলোড করা হবে ও এতে কয়েক সেকেন্ড লাগতে পারে।"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s গ্রিড সহ ওয়ার্কস্পেস রিলোড করা হচ্ছে"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s গ্রিড সহ ওয়ার্কস্পেস রিলোড করা যায়নি"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"স্টাইল সফলভাবে সেট করা হয়েছে"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"ঘড়ি সফলভাবে সেট করা হয়েছে"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"গ্রিড সফলভাবে সেট করা হয়েছে"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"কাস্টম রঙ"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"কাস্টম আকৃতি"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"কাস্টম স্টাইলের নাম"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"কালার ইন্টেনসিটি"</string>
     <string name="mode_title" msgid="2394873501427436055">"ডার্ক থিম"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"ব্যাটারি সেভারের কারণে সাময়িকভাবে বন্ধ করা আছে"</string>
     <string name="mode_changed" msgid="2243581369395418584">"থিম পরিবর্তন করা হয়েছে"</string>
@@ -116,7 +122,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,13 +130,17 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"লক স্ক্রিনে বিজ্ঞপ্তি দেখান"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"লক স্ক্রিনে বিজ্ঞপ্তি লুকান"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"লক স্ক্রিনে বিজ্ঞপ্তি দেখুন"</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-bs/strings.xml b/res/values-bs/strings.xml
index c2fd8a8..fc1ff2f 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>
@@ -36,10 +37,11 @@
     <string name="clock_color_gray" msgid="9221530636948859231">"Siva"</string>
     <string name="clock_color_teal" msgid="7499223425741344251">"Tirkizna"</string>
     <string name="clock_size" msgid="5028923902364418263">"Veličina"</string>
-    <string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamički"</string>
+    <string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamično"</string>
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Veličina sata se mijenja u skladu sa sadržajem na zaključanom ekranu"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Veliko"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Malo"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Mali sat se prikazuje u uglu vašeg ekrana"</string>
     <string name="grid_title" msgid="1688173478777254123">"Mreža aplikacija"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Primijeni"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Dodirnite da uredite"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Dodajte omiljene fontove na svaki ekran"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Odaberite veličinu mreže"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Mijenjanje vel. mreže može potrajati nekoliko s."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Ponovno učitavanje radnog prostora s mrežom %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Ponovno učitavanje radnog prostora s mrežom %1$s nije uspjelo"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stil je uspješno postavljen"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Sat je uspješno postavljen"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Mreža je uspješno postavljena"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Prilagođena boja"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Prilagođeni oblik"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Naziv prilagođenog stila"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intenzitet boja"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tamna tema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Privremeno onemogućeno zbog uštede baterije"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema je promijenjena"</string>
@@ -111,12 +117,12 @@
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Druge boje"</string>
     <string name="preset_color_subheader" msgid="8230588536141279371">"Odaberite bilo koju boju za ikone, sat i drugo"</string>
     <string name="color_changed" msgid="7029571720331641235">"Boja je promijenjena"</string>
-    <string name="adaptive_color_title" msgid="1336508599235896205">"Dinamički"</string>
+    <string name="adaptive_color_title" msgid="1336508599235896205">"Dinamično"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"Boje sistema"</string>
-    <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Prečica lijevo"</string>
-    <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Prečica desno"</string>
+    <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>
@@ -125,10 +131,16 @@
     <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="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="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">"Odabir drugog brojčanika prevlačenjem ulijevo"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Odabir drugog brojčanika prevlačenjem udesno"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Prilagođeni satovi"</string>
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index fa98f97..99c8479 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -22,8 +22,9 @@
     <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">"Config. rellotge"</string>
-    <string name="clock_color_and_size_title" msgid="7146791234905111351">"Color i mida 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>
     <string name="clock_color_red" msgid="3843504214807597810">"Vermell"</string>
@@ -36,10 +37,11 @@
     <string name="clock_color_gray" msgid="9221530636948859231">"Gris"</string>
     <string name="clock_color_teal" msgid="7499223425741344251">"Verd blavós"</string>
     <string name="clock_size" msgid="5028923902364418263">"Mida"</string>
-    <string name="clock_size_dynamic" msgid="1023930312455061642">"Dinàmica"</string>
+    <string name="clock_size_dynamic" msgid="1023930312455061642">"Dinàmic"</string>
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"La mida del rellotge canvia d\'acord amb el contingut de la pantalla de bloqueig"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Gran"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Petit"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Es mostra un rellotge petit a l\'extrem de la pantalla"</string>
     <string name="grid_title" msgid="1688173478777254123">"Quadrícula d\'apps"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Aplica"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Toca per editar"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Afegeix els teus tipus de lletra preferits a cada pantalla"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Tria una mida de quadrícula"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Canviar la quadrícula recarrega l\'àrea de treball i tarda uns segons."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"S\'està tornant a carregar l\'àrea de treball amb la quadrícula %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"No s\'ha pogut tornar a carregar l\'àrea de treball amb la quadrícula %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"L\'estil s\'ha definit correctament"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"El rellotge s\'ha definit correctament"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"La quadrícula s\'ha definit correctament"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Color personalitzat"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Forma personalitzada"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Nom d\'estil personalitzat"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intensitat de color"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tema fosc"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Desactivat temporalment per Estalvi de bateria"</string>
     <string name="mode_changed" msgid="2243581369395418584">"S\'ha canviat el tema"</string>
@@ -105,8 +111,8 @@
     <string name="beta_title" msgid="8703819523760746458">"Beta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Canvia la quadrícula d\'aplicacions"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"Colors del fons"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Icones, text i més poden combinar amb els colors del fons"</string>
-    <string name="wallpaper_color_title" msgid="5687965239180986458">"Color del fons de pantalla"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Combina el color d\'icones, text i més amb el fons"</string>
+    <string name="wallpaper_color_title" msgid="5687965239180986458">"Color de fons de pantalla"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Colors bàsics"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Altres colors"</string>
     <string name="preset_color_subheader" msgid="8230588536141279371">"Tria qualsevol color per a les icones, el rellotge i més"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Llisca a l\'esquerra per triar una altra esfera de rellotge"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Llisca a la dreta per triar una altra esfera de rellotge"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Rellotges personalitzats"</string>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index f853901..4eb0eb4 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Velikost hodin se mění podle obsahu obrazovky uzamčení"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Velká"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Malé"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"V rohu obrazovky se zobrazují malé hodiny"</string>
     <string name="grid_title" msgid="1688173478777254123">"Mřížka aplikací"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Použít"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Klepnutím upravte"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Přidejte si oblíbená písma na všechny obrazovky"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Vyberte velikost mřížky"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> × <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Změna velikosti mřížky povede k opětovnému načtení pracovního prostoru, což může trvat několik sekund."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Opětovné načítání pracovního prostoru s mřížkou %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Opětovné načtení pracovního prostoru s mřížkou %1$s se nezdařilo"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Styl byl úspěšně nastaven"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Hodiny byly úspěšně nastaveny"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Mřížka byla úspěšně nastavena"</string>
@@ -98,10 +103,11 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Vlastní barva"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Vlastní tvar"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Název vlastního stylu"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intenzita barvy"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tmavý motiv"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Dočasně deaktivováno spořičem baterie"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Motiv byl změněn"</string>
-    <string name="themed_icon_title" msgid="7312460430471956558">"Tematické ikony"</string>
+    <string name="themed_icon_title" msgid="7312460430471956558">"Přebarvené ikony"</string>
     <string name="beta_title" msgid="8703819523760746458">"Beta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Změnit mřížku aplikací"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"Barvy tapety"</string>
@@ -112,25 +118,29 @@
     <string name="preset_color_subheader" msgid="8230588536141279371">"Vyberte barvu pro ikony, hodiny atd."</string>
     <string name="color_changed" msgid="7029571720331641235">"Barva byla změněna"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"Dynamické"</string>
-    <string name="color_picker_title" msgid="6666830057938082864">"Barvy systému"</string>
+    <string name="color_picker_title" msgid="6666830057938082864">"Systémové barvy"</string>
     <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>
-    <string name="keyguard_quick_affordance_title" msgid="4242813186995735584">"Zástupci"</string>
-    <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Zástupci"</string>
+    <string name="keyguard_quick_affordance_title" msgid="4242813186995735584">"Zkratky"</string>
+    <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Přejetím doleva vyberete jiný ciferník"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Přejetím doprava vyberete jiný ciferník"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Vlastní hodiny"</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 8dbb97c..4319b93 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Størrelsen på uret ændrer sig baseret på indhold på låseskærmen"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Stor"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Lille"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Et lille ur vises i hjørnet af skærmen"</string>
     <string name="grid_title" msgid="1688173478777254123">"Appgitter"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Anvend"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Tryk for at redigere"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Føj dine foretrukne skrifttyper til alle skærmbilleder"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Vælg gitterstørrelse"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Når du ændrer gitterstørrelsen genindlæses arbejdsområdet, hvilket kan tage et par sekunder."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Genindlæser arbejdsområde med gitteret %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Arbejdsområdet med gitteret %1$s kunne ikke genindlæses"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stilen er nu angivet"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Uret er nu indstillet"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Gitteret er nu oprettet"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Tilpasset farve"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Tilpasset form"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Navn på tilpasset stil"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Farveintensitet"</string>
     <string name="mode_title" msgid="2394873501427436055">"Mørkt tema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Midlertidigt deaktiveret på grund af Batterisparefunktion"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Temaet er ændret"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Stryg til venstre for at vælge en anden urskive"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Stryg til højre for at vælge en anden urskive"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Tilpassede urskiver"</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 2683947..09e70ec 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -17,12 +17,13 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="1647136562008520313">"Hintergrund &amp; Stil"</string>
+    <string name="app_name" msgid="1647136562008520313">"Hintergrund und Stil"</string>
     <string name="theme_title" msgid="2144932106319405101">"Design"</string>
     <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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Die Größe der Uhr ändert sich je nach Inhalt auf dem Sperrbildschirm"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Groß"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Klein"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Eine kleine Uhr wird in der Ecke des Displays angezeigt"</string>
     <string name="grid_title" msgid="1688173478777254123">"App-Raster"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Anwenden"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Zum Bearbeiten tippen"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Füg jedem Bildschirm deine bevorzugten Schriftarten hinzu"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Rastergröße auswählen"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Durch Ändern der Rastergröße wird der Arbeitsbereich neu geladen. Dies kann ein paar Sekunden dauern."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Arbeitsbereich wird mit Rastergröße %1$s neu geladen"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Arbeitsbereich konnte mit Rastergröße %1$s nicht neu geladen werden"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Design festgelegt"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Uhr festgelegt"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Raster festgelegt"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Benutzerdefinierte Farbe"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Benutzerdefiniertes Format"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Name des benutzerdefinierten Stils"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Farbintensität"</string>
     <string name="mode_title" msgid="2394873501427436055">"Dunkles Design"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Wegen Energiesparmodus vorübergehend deaktiviert"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Design geändert"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Nach links wischen, um ein anderes Zifferblatt auszuwählen"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Nach rechts wischen, um ein anderes Zifferblatt auszuwählen"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Individuelle Zifferblätter"</string>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 38a4cf6..189068f 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Το μέγεθος του ρολογιού αλλάζει ανάλογα με το περιεχόμενο της οθόνης κλειδώματος"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Μεγάλο"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Μικρό"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Ένα μικρό ρολόι εμφανίζεται στη γωνία της οθόνης"</string>
     <string name="grid_title" msgid="1688173478777254123">"Πλέγμα εφαρμ."</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Εφαρμογή"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Πατήστε για επεξεργασία"</string>
@@ -55,7 +57,7 @@
     <string name="option_previewed_description" msgid="3467217598865047661">"Αυτήν τη στιγμή εμφανίζεται σε προεπισκόπηση η επιλογή <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="option_change_applied_previewed_description" msgid="9197311327728570816">"<xliff:g id="ID_1">%1$s</xliff:g>, η αλλαγή επιλέχθηκε και προβλήθηκε σε προεπισκόπηση"</string>
     <string name="theme_description" msgid="3697012391785254635">"Γραμματοσειρά: <xliff:g id="ID_1">%1$s</xliff:g>, εικονίδια: <xliff:g id="ID_2">%2$s</xliff:g>, σχήμα: <xliff:g id="ID_3">%3$s</xliff:g>, χρώμα: <xliff:g id="ID_4">%4$s</xliff:g>"</string>
-    <string name="default_theme_title" msgid="2555741736622366797">"Προεπιλογή"</string>
+    <string name="default_theme_title" msgid="2555741736622366797">"Προεπιλ."</string>
     <string name="preview_name_font" msgid="4465423899630037038">"Γραμματοσειρά"</string>
     <string name="preview_name_icon" msgid="6818927315316316440">"Εικονίδιο"</string>
     <string name="preview_name_color" msgid="8776203144994416172">"Χρώμα"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Προσθέστε τις αγαπημένες σας γραμματοσειρές σε κάθε οθόνη"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Επιλέξτε μέγεθος πλέγματος"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Αλλάζ. μέγεθος πλέγμ. επαναλαμβ. η φόρτ. χώρου εργ. σε λίγα δευτ."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Επανάληψη φόρτωσης χώρου εργασίας με πλέγμα %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Απέτυχε η επανάληψη φόρτωσης του χώρου εργασίας με πλέγμα %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Επιτυχής ρύθμιση στιλ"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Επιτυχής ρύθμιση ρολογιού"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Επιτυχής ρύθμιση πλέγματος"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Προσαρμοσμένο χρώμα"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Προσαρμοσμένο σχήμα"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Προσαρμοσμένο όνομα στιλ"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Ένταση χρωμάτων"</string>
     <string name="mode_title" msgid="2394873501427436055">"Σκούρο θέμα"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Απενεργοποιήθηκε προσωρινά λόγω Εξοικονόμησης μπαταρίας"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Το θέμα άλλαξε"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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/strings.xml b/res/values-en-rAU/strings.xml
index 0a0d7fb..c452160 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -22,8 +22,9 @@
     <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="clock_color_and_size_title" msgid="7146791234905111351">"Clock colour &amp; size"</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>
     <string name="clock_color_red" msgid="3843504214807597810">"Red"</string>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Clock size changes according to lock screen content"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Large"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Small"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"A small clock shows in the corner of your screen"</string>
     <string name="grid_title" msgid="1688173478777254123">"App grid"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Apply"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Tap to edit"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Add your favourite fonts to every screen"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Choose a grid size"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Changing grid size will reload workspace and may take a few seconds."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Reloading workspace with %1$s grid"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Failed to reload workspace with %1$s grid"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Style set successfully"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Clock set successfully"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Grid set successfully"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Customised colour"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Custom shape"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Custom style name"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Colour intensity"</string>
     <string name="mode_title" msgid="2394873501427436055">"Dark theme"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Temporarily disabled due to Battery Saver"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Theme changed"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <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-rCA/strings.xml b/res/values-en-rCA/strings.xml
index d0ef6ac..55e0760 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -19,45 +19,29 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="1647136562008520313">"Wallpaper and style"</string>
     <string name="theme_title" msgid="2144932106319405101">"Style"</string>
-    <string name="clock_title" msgid="1974314575211361352">"Custom clock"</string>
+    <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>
-    <!-- no translation found for clock_settings_title (2940654205471453913) -->
-    <skip />
-    <!-- no translation found for clock_color_and_size_title (7146791234905111351) -->
-    <skip />
-    <!-- no translation found for clock_color_and_size_description (6578061553012886817) -->
-    <skip />
-    <!-- no translation found for clock_color (8081608867289156163) -->
-    <skip />
-    <!-- no translation found for clock_color_red (3843504214807597810) -->
-    <skip />
-    <!-- no translation found for clock_color_orange (4175805201144275804) -->
-    <skip />
-    <!-- no translation found for clock_color_yellow (7391699163247349977) -->
-    <skip />
-    <!-- no translation found for clock_color_green (1991157556500156596) -->
-    <skip />
-    <!-- no translation found for clock_color_blue (4037792003465759149) -->
-    <skip />
-    <!-- no translation found for clock_color_indigo (8910855386698452917) -->
-    <skip />
-    <!-- no translation found for clock_color_violet (3454503847169375826) -->
-    <skip />
-    <!-- no translation found for clock_color_gray (9221530636948859231) -->
-    <skip />
-    <!-- no translation found for clock_color_teal (7499223425741344251) -->
-    <skip />
-    <!-- no translation found for clock_size (5028923902364418263) -->
-    <skip />
-    <!-- no translation found for clock_size_dynamic (1023930312455061642) -->
-    <skip />
-    <!-- no translation found for clock_size_dynamic_description (2776620745774561662) -->
-    <skip />
-    <!-- no translation found for clock_size_large (3143248715744138979) -->
-    <skip />
-    <!-- no translation found for clock_size_small (2280449912094164133) -->
-    <skip />
+    <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>
+    <string name="clock_color_red" msgid="3843504214807597810">"Red"</string>
+    <string name="clock_color_orange" msgid="4175805201144275804">"Orange"</string>
+    <string name="clock_color_yellow" msgid="7391699163247349977">"Yellow"</string>
+    <string name="clock_color_green" msgid="1991157556500156596">"Green"</string>
+    <string name="clock_color_blue" msgid="4037792003465759149">"Blue"</string>
+    <string name="clock_color_indigo" msgid="8910855386698452917">"Indigo"</string>
+    <string name="clock_color_violet" msgid="3454503847169375826">"Violet"</string>
+    <string name="clock_color_gray" msgid="9221530636948859231">"Grey"</string>
+    <string name="clock_color_teal" msgid="7499223425741344251">"Teal"</string>
+    <string name="clock_size" msgid="5028923902364418263">"Size"</string>
+    <string name="clock_size_dynamic" msgid="1023930312455061642">"Dynamic"</string>
+    <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Clock size changes according to lock screen content"</string>
+    <string name="clock_size_large" msgid="3143248715744138979">"Large"</string>
+    <string name="clock_size_small" msgid="2280449912094164133">"Small"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"A small clock shows in the corner of your screen"</string>
     <string name="grid_title" msgid="1688173478777254123">"App grid"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Apply"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Tap to edit"</string>
@@ -66,23 +50,26 @@
     <string name="grid_preview_card_content_description" msgid="8449383777584714842">"Grid preview"</string>
     <string name="font_preview_content_description" msgid="128230439293337891">"Font preview"</string>
     <string name="icon_preview_content_description" msgid="7761101284351952890">"Icon preview"</string>
-    <string name="color_preview_content_description" msgid="4879120462082058124">"Colour preview"</string>
+    <string name="color_preview_content_description" msgid="4879120462082058124">"Color preview"</string>
     <string name="shape_preview_content_description" msgid="6479487796176550432">"Shape preview"</string>
     <string name="option_applied_description" msgid="5022305212078053534">"<xliff:g id="ID_1">%1$s</xliff:g>, currently applied"</string>
     <string name="option_applied_previewed_description" msgid="5269654286638446858">"<xliff:g id="ID_1">%1$s</xliff:g>, currently applied and previewed"</string>
     <string name="option_previewed_description" msgid="3467217598865047661">"<xliff:g id="ID_1">%1$s</xliff:g>, currently previewed"</string>
     <string name="option_change_applied_previewed_description" msgid="9197311327728570816">"<xliff:g id="ID_1">%1$s</xliff:g>, change selected and previewed"</string>
-    <string name="theme_description" msgid="3697012391785254635">"Font: <xliff:g id="ID_1">%1$s</xliff:g>, icons: <xliff:g id="ID_2">%2$s</xliff:g>, shape: <xliff:g id="ID_3">%3$s</xliff:g>, colour: <xliff:g id="ID_4">%4$s</xliff:g>"</string>
+    <string name="theme_description" msgid="3697012391785254635">"Font: <xliff:g id="ID_1">%1$s</xliff:g>, icons: <xliff:g id="ID_2">%2$s</xliff:g>, shape: <xliff:g id="ID_3">%3$s</xliff:g>, color: <xliff:g id="ID_4">%4$s</xliff:g>"</string>
     <string name="default_theme_title" msgid="2555741736622366797">"Default"</string>
     <string name="preview_name_font" msgid="4465423899630037038">"Font"</string>
     <string name="preview_name_icon" msgid="6818927315316316440">"Icon"</string>
-    <string name="preview_name_color" msgid="8776203144994416172">"Colour"</string>
+    <string name="preview_name_color" msgid="8776203144994416172">"Color"</string>
     <string name="preview_name_shape" msgid="5676971146080968721">"Shape"</string>
     <string name="preview_name_wallpaper" msgid="1738652462949531828">"Wallpaper"</string>
     <string name="font_card_title" msgid="2343292653502548685">"ABC • abc • 123"</string>
-    <string name="font_card_body" msgid="6790525594503904468">"Add your favourite fonts to every screen"</string>
+    <string name="font_card_body" msgid="6790525594503904468">"Add your favorite fonts to every screen"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Choose a grid size"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Changing grid size will reload workspace and may take a few seconds."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Reloading workspace with %1$s grid"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Failed to reload workspace with %1$s grid"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Style set successfully"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Clock set successfully"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Grid set successfully"</string>
@@ -95,7 +82,7 @@
     <string name="custom_theme_delete" msgid="4744494663184126202">"Delete"</string>
     <string name="font_component_title" msgid="8800340833695292049">"Choose font"</string>
     <string name="icon_component_title" msgid="5779787138399083903">"Choose icons"</string>
-    <string name="color_component_title" msgid="1194089273921078816">"Choose colour"</string>
+    <string name="color_component_title" msgid="1194089273921078816">"Choose color"</string>
     <string name="shape_component_title" msgid="8366847436022025538">"Choose shape"</string>
     <string name="name_component_title" msgid="532425087968663437">"Name your style"</string>
     <string name="icon_component_label" msgid="2625784884001407944">"Icons <xliff:g id="ID_1">%1$d</xliff:g>"</string>
@@ -109,66 +96,51 @@
     <string name="no_thanks" msgid="7286616980115687627">"No, thanks"</string>
     <string name="clock_preview_content_description" msgid="5460561185905717460">"<xliff:g id="ID_1">%1$s</xliff:g> clock preview"</string>
     <string name="something_went_wrong" msgid="529840112449799117">"Oops! Something went wrong."</string>
-    <string name="theme_preview_icons_section_title" msgid="7064768910744000643">"Colour/Icons"</string>
-    <string name="style_info_description" msgid="2612473574431003251">"Preview of font, icons, app shape and colour"</string>
+    <string name="theme_preview_icons_section_title" msgid="7064768910744000643">"Color / Icons"</string>
+    <string name="style_info_description" msgid="2612473574431003251">"Preview of font, icons, app shape, and color"</string>
     <string name="accessibility_custom_font_title" msgid="966867359157303705">"Custom font"</string>
     <string name="accessibility_custom_icon_title" msgid="5753297905849062296">"Custom icon"</string>
-    <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Customised colour"</string>
+    <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Custom color"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Custom shape"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Custom style name"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Color intensity"</string>
     <string name="mode_title" msgid="2394873501427436055">"Dark theme"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Temporarily disabled due to Battery Saver"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Theme changed"</string>
     <string name="themed_icon_title" msgid="7312460430471956558">"Themed icons"</string>
     <string name="beta_title" msgid="8703819523760746458">"Beta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Change app grid"</string>
-    <string name="wallpaper_color_tab" msgid="1447926591721403840">"Wallpaper colours"</string>
-    <!-- no translation found for wallpaper_color_subheader (4044464573669965670) -->
-    <skip />
-    <string name="wallpaper_color_title" msgid="5687965239180986458">"Wallpaper colour"</string>
-    <string name="preset_color_tab" msgid="3133391839341329314">"Basic colours"</string>
-    <!-- no translation found for preset_color_tab_2 (1444107326712562538) -->
-    <skip />
-    <!-- no translation found for preset_color_subheader (8230588536141279371) -->
-    <skip />
-    <string name="color_changed" msgid="7029571720331641235">"Colour changed"</string>
+    <string name="wallpaper_color_tab" msgid="1447926591721403840">"Wallpaper colors"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Icons, text, and more match colors in your wallpaper"</string>
+    <string name="wallpaper_color_title" msgid="5687965239180986458">"Wallpaper color"</string>
+    <string name="preset_color_tab" msgid="3133391839341329314">"Basic colors"</string>
+    <string name="preset_color_tab_2" msgid="1444107326712562538">"Other colors"</string>
+    <string name="preset_color_subheader" msgid="8230588536141279371">"Choose any color for your icons, clock, and more"</string>
+    <string name="color_changed" msgid="7029571720331641235">"Color changed"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"Dynamic"</string>
-    <!-- no translation found for color_picker_title (6666830057938082864) -->
-    <skip />
-    <!-- no translation found for keyguard_slot_name_bottom_start (8747677880200629719) -->
-    <skip />
-    <!-- no translation found for keyguard_slot_name_bottom_end (2525487375680217083) -->
-    <skip />
-    <!-- no translation found for keyguard_affordance_none (1751643933430782312) -->
-    <skip />
-    <!-- no translation found for keyguard_affordance_enablement_dialog_title (3389730825561696493) -->
-    <skip />
-    <!-- no translation found for keyguard_affordance_enablement_dialog_action_template (8117011931337357438) -->
-    <skip />
-    <!-- no translation found for keyguard_affordance_enablement_dialog_message (6136286758939253570) -->
-    <skip />
-    <!-- no translation found for keyguard_affordance_enablement_dialog_dismiss_button (629754625264422508) -->
-    <skip />
-    <!-- no translation found for keyguard_quick_affordance_title (4242813186995735584) -->
-    <skip />
-    <!-- no translation found for keyguard_quick_affordance_section_title (2806304242671717309) -->
-    <skip />
-    <!-- no translation found for keyguard_quick_affordance_two_selected_template (1757099194522296363) -->
-    <skip />
-    <!-- no translation found for keyguard_quick_affordance_none_selected (8494127020144112003) -->
-    <skip />
-    <!-- no translation found for show_notifications_on_lock_screen (4157744243084646720) -->
-    <skip />
-    <!-- no translation found for hide_notifications_on_lock_screen (7413548956484779174) -->
-    <skip />
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
-    <!-- no translation found for more_colors (3191071655353004591) -->
-    <skip />
-    <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
-    <skip />
-    <!-- no translation found for content_description_color_option (4169813692012119578) -->
-    <skip />
+    <string name="color_picker_title" msgid="6666830057938082864">"System colors"</string>
+    <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_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>
+    <string name="keyguard_quick_affordance_title" msgid="4242813186995735584">"Shortcuts"</string>
+    <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"Show notifications on the lock screen"</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/strings.xml b/res/values-en-rGB/strings.xml
index 0a0d7fb..c452160 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -22,8 +22,9 @@
     <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="clock_color_and_size_title" msgid="7146791234905111351">"Clock colour &amp; size"</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>
     <string name="clock_color_red" msgid="3843504214807597810">"Red"</string>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Clock size changes according to lock screen content"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Large"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Small"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"A small clock shows in the corner of your screen"</string>
     <string name="grid_title" msgid="1688173478777254123">"App grid"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Apply"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Tap to edit"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Add your favourite fonts to every screen"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Choose a grid size"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Changing grid size will reload workspace and may take a few seconds."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Reloading workspace with %1$s grid"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Failed to reload workspace with %1$s grid"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Style set successfully"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Clock set successfully"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Grid set successfully"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Customised colour"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Custom shape"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Custom style name"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Colour intensity"</string>
     <string name="mode_title" msgid="2394873501427436055">"Dark theme"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Temporarily disabled due to Battery Saver"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Theme changed"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <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-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 0a0d7fb..c452160 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -22,8 +22,9 @@
     <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="clock_color_and_size_title" msgid="7146791234905111351">"Clock colour &amp; size"</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>
     <string name="clock_color_red" msgid="3843504214807597810">"Red"</string>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Clock size changes according to lock screen content"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Large"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Small"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"A small clock shows in the corner of your screen"</string>
     <string name="grid_title" msgid="1688173478777254123">"App grid"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Apply"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Tap to edit"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Add your favourite fonts to every screen"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Choose a grid size"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Changing grid size will reload workspace and may take a few seconds."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Reloading workspace with %1$s grid"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Failed to reload workspace with %1$s grid"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Style set successfully"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Clock set successfully"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Grid set successfully"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Customised colour"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Custom shape"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Custom style name"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Colour intensity"</string>
     <string name="mode_title" msgid="2394873501427436055">"Dark theme"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Temporarily disabled due to Battery Saver"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Theme changed"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <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-rXC/strings.xml b/res/values-en-rXC/strings.xml
index dc90fe4..b470745 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‏‎‏‏‎‏‏‎‏‏‎‏‎‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‏‏‏‏‎‎Clock size changes according to lock screen content‎‏‎‎‏‎"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‎‏‏‏‏‏‎‎‎‏‎‎‎‎‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎‎‎‎‏‏‏‎‏‎‏‏‎‏‏‏‎‎‎‏‏‎Large‎‏‎‎‏‎"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‏‎‎‏‎‎‏‎‎‎‏‏‏‎‎‏‏‎‏‏‎‏‎‎‏‏‏‎‎‎‏‏‎‎‎‎‏‎‎‏‎‏‎‎‏‎‏‎Small‎‏‎‎‏‎"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‎‎‎‎‏‏‎‏‏‏‎‎‏‏‎‎‎‏‎‎‎‎‏‏‎‏‏‏‏‎‎‎‎‏‏‏‎‏‏‎‏‎‏‎‎‎‎‎‎‎‎‎‎A small clock shows in the corner of your screen‎‏‎‎‏‎"</string>
     <string name="grid_title" msgid="1688173478777254123">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‏‎‎‎‏‏‎‏‎‏‎‏‏‎‏‎‏‎‎‏‏‏‎‎‎‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‏‎App grid‎‏‎‎‏‎"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‎‎‎‎‎‎‎‎‎‏‎‎‏‎‎‏‏‎‎‎‎‎‎‎‎‏‏‎‎‎‏‎‏‏‎‏‏‎‏‏‏‎Apply‎‏‎‎‏‎"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎‎‎‏‎‎‎‎‏‏‎‏‎‎‏‏‎‎‎‏‎‏‏‎‏‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‎‎‎‎Tap to edit‎‏‎‎‏‎"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‎‎‏‎‏‏‎‎‎‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‎‏‏‎‏‎‎‏‏‏‏‏‎‎‏‏‎‏‎‏‎‎‎Add your favorite fonts to every screen‎‏‎‎‏‎"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‎‎‎‎‏‎‎‎‎‏‎‏‏‏‏‎‎‎‏‏‏‏‏‎Choose a grid size‎‏‎‎‏‎"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‏‎‏‎‎‏‎‏‏‏‎‏‎‏‎‏‏‎‎‎‏‏‎‎‎‎‎‎‏‏‎‎‏‎‏‏‎‏‎‎‏‏‏‏‏‎‎‎‏‎‎‏‏‎<xliff:g id="ID_1">%1$d</xliff:g>‎‏‎‎‏‏‏‎x‎‏‎‎‏‏‎<xliff:g id="ID_2">%2$d</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‎‏‎‎‏‎‏‏‎‏‏‎‏‎‏‎‎‎‎‏‏‏‏‎‎‎‎‎‎‎‎‏‏‎‏‎‏‎‏‎‏‎‏‎‎‎‏‏‎‏‏‎‏‎Changing grid size will reload workspace and may take a few seconds.‎‏‎‎‏‎"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‏‎‎‎‎‎‏‎‏‎‎‏‏‏‏‎‏‎‏‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎Reloading workspace with %1$s grid‎‏‎‎‏‎"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‏‏‏‎‏‎‏‏‎‏‎‎‏‎‏‏‏‎‎‎‏‎‎‏‏‎‏‏‎‎‎‏‎‎‎‏‎‎‎‎‏‏‎‏‎‎‏‏‏‎‏‏‎‎‎Failed to reload workspace with %1$s grid‎‏‎‎‏‎"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‎‏‏‏‎‎‏‏‎‎‎‎‏‎‏‎‎‏‏‎‎‏‏‏‏‎‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‎‏‏‏‎‏‎‏‎‎‎Style set successfully‎‏‎‎‏‎"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‏‏‎‎‏‏‎‎‎‏‏‎‎‎‎‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‎‎‎‎‎‎‏‏‎‏‏‏‎‏‎‏‏‎‏‏‏‎Clock set successfully‎‏‎‎‏‎"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‎‎‎‏‏‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‏‏‏‏‎‏‎‎‏‏‏‏‏‎‎‏‎‎‏‏‎‏‏‎‏‎‏‎‏‎‎Grid set successfully‎‏‎‎‏‎"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‏‏‎‎‎‏‎‎‎‏‎‎‎‏‏‎‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‎Custom color‎‏‎‎‏‎"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‏‎‎‏‏‏‎‎‎‏‎‎‎‏‏‏‏‎‎‎‏‎‎‏‎‎‏‏‏‎‏‏‎‏‏‎‎‏‏‏‎‏‏‏‏‎‏‏‏‎‎‏‎Custom shape‎‏‎‎‏‎"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‎‎‎‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‏‏‏‎‏‎‎‏‏‏‎‎‏‎‎‏‎‎‎‏‏‎‎‏‏‎‏‏‏‏‎‎Custom style name‎‏‎‎‏‎"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‏‎‏‏‏‎‎‏‏‏‏‎‎‎‏‎‎‏‎‎‎‏‎‏‏‎‎‎‏‎‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎Color intensity‎‏‎‎‏‎"</string>
     <string name="mode_title" msgid="2394873501427436055">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‏‏‏‎‎‎‏‎‎‏‏‎‎‏‏‎‎‎‎‏‎‏‏‎‎‏‏‏‎‏‎‎‏‎‏‎‎‎‎‎‎‏‎‏‎‎‎‎‏‎‏‏‏‎Dark theme‎‏‎‎‏‎"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‎‏‎‎‎‎‎‏‎‎‏‎‎‏‏‎‏‎‎‎‎‎‏‏‎‏‎‎‏‏‎‏‏‏‎‏‎‎‏‎‎‎‎‎‎‎‎‎Temporarily disabled due to Battery Saver‎‏‎‎‏‎"</string>
     <string name="mode_changed" msgid="2243581369395418584">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‎‏‏‏‏‎‎‏‎‏‎‎‏‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‏‎‏‏‎‎‎‎Theme changed‎‏‎‎‏‎"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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/strings.xml b/res/values-es-rUS/strings.xml
index 1d6b3b2..8e6ddfd 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 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>
@@ -37,9 +38,10 @@
     <string name="clock_color_teal" msgid="7499223425741344251">"Verde azulado"</string>
     <string name="clock_size" msgid="5028923902364418263">"Tamaño"</string>
     <string name="clock_size_dynamic" msgid="1023930312455061642">"Dinámico"</string>
-    <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Cambios del tamaño del reloj según el contenido de la pantalla de bloqueo"</string>
+    <string name="clock_size_dynamic_description" msgid="2776620745774561662">"El tamaño del reloj cambia según el contenido de la pantalla de bloqueo"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Grande"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Pequeño"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Aparece un reloj pequeño en la esquina de tu pantalla"</string>
     <string name="grid_title" msgid="1688173478777254123">"Cuadr. de apps"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Aplicar"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Presiona para editar"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Agrega tus fuentes favoritas a cada pantalla"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Elige un tamaño de cuadrícula"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Cambiar la cuadrícula podrá tomar unos segundos."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Volviendo a cargar el espacio de trabajo con la cuadrícula %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"No se pudo volver a cargar el espacio de trabajo con la cuadrícula %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Se estableció correctamente el estilo"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Se estableció correctamente el reloj"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Se estableció correctamente la cuadrícula"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Color personalizado"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Forma personalizada"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Nombre de estilo personalizado"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intensidad de color"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tema oscuro"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Se inhabilitó temporalmente debido al Ahorro de batería"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Se cambió el tema"</string>
@@ -113,24 +119,28 @@
     <string name="color_changed" msgid="7029571720331641235">"Se cambió el color"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"Dinámico"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"Colores del sistema"</string>
-    <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Atajo izquierdo"</string>
-    <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Atajo derecho"</string>
+    <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>
-    <string name="keyguard_quick_affordance_title" msgid="4242813186995735584">"Comb. de teclas"</string>
-    <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Comb. de teclas"</string>
+    <string name="keyguard_quick_affordance_title" msgid="4242813186995735584">"Accesos directos"</string>
+    <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Desliza el dedo hacia la izquierda para elegir otra cara de reloj"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Desliza el dedo hacia la derecha para elegir otra cara de reloj"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Relojes personalizados"</string>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 0752e5c..6e58709 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"El tamaño del reloj cambia en función del contenido de la pantalla de bloqueo"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Grande"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Pequeño"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Se muestra un pequeño reloj en la esquina de la pantalla"</string>
     <string name="grid_title" msgid="1688173478777254123">"Cuadrícula de apps"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Aplicar"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Toca para editar"</string>
@@ -55,7 +57,7 @@
     <string name="option_previewed_description" msgid="3467217598865047661">"<xliff:g id="ID_1">%1$s</xliff:g> (vista previa en curso)"</string>
     <string name="option_change_applied_previewed_description" msgid="9197311327728570816">"<xliff:g id="ID_1">%1$s</xliff:g>, cambio seleccionado y con vista previa"</string>
     <string name="theme_description" msgid="3697012391785254635">"Fuente: <xliff:g id="ID_1">%1$s</xliff:g>; iconos: <xliff:g id="ID_2">%2$s</xliff:g>; forma: <xliff:g id="ID_3">%3$s</xliff:g>; color: <xliff:g id="ID_4">%4$s</xliff:g>"</string>
-    <string name="default_theme_title" msgid="2555741736622366797">"Predeterminado"</string>
+    <string name="default_theme_title" msgid="2555741736622366797">"Predeter­minado"</string>
     <string name="preview_name_font" msgid="4465423899630037038">"Fuente"</string>
     <string name="preview_name_icon" msgid="6818927315316316440">"Icono"</string>
     <string name="preview_name_color" msgid="8776203144994416172">"Color"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Añade tus fuentes favoritas a cada pantalla"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Elige un tamaño de cuadrícula"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Cambiar la cuadrícula volverá a cargar el espacio de trabajo"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Volviendo a cargar el espacio de trabajo con una cuadrícula de %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"No se ha podido volver a cargar el espacio de trabajo con una cuadrícula de %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Estilo aplicado correctamente"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Reloj puesto correctamente"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Cuadrícula configurada correctamente"</string>
@@ -98,10 +103,11 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Color personalizado"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Forma personalizada"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Nombre de estilo personalizado"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intensidad del color"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tema oscuro"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Inhabilitado temporalmente debido a Ahorro de batería"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema cambiado"</string>
-    <string name="themed_icon_title" msgid="7312460430471956558">"Iconos con tema"</string>
+    <string name="themed_icon_title" msgid="7312460430471956558">"Iconos temáticos"</string>
     <string name="beta_title" msgid="8703819523760746458">"Beta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Cambiar cuadrícula de aplicaciones"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"Colores del fondo"</string>
@@ -113,10 +119,10 @@
     <string name="color_changed" msgid="7029571720331641235">"Color cambiado"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"Dinámico"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"Colores del sistema"</string>
-    <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Atajo izquierdo"</string>
-    <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Atajo derecho"</string>
+    <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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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/strings.xml b/res/values-et/strings.xml
index d7d452e..98784ce 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Kella suurus muutub olenevalt lukustuskuva sisust"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Suur"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Väike"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Ekraaninurgas kuvatakse väike kell"</string>
     <string name="grid_title" msgid="1688173478777254123">"Rak. ruudustik"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Rakenda"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Puudutage muutmiseks"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Lisage lemmikfondid igale erkaanikuvale"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Valige ruudustiku suurus"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> × <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Ruudustiku suuruse muutmine laadib tööruumi uuesti ja see võib võtta mõne sekundi."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Tööruumi uuesti laadimine ruudustikuga %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Tööruumi uuesti laadimine ruudustikuga %1$s ebaõnnestus"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stiili määramine õnnestus"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Kella määramine õnnestus"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Ruudustiku määramine õnnestus"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Kohandatud värv"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Kohandatud kuju"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Kohandatud stiili nimi"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Värvide intensiivsus"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tume teema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Akusäästja tõttu ajutiselt keelatud"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Teema on muudetud"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Pühkige vasakule, et valida muu kelladisain"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Pühkige paremale, et valida muu kelladisain"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Kohandatud kellad"</string>
 </resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 001eebd..6027af8 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Erlojuaren tamaina pantaila blokeatuko edukiaren arabera aldatzen da"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Handia"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Txikia"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Erloju txiki bat agertzen da pantailaren izkinan"</string>
     <string name="grid_title" msgid="1688173478777254123">"Aplikazioen sareta"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Aplikatu"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Sakatu editatzeko"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Gehitu gogoko dituzun letrak pantaila guztietan"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Aukeratu saretaren tamaina"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> × <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Saretaren tamaina aldatuta, lan-eremua berriro kargatuko da. Baliteke segundo batzuk behar izatea."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Lan-eremua berriro kargatzen %1$s saretarekin"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Ezin izan da kargatu berriro lan-eremua %1$s saretarekin"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Ezarri da estiloa"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Ezarri da erlojua"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Ezarri da sareta"</string>
@@ -98,14 +103,15 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Kolore pertsonalizatua"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Forma pertsonalizatua"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Estilo pertsonalizatuaren izena"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Kolorearen intentsitatea"</string>
     <string name="mode_title" msgid="2394873501427436055">"Gai iluna"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Aldi baterako desgaituta, bateria-aurreztailea dela eta"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Aldatu da gaia"</string>
     <string name="themed_icon_title" msgid="7312460430471956558">"Ikono gaidunak"</string>
     <string name="beta_title" msgid="8703819523760746458">"Beta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Aldatu aplikazioen sareta"</string>
-    <string name="wallpaper_color_tab" msgid="1447926591721403840">"Horma-papereko koloreak"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Ikonoak, testua eta abar horma-papereko koloreekin bat datoz"</string>
+    <string name="wallpaper_color_tab" msgid="1447926591721403840">"Horma-paperaren koloreak"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Ikonoak, testua, etab. horma-paperaren koloreekin bat datoz"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Horma-paperaren kolorea"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Oinarrizko koloreak"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Beste kolore batzuk"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Pasatu hatza ezkerrera beste esfera bat aukeratzeko"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Pasatu hatza eskuinera beste esfera bat aukeratzeko"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Erloju pertsonalizatuak"</string>
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 9170f2f..0dd9e4b 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>
@@ -34,13 +35,14 @@
     <string name="clock_color_indigo" msgid="8910855386698452917">"نیلی"</string>
     <string name="clock_color_violet" msgid="3454503847169375826">"یاسی"</string>
     <string name="clock_color_gray" msgid="9221530636948859231">"خاکستری"</string>
-    <string name="clock_color_teal" msgid="7499223425741344251">"سبز دودی"</string>
+    <string name="clock_color_teal" msgid="7499223425741344251">"سبزآبی"</string>
     <string name="clock_size" msgid="5028923902364418263">"اندازه"</string>
     <string name="clock_size_dynamic" msgid="1023930312455061642">"پویا"</string>
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"اندازه ساعت نسبت به محتوای صفحه قفل تغییر می‌کند"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"بزرگ"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"کوچک"</string>
-    <string name="grid_title" msgid="1688173478777254123">"جدول برنامه"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"ساعت کوچکی در گوشه صفحه‌نمایش شما نشان داده می‌شود"</string>
+    <string name="grid_title" msgid="1688173478777254123">"شبکه برنامه‌ها"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"اعمال"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"برای ویرایش ضربه بزنید"</string>
     <string name="keep_my_wallpaper" msgid="8012385376769568517">"حفظ کاغذدیواری فعلی"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"قلم‌های دلخواهتان را به همه صفحه‌نمایش‌ها اضافه کنید"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"انتخاب اندازه جدول"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"تغییر اندازه شبکه باعث بار کردن مجدد فضای کاری می‌شود و ممکن است چند ثانیه طول بکشد."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"درحال بار کردن مجدد فضای کاری با شبکه %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"فضای کاری با شبکه %1$s مجدداً بار نشد"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"سبک باموفقیت تنظیم شد"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"ساعت باموفقیت تنظیم شد"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"جدول باموفقیت تنظیم شد"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"رنگ سفارشی"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"شکل سفارشی"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"نام سبک سفارشی"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"شدت رنگ"</string>
     <string name="mode_title" msgid="2394873501427436055">"زمینه تیره"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"به‌دلیل روشن بودن «بهینه‌سازی باتری» موقتاً غیرفعال شده است"</string>
     <string name="mode_changed" msgid="2243581369395418584">"زمینه تغییر کرد"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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-fi/strings.xml b/res/values-fi/strings.xml
index 55ebaff..6fc993c 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Kellon koko riippuu lukitusnäytön sisällöstä"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Suuri"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Pieni"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Näytön reunassa näkyy pieni kello"</string>
     <string name="grid_title" msgid="1688173478777254123">"Ruudukko"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Käytä"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Muokkaa napauttamalla"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Lisää lempikirjasimesi joka näytölle"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Valitse ruudukon koko"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Jos muutat ruudukon kokoa, työtila päivittyy (parissa sekunnissa)."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Päivitetään työtilaa, jossa on ruudukko: %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Ei voitu päivittää työtilaa, jossa on ruudukko: %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Tyyli valittu"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Kello asetettu"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Ruudukko asetettu"</string>
@@ -98,10 +103,11 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Oma väri"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Oma muoto"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Oman tyylin nimi"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Värin voimakkuus"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tumma teema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Tilapäisesti pois käytöstä virransäästön takia"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Teema vaihdettu"</string>
-    <string name="themed_icon_title" msgid="7312460430471956558">"Kuvakkeiden teemat"</string>
+    <string name="themed_icon_title" msgid="7312460430471956558">"Teemaan sopivat kuvakkeet"</string>
     <string name="beta_title" msgid="8703819523760746458">"Beta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Muuta sovellusruudukkoa"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"Taustakuvan värit"</string>
@@ -116,21 +122,25 @@
     <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>
-    <string name="keyguard_quick_affordance_title" msgid="4242813186995735584">"Pikakomennot"</string>
-    <string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Pikakomennot"</string>
+    <string name="keyguard_quick_affordance_title" msgid="4242813186995735584">"Pikakuvakkeet"</string>
+    <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Valitse toinen kellotaulu pyyhkäisemällä vasemmalle"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Valitse toinen kellotaulu pyyhkäisemällä oikealle"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Omat kellot"</string>
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 4dd4be6..26a1f4f 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"La taille de l\'horloge varie en fonction du contenu de l\'écran de verrouillage"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Grande"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Petite"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Une petite horloge s\'affiche dans le coin de votre écran"</string>
     <string name="grid_title" msgid="1688173478777254123">"Grille d\'applis"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Appliquer"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Toucher pour modifier"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Ajoutez vos polices préférées à chaque écran"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Choisir une taille de grille"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"La modification de la taille de la grille entraîne l\'actualisation de l\'espace de travail et peut prendre quelques secondes."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Actualisation de l\'espace de travail avec la grille %1$s en cours…"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Échec de l\'actualisation de l\'espace de travail avec la grille %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Le style a été appliqué"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"L\'horloge a été réglée"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"La grille a été définie"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Couleur personnalisée"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Forme personnalisée"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Nom du style personnalisé"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intensité des couleurs"</string>
     <string name="mode_title" msgid="2394873501427436055">"Thème sombre"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Temporairement désactivé par l\'économiseur de pile"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Thème modifié"</string>
@@ -105,7 +111,7 @@
     <string name="beta_title" msgid="8703819523760746458">"Bêta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Modifiez la grille d\'applications"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"Couleurs fond d\'écran"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Icônes, texte, etc. assortis aux couleurs du fond d\'écran"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Icônes, texte, etc., assortis aux couleurs du fond d\'écran"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Couleur du fond d\'écran"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Couleurs de base"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Autres couleurs"</string>
@@ -115,8 +121,8 @@
     <string name="color_picker_title" msgid="6666830057938082864">"Couleurs système"</string>
     <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">"Aucune"</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_none" msgid="1751643933430782312">"Aucun"</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,13 +130,17 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"Affichez 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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Afficher les notifications sur l\'écran de verrouillage"</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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Faites glisser vers la gauche pour un cadran d\'horloge différent"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Faites glisser vers la droite pour choisir un cadran d\'horloge différent"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Cadrans d\'horloge personnalisés"</string>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 8738174..1d58aa6 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -22,8 +22,9 @@
     <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="clock_color_and_size_title" msgid="7146791234905111351">"Taille et couleur 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>
     <string name="clock_color_red" msgid="3843504214807597810">"Rouge"</string>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"La taille de l\'horloge change selon le contenu de l\'écran de verrouillage"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Grande"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Petite"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Une petite horloge s\'affiche dans le coin de votre écran."</string>
     <string name="grid_title" msgid="1688173478777254123">"Grille d\'applis"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Appliquer"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Appuyer pour modifier"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Ajoutez vos polices préférées sur chaque écran"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Choisir une taille de grille"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Changer la taille de la grille actualisera l\'espace de travail. Cela peut prendre quelques secondes."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Actualisation de l\'espace de travail avec une grille %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Échec de l\'actualisation de l\'espace de travail avec une grille %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Le style a bien été défini"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"L\'horloge a bien été réglée"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"La grille a bien été définie"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Couleur personnalisée"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Forme personnalisée"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Nom du style personnalisé"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intensité des couleurs"</string>
     <string name="mode_title" msgid="2394873501427436055">"Thème sombre"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Temporairement désactivé par l\'économiseur de batterie"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Thème modifié"</string>
@@ -105,7 +111,7 @@
     <string name="beta_title" msgid="8703819523760746458">"Bêta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Modifier la grille d\'applis"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"Couleurs fond d\'écran"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Icônes, texte et autres couleurs de votre fond d\'écran"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Couleur des icônes, du texte… assortie au fond d\'écran"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Couleur du fond d\'écran"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Couleurs de base"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Autres couleurs"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Balayer à gauche pour changer de clock face"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Balayer à droite pour changer de clock face"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Personnaliser les Horloges"</string>
 </resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 6d2401f..6b262ff 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">"Config. 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"O tamaño do reloxo cambia en función do contido da pantalla de bloqueo"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Grande"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Pequeno"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Un pequeno reloxo móstrase na esquina da pantalla"</string>
     <string name="grid_title" msgid="1688173478777254123">"Grade de apps"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Aplicar"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Toca para editar"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Engade as túas fontes favoritas a todas as pantallas"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Escoller un tamaño para a grade"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Cambio tamaño grade volve cargar esp. traballo; pode tardar uns seg."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Volvendo cargar o espazo de traballo coa grade %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Non se puido volver cargar o espazo de traballo coa grade %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"O estilo aplicouse correctamente"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"O reloxo aplicouse correctamente"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"A grade aplicouse correctamente"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Cor personalizada"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Forma personalizada"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Nome de estilo personalizado"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intensidade de cor"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tema escuro"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Desactivouse temporalmente debido ao Aforro de batería"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Cambiouse o tema"</string>
@@ -116,7 +122,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,13 +130,17 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostra as notificacións na pantalla de bloqueo"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Oculta as notificacións na pantalla de bloqueo"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostrar notificacións na pantalla de bloqueo"</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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Pasar o dedo cara á esquerda para seleccionar outra esfera de reloxo"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Pasar o dedo cara á dereita para seleccionar outra esfera de reloxo"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Reloxos personalizados"</string>
 </resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 5f8f4e6..e60acbf 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"ઘડિયાળનું કદ લૉક સ્ક્રીન પરના કન્ટેન્ટ અનુસાર બદલાય છે"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"મોટું"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"નાનું"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"તમારી સ્ક્રીનના ખૂણામાં એક નાની ઘડિયાળ દેખાય છે"</string>
     <string name="grid_title" msgid="1688173478777254123">"ઍપ ગ્રિડ"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"લાગુ કરો"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ફેરફાર કરવા માટે ટૅપ કરો"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"દરેક સ્ક્રીન પર તમારા મનપસંદ ફોન્ટ ઉમેરો"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"ગ્રિડનું કદ પસંદ કરો"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"ગ્રિડનું કદ બદલવાથી કાર્યસ્થળ ફરીથી લોડ થશે અને તેમાં થોડો સમય લાગી શકે છે."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s ગ્રિડ વડે કાર્યસ્થળ ફરીથી લોડ કરી રહ્યું છે"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s ગ્રિડ વડે કાર્યસ્થળ ફરીથી લોડ કરવામાં નિષ્ફળ રહ્યાં"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"શૈલી સફળતાપૂર્વક સેટ કરી"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"ઘડિયાળ સફળતાપૂર્વક સેટ કરી"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"ગ્રિડ સફળતાપૂર્વક સેટ કરી"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"કસ્ટમ રંગ"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"કસ્ટમ આકાર"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"કસ્ટમ શૈલી નામ"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"રંગની તીવ્રતા"</string>
     <string name="mode_title" msgid="2394873501427436055">"ઘેરી થીમ"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"બૅટરી સેવરના લીધે હંગામીરૂપે બંધ કર્યું"</string>
     <string name="mode_changed" msgid="2243581369395418584">"થીમ બદલી છે"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"લૉક સ્ક્રીન પર નોટિફિકેશન બતાવો"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"લૉક સ્ક્રીન પર નોટિફિકેશન છુપાવો"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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-hi/strings.xml b/res/values-hi/strings.xml
index 3b9917b..5a24c3d 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>
@@ -39,7 +40,8 @@
     <string name="clock_size_dynamic" msgid="1023930312455061642">"डाइनैमिक"</string>
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"लॉक स्क्रीन के कॉन्टेंट के हिसाब से घड़ी का साइज़ बदलता है"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"बड़ा"</string>
-    <string name="clock_size_small" msgid="2280449912094164133">"छोटा करें"</string>
+    <string name="clock_size_small" msgid="2280449912094164133">"छोटा"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"आपके डिवाइस की स्क्रीन के कोने में एक छोटी घड़ी दिखती है"</string>
     <string name="grid_title" msgid="1688173478777254123">"ऐप्लिकेशन ग्रिड"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"लागू करें"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"बदलाव करने के लिए टैप करें"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"हर स्क्रीन पर अपने पसंदीदा फ़ॉन्ट जोड़ें"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"ग्रिड का साइज़ चुनें"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"ग्रिड साइज़ बदलने पर फ़ाइल फ़ोल्डर फिर से लोड होगा. इसमें शायद समय लगे."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s ग्रिड के साथ फ़ाइल फ़ोल्डर को फिर से लोड किया जा रहा है"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s ग्रिड के साथ फ़ाइल फ़ोल्डर को फिर से लोड नहीं किया जा सका"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"थीम सेट हो गई"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"घड़ी सेट हो गई"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"ग्रिड सेट हो गया"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"पसंद के मुताबिक रंग"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"पसंद के मुताबिक आकार"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"पसंद के मुताबिक बनाई गई स्टाइल का नाम"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"कलर इंटेंसिटी"</string>
     <string name="mode_title" msgid="2394873501427436055">"गहरे रंग वाली थीम"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"बैटरी सेवर मोड चालू होने की वजह से, इस सुविधा को कुछ समय के लिए बंद कर दिया गया है"</string>
     <string name="mode_changed" msgid="2243581369395418584">"थीम को बदला गया"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"लॉक स्क्रीन पर सूचनाएं दिखाएं"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"लॉक स्क्रीन पर सूचनाएं छिपाएं"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
-    <string name="more_colors" msgid="3191071655353004591">"ज़्यादा कलर"</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-hr/strings.xml b/res/values-hr/strings.xml
index 2eb78b7..65fcf7e 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>
@@ -39,7 +40,8 @@
     <string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamičan"</string>
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Veličina sata mijenja se u skladu sa sadržajem zaključanog zaslona"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Velik"</string>
-    <string name="clock_size_small" msgid="2280449912094164133">"Malo"</string>
+    <string name="clock_size_small" msgid="2280449912094164133">"Mali"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"U kutu zaslona prikazuje se mali sat"</string>
     <string name="grid_title" msgid="1688173478777254123">"Rešetka aplik."</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Primijeni"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Dodirnite da biste uredili"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Dodajte svoje omiljene fontove na svaki zaslon"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Odaberite veličinu rešetke"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Promjena veličina rešetke ponovno će učitati radni prostor i može potrajati nekoliko sekundi."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Ponovno učitavanje radnog prostora s rešetkom %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Nije uspjelo ponovno učitavanje radnog prostora s rešetkom %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stil je uspješno postavljen"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Sat je uspješno postavljen"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Rešetka je uspješno postavljena"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Prilagođena boja"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Prilagođeni oblik"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Naziv prilagođenog stila"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intenzitet boja"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tamna tema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Privremeno onemogućeno zbog štednje baterije"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema je promijenjena"</string>
@@ -105,18 +111,18 @@
     <string name="beta_title" msgid="8703819523760746458">"Beta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Promjena rešetke aplikacije"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"Boje pozadine"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Ikone, tekst i više toga odgovaraju bojama na pozadini"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Ikone, tekst i ostalo odgovara bojama na pozadini"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Boja pozadine"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Osnovne boje"</string>
-    <string name="preset_color_tab_2" msgid="1444107326712562538">"Ostale boje"</string>
-    <string name="preset_color_subheader" msgid="8230588536141279371">"Odaberite bilo koju boju za svoje ikone, sat i više"</string>
+    <string name="preset_color_tab_2" msgid="1444107326712562538">"Druge boje"</string>
+    <string name="preset_color_subheader" msgid="8230588536141279371">"Odaberite bilo koju boju za svoje ikone, sat i ostalo"</string>
     <string name="color_changed" msgid="7029571720331641235">"Promijenjena boja"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"Dinamično"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"Boje sustava"</string>
     <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>
@@ -125,10 +131,16 @@
     <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="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="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/strings.xml b/res/values-hu/strings.xml
index 0346ed0..5256ee6 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Az óra mérete a lezárási képernyő tartalmától függően változik."</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Nagy"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Kicsi"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Megjelenik egy kis óra a képernyő sarkában."</string>
     <string name="grid_title" msgid="1688173478777254123">"Alkalmazásrács"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Alkalmaz"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Koppintson a szerkesztéshez"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Adja hozzá kedvenc betűtípusát az összes képernyőhöz"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Rácsméret kiválasztása"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>×<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"A rácsméret módosítása újratölti a munkaterületet, ami eltarthat néhány másodpercig."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Munkaterület újratöltése %1$s ráccsal…"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Nem sikerült újratölteni a munkaterületet %1$s ráccsal"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Sikerült a stílus beállítása"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Sikerült az óra beállítása"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Sikerült a rács beállítása"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Egyéni szín"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Egyéni alak"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Egyéni stílusnév"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Színintenzitás"</string>
     <string name="mode_title" msgid="2394873501427436055">"Sötét téma"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Átmenetileg kikapcsolva az Akkumulátorkímélő mód miatt"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Téma módosítva"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Csúsztassa gyorsan balra az ujját másik óralap kiválasztásához"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Csúsztassa gyorsan jobbra az ujját másik óralap kiválasztásához"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Egyéni óralapok"</string>
 </resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index cad1120..de2f488 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Ժամացույցի չափսը փոխվում է կողպէկրանի բովանդակությանը համապատասխան"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Մեծ"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Փոքր"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Էկրանի անկյունում ցուցադրվում է փոքրիկ ժամացույց"</string>
     <string name="grid_title" msgid="1688173478777254123">"Հավելվածների ցանց"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Կիրառել"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Հպեք՝ փոփոխելու համար"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Ավելացրեք ձեր նախընտրած տառատեսակները յուրաքանչյուր էկրանին"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Ընտրեք ցանցի չափը"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Ցանցի չափը փոխելու դեպքում աշխատանքային տարածքը մի քանի վայրկյանում կվերաբեռնվի։"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Աշխատանքային տարածքի (%1$s ցանցով) վերաբեռնում"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Չհաջողվեց վերաբեռնել %1$s ցանցով աշխատանքային տարածքը"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Ոճը կարգավորվեց"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Ժամացույցը կարգավորվեց"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Ցանցը կարգավորվեց"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Հատուկ գույն"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Հատուկ ձևապատկեր"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Հատուկ ոճի անվանումը"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Գույնի ինտենսիվություն"</string>
     <string name="mode_title" msgid="2394873501427436055">"Մուգ թեմա"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Ժամանակավորապես անջատվել է մարտկոցի տնտեսման համար"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Թեման փոխվեց"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"Ցուցադրել ծանուցումները կողպէկրանին"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Թաքցնել ծանուցումները կողպէկրանին"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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-in/strings.xml b/res/values-in/strings.xml
index 7e22274..c4ff381 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Ukuran jam berubah sesuai dengan konten layar kunci"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Besar"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Kecil"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Jam kecil ditampilkan di sudut layar Anda"</string>
     <string name="grid_title" msgid="1688173478777254123">"Petak aplikasi"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Terapkan"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Ketuk untuk mengedit"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Tambahkan font favorit ke setiap layar"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Pilih ukuran petak"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Mengubah ukuran petak akan memuat ulang ruang kerja dan mungkin perlu waktu beberapa detik."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Memuat ulang ruang kerja dengan %1$s petak"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Gagal memuat ulang ruang kerja dengan %1$s petak"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Gaya berhasil disetel"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Jam berhasil disetel"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Petak berhasil disetel"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Warna khusus"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Bentuk khusus"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Nama gaya khusus"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intensitas warna"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tema gelap"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Dinonaktifkan sementara karena fitur Penghemat Baterai"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema diubah"</string>
@@ -105,18 +111,18 @@
     <string name="beta_title" msgid="8703819523760746458">"Beta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Ubah petak aplikasi"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"Warna wallpaper"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Warna ikon, teks, dan yang cocok lainnya di wallpaper"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Ikon, teks, dan lain-lain serasi dengan warna wallpaper"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Warna wallpaper"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Warna dasar"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Warna lainnya"</string>
-    <string name="preset_color_subheader" msgid="8230588536141279371">"Pilih warna apa pun untuk ikon, jam, dan lainnya"</string>
+    <string name="preset_color_subheader" msgid="8230588536141279371">"Pilih warna untuk ikon, jam, dan lain-lain"</string>
     <string name="color_changed" msgid="7029571720331641235">"Warna diubah"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"Dinamis"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"Warna sistem"</string>
     <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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Geser ke kiri untuk memilih tampilan jam yang berbeda"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Geser ke kanan untuk memilih tampilan jam yang berbeda"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Tampilan Jam Kustom"</string>
 </resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 4742dc4..d5c3436 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Stærð klukku breytist í samræmi við efni á lásskjá"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Stór"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Lítil"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Lítil klukka birtist í horni skjásins"</string>
     <string name="grid_title" msgid="1688173478777254123">"Forritatafla"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Nota"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Ýttu til að breyta"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Fáðu uppáhaldsleturgerðirnar þínar á alla skjái"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Velja stærð hnitanets"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Breyting á töflustærð endurhleður vinnusvæði og getur tekið nokkrar sekúndur."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Endurhleður vinnusvæði með %1$s töflu"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Ekki tókst að endurhlaða vinnusvæði með %1$s töflu"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stíll var stilltur"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Klukka var stillt"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Hnitanet var stillt"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Sérsniðinn litur"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Sérsniðið form"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Sérsniðið stílheiti"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Litstyrkur"</string>
     <string name="mode_title" msgid="2394873501427436055">"Dökkt þema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Slökkt tímabundið vegna rafhlöðusparnaðar"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Þema var breytt"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Strjúktu til vinstri til að velja aðra klukku"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Strjúktu til hægri til að velja aðra klukku"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Sérsniðnar klukkur"</string>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index d54138d..3bc8cb7 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -22,8 +22,9 @@
     <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">"Impos. Orologio"</string>
-    <string name="clock_color_and_size_title" msgid="7146791234905111351">"Colore/dim. 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>
     <string name="clock_color_red" msgid="3843504214807597810">"Rosso"</string>
@@ -39,7 +40,8 @@
     <string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamiche"</string>
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Le dimensioni dell\'orologio cambiano in base ai contenuti della schermata di blocco"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Grandi"</string>
-    <string name="clock_size_small" msgid="2280449912094164133">"Piccolo"</string>
+    <string name="clock_size_small" msgid="2280449912094164133">"Piccole"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Un piccolo orologio visualizzato nell\'angolo dello schermo"</string>
     <string name="grid_title" msgid="1688173478777254123">"Griglia di app"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Applica"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Tocca per modificare"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Aggiungi i tuoi caratteri preferiti a ogni schermata"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Scegli la dimensione della griglia"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Modificare la dimensione della griglia ricarica lo spazio di lavoro e richiede alcuni secondi."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Stai ricaricando lo spazio di lavoro con griglia %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Impossibile ricaricare lo spazio di lavoro con griglia %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stile impostato"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Orologio impostato"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Griglia impostata"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Colore personalizzato"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Forma personalizzata"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Nome dello stile personalizzato"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intensità cromatica"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tema scuro"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Opzione disattivata temporaneamente per risparmio energetico"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema modificato"</string>
@@ -115,22 +121,26 @@
     <string name="color_picker_title" msgid="6666830057938082864">"Colori di sistema"</string>
     <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">"Nessuno"</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_none" msgid="1751643933430782312">"Nessuna"</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>
     <string name="keyguard_quick_affordance_title" msgid="4242813186995735584">"Scorciatoie"</string>
     <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">"Nessun elemento"</string>
+    <string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Nessuna"</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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Scorri a sinistra per selezionare un altro quadrante"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Scorri a destra per selezionare un altro quadrante"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Quadranti personalizzati"</string>
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 695536e..58da8e0 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"גודל השעון משתנה בהתאם לתוכן במסך הנעילה"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"גדול"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"קטן"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"שעון קטן מופיע בפינת המסך"</string>
     <string name="grid_title" msgid="1688173478777254123">"תצוגת האפליקציות"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"אישור"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"יש להקיש כדי לערוך"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"אפשר להוסיף את הגופנים המועדפים לכל מסך"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"בחירת גודל הרשת"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"שינוי גודל הרשת יטען מחדש את סביבת העבודה וייקח כמה שניות."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"טעינה מחדש של סביבת העבודה עם רשת %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"לא הצלחנו לטעון מחדש את סביבת העבודה עם רשת %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"הסגנון הוגדר בהצלחה"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"השעון הוגדר בהצלחה"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"הרשת הוגדרה בהצלחה"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"צבע מותאם אישית"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"צורה מותאמת אישית"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"שם סגנון מותאם אישית"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"עוצמת הצבע"</string>
     <string name="mode_title" msgid="2394873501427436055">"עיצוב כהה"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"מושבת זמנית כי הופעל מצב \'חיסכון בסוללה\'"</string>
     <string name="mode_changed" msgid="2243581369395418584">"העיצוב השתנה"</string>
@@ -113,24 +119,28 @@
     <string name="color_changed" msgid="7029571720331641235">"הצבע השתנה"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"דינמי"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"צבעי המערכת"</string>
-    <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"קיצור דרך מימין"</string>
-    <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"קיצור דרך משמאל"</string>
+    <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>
     <string name="keyguard_quick_affordance_title" msgid="4242813186995735584">"קיצורי דרך"</string>
     <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="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"אין"</string>
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"הצגת ההתראות במסך הנעילה"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"הסתרת ההתראות במסך הנעילה"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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-ja/strings.xml b/res/values-ja/strings.xml
index 58bf265..af565a4 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>
@@ -37,9 +38,10 @@
     <string name="clock_color_teal" msgid="7499223425741344251">"ティール"</string>
     <string name="clock_size" msgid="5028923902364418263">"サイズ"</string>
     <string name="clock_size_dynamic" msgid="1023930312455061642">"動的"</string>
-    <string name="clock_size_dynamic_description" msgid="2776620745774561662">"時計のサイズはロック画面の内容に応じて変わります"</string>
+    <string name="clock_size_dynamic_description" msgid="2776620745774561662">"時計のサイズがロック画面の状況に応じて変わります"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"大"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"小"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"画面の隅に小さい時計を表示する"</string>
     <string name="grid_title" msgid="1688173478777254123">"アプリグリッド"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"適用"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"タップして編集"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"お気に入りのフォントをすべての画面に追加できます"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"グリッドサイズの選択"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"グリッドのサイズを変えるとワークスペースが再読み込みされます（数秒かかることがあります）。"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s グリッドでワークスペースを再読み込みしています"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s グリッドでのワークスペースの再読み込みに失敗しました"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"スタイルの設定が完了しました"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"時計の設定が完了しました"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"グリッドの設定が完了しました"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"カスタム色"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"カスタムの形状"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"カスタム スタイル名"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"色の輝度"</string>
     <string name="mode_title" msgid="2394873501427436055">"ダークモード"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"バッテリー セーバーにより一時的に無効になりました"</string>
     <string name="mode_changed" msgid="2243581369395418584">"テーマを変更しました"</string>
@@ -116,7 +122,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,11 +130,17 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"ロック画面に通知を表示します"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ロック画面では通知を非表示にします"</string>
+    <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"ロック画面に通知を表示する"</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/strings.xml b/res/values-ka/strings.xml
index 44ca0c5..01997d1 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"საათის ზომა იცვლება დაბლოკილი ეკრანის შინაარსის მიხედვით"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"დიდი"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"პატარა"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"პატარა საათი მოთავსებულია თქვენი ეკრანის კუთხეში"</string>
     <string name="grid_title" msgid="1688173478777254123">"აპების ბადე"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"მისადაგება"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"შეეხეთ რედაქტირებისთვის"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"დაამატეთ თქვენი საყვარელი შრიფტები ყოველ ეკრანზე"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"აირჩიეთ ბადის ზომა"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"ბადის ზომის შეცვლით წამებში გადაიტვირთება სამუშაო სივრცე."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"მიმდინარეობს სამუშაო სივრცის გადატვირთვა %1$s ბადით"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"სამუშაო სივრცის გადატვირთვა %1$s ბადით ვერ მოხერხდა"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"სტილი წარმატებით დაყენდა"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"საათი წარმატებით დაყენდა"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"ბადე წარმატებით დაყენდა"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"მორგებული ფერი"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"მორგებული ფიგურა"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"მორგებული სტილის სახელი"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"ფერის ინტენსიუტობა"</string>
     <string name="mode_title" msgid="2394873501427436055">"მუქი თემა"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"ბატარეის დამზოგის გამო დროებით გათიშულია"</string>
     <string name="mode_changed" msgid="2243581369395418584">"თემა შეიცვალა"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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-kk/strings.xml b/res/values-kk/strings.xml
index 47bac27..6e839d8 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -22,8 +22,9 @@
     <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="clock_color_and_size_title" msgid="7146791234905111351">"Сағат түсі, көлемі"</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>
     <string name="clock_color_red" msgid="3843504214807597810">"Қызыл"</string>
@@ -35,11 +36,12 @@
     <string name="clock_color_violet" msgid="3454503847169375826">"Күлгін"</string>
     <string name="clock_color_gray" msgid="9221530636948859231">"Сұр"</string>
     <string name="clock_color_teal" msgid="7499223425741344251">"Көкшіл жасыл"</string>
-    <string name="clock_size" msgid="5028923902364418263">"Көлем"</string>
+    <string name="clock_size" msgid="5028923902364418263">"Өлшем"</string>
     <string name="clock_size_dynamic" msgid="1023930312455061642">"Динамикалық"</string>
-    <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Сағат көлемі құлып экранындағы контентке сай өзгереді."</string>
+    <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Сағаттың өлшемі құлып экранындағы контентке сай өзгереді."</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Үлкен"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Кішi"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Экранның бұрышында шағын сағат көрсетіледі."</string>
     <string name="grid_title" msgid="1688173478777254123">"Қолданба торы"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Қолдану"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Өзгерту үшін түртіңіз"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Әр экранға ұнайтын қаріпті қоя аласыз."</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Тор өлшемін таңдаңыз"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Тор өлшемі өзгертілсе, жұмыс орны бірнеше секунд қайта жүктеледі."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s торы бар жұмыс орны қайта жүктелуде"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s торы бар жұмыс орны жүктелмеді"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Стиль орнатылды."</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Сағат орнатылды."</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Тор орнатылды."</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Арнаулы түс"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Арнаулы пішін"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Арнаулы стиль атауы"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Түс қанықтығы"</string>
     <string name="mode_title" msgid="2394873501427436055">"Қараңғы режим"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Батареяны үнемдеу режиміне байланысты уақытша өшірілген."</string>
     <string name="mode_changed" msgid="2243581369395418584">"Тақырып өзгертілді."</string>
@@ -109,14 +115,14 @@
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Тұсқағаз түсі"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Негізгі түстер"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Басқа түстер"</string>
-    <string name="preset_color_subheader" msgid="8230588536141279371">"Белгіше, сағат және т.б. үшін кез келген түс таңдаңыз."</string>
+    <string name="preset_color_subheader" msgid="8230588536141279371">"Белгішелер, сағат, т.б. үшін қалаған түсті таңдаңыз."</string>
     <string name="color_changed" msgid="7029571720331641235">"Түс өзгертілді."</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"Динамикалық"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"Жүйе түстері"</string>
-    <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Сол жақ таңбаша"</string>
-    <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Оң жақ таңбаша"</string>
+    <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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"Құлып экранында хабарландыруларды көрсету"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Құлып экранында хабарландыруларды жасыру"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <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-km/strings.xml b/res/values-km/strings.xml
index a1fe61f..07375af 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"ទំហំនាឡិកា​ផ្លាស់ប្ដូរទៅតាមខ្លឹមសារ​លើអេក្រង់ចាក់សោ"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"ធំ"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"តូច"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"នាឡិកា​តូចមួយ​បង្ហាញ​នៅជ្រុងនៃ​អេក្រង់​របស់អ្នក"</string>
     <string name="grid_title" msgid="1688173478777254123">"ក្រឡា​កម្មវិធី"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"ប្រើ"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ចុច ដើម្បី​កែ"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"បញ្ចូលពុម្ព​អក្សរ​ដែលអ្នកចូលចិត្ត​ទៅគ្រប់អេក្រង់"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"ជ្រើសរើស​ទំហំក្រឡា"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"ការប្ដូរទំហំក្រឡានឹងផ្ទុកលំហការងារឡើងវិញ និងអាចចំណាយពេលបន្តិច។"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"កំពុងផ្ទុកឡើងវិញនូវលំហការងារដែលមានក្រឡា %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"មិនអាចផ្ទុកឡើងវិញនូវលំហការងារដែលមានក្រឡា %1$s ទេ"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"បានកំណត់​រចនាប័ទ្មដោយ​ជោគជ័យ"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"បានកំណត់​នាឡិកាដោយ​ជោគជ័យ"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"បានកំណត់​ក្រឡាដោយ​ជោគជ័យ"</string>
@@ -98,7 +103,8 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"ពណ៌​ផ្ទាល់ខ្លួន"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"រូបរាង​ផ្ទាល់ខ្លួន"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"ឈ្មោះ​រចនាប័ទ្ម​ផ្ទាល់ខ្លួន"</string>
-    <string name="mode_title" msgid="2394873501427436055">"​រចនាប័ទ្ម​ងងឹត"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"កម្រិតពណ៌"</string>
+    <string name="mode_title" msgid="2394873501427436055">"ទម្រង់រចនាងងឹត"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"បានបិទ​ជា​បណ្តោះអាសន្ន ដោយសារ​មុខងារ​សន្សំ​ថ្ម"</string>
     <string name="mode_changed" msgid="2243581369395418584">"បាន​ផ្លាស់ប្ដូរ​រចនាប័ទ្ម"</string>
     <string name="themed_icon_title" msgid="7312460430471956558">"រូបតំណាងប្ដូរតាមទម្រង់រចនា"</string>
@@ -109,14 +115,14 @@
     <string name="wallpaper_color_title" msgid="5687965239180986458">"ពណ៌​ផ្ទាំងរូបភាព"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"ពណ៌​គោល"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"ពណ៌ផ្សេងទៀត"</string>
-    <string name="preset_color_subheader" msgid="8230588536141279371">"ជ្រើសរើសពណ៌ណាមួយសម្រាប់រូបតំណាង នាឡិកា និងអ្វីៗជាច្រើនទៀតរបស់អ្នក"</string>
+    <string name="preset_color_subheader" msgid="8230588536141279371">"ជ្រើសរើសពណ៌ណាមួយសម្រាប់នាឡិកា រូបតំណាងរបស់អ្នក និងច្រើនទៀត"</string>
     <string name="color_changed" msgid="7029571720331641235">"បាន​ផ្លាស់ប្ដូរ​ពណ៌"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"ឌីណាមិក"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"ពណ៌ប្រព័ន្ធ"</string>
     <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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <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-kn/strings.xml b/res/values-kn/strings.xml
index 8b1c5ca..fd940a6 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿರುವ ವಿಷಯಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಗಡಿಯಾರದ ಗಾತ್ರ ಬದಲಾಗುತ್ತದೆ"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"ದೊಡ್ಡದು"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"ಚಿಕ್ಕದು"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ನ ಮೂಲೆಯಲ್ಲಿ ಸಣ್ಣ ಗಡಿಯಾರವೊಂದು ಕಾಣಿಸುತ್ತದೆ"</string>
     <string name="grid_title" msgid="1688173478777254123">"ಆ್ಯಪ್ ಗ್ರಿಡ್"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"ಅನ್ವಯಿಸಿ"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ಎಡಿಟ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"ಪ್ರತಿ ಸ್ಕ್ರೀನ್‌ಗೆ ನಿಮ್ಮ ಮೆಚ್ಚಿನ ಫಾಂಟ್‌ಗಳನ್ನು ಸೇರಿಸಿ"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"ಗ್ರಿಡ್ ಗಾತ್ರವನ್ನು ಆರಿಸಿ"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"ಗ್ರಿಡ್ ಗಾತ್ರವನ್ನು ಬದಲಾಯಿಸುವುದರಿಂದ ಕಾರ್ಯಸ್ಥಳವನ್ನು ಮರುಲೋಡ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಕೆಲವು ಸೆಕೆಂಡ್‌ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s ಗ್ರಿಡ್ ಮೂಲಕ ಕಾರ್ಯಸ್ಥಳವನ್ನು ಮರುಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s ಗ್ರಿಡ್ ಮೂಲಕ ಕಾರ್ಯಸ್ಥಳವನ್ನು ಮರುಲೋಡ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"ಶೈಲಿಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಹೊಂದಿಸಲಾಗಿದೆ"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"ಗಡಿಯಾರವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಹೊಂದಿಸಲಾಗಿದೆ"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"ಗ್ರಿಡ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಹೊಂದಿಸಲಾಗಿದೆ"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"ಕಸ್ಟಮ್ ಬಣ್ಣ"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"ಕಸ್ಟಮ್ ಆಕಾರ"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"ಕಸ್ಟಮ್ ಶೈಲಿ ಹೆಸರು"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"ಬಣ್ಣದ ತೀವ್ರತೆ"</string>
     <string name="mode_title" msgid="2394873501427436055">"ಡಾರ್ಕ್ ಥೀಮ್"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"ಬ್ಯಾಟರಿ ಸೇವರ್‌ ಕಾರಣದಿಂದ ತಾತ್ಕಾಲಿಕವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="mode_changed" msgid="2243581369395418584">"ಥೀಮ್ ಅನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"</string>
@@ -105,7 +111,7 @@
     <string name="beta_title" msgid="8703819523760746458">"ಬೀಟಾ"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"ಆ್ಯಪ್ ಗ್ರಿಡ್ ಬದಲಾಯಿಸಿ"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"ವಾಲ್‌ಪೇಪರ್ ಬಣ್ಣಗಳು"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"ನಿಮ್ಮ ವಾಲ್‌ಪೇಪರ್‌ನಲ್ಲಿ ಐಕಾನ್‌ಗಳು, ಪಠ್ಯ ಮತ್ತು ಇನ್ನಷ್ಟುಹೊಂದಾಣಿಕೆಯ ಬಣ್ಣಗಳು"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"ಐಕಾನ್‌, ಪಠ್ಯ ಮತ್ತು ಇತ್ಯಾದಿಗಳು ವಾಲ್‌ಪೇಪರ್‌ನಲ್ಲಿನ ಬಣ್ಣಗಳನ್ನು ಹೋಲುತ್ತವೆ"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"ವಾಲ್‌ಪೇಪರ್ ಬಣ್ಣ"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"ಮೂಲ ಬಣ್ಣಗಳು"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"ಇತರ ಬಣ್ಣಗಳು"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <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-ko/strings.xml b/res/values-ko/strings.xml
index 88e8f4d..6a7643c 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"시계 크기가 잠금 화면 콘텐츠에 따라 변경됩니다."</string>
     <string name="clock_size_large" msgid="3143248715744138979">"크게"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"작게"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"작은 시계가 화면 모서리에 표시됩니다."</string>
     <string name="grid_title" msgid="1688173478777254123">"앱 그리드"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"적용"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"탭하여 수정"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"모든 화면에 좋아하는 글꼴을 추가하세요."</string>
     <string name="grid_options_title" msgid="7071930966989877023">"그리드 크기 선택"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"그리드 크기를 변경하면 작업공간이 새로고침되며 몇 초 정도 걸릴 수 있습니다."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s 그리드로 작업공간을 새로고침하는 중"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s 그리드로 작업공간을 새로고침하지 못함"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"스타일 설정이 완료되었습니다."</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"시계 설정이 완료되었습니다."</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"그리드 설정이 완료되었습니다."</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"맞춤 색상"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"맞춤 모양"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"맞춤 스타일 이름"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"색상 강도"</string>
     <string name="mode_title" msgid="2394873501427436055">"어두운 테마"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"절전 모드로 인해 일시적으로 사용 중지됨"</string>
     <string name="mode_changed" msgid="2243581369395418584">"테마 변경됨"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"잠금 화면에 알림 표시"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"잠금 화면에서 알림 숨기기"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <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-ky/strings.xml b/res/values-ky/strings.xml
index 539a67f..c3e5c99 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Сааттын өлчөмү кулпуланган экрандагы нерселерге ылайык өзгөрөт"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Чоң"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Кичине"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Кичинекей саат экрандын бурчунда көрүнүп турат"</string>
     <string name="grid_title" msgid="1688173478777254123">"Колдонмонун торчосу"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Колдонуу"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Өзгөртүү үчүн таптап коюңуз"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Жактырган ариптериңизди каалаган экранга коюп алсаңыз болот"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Торчонун өлчөмүн тандоо"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Торчонун өлчөмү өзгөрсө, иштөө аймагы кайра жүктөлөт. Буга бир нече секунд керек."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Иштөө аймагы %1$s торчо менен кайра жүктөлүүдө"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Иштөө аймагы %1$s торчо менен кайра жүктөлбөй калды"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Стиль коюлду"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Саат ийгиликтүү жөндөлдү"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Торчо ийгиликтүү жөндөлдү"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Жеке түс"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Жеке форма"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Жеке стилдин аталышы"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Түстүн интенсивдүүлүгү"</string>
     <string name="mode_title" msgid="2394873501427436055">"Караңгы тема"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Батареяны үнөмдөөчү режимде убактылуу өчүрүлдү"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Тема өзгөртүлдү"</string>
@@ -105,18 +111,18 @@
     <string name="beta_title" msgid="8703819523760746458">"Бета"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Колдонмонун торчосун өзгөртүү"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"Тушкагаздын түстөрү"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Тушкагаз түсүнө жараша сүрөтчөлөр, текст же башкалар"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Сүрөтчөлөр, текст ж.б. тушкагаздын түсүнө айкалышат"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Тушкагаздын түсү"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Негизги түстөр"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Башка түстөр"</string>
     <string name="preset_color_subheader" msgid="8230588536141279371">"Сүрөтчөлөрүңүз, саатыңыз же башка нерселер үчүн каалаган түстү тандаңыз"</string>
     <string name="color_changed" msgid="7029571720331641235">"Түс өзгөртүлдү"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"Динамикалык"</string>
-    <string name="color_picker_title" msgid="6666830057938082864">"Тутумдун түстөрү"</string>
+    <string name="color_picker_title" msgid="6666830057938082864">"Системанын түстөрү"</string>
     <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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"Билдирмелерди кулпуланган экранда көрсөтүү"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Билдирмелерди кулпуланган экранда жашыруу"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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-lo/strings.xml b/res/values-lo/strings.xml
index 9a41c5b..00afb8e 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"ຂະໜາດຂອງໂມງປ່ຽນຕາມເນື້ອຫາໃນໜ້າຈໍລັອກ"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"ໃຫຍ່"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"ນ້ອຍ"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"ໂມງນ້ອຍທີ່ສະແດງຢູ່ໃນມຸມຂອງໜ້າຈໍທ່ານ"</string>
     <string name="grid_title" msgid="1688173478777254123">"ຕາຕະລາງແອັບ"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"ນຳໃຊ້"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ແຕະເພື່ອແກ້ໄຂ"</string>
@@ -65,11 +67,14 @@
     <string name="font_card_body" msgid="6790525594503904468">"ເພີ່ມຟອນທີ່ທ່ານມັກໃສ່ທຸກໜ້າຈໍ"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"ເລືອກຂະໜາດຊ່ອງ"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"ການປ່ຽນຂະໜາດໂຄງຮ່າງຕາຕະລາງຈະໂຫຼດບ່ອນເຮັດວຽກ ແລະ ອາດໃຊ້ເວລາສອງສາມວິນາທີ."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"ກຳລັງໂຫຼດບ່ອນເຮັດວຽກຄືນໃໝ່ດ້ວຍໂຄງຮ່າງຕາຕະລາງ %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"ໂຫຼດບ່ອນເຮັດວຽກຄືນໃໝ່ດ້ວຍໂຄງຮ່າງຕາຕະລາງ %1$s ບໍ່ສຳເລັດ"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"ຕັ້ງຮູບແບບສຳເລັດແລ້ວ"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"ຕັ້ງໂມງສຳເລັດແລ້ວ"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"ຕັ້ງຊ່ອງສຳເລັດແລ້ວ"</string>
     <string name="apply_theme_error_msg" msgid="791364062636538317">"ເກີດບັນຫາໃນການນຳໃຊ້ຮູບແບບ"</string>
-    <string name="custom_theme_next" msgid="6235420097213197301">"ຖັດໄປ"</string>
+    <string name="custom_theme_next" msgid="6235420097213197301">"ຕໍ່ໄປ"</string>
     <string name="custom_theme_previous" msgid="4941132112640503022">"ຜ່ານມາ"</string>
     <string name="custom_theme" msgid="1618351922263478163">"ກຳນົດເອງ"</string>
     <string name="custom_theme_title" msgid="2192300350332693631">"ແບບກຳນົດເອງ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"ສີກຳນົດເອງ"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"ຮູບຮ່າງກຳນົດເອງ"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"ຊື່ຮູບແບບສີສັນກຳນົດເອງ"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"ຄວາມເຂັ້ມຂອງສີ"</string>
     <string name="mode_title" msgid="2394873501427436055">"ຮູບແບບສີສັນມືດ"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"ຖືກປິດການນຳໃຊ້ຊົ່ວຄາວເນື່ອງຈາກຕົວປະຢັດ​ແບັດເຕີຣີ"</string>
     <string name="mode_changed" msgid="2243581369395418584">"ປ່ຽນຮູບແບບສີສັນແລ້ວ"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <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-lt/strings.xml b/res/values-lt/strings.xml
index 90b8bd7..41ce8fd 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Laikrodžio dydis keičiamas pagal užrakinimo ekrano turinį"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Didelis"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Mažas"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Ekrano kampe rodomas nedidelis laikrodis"</string>
     <string name="grid_title" msgid="1688173478777254123">"Pr. tinklelis"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Taikyti"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Palieskite ir redaguokite"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Pridėkite mėgstamiausių šriftų prie kiekvieno ekrano"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Pasirinkti tinklelio dydį"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Keičiant tinklelio dydį iš naujo įkeliama darbo sritis ir tai gali užtrukti kelias sekundes."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Iš naujo įkeliama darbo sritis su %1$s tinkleliu"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Nepavyko iš naujo įkelti darbo srities su %1$s tinkleliu"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stilius nustatytas sėkmingai"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Laikrodis nustatytas sėkmingai"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Tinklelis nustatytas sėkmingai"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Tinkinta spalva"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Tinkinta forma"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Tinkinto stiliaus pavadinimas"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Spalvos intensyvumas"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tamsioji tema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Laikinai išjungta dėl Akumuliatoriaus tausojimo priemonės"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema pakeista"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Perbraukite kairėn, kad pasirinktumėte kitą ciferblatą"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Perbraukite dešinėn, kad pasirinktumėte kitą ciferblatą"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Tinkinti ciferblatai"</string>
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index a28e6a5..53cbbf6 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Pulksteņa lielums mainās atkarībā no bloķēšanas ekrāna satura."</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Liels"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Mazs"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Jūsu ekrāna stūrī tiek rādīts neliels pulkstenis."</string>
     <string name="grid_title" msgid="1688173478777254123">"Lietotņu režģis"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Lietot"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Pieskarieties, lai rediģētu"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Pievienojiet savus iecienītos fontus visos ekrānos."</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Režģa izmēra izvēle"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Mainot režģa lielumu, tiks atkārtoti ielādēta darbvieta, kas var ilgt dažas sekundes."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Tiek atkārtoti ielādēta darbvieta ar režģi %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Neizdevās atkārtoti ielādēt darbvietu ar režģi %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stils ir sekmīgi iestatīts"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Pulkstenis ir sekmīgi iestatīts"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Režģis ir sekmīgi iestatīts"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Pielāgota krāsa"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Pielāgota forma"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Pielāgots stila nosaukums"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Krāsu intensitāte"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tumšais motīvs"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Īslaicīgi atspējots akumulatora enerģijas taupīšanas dēļ"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Motīvs ir nomainīts"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Velciet pa kreisi, lai izvēlētos citu pulksteņa ekrānu"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Velciet pa labi, lai izvēlētos citu pulksteņa ekrānu"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Pielāgoti pulksteņa ekrāni"</string>
 </resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 9375f88..e3a97db 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>
@@ -39,7 +40,8 @@
     <string name="clock_size_dynamic" msgid="1023930312455061642">"Динамичнa"</string>
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Големината на часовникот се променува според содржините на заклучен екран"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Голема"</string>
-    <string name="clock_size_small" msgid="2280449912094164133">"Мал"</string>
+    <string name="clock_size_small" msgid="2280449912094164133">"Мала"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Во аголот на екранот се прикажува мал часовник"</string>
     <string name="grid_title" msgid="1688173478777254123">"Мрежа"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Примени"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Допрете за да измените"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Додајте ги омилените фонтови на секој екран"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Изберете големина на решетка"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Промената на големината на решетката пак ќе го вчита работниот простор и може да потрае неколку секунди."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Работниот простор се вчитува повторно со решетката %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Работниот простор не можеше да се вчита повторно со решетката %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Стилот е успешно поставен"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Часовникот е успешно поставен"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Мрежата е успешно поставена"</string>
@@ -98,14 +103,15 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Приспособена боја"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Приспособена форма"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Приспособено име на стил"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Интензитет на бои"</string>
     <string name="mode_title" msgid="2394873501427436055">"Темна тема"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Привремено оневозможено поради „Штедачот на батерија“"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Темата е променета"</string>
-    <string name="themed_icon_title" msgid="7312460430471956558">"Икони со тема"</string>
+    <string name="themed_icon_title" msgid="7312460430471956558">"Тематски икони"</string>
     <string name="beta_title" msgid="8703819523760746458">"Бета"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Променете ја мрежата на апликации"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"Бои од тапетот"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Икони, текст и повеќе совпаѓачки бои на тапетот"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Иконите, текстот и др. се совпаѓаат по боја со тапетот"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Боја на тапет"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Основни бои"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Други бои"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"Прикажувај известувања на заклучен екран"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Сокривај известувања на заклучен екран"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <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-ml/strings.xml b/res/values-ml/strings.xml
index b5c9739..ffbd46e 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"ലോക്ക് സ്‌ക്രീൻ ഉള്ളടക്കത്തിനനുസരിച്ച് ക്ലോക്കിന്റെ വലുപ്പം മാറുന്നു"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"വലുത്"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"ചെറുത്"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"സ്ക്രീനിന്റെ മൂലയിൽ ഒരു ചെറിയ ക്ലോക്ക് കാണിക്കുന്നു"</string>
     <string name="grid_title" msgid="1688173478777254123">"ആപ്പ് ഗ്രിഡ്"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"പ്രയോഗിക്കുക"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"എഡിറ്റ് ചെയ്യാൻ ടാപ്പ് ചെയ്യുക"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"എല്ലാ സ്‌ക്രീനിലേക്കും നിങ്ങളുടെ പ്രിയപ്പെട്ട ഫോണ്ടുകൾ ചേർക്കുക"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"ഗ്രിഡ് വലുപ്പം തിരഞ്ഞെടുക്കുക"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"ഗ്രിഡ് വലുപ്പം മാറ്റുന്നത് വർക്ക്‌സ്‌പെയ്‌സിനെ റീലോഡ് ചെയ്തേക്കാം, ഏതാനും സെക്കൻഡുകൾ സമയമെടുക്കുകയും ചെയ്യും."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s ഗ്രിഡ് ഉപയോഗിച്ച് വർക്ക്‌സ്‌പെയ്‌സ് റീലോഡ് ചെയ്യുന്നു"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s ഗ്രിഡ് ഉപയോഗിച്ച് വർക്ക്‌സ്‌പെയ്‌സ് റീലോഡ് ചെയ്യാനായില്ല"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"സ്‌റ്റൈൽ സജ്ജീകരിച്ചു"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"ക്ലോക്ക് സജ്ജമാക്കി"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"ഗ്രിഡ് സജ്ജീകരിച്ചു"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"ഇഷ്‌ടാനുസൃത നിറം"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"ഇഷ്‌ടാനുസൃത രൂപം"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"ഇഷ്‌ടാനുസൃത സ്‌റ്റൈലിന്റെ പേര്"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"വർണ തീവ്രത"</string>
     <string name="mode_title" msgid="2394873501427436055">"ഡാർക്ക് തീം"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"ബാറ്ററി ലാഭിക്കൽ കാരണം തൽക്കാലം പ്രവർത്തനരഹിതമാണ്"</string>
     <string name="mode_changed" msgid="2243581369395418584">"തീം മാറ്റി"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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/strings.xml b/res/values-mn/strings.xml
index ddf19e2..4591634 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>
@@ -37,9 +38,10 @@
     <string name="clock_color_teal" msgid="7499223425741344251">"Усан цэнхэр"</string>
     <string name="clock_size" msgid="5028923902364418263">"Хэмжээ"</string>
     <string name="clock_size_dynamic" msgid="1023930312455061642">"Динамик"</string>
-    <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Цагны хэмжээ нь түгжигдсэн дэлгэцийн контентоос хамаарч өөрчлөгддөг"</string>
+    <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Цагны хэмжээ нь түгжээтэй дэлгэцийн контентоос хамаарч өөрчлөгддөг"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Том"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Жижиг"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Таны дэлгэцийн буланд жижиг цаг харуулдаг"</string>
     <string name="grid_title" msgid="1688173478777254123">"Аппын хүснэгт"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Ашиглах"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Засахын тулд товшино уу"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Дэлгэц бүрд дуртай фонтоо нэмэх"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Торын хэмжээг сонгох"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Хүснэгтийн хэмжээг өөрчлөх нь ажлын талбарыг дахин ачаалах ба хэдэн секунд зарцуулж магадгүй."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s-н хүснэгтээр ажлын талбарыг дахин ачаалж байна"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s-н хүснэгтээр ажлын талбарыг дахин ачаалж чадсангүй"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Загварыг амжилттай тохирууллаа"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Цагийг амжилттай тохирууллаа"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Торыг амжилттай тохирууллаа"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Захиалгат өнгө"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Захиалгат дүрс"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Захиалгат загварын нэр"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Өнгөний эрчим"</string>
     <string name="mode_title" msgid="2394873501427436055">"Бараан загвар"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Батарей хэмнэгчийн улмаас түр зуур идэвхгүй болгосон"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Загварыг өөрчилсөн"</string>
@@ -116,7 +122,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,13 +130,17 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"Түгжигдсэн дэлгэц дээр мэдэгдлийг харуулах"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Түгжигдсэн дэлгэц дээрх мэдэгдлүүдийг нуух"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Түгжээтэй дэлгэц дээр мэдэгдэл харуулах"</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>
+    <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-mr/strings.xml b/res/values-mr/strings.xml
index fa9267d..02838e4 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -22,8 +22,9 @@
     <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="clock_color_and_size_title" msgid="7146791234905111351">"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">"घड्याळाचा रंग व आकार"</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>
     <string name="clock_color_red" msgid="3843504214807597810">"लाल"</string>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"लॉक स्‍क्रीनवरील आशयानुसार घड्याळाचा आकार बदलेल"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"मोठा"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"छोटे"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"तुमच्या स्क्रीनच्या कोपऱ्यामध्ये एक लहान घड्याळ दिसते"</string>
     <string name="grid_title" msgid="1688173478777254123">"ॲप ग्रिड"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"लागू करा"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"संपादित करण्‍यासाठी टॅप करा"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"प्रत्येक स्क्रीनवर तुमचे आवडते फॉंट जोडा"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"ग्रिडचा आकार निवडा"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"ग्रिडचा आकार बदल्याने वर्कस्पेस रीलोड होईल, याला काही सेकंद लागू शकतात."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s ग्रिड वापरून वर्कस्पेस रीलोड करत आहे"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s ग्रिड वापरून वर्कस्पेस रीलोड करता आली नाही"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"शैली यशस्वीरीत्या सेट केली"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"क्लॉक यशस्वीरीत्या सेट केले"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"ग्रिड यशस्वीरीत्या सेट केले"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"कस्टम रंग"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"कस्टम आकार"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"कस्टम शैलीचे नाव"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"रंगाची तीव्रता"</string>
     <string name="mode_title" msgid="2394873501427436055">"गडद थीम"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"बॅटरी सेव्हर मुळे तात्पुरते बंद केले आहे"</string>
     <string name="mode_changed" msgid="2243581369395418584">"थीम बदलली आहे"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <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-ms/strings.xml b/res/values-ms/strings.xml
index 14c8592..26ef5fe 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -17,12 +17,13 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="1647136562008520313">"Kertas dinding &amp; gaya"</string>
+    <string name="app_name" msgid="1647136562008520313">"Hiasan latar &amp; gaya"</string>
     <string name="theme_title" msgid="2144932106319405101">"Gaya"</string>
     <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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Saiz jam berubah mengikut kandungan skrin kunci"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Besar"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Kecil"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Jam kecil yang dipaparkan pada penjuru skrin anda"</string>
     <string name="grid_title" msgid="1688173478777254123">"Grid apl"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Gunakan"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Ketik untuk edit"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Tambahkan fon kegemaran anda pada setiap skrin"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Pilih saiz grid"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Ruang kerja dimuatkan semula jika saiz grid diubah."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Memuatkan semula ruang kerja dengan grid %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Gagal memuatkan semula ruang kerja dengan grid %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Gaya berjaya ditetapkan"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Jam berjaya ditetapkan"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Grid berjaya ditetapkan"</string>
@@ -98,13 +103,14 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Warna tersuai"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Bentuk tersuai"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Nama gaya tersuai"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Keamatan warna"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tema gelap"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Dilumpuhkan sementara disebabkan Penjimat Bateri"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema ditukar"</string>
     <string name="themed_icon_title" msgid="7312460430471956558">"Ikon bertema"</string>
     <string name="beta_title" msgid="8703819523760746458">"Beta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Tukar grid apl"</string>
-    <string name="wallpaper_color_tab" msgid="1447926591721403840">"Warna kertas dinding"</string>
+    <string name="wallpaper_color_tab" msgid="1447926591721403840">"Warna hiasan latar"</string>
     <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Ikon, teks dan pelbagai padanan warna pada hiasan latar"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Warna kertas dinding"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Warna asas"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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/strings.xml b/res/values-my/strings.xml
index a969545..bdc67c5 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"လော့ခ်မျက်နှာပြင် အကြောင်းအရာအလိုက် နာရီအရွယ်အစား ပြောင်းလဲသည်"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"ကြီး"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"သေး"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"သင့်ဖန်သားပြင်ထောင့်တွင် ပြသထားသော နာရီအသေးတစ်ခု"</string>
     <string name="grid_title" msgid="1688173478777254123">"အက်ပ်ဇယား"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"အသုံးပြုရန်"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"တည်းဖြတ်ရန် တို့ပါ"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"မျက်နှာပြင်တိုင်းတွင် သင့်အကြိုက်ဆုံး ဖောင့်များ ထည့်ရန်"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"ဇယားကွက်အရွယ်အစားတစ်ခု ရွေးပါ"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"ဂရစ်အရွယ်အစားပြောင်းခြင်းသည် အလုပ်နေရာကို ပြန်စတင်စေပြီး စက္ကန့်အနည်းငယ် ကြာနိုင်သည်။"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s ဂရစ်ဖြင့် အလုပ်နေရာ ပြန်လည်စတင်နေသည်"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s ဂရစ်ဖြင့် အလုပ်နေရာ ပြန်လည်စတင်၍ မရပါ"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"ပုံစံကို အောင်မြင်စွာ သတ်မှတ်ပြီးပါပြီ"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"နာရီကို အောင်မြင်စွာ သတ်မှတ်ပြီးပါပြီ"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"ဇယားကွက်ကို အောင်မြင်စွာ သတ်မှတ်ပြီးပါပြီ"</string>
@@ -98,14 +103,15 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"စိတ်ကြိုက်အရောင်"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"စိတ်ကြိုက်ပုံသဏ္ဌာန်"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"စိတ်ကြိုက်ပုံစံအမည်"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"အရောင်တောက်ပမှု"</string>
     <string name="mode_title" msgid="2394873501427436055">"အမှောင်နောက်ခံ"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"‘ဘက်ထရီ အားထိန်း’ ကြောင့် ယာယီပိတ်ထားသည်"</string>
     <string name="mode_changed" msgid="2243581369395418584">"အပြင်အဆင် ပြောင်းလိုက်ပါပြီ"</string>
-    <string name="themed_icon_title" msgid="7312460430471956558">"အပြင်အဆင်သုံး သင်္ကေတများ"</string>
+    <string name="themed_icon_title" msgid="7312460430471956558">"အကြောင်းအရာ သင်္ကေတများ"</string>
     <string name="beta_title" msgid="8703819523760746458">"စမ်းသပ်"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"အက်ပ်ဇယား ပြောင်းရန်"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"နောက်ခံအရောင်များ"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"သင့်နောက်ခံရှိ သင်္ကေတ၊ စာသား၊ နောက်ထပ်တူညီသည့်အရောင်"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"သင်္ကေတ၊ စာသားစသည်တို့သည် သင့်နောက်ခံအရောင်များနှင့် ကိုက်ညီသည်"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"နောက်ခံအရောင်"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"အခြေခံအရောင်များ"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"အခြားအရောင်"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <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-nb/strings.xml b/res/values-nb/strings.xml
index cdf7f7c..4062ab5 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Klokkens størrelse endres basert på innholdet på låseskjermen"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Stor"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Liten"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"En liten klokke vises i hjørnet av skjermen"</string>
     <string name="grid_title" msgid="1688173478777254123">"Apprutenett"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Bruk"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Trykk for å endre"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Legg til favorittskrifttypen din på alle skjermer"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Velg rutenettstørrelse"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Endring av rutenettstørrelse laster inn arbeidsområdet på nytt, noe som kan ta noen sekunder."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Laster inn arbeidsområdet med rutenett på %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Kunne ikke laste inn arbeidsområdet med rutenett på %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stilen er angitt"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Klokken er angitt"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Rutenettet er angitt"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Egendefinert farge"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Egendefinert form"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Navn på egendefinert stil"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Fargeintensitet"</string>
     <string name="mode_title" msgid="2394873501427436055">"Mørkt tema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Midlertidig slått av på grunn av Batterisparing"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Temaet er endret"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Sveip til venstre for å velge en annen urskive"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Sveip til høyre for å velge en annen urskive"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Tilpassede klokker"</string>
 </resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 99d8675..e420495 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"घडीको आकार लक स्क्रिनको सामग्रीका आधारमा परिवर्तन हुन्छ"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"ठुलो"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"सानो"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"तपाईंको स्क्रिनको कुनामा सानो घडी देखा पर्छ"</string>
     <string name="grid_title" msgid="1688173478777254123">"एप ग्रिड"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"लागू गर्नुहोस्"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"सम्पादन गर्न ट्याप गर्नुहोस्"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"प्रत्येक स्क्रिनमा आफूलाई मन पर्ने फन्टहरू थप्नुहोस्"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"ग्रिडको आकार छनौट गर्नुहोस्"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"तपाईंले ग्रिडको आकार परिवर्तन गर्नुभयो भने वर्कस्पेस रिलोड हुन्छ र रिलोड हुन केही सेकेन्ड लाग्न सक्छ।"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s ग्रिड सेट गरेर वर्कस्पेस पुनः लोड गरिँदै छ"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s ग्रिड सेट गरिएको वर्कस्पेस रिलोड गर्न सकिएन"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"शैली सफलतापूर्वक सेट गरियो"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"घडी सफलतापूर्वक सेट गरियो"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"ग्रिड सफलतापूर्वक सेट गरियो"</string>
@@ -90,7 +95,7 @@
     <string name="use_style_button" msgid="1754493078383627019">"<xliff:g id="ID_1">%1$s</xliff:g> प्रयोग गर्नु…"</string>
     <string name="no_thanks" msgid="7286616980115687627">"पर्दैन, धन्यवाद"</string>
     <string name="clock_preview_content_description" msgid="5460561185905717460">"<xliff:g id="ID_1">%1$s</xliff:g> घडीको पूर्वावलोकन"</string>
-    <string name="something_went_wrong" msgid="529840112449799117">"हत्तेरिका! केही चिज गडबड भयो।"</string>
+    <string name="something_went_wrong" msgid="529840112449799117">"हत्तेरिका! कुनै समस्या आयो।"</string>
     <string name="theme_preview_icons_section_title" msgid="7064768910744000643">"रङ / आइकनहरू"</string>
     <string name="style_info_description" msgid="2612473574431003251">"फन्ट, आइकन, एपको आकृति र रङको प्रिभ्यू"</string>
     <string name="accessibility_custom_font_title" msgid="966867359157303705">"आफूले रोजेको फन्ट"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"आफूले रोजेको रङ"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"आफूले रोजेको आकार"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"शैलीको आफूले रोजेको नाम"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"कलर इन्टेन्सिटी"</string>
     <string name="mode_title" msgid="2394873501427436055">"अँध्यारो थिम"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"ब्याट्री सेभर अन भएकाले केही समयका लागि अफ गरिएको छ"</string>
     <string name="mode_changed" msgid="2243581369395418584">"थिम परिवर्तन गरिएको छ"</string>
@@ -113,10 +119,10 @@
     <string name="color_changed" msgid="7029571720331641235">"रङ बदलियो"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"गतिशील"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"सिस्टमका रङहरू"</string>
-    <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"बायाँको सर्टकट"</string>
-    <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"दायाँको सर्टकट"</string>
+    <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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <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-nl/strings.xml b/res/values-nl/strings.xml
index 26bd072..04efb6f 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -22,8 +22,9 @@
     <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="clock_color_and_size_title" msgid="7146791234905111351">"Kleur en grootte van klok"</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>
     <string name="clock_color_red" msgid="3843504214807597810">"Rood"</string>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Het formaat van de klok past zich aan de content van het vergrendelscherm aan"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Groot"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Klein"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Er staat een kleine klok in de hoek van je scherm"</string>
     <string name="grid_title" msgid="1688173478777254123">"App-raster"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Toepassen"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Tik om te bewerken"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Voeg je favoriete lettertypen toe aan elk scherm"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Een rastergrootte kiezen"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Als je de rastergrootte wijzigt, wordt de werkruimte opnieuw geladen. Dit kan een paar seconden duren."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Werkruimte opnieuw laden met %1$s raster"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Kan werkruimte niet opnieuw laden met %1$s raster"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stijl ingesteld"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Klok ingesteld"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Raster ingesteld"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Aangepaste kleur"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Aangepaste vorm"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Naam van aangepaste stijl"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Kleurintensiteit"</string>
     <string name="mode_title" msgid="2394873501427436055">"Donker thema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Tijdelijk uit vanwege Batterijbesparing"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Thema gewijzigd"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Swipe naar links om een andere wijzerplaat te kiezen"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Swipe naar rechts om een andere wijzerplaat te kiezen"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Aangepaste wijzerplaten"</string>
 </resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index b18bcb3..18350d8 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -17,12 +17,13 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="1647136562008520313">"ୱାଲପେପର୍ ଏବଂ ଷ୍ଟାଇଲ୍"</string>
+    <string name="app_name" msgid="1647136562008520313">"ୱାଲପେପର ଏବଂ ଷ୍ଟାଇଲ"</string>
     <string name="theme_title" msgid="2144932106319405101">"ଷ୍ଟାଇଲ୍"</string>
     <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>
@@ -40,7 +41,8 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"ଘଣ୍ଟାର ଆକାର ଲକ ସ୍କ୍ରିନର ବିଷୟବସ୍ତୁ ଅନୁସାରେ ପରିବର୍ତ୍ତନ ହୋଇଥାଏ"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"ବଡ଼"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"ଛୋଟ"</string>
-    <string name="grid_title" msgid="1688173478777254123">"ଆପ୍ ଗ୍ରିଡ୍"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"ଆପଣଙ୍କ ସ୍କ୍ରିନର କୋଣରେ ଏକ ଛୋଟ କ୍ଲକ ଦେଖାଯାଉଛି"</string>
+    <string name="grid_title" msgid="1688173478777254123">"ଆପ ଗ୍ରିଡ"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"ପ୍ରୟୋଗ କରନ୍ତୁ"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ଏଡିଟ କରିବା ପାଇଁ ଟାପ କରନ୍ତୁ"</string>
     <string name="keep_my_wallpaper" msgid="8012385376769568517">"ବର୍ତ୍ତମାନର ୱାଲ୍‌ପେପର୍‌କୁ ରଖନ୍ତୁ"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"ଆପଣଙ୍କ ପସନ୍ଦର ଫଣ୍ଟକୁ ପ୍ରତ୍ୟେକ ସ୍କ୍ରିନ୍‍‍‍‍‍ରେ ଯୋଗ କରନ୍ତୁ"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"ଏକ ଗ୍ରିଡ୍ ଆକାର ବାଛନ୍ତୁ"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"ଗ୍ରିଡର ଆକାର ପରିବର୍ତ୍ତନ କରିବା ୱାର୍କସ୍ପେସକୁ ପୁଣି ଲୋଡ କରିବ ଏବଂ ଏଥିପାଇଁ କିଛି ସେକେଣ୍ଡ ଲାଗିପାରେ।"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s ଗ୍ରିଡ ସହିତ ୱାର୍କସ୍ପେସକୁ ପୁଣି ଲୋଡ କରିବା"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s ଗ୍ରିଡ ସହିତ ୱାର୍କସ୍ପେସକୁ ପୁଣି ଲୋଡ କରିବାରେ ବିଫଳ ହୋଇଛି"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"ଷ୍ଟାଇଲ୍ ସଫଳତାର ସହ ସେଟ୍ ହୋଇଛି"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"ଘଣ୍ଟା ସଫଳତାର ସହ ସେଟ୍ ହୋଇଛି"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"ଗ୍ରିଡ୍ ସଫଳତାର ସହ ସେଟ୍ ହୋଇଛି"</string>
@@ -98,10 +103,11 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"କଷ୍ଟମ୍ ରଙ୍ଗ"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"କଷ୍ଟମ୍ ଆକାର"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"କଷ୍ଟମ୍ ଷ୍ଟାଇଲ୍ ନାମ"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"ରଙ୍ଗ ଇଣ୍ଟେନସିଟି"</string>
     <string name="mode_title" msgid="2394873501427436055">"ଗାଢ଼ା ଥିମ୍"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"ବ୍ୟାଟେରୀ ସେଭର୍ ଯୋଗୁଁ ଅସ୍ଥାୟୀ ଭାବେ ଅକ୍ଷମ କରାଯାଇଛି"</string>
     <string name="mode_changed" msgid="2243581369395418584">"ଥିମ ପରିବର୍ତ୍ତନ କରାଯାଇଛି"</string>
-    <string name="themed_icon_title" msgid="7312460430471956558">"ଥିମ୍ ଯୁକ୍ତ ଆଇକନ୍"</string>
+    <string name="themed_icon_title" msgid="7312460430471956558">"ଥିମ ଯୁକ୍ତ ଆଇକନ"</string>
     <string name="beta_title" msgid="8703819523760746458">"ବିଟା"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"ଆପ୍ ଗ୍ରିଡ୍ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"ୱାଲପେପର ରଙ୍ଗଗୁଡ଼ିକ"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"ଲକ ସ୍କ୍ରିନରେ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଦେଖାନ୍ତୁ"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ଲକ ସ୍କ୍ରିନରେ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଲୁଚାନ୍ତୁ"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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-pa/strings.xml b/res/values-pa/strings.xml
index ed0e4f8..4ec5c27 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>
@@ -39,7 +40,8 @@
     <string name="clock_size_dynamic" msgid="1023930312455061642">"ਪਰਿਵਰਤਨਸ਼ੀਲ"</string>
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"ਘੜੀ ਦਾ ਆਕਾਰ ਲਾਕ ਸਕ੍ਰੀਨ ਦੀ ਸਮੱਗਰੀ ਮੁਤਾਬਕ ਬਦਲਦਾ ਹੈ"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"ਵੱਡਾ"</string>
-    <string name="clock_size_small" msgid="2280449912094164133">"ਛੋਟਾ ਕਰੋ"</string>
+    <string name="clock_size_small" msgid="2280449912094164133">"ਛੋਟਾ"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ ਦੇ ਕੋਨੇ \'ਤੇ ਇੱਕ ਛੋਟੀ ਘੜੀ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ"</string>
     <string name="grid_title" msgid="1688173478777254123">"ਐਪ ਗ੍ਰਿਡ"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"ਲਾਗੂ ਕਰੋ"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ਸੰਪਾਦਨ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
@@ -55,7 +57,7 @@
     <string name="option_previewed_description" msgid="3467217598865047661">"<xliff:g id="ID_1">%1$s</xliff:g>, ਫਿਲਹਾਲ ਪੂਰਵ-ਝਲਕ ਦੇਖੀ ਗਈ"</string>
     <string name="option_change_applied_previewed_description" msgid="9197311327728570816">"<xliff:g id="ID_1">%1$s</xliff:g>, ਉਸ ਵਿਕਲਪ ਨੂੰ ਬਦਲੋ ਜਿਸ ਨੂੰ ਚੁਣਿਆ ਗਿਆ ਅਤੇ ਜਿਸ ਦੀ ਪੂਰਵ-ਝਲਕ ਦੇਖੀ ਗਈ ਹੈ"</string>
     <string name="theme_description" msgid="3697012391785254635">"ਫੌਂਟ: <xliff:g id="ID_1">%1$s</xliff:g>, ਪ੍ਰਤੀਕ: <xliff:g id="ID_2">%2$s</xliff:g>, ਆਕ੍ਰਿਤੀ: <xliff:g id="ID_3">%3$s</xliff:g>, ਰੰਗ: <xliff:g id="ID_4">%4$s</xliff:g>"</string>
-    <string name="default_theme_title" msgid="2555741736622366797">"ਪੂਰਵ-ਨਿਰਧਾਰਤ"</string>
+    <string name="default_theme_title" msgid="2555741736622366797">"ਪੂਰਵ-ਨਿਰਧਾਰਿਤ"</string>
     <string name="preview_name_font" msgid="4465423899630037038">"ਫੌਂਟ"</string>
     <string name="preview_name_icon" msgid="6818927315316316440">"ਪ੍ਰਤੀਕ"</string>
     <string name="preview_name_color" msgid="8776203144994416172">"ਰੰਗ"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"ਹਰ ਸਕ੍ਰੀਨ \'ਤੇ ਆਪਣੇ ਮਨਪਸੰਦ ਫੌਂਟ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"ਗ੍ਰਿਡ ਦਾ ਆਕਾਰ ਚੁਣੋ"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"ਗਰਿੱਡ ਦਾ ਆਕਾਰ ਬਦਲਣ ਨਾਲ ਵਰਕਸਪੇਸ ਰੀਲੋਡ ਹੋਣ ਵਿੱਚ ਕੁਝ ਸਮਾਂ ਲੱਗ ਸਕਦਾ ਹੈ।"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s ਗਰਿੱਡ ਨਾਲ ਵਰਕਸਪੇਸ ਨੂੰ ਰੀਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s ਗਰਿੱਡ ਨਾਲ ਵਰਕਸਪੇਸ ਨੂੰ ਰੀਲੋਡ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"ਸਟਾਈਲ ਸਫਲਤਾਪੂਰਵਕ ਸੈੱਟ ਕੀਤਾ ਗਿਆ"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"ਘੜੀ ਸਫਲਤਾਪੂਰਵਕ ਸੈੱਟ ਕੀਤੀ ਗਈ"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"ਗ੍ਰਿਡ ਸਫਲਤਾਪੂਰਵਕ ਸੈੱਟ ਕੀਤਾ ਗਿਆ"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"ਵਿਉਂਤਿਆ ਰੰਗ"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"ਵਿਉਂਤੀ ਆਕ੍ਰਿਤੀ"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"ਸ਼ੈਲੀ ਦਾ ਵਿਉਂਤਿਆ ਨਾਮ"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"ਰੰਗ ਦੀ ਤੀਬਰਤਾ"</string>
     <string name="mode_title" msgid="2394873501427436055">"ਗੂੜ੍ਹਾ ਥੀਮ"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"ਬੈਟਰੀ ਸੇਵਰ ਕਰਕੇ ਕੁਝ ਸਮੇਂ ਲਈ ਬੰਦ ਕੀਤਾ ਗਿਆ"</string>
     <string name="mode_changed" msgid="2243581369395418584">"ਥੀਮ ਬਦਲਿਆ ਗਿਆ"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਸੂਚਨਾਵਾਂ ਦਿਖਾਓ"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਸੂਚਨਾਵਾਂ ਲੁਕਾਓ"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <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-pl/strings.xml b/res/values-pl/strings.xml
index f67f187..9565886 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Rozmiar zegara zmienia się w zależności od zawartości ekranu blokady"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Duży"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Mały"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Mały zegar wyświetlany w rogu ekranu"</string>
     <string name="grid_title" msgid="1688173478777254123">"Siatka aplikacji"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Zastosuj"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Kliknij, by edytować"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Dodaj swoje ulubione czcionki do każdego ekranu"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Wybierz rozmiar siatki"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Zmiana rozmiaru siatki spowoduje ponowne załadowanie obszaru roboczego. Może to zająć kilka sekund."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Ponowne ładowanie obszaru roboczego z siatką %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Nie udało się ponownie załadować obszaru roboczego z siatką %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Styl został ustawiony"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Zegar został ustawiony"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Siatka została ustawiona"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Kolor niestandardowy"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Kształt niestandardowy"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Nazwa stylu niestandardowego"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intensywność kolorów"</string>
     <string name="mode_title" msgid="2394873501427436055">"Ciemny motyw"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Tymczasowo wyłączono z powodu oszczędzania baterii"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Motyw został zmieniony"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Przesuń w lewo, aby wybrać inną tarczę zegara"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Przesuń w prawo, aby wybrać inną tarczę zegara"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Zegary niestandardowe"</string>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 8de02c3..6a3521d 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"O tamanho do relógio muda de acordo com o conteúdo do ecrã de bloqueio"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Grande"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Pequeno"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Um pequeno relógio é apresentado no canto do ecrã"</string>
     <string name="grid_title" msgid="1688173478777254123">"Grelha de apps"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Aplicar"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Toque para editar"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Adicione os seus tipos de letra favoritos a todos os ecrãs."</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Escolha um tamanho de grelha"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Mudar tam. grelha atualiza o esp. trab. e pode demorar algum tempo."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"A atualizar o espaço de trabalho com a grelha %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Não foi possível atualizar o espaço de trabalho com a grelha %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Estilo definido com êxito."</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Relógio definido com êxito."</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Grelha definida com êxito."</string>
@@ -85,8 +90,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">"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_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_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>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Cor personalizada"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Forma personalizada"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Nome do estilo personalizado"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intensidade da cor"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tema escuro"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Temporariamente desativado devido à Poupança de bateria"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema alterado"</string>
@@ -105,7 +111,7 @@
     <string name="beta_title" msgid="8703819523760746458">"Beta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Altere a grelha de apps"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"Cores imag. de fundo"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Ícones, texto, etc. condizem c/ cores da imag. de fundo"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Ícones, texto, etc. condizem com a imagem de fundo"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Cor da imagem de fundo"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Cores básicas"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Outras cores"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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/strings.xml b/res/values-pt/strings.xml
index a5a3ba8..af2b0a3 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"O tamanho do relógio muda de acordo com o conteúdo na tela de bloqueio"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Grande"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Pequeno"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Um relógio pequeno aparece no canto da tela"</string>
     <string name="grid_title" msgid="1688173478777254123">"Grade de apps"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Aplicar"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Toque para editar"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Adicione suas fontes favoritas a cada tela"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Escolha o tamanho da grade"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"A mudança do tamanho da grade recarrega o espaço de trabalho e pode levar alguns segundos."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Recarregando o espaço de trabalho com uma grade %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Falha ao recarregar o espaço de trabalho com uma grade %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Estilo definido"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Relógio definido"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Grade definida"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Cor personalizada"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Formato personalizado"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Nome do estilo personalizado"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intensidade da cor"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tema escuro"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Desativado temporariamente pela Economia de bateria"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema trocado"</string>
@@ -105,7 +111,7 @@
     <string name="beta_title" msgid="8703819523760746458">"Beta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Mudar a grade de apps"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"Cores do plano de fundo"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Ícones, texto e mais cores que combinam com o plano de fundo"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Ícones, texto e mais para combinar com o plano de fundo"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Cor do plano de fundo"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Cores básicas"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Outras cores"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Deslize para a esquerda para escolher outro mostrador do relógio"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Deslize para a direita para escolher outro mostrador do relógio"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Mostradores personalizados"</string>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index c0cecf4..44d056f 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>
@@ -39,7 +40,8 @@
     <string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamică"</string>
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Dimensiunea ceasului se schimbă în funcție de conținutul ecranului de blocare"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Mare"</string>
-    <string name="clock_size_small" msgid="2280449912094164133">"Mic"</string>
+    <string name="clock_size_small" msgid="2280449912094164133">"Mică"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Un ceas mic apare în colțul ecranului"</string>
     <string name="grid_title" msgid="1688173478777254123">"Grilă aplicații"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Aplică"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Atinge pentru a modifica"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Adaugă fonturile preferate pe fiecare ecran"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Alege o dimensiune de grilă"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Schimbarea dimensiunii grilei va reîncărca spațiul de lucru și poate dura câteva secunde."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Se reîncarcă spațiul de lucru cu grila %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Nu s-a reîncărcat spațiul de lucru cu grila %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stilul a fost setat"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Ceasul a fost setat"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Grila a fost setată"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Culoare personalizată"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Formă personalizată"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Numele stilului personalizat"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intensitatea culorilor"</string>
     <string name="mode_title" msgid="2394873501427436055">"Temă întunecată"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Dezactivat temporar de Economisirea bateriei"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema a fost schimbată"</string>
@@ -105,7 +111,7 @@
     <string name="beta_title" msgid="8703819523760746458">"Beta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Schimbă grila de aplicații"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"Culori de fundal"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Culori pentru pictograme, text și altele din imaginea de fundal"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Culori pictograme, text etc. asortate cu imaginea de fundal"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Culoarea imaginii de fundal"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Culori de bază"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Alte culori"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Glisează spre stânga ca să alegi alt aspect de ceas"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Glisează spre dreapta ca să alegi alt aspect de ceas"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Ceasuri personalizate"</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index c20c1a2..3a13423 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Размер часов меняется в зависимости от контента на заблокированном экране"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Большой"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Маленький"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Небольшие часы в углу экрана"</string>
     <string name="grid_title" msgid="1688173478777254123">"Сетка приложений"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Применить"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Нажмите, чтобы изменить"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Добавьте любимые шрифты на каждый экран."</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Выберите размер сетки"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"При изменении размера сетки рабочая область обновляется. Это может занять несколько секунд."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Обновление рабочей области с сеткой \"%1$s\"."</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Не удалось обновить рабочую область с сеткой \"%1$s\"."</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Стиль настроен."</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Часы настроены."</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Сетка настроена."</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Пользовательский цвет"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Пользовательская форма"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Название пользовательского стиля"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Интенсивность цвета"</string>
     <string name="mode_title" msgid="2394873501427436055">"Тёмная тема"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Временно отключено из-за режима энергосбережения"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Тема изменена"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"Показывать уведомления на заблокированном экране"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Скрывать уведомления на заблокированном экране"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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-si/strings.xml b/res/values-si/strings.xml
index d34dea4..6c1033a 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"අගුළු තිරයේ අන්තර්ගතය අනුව ඔරලෝසුවේ තරම වෙනස් වේ"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"විශාල"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"කුඩා"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"ඔබේ තිරයේ කෙළවරේ කුඩා ඔරලෝසුවක් පෙන්වයි"</string>
     <string name="grid_title" msgid="1688173478777254123">"යෙදුම් ජාලකය"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"යොදන්න"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"සංස්කරණයට තට්ටු කරන්න"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"සෑම තිරයටම ඔබේ ප්‍රියතම අකුරු එක් කරන්න"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"ජාලක තරමක් තෝරා ගන්න"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"ජාලක ප්‍රමාණය වෙනස් කිරීම කාර්ය ඉඩ නැවත පූරණය කරන අතර තත්පර කිහිපයක් ගත විය හැක."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s ජාලකය සමග කාර්ය ඉඩ නැවත පූරණය වේ"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s ජාලකය සමග කාර්ය ඉඩ නැවත පූරණය කිරීමට අසමත් විය"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"විලාස සාර්ථකව සැකසිණි"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"ඔරලෝසුව සාර්ථකව සැකසිණි"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"ජාලකය සාර්ථකව සැකසිණි"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"අභිරුචි වර්ණය"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"අභිරුචි හැඩය"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"අභිරුචි මෝස්තර නම"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"වර්ණ තීව්‍රතාවය"</string>
     <string name="mode_title" msgid="2394873501427436055">"අඳුරු තේමාව"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"බැටරි සුරැකුම හේතුවෙන් තාවකාලිකව අබල කරන ලදි"</string>
     <string name="mode_changed" msgid="2243581369395418584">"තේමාව වෙනස් විය"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <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-sk/strings.xml b/res/values-sk/strings.xml
index 8bf29a6..c418f84 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Veľkosť hodín sa mení podľa obsahu na uzamknutej obrazovke"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Veľké"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Malé"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"V rohu obrazovky sa zobrazujú malé hodiny"</string>
     <string name="grid_title" msgid="1688173478777254123">"Mriežka aplik."</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Použiť"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Klepnutím upravte"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Pridajte na každú obrazovku svoje obľúbené písma"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Vyberte veľkosť mriežky"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> × <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Zmena veľkosti mriežky znova načíta pracovný priestor a môže trvať niekoľko sekúnd."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Znova sa načítava pracovný priestor s mriežkou %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Nepodarilo sa znova načítať pracovný priestor s mriežkou %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Štýl bol úspešne nastavený"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Hodiny boli úspešne nastavené"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Mriežka bola úspešne nastavená"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Vlastná farba"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Vlastný tvar"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Názov vlastného štýlu"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intenzita farieb"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tmavý motív"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Dočasne vypnuté šetričom batérie"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Motív bol zmenený"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Potiahnutím doľava vyberiete iný ciferník"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Potiahnutím doprava vyberiete iný ciferník"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Vlastné hodiny"</string>
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 5097ac3..3899537 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Velikost ure se spremeni glede na vsebino zaklenjenega zaslona."</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Velika"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Majhna"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"V kotu zaslona je prikazana majhna ura"</string>
     <string name="grid_title" msgid="1688173478777254123">"Mreža aplikacij"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Uporabi"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Dotaknite se za urejanje"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Dodajte priljubljeno pisavo na vsak zaslon"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Izbira velikosti mreže"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Če spremenite velikost mreže, se znova naloži delovni prostor, kar lahko traja nekaj sekund."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Vnovično nalaganje delovnega prostora z mrežo %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Delovnega prostora z mrežo %1$s ni bilo mogoče znova naložiti"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Slog je uspešno nastavljen"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Ura je uspešno nastavljena"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Mreža je uspešno nastavljena"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Barva po meri"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Oblika po meri"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Ime sloga po meri"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Jakost barv"</string>
     <string name="mode_title" msgid="2394873501427436055">"Temna tema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Začasno onemogočeno zaradi varčevanja z energijo baterije."</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema je spremenjena."</string>
@@ -116,7 +122,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,13 +130,17 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"Prikaz obvestil na zaklenjenem zaslonu"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skrivanje obvestil na zaklenjenem zaslonu"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Prikaži obvestila na zaklenjenem zaslonu"</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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Povlecite v levo, če želite izbrati drugačno številčnico"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Povlecite v desno, če želite izbrati drugačno številčnico"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Ure po meri"</string>
 </resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 95a8fa6..23c96e3 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">"Ora: Cilësimet"</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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Madhësia e orës ndryshon sipas përmbajtjes së ekranit të kyçjes"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"E madhe"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"E vogël"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Në këndin e ekranit shfaqet një orë e vogël"</string>
     <string name="grid_title" msgid="1688173478777254123">"Rrjeta e aplikacioneve"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Zbato"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Trokit për të modifikuar"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Shto fontet e tua të preferuara në çdo ekran"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Zgjidh një madhësi rrjete"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Ndryshimi i rrjetës ringarkon vendin e punës dhe zgjat disa sekonda."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Vendi i punës po ringarkohet me rrjetën %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Vendi i punës nuk mund të ringarkohej me rrjetën %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stili u caktua me sukses"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Ora u caktua me sukses"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Rrjeta u caktua me sukses"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Ngjyra e personalizuar"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Forma e personalizuar"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Emri i stilit të personalizuar"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intensiteti i ngjyrave"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tema e errët"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Çaktivizuar për shkak të \"Kursyesit të baterisë\""</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema është ndryshuar"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Rrëshqit shpejt majtas për të zgjedhur një tjetër fushë ore"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Rrëshqit shpejt djathtas për të zgjedhur një tjetër fushë ore"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Fusha ore të personalizuara"</string>
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 0028732..8be5c15 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>
@@ -39,7 +40,8 @@
     <string name="clock_size_dynamic" msgid="1023930312455061642">"Динамички"</string>
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Величина сата се мења у складу са садржајем закључаног екрана"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Велико"</string>
-    <string name="clock_size_small" msgid="2280449912094164133">"Мало"</string>
+    <string name="clock_size_small" msgid="2280449912094164133">"Мали"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Мали сат се приказује у углу екрана"</string>
     <string name="grid_title" msgid="1688173478777254123">"Мрежа апл."</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Примени"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Додирните да бисте изменили"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Додајте омиљене фонтове на сваки екран"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Одаберите величину мреже"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Нова величина мреже поново учитава радни простор за пар секунди."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Радни простор се поново учитава уз мрежу %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Поновно учитавање радног простора уз мрежу %1$s није успело"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Стил је подешен"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Подешавање сата је успело"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Мрежа је подешена"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Прилагођена боја"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Прилагођени облик"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Прилагођени назив стила"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Интензитет боја"</string>
     <string name="mode_title" msgid="2394873501427436055">"Тамна тема"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Привремено је онемогућено због уштеде батерије"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Тема је промењена"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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-sv/strings.xml b/res/values-sv/strings.xml
index b600940..8cfa9c8 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Klockans storlek ändras utifrån innehållet på låsskärmen"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Stor"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Liten"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"En liten klockas visas i skärmens hörn"</string>
     <string name="grid_title" msgid="1688173478777254123">"Apprutnät"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Använd"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Tryck för att redigera"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Lägg till teckensnitt som du gillar på varje skärm"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Välj rutnätsstorlek"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"När du ändrar rutnätsstorlek läses arbetsytan in igen. Detta kan ta några sekunder."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Läser in arbetsytan igen med rutnätet %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Det gick inte att läsa in arbetsytan igen med rutnätet %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stilen har angetts"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Klockan har angetts"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Rutnätet har angetts"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Anpassad färg"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Anpassat område"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Namn på anpassat format"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Färgintensitet"</string>
     <string name="mode_title" msgid="2394873501427436055">"Mörkt tema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Tillfälligt inaktiverat i batterisparläge"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Temat har ändrats"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Svep åt vänster för att välja en annan urtavla"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Svep åt höger för att välja en annan urtavla"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Anpassade urtavlor"</string>
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index f63c537..9c1fb1f 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Ukubwa wa saa hubadilika kulingana na maudhui yaliyo kwenye skrini iliyofungwa"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Kubwa"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Ndogo"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Saa ndogo inaonekana kwenye kona ya skrini yako"</string>
     <string name="grid_title" msgid="1688173478777254123">"Gridi ya programu"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Tumia"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Gusa ili ubadilishe"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Ongeza fonti unayopenda kwenye kila skrini"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Chagua ukubwa wa gridi"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Kubadilisha ukubwa wa gridi kutapakia upya nafasi ya kazi na kunaweza kuchukua sekunde kadhaa."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Inapakia upya nafasi ya kazi kwa kutumia gridi ya %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Imeshindwa kupakia upya nafasi ya kazi kwa kutumia gridi ya %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Mtindo umewekwa"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Imeweka saa"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Gridi imewekwa"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Rangi maalum"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Umbo maalum"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Jina la muundo maalum"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Ukolezaji wa rangi"</string>
     <string name="mode_title" msgid="2394873501427436055">"Mandhari meusi"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Imezimwa kwa muda kwa sababu ya Kiokoa Betri"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Mandhari yamebadilishwa"</string>
@@ -109,14 +115,14 @@
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Rangi ya mandhari"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Rangi za msingi"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Rangi nyinginezo"</string>
-    <string name="preset_color_subheader" msgid="8230588536141279371">"Chagua rangi yoyote ya aikoni zako, saa na zaidi"</string>
+    <string name="preset_color_subheader" msgid="8230588536141279371">"Chagua rangi yoyote uitumie kwenye aikoni, saa na zaidi"</string>
     <string name="color_changed" msgid="7029571720331641235">"Rangi imebadilishwa"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"Inayobadilika"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"Rangi za mfumo"</string>
     <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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
-    <string name="more_colors" msgid="3191071655353004591">"Rangi Nyingi 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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Telezesha kidole kushoto ili uchague uso tofauti wa saa"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Telezesha kidole kulia ili uchague uso tofauti wa saa"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Uso wa Saa"</string>
 </resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index ba70c1b..eaf444f 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"பூட்டுத் திரையில் உள்ள உள்ளடக்கத்தைப் பொறுத்து கடிகாரத்தின் அளவு மாறுபடும்"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"பெரியது"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"சிறியது"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"உங்கள் திரையின் மூலையில் ஒரு சிறிய கடிகாரம் காட்டப்படும்"</string>
     <string name="grid_title" msgid="1688173478777254123">"ஆப்ஸ் கட்டம்"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"பயன்படுத்து"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"\'தீமைத்\' திருத்த தட்டவும்"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"ஒவ்வொரு திரையிலும் உங்களுக்குப் பிடித்த எழுத்துருக்களைச் சேருங்கள்"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"கட்ட அளவைத் தேர்வுசெய்தல்"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"கட்ட அளவை மாற்றினால் பணியிடம் ரெஃப்ரெஷ் செய்யப்படும், சில வினாடிகள் ஆகக்கூடும்."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s கட்டத்துடன் பணியிடத்தை ரெஃப்ரெஷ் செய்கிறது"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s கட்டத்துடன் பணியிடத்தை ரெஃப்ரெஷ் செய்ய முடியவில்லை"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"ஸ்டைல் அமைக்கப்பட்டது"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"கடிகாரம் அமைக்கப்பட்டது"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"கட்டம் அமைக்கப்பட்டது"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"பிரத்தியேக வண்ணம்"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"பிரத்தியேக வடிவம்"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"பிரத்தியேகத் தோற்றத்தின் பெயர்"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"வண்ணத்தின் அடர்த்தி"</string>
     <string name="mode_title" msgid="2394873501427436055">"டார்க் தீம்"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"பேட்டரிச் சேமிப்பான் காரணமாகத் தற்காலிகமாக முடக்கப்பட்டுள்ளது"</string>
     <string name="mode_changed" msgid="2243581369395418584">"தீம் மாற்றப்பட்டது"</string>
@@ -105,7 +111,7 @@
     <string name="beta_title" msgid="8703819523760746458">"பீட்டா"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"ஆப்ஸ் கட்டக் காட்சியை மாற்றும்"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"வால்பேப்பர் நிறங்கள்"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"வால்பேப்பருடன் பொருந்தும் ஐகான், உரை &amp; பலவற்றின் வண்ணம்"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"ஐகான், உரை மற்றும் பலவற்றின் வண்ணம் வால்பேப்பருடன் பொருந்தும்"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"வால்பேப்பரின் நிறம்"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"அடிப்படை வண்ணங்கள்"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"பிற வண்ணங்கள்"</string>
@@ -116,7 +122,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,13 +130,17 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"பூட்டுத் திரையில் அறிவிப்புகளைக் காட்டும்"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"பூட்டுத் திரையில் அறிவிப்புகளைக் காட்டாது"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"பூட்டுத் திரையில் அறிவிப்புகளைக் காட்டு"</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-te/strings.xml b/res/values-te/strings.xml
index af8e688..164dfc6 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"లాక్ స్క్రీన్ కంటెంట్ ప్రకారం గడియారం సైజ్ మారుతుంది"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"పెద్దది"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"చిన్నది"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"మీ స్క్రీన్ మూలన ఒక చిన్న గడియారం కనిపిస్తుంది"</string>
     <string name="grid_title" msgid="1688173478777254123">"యాప్ గ్రిడ్"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"వర్తింపజేయి"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ఎడిట్ చేయడానికి నొక్కండి"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"ప్రతి స్క్రీన్‌కు మీకు ఇష్టమైన ఫాంట్‌లను జోడించండి"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"ఒక గ్రిడ్ సైజ్‌ను ఎంచుకోండి"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"గ్రిడ్ సైజ్‌ను మార్చడం వలన వర్క్ స్పేస్ రీలోడ్ అవుతుంది, దానికి కొన్ని సెకన్లు పట్టవచ్చు."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s గ్రిడ్‌తో వర్క్ స్పేస్‌ను రీలోడ్ చేస్తోంది"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s గ్రిడ్‌తో వర్క్ స్పేస్‌ను రీలోడ్ చేయడం విఫలమైంది"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"స్టైల్ విజయవంతంగా సెట్ చేయబడింది"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"గడియారం విజయవంతంగా సెట్ చేయబడింది"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"గ్రిడ్ విజయవంతంగా సెట్ చేయబడింది"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"అనుకూల రంగు"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"అనుకూల ఆకారం"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"అనుకూల స్టయిల్ పేరు"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"రంగు తీవ్రత"</string>
     <string name="mode_title" msgid="2394873501427436055">"ముదురు రంగు రూపం"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"బ్యాటరీ సేవర్ కారణంగా తాత్కాలికంగా డిజేబుల్‌ చేయబడింది"</string>
     <string name="mode_changed" msgid="2243581369395418584">"థీమ్ మార్చబడింది"</string>
@@ -109,14 +115,14 @@
     <string name="wallpaper_color_title" msgid="5687965239180986458">"వాల్‌పేపర్ రంగు"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"ప్రాథమిక రంగులు"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"ఇతర రంగులు"</string>
-    <string name="preset_color_subheader" msgid="8230588536141279371">"మీ చిహ్నాలు, గడియారం, అలాగే మరిన్నింటి కోసం ఏదైనా రంగును ఎంచుకోండి"</string>
+    <string name="preset_color_subheader" msgid="8230588536141279371">"మీ చిహ్నాలు, గడియారం, మరిన్నింటి కోసం రంగును ఎంచుకోండి"</string>
     <string name="color_changed" msgid="7029571720331641235">"రంగు మార్చబడింది"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"డైనమిక్"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"సిస్టమ్ రంగులు"</string>
     <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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"లాక్ స్క్రీన్‌లో నోటిఫికేషన్‌లను చూపండి"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"లాక్ స్క్రీన్‌లో నోటిఫికేషన్‌లను దాచండి"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <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-th/strings.xml b/res/values-th/strings.xml
index ff21f6d..34565ee 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"ขนาดของนาฬิกาจะเปลี่ยนตามเนื้อหาในหน้าจอล็อก"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"ใหญ่"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"เล็ก"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"นาฬิกาขนาดเล็กจะแสดงที่มุมของหน้าจอ"</string>
     <string name="grid_title" msgid="1688173478777254123">"ตารางกริดแอป"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"ใช้"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"แตะเพื่อแก้ไข"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"เพิ่มแบบอักษรที่ชอบในทุกหน้าจอ"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"เลือกขนาดตารางกริด"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"การเปลี่ยนขนาดตารางกริดจะโหลดพื้นที่ทำงานซ้ำและอาจใช้เวลาสักครู่"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"กำลังโหลดพื้นที่ทำงานซ้ำด้วยตารางกริด %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"โหลดพื้นที่ทำงานซ้ำด้วยตาราง %1$s ไม่สำเร็จ"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"ตั้งค่ารูปแบบเรียบร้อยแล้ว"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"ตั้งนาฬิกาเรียบร้อยแล้ว"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"ตั้งค่าตารางกริดเรียบร้อยแล้ว"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"สีที่กำหนดเอง"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"รูปร่างที่กำหนดเอง"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"ชื่อรูปแบบที่กำหนดเอง"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"ความเข้มของสี"</string>
     <string name="mode_title" msgid="2394873501427436055">"ธีมมืด"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"ปิดใช้ชั่วคราวเนื่องจากอยู่ในโหมดประหยัดแบตเตอรี่"</string>
     <string name="mode_changed" msgid="2243581369395418584">"เปลี่ยนธีมแล้ว"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"แสดงการแจ้งเตือนบนหน้าจอล็อก"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ซ่อนการแจ้งเตือนบนหน้าจอล็อก"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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-tl/strings.xml b/res/values-tl/strings.xml
index a477a1f..d945c1c 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Mga pagbabago sa laki ng orasan ayon sa content ng lock screen"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Malaki"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Maliit"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"May makikitang maliit na orasan sa sulok ng iyong screen"</string>
     <string name="grid_title" msgid="1688173478777254123">"Grid ng app"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Ilapat"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"I-tap para ma-edit"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Idagdag ang mga paborito mong font sa bawat screen"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Pumili ng laki ng grid"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Mare-reload ang workspace kapag binago ang grid size."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Nire-reload ang workspace na may %1$s grid"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Hindi na-reload ang workspace nang may %1$s grid"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Matagumpay na naitakda ang istilo"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Matagumpay na naitakda ang orasan"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Matagumpay na naitakda ang grid"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Custom na kulay"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Custom na hugis"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Custom na pangalan ng istilo"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Intensity ng kulay"</string>
     <string name="mode_title" msgid="2394873501427436055">"Madilim na tema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Pansamantalang na-disable dahil sa Pantipid ng Baterya"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Pinalitan ang tema"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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/strings.xml b/res/values-tr/strings.xml
index d560791..209cd68 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,12 +35,13 @@
     <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">"Turkuaz"</string>
+    <string name="clock_color_teal" msgid="7499223425741344251">"Deniz mavisi"</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>
     <string name="clock_size_large" msgid="3143248715744138979">"Büyük"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Küçük"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Ekranınızın köşesinde küçük bir saat görünür"</string>
     <string name="grid_title" msgid="1688173478777254123">"Uygulama tablosu"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Uygula"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Düzenlemek için dokunun"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"En sevdiğiniz yazı tiplerini her ekrana ekleyin"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Izgara boyutu seçin"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Izgara boyutu değiştirilirse çalışma alanı yeniden yüklenir. Bu işlem birkaç saniye sürebilir."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Çalışma alanı, %1$s ızgarasıyla yeniden yükleniyor"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Çalışma alanı, %1$s ızgarasıyla yeniden yüklenemedi"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Stil başarıyla ayarlandı"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Saat başarıyla ayarlandı"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Izgara başarıyla ayarlandı"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Özel renk"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Özel şekil"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Özel stil adı"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Renk yoğunluğu"</string>
     <string name="mode_title" msgid="2394873501427436055">"Koyu tema"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Pil Tasarrufu nedeniyle geçici olarak devre dışı bırakıldı"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Tema değişti"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Farklı bir kadran seçmek için sola kaydırın"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Farklı bir kadran seçmek için sağa kaydırın"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Özel Saatler"</string>
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index b87d4f7..a107312 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -17,12 +17,13 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="1647136562008520313">"Оформлення і стиль"</string>
+    <string name="app_name" msgid="1647136562008520313">"Оформлення й стиль"</string>
     <string name="theme_title" msgid="2144932106319405101">"Стиль"</string>
     <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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Розмір годинника змінюється відповідно до вмісту заблокованого екрана"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Великий"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Малий"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"У куті екрана відображається маленький годинник"</string>
     <string name="grid_title" msgid="1688173478777254123">"Сітка додатків"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Застосувати"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Торкніться, щоб змінити"</string>
@@ -55,7 +57,7 @@
     <string name="option_previewed_description" msgid="3467217598865047661">"<xliff:g id="ID_1">%1$s</xliff:g> (відображається зараз)"</string>
     <string name="option_change_applied_previewed_description" msgid="9197311327728570816">"<xliff:g id="ID_1">%1$s</xliff:g>, змінити елемент, який ви вибрали й переглядаєте"</string>
     <string name="theme_description" msgid="3697012391785254635">"Шрифт: <xliff:g id="ID_1">%1$s</xliff:g>; значки: <xliff:g id="ID_2">%2$s</xliff:g>; форма: <xliff:g id="ID_3">%3$s</xliff:g>; колір: <xliff:g id="ID_4">%4$s</xliff:g>"</string>
-    <string name="default_theme_title" msgid="2555741736622366797">"За умовчанням"</string>
+    <string name="default_theme_title" msgid="2555741736622366797">"Стандарт"</string>
     <string name="preview_name_font" msgid="4465423899630037038">"Шрифт"</string>
     <string name="preview_name_icon" msgid="6818927315316316440">"Значок"</string>
     <string name="preview_name_color" msgid="8776203144994416172">"Колір"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Додайте вибрані шрифти до кожного екрана"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Виберіть розмір сітки"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Якщо змінити розмір сітки, робоча область перезавантажиться. Це може зайняти кілька секунд."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Перезавантаження робочої області із сіткою %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Не вдалося перезавантажити робочу область із сіткою %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Тему налаштовано"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Годинник налаштовано"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Сітку налаштовано"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Спеціальний колір"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Спеціальна фігура"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Назва спеціального стилю"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Інтенсивність кольору"</string>
     <string name="mode_title" msgid="2394873501427436055">"Темна тема"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Тимчасово вимкнено, оскільки працює режим енергозбереження"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Тему змінено"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"Показувати сповіщення на заблокованому екрані"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Приховувати сповіщення на заблокованому екрані"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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-ur/strings.xml b/res/values-ur/strings.xml
index c642bb9..a241ed0 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"مقفل اسکرین کے مواد کے مطابق گھڑی کا سائز تبدیل ہوتا ہے"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"بڑا"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"چھوٹا"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"آپ کی اسکرین کے کونے میں ایک چھوٹی گھڑی دکھائی دیتی ہے"</string>
     <string name="grid_title" msgid="1688173478777254123">"ایپ گرڈ"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"لاگو کریں"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ترمیم کرنے کے لیے تھپتھپائيں"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"ہر اسکرین میں اپنے پسندیدہ فونٹس شامل کریں"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"گرڈ کا سائز منتخب کریں"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"GRid کا سائز تبدیل کرنے سے ورک اسپیس دوبارہ لوڈ ہو جائے گا اور اس میں چند سیکنڈ لگ سکتے ہیں۔"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"%1$s GRid کے ساتھ ورک اسپیس کو دوبارہ لوڈ کرنا"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"%1$s GRid کے ساتھ ورک اسپیس کو دوبارہ لوڈ کرنے میں ناکام"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"طرز کامیابی کے ساتھ سیٹ ہو گیا"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"گھڑی کامیابی کے ساتھ سیٹ ہو گئی"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"گرڈ کامیابی کے ساتھ سیٹ ہو گیا"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"حسب ضرورت رنگ"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"حسب ضرورت شکل"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"حسب ضرورت طرز کا نام"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"رنگ کی شدت"</string>
     <string name="mode_title" msgid="2394873501427436055">"گہری تھیم"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"بیٹری سیور کی وجہ سے عارضی طور پر غیر فعال ہے"</string>
     <string name="mode_changed" msgid="2243581369395418584">"تھیم تبدیل کر دی گئی"</string>
@@ -105,7 +111,7 @@
     <string name="beta_title" msgid="8703819523760746458">"بی ٹا"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"ایپ گرڈ تبدیل کریں"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"وال پیپر کے رنگ"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"آپ کے وال پیپر موجود آئیکنز، ٹیکسٹ اور مزید مماثل رنگ"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"آئیکنز، ٹیکسٹ اور مزید آپ کے وال پیپر سے مماثل رنگ"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"وال پیپر کا رنگ"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"بنیادی رنگ"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"دیگر رنگ"</string>
@@ -116,7 +122,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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"مقفل اسکرین پر اطلاعات دکھائیں"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"مقفل اسکرین پر اطلاعات چھپائیں"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <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-uz/strings.xml b/res/values-uz/strings.xml
index 4520ec3..5bf7e44 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Soat hajmi ekran qulfidagi kontent asosida oʻzgaradi"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Yirik"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Kichik"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Ekran chekkasida kichik soat chiqishi"</string>
     <string name="grid_title" msgid="1688173478777254123">"Ilovalar jadvali"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Tatbiq etish"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Tahrirlash uchun tegining"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Sevimli shriftlarni har bir ekranga kiriting"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Kataklar hajmini tanlang"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Kataklar hajmi tanlansa, ishchi maydon bir necha soniyada qayta yuklanadi."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Ishchi maydon %1$s hajmida qayta yuklanmoqda"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Ishchi maydon %1$s hajmida qayta yuklanmadi"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Dizayn sozlandi"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Soat sozlandi"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Kataklar sozlandi"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Maxsus rang"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Maxsus shakl"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Maxsus uslub nomi"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Rang zichligi"</string>
     <string name="mode_title" msgid="2394873501427436055">"Tungi mavzu"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Quvvat tejash maqsadida vaqtinchalik faolsizlantirilgan"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Mavzu oʻzgartirildi"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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/strings.xml b/res/values-vi/strings.xml
index 7ed6b59..36a82d7 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Kích thước đồng hồ thay đổi theo nội dung trên màn hình khoá"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Lớn"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Nhỏ"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Một chiếc đồng hồ nhỏ hiển thị ở góc màn hình"</string>
     <string name="grid_title" msgid="1688173478777254123">"Lưới ứng dụng"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Áp dụng"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Nhấn để chỉnh sửa"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Thêm phông chữ bạn yêu thích vào mọi màn hình"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Chọn kích thước lưới"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Không gian làm việc sẽ tải lại nếu bạn thay đổi kích thước lưới (có thể mất vài giây)."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Đang tải lại không gian làm việc để áp dụng lưới %1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Không tải lại được không gian làm việc để áp dụng lưới %1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Đã đặt kiểu thành công"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Đã đặt đồng hồ thành công"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"Đã đặt lưới thành công"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Màu tùy chỉnh"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Hình dạng tùy chỉnh"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Tên kiểu tùy chỉnh"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Cường độ màu sắc"</string>
     <string name="mode_title" msgid="2394873501427436055">"Giao diện tối"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Tạm thời tắt do tính năng của Trình tiết kiệm pin"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Đã thay đổi giao diện"</string>
@@ -109,14 +115,14 @@
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Màu hình nền"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Màu cơ bản"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Màu khác"</string>
-    <string name="preset_color_subheader" msgid="8230588536141279371">"Chọn màu bất kỳ cho biểu tượng, đồng hồ của bạn, v.v."</string>
+    <string name="preset_color_subheader" msgid="8230588536141279371">"Chọn màu cho các biểu tượng, đồng hồ, v.v."</string>
     <string name="color_changed" msgid="7029571720331641235">"Đã thay đổi màu"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"Động"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"Màu hệ thống"</string>
     <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>
@@ -125,12 +131,16 @@
     <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="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>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Vuốt sang trái để chọn mặt đồng hồ khác"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Vuốt sang phải để chọn mặt đồng hồ khác"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Đồng hồ tuỳ chỉnh"</string>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index b194ca1..1f1326d 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -17,12 +17,13 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="1647136562008520313">"壁纸和样式"</string>
+    <string name="app_name" msgid="1647136562008520313">"壁纸与个性化"</string>
     <string name="theme_title" msgid="2144932106319405101">"样式"</string>
     <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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"时钟大小会依据锁定屏幕上的内容而变化"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"大"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"小"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"一个小型时钟显示在界面一角"</string>
     <string name="grid_title" msgid="1688173478777254123">"应用网格"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"应用"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"点按即可修改"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"将您喜爱的字体应用于每个屏幕上的文字"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"选择网格大小"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"更改网格大小将会重新加载工作区，这可能需要几秒钟的时间。"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"正在重新加载网格大小为“%1$s”的工作区"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"未能重新加载网格大小为“%1$s”的工作区"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"已成功设置样式"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"已成功设置时钟"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"已成功设置网格"</string>
@@ -98,10 +103,11 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"自定义颜色"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"自定义形状"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"自定义样式名称"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"色彩强度"</string>
     <string name="mode_title" msgid="2394873501427436055">"深色主题"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"因省电模式已开启，该功能被暂时停用了"</string>
     <string name="mode_changed" msgid="2243581369395418584">"主题已更改"</string>
-    <string name="themed_icon_title" msgid="7312460430471956558">"带主题的图标"</string>
+    <string name="themed_icon_title" msgid="7312460430471956558">"主题图标"</string>
     <string name="beta_title" msgid="8703819523760746458">"Beta 版"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"更改应用网格"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"壁纸颜色"</string>
@@ -113,10 +119,10 @@
     <string name="color_changed" msgid="7029571720331641235">"颜色已更改"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"动态"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"系统颜色"</string>
-    <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"向左快捷方式"</string>
-    <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"向右快捷方式"</string>
+    <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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"在锁定的屏幕上显示通知"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"在锁定的屏幕上不显示通知"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 3c0c8c6..bfe881e 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"時鐘按上鎖畫面內容變更大小"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"大"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"小"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"在螢幕角落顯示小時鐘"</string>
     <string name="grid_title" msgid="1688173478777254123">"應用程式網格"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"套用"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"輕按即可編輯"</string>
@@ -62,9 +64,12 @@
     <string name="preview_name_shape" msgid="5676971146080968721">"形狀"</string>
     <string name="preview_name_wallpaper" msgid="1738652462949531828">"桌布"</string>
     <string name="font_card_title" msgid="2343292653502548685">"ABC • abc • 123"</string>
-    <string name="font_card_body" msgid="6790525594503904468">"讓每個畫面顯示您喜愛的字型"</string>
+    <string name="font_card_body" msgid="6790525594503904468">"讓每個畫面顯示你喜愛的字型"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"請選擇網格大小"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"如果變更網格大小，系統會重新載入工作區，過程可能需時數秒。"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"正在重新載入網格大小為「%1$s」的工作區"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"無法重新載入網格大小為「%1$s」的工作區"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"成功設定樣式"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"成功設定時鐘"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"成功設定網格"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"自訂顏色"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"自訂形狀"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"自訂樣式嘅名"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"顏色強度"</string>
     <string name="mode_title" msgid="2394873501427436055">"深色主題背景"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"因「慳電模式」而暫時停用"</string>
     <string name="mode_changed" msgid="2243581369395418584">"已經變咗主題"</string>
@@ -109,14 +115,14 @@
     <string name="wallpaper_color_title" msgid="5687965239180986458">"桌布顏色"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"基本顏色"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"其他顏色"</string>
-    <string name="preset_color_subheader" msgid="8230588536141279371">"為圖示、時鐘等選擇任何顏色"</string>
+    <string name="preset_color_subheader" msgid="8230588536141279371">"為圖示、時鐘等選擇顏色"</string>
     <string name="color_changed" msgid="7029571720331641235">"已經變咗顏色"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"動態"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"系統顏色"</string>
     <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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"在上鎖畫面顯示通知"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"在上鎖畫面隱藏通知"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 72a137b..417856b 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"時鐘大小會依螢幕鎖定畫面上的內容調整"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"大"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"小"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"在畫面角落顯示小型時鐘"</string>
     <string name="grid_title" msgid="1688173478777254123">"應用程式格線"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"套用"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"輕觸這裡即可編輯"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"將你喜愛的字型套用到每個畫面"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"選擇網格大小"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g> x <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"如果變更網格大小，系統會重新載入工作區，且需要幾秒鐘的時間才能完成。"</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"正在重新載入網格大小為「%1$s」的工作區"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"無法重新載入網格大小為「%1$s」的工作區"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"已成功設定樣式"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"已成功設定時鐘"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"已成功設定網格"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"自訂顏色"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"自訂形狀"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"自訂樣式名稱"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"色彩飽和度"</string>
     <string name="mode_title" msgid="2394873501427436055">"深色主題"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"因省電模式而暫時停用"</string>
     <string name="mode_changed" msgid="2243581369395418584">"主題已變更"</string>
@@ -113,10 +119,10 @@
     <string name="color_changed" msgid="7029571720331641235">"顏色已變更"</string>
     <string name="adaptive_color_title" msgid="1336508599235896205">"動態"</string>
     <string name="color_picker_title" msgid="6666830057938082864">"系統配色"</string>
-    <string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"向左快速鍵"</string>
-    <string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"向右快速鍵"</string>
+    <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>
@@ -125,12 +131,16 @@
     <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="show_notifications_on_lock_screen" msgid="4157744243084646720">"在螢幕鎖定畫面上顯示通知"</string>
-    <string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"在螢幕鎖定畫面上隱藏通知"</string>
-    <!-- no translation found for more_settings_section_title (1331425454775815958) -->
-    <skip />
-    <!-- no translation found for more_settings_section_description (1860115709122398325) -->
-    <skip />
+    <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-zu/strings.xml b/res/values-zu/strings.xml
index def5d0a..0896e57 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>
@@ -40,6 +41,7 @@
     <string name="clock_size_dynamic_description" msgid="2776620745774561662">"Usayizi wewashi uyashintsha ngokuya ngokuqukethwe kokukhiya isikrini"</string>
     <string name="clock_size_large" msgid="3143248715744138979">"Obukhulu"</string>
     <string name="clock_size_small" msgid="2280449912094164133">"Esincane"</string>
+    <string name="clock_size_small_description" msgid="4089511196955732480">"Iwashi elincane livela ekhoneni lesikrini sakho"</string>
     <string name="grid_title" msgid="1688173478777254123">"Igridi ye-app"</string>
     <string name="apply_theme_btn" msgid="6293081192321303991">"Faka"</string>
     <string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Thepha ukuze uhlele"</string>
@@ -65,6 +67,9 @@
     <string name="font_card_body" msgid="6790525594503904468">"Engeza amafonti akho owathandayo kuso sonke isikrini"</string>
     <string name="grid_options_title" msgid="7071930966989877023">"Khetha usayizi we-grid"</string>
     <string name="grid_title_pattern" msgid="9188866567612607806">"<xliff:g id="ID_1">%1$d</xliff:g>x<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="apply_grid_btn_note" msgid="2966021967355139181">"Ukushintsha usayizi wegridi kuzolayisha kabusha indawo yokusebenza futhi kungase kuthathe imizuzwana embalwa."</string>
+    <string name="toast_of_changing_grid" msgid="3515633981312731121">"Ilayisha kabusha indawo yokusebenza ngegridi engu-%1$s"</string>
+    <string name="toast_of_failure_to_change_grid" msgid="1349622908271736044">"Yehlulekile ukulayisha kabusha indawo yokusebenza ngegridi engu-%1$s"</string>
     <string name="applied_theme_msg" msgid="3749018706366796244">"Isitayela sisethwe ngokuphumelelayo"</string>
     <string name="applied_clock_msg" msgid="1303338016701443767">"Iwashi lisethwe ngokuphumelelayo"</string>
     <string name="applied_grid_msg" msgid="3250499654436933034">"I-Grid isethwe ngempumelelo"</string>
@@ -98,6 +103,7 @@
     <string name="accessibility_custom_color_title" msgid="4124246598886320663">"Umbala ongokwezifiso"</string>
     <string name="accessibility_custom_shape_title" msgid="7708408259374643129">"Umumo ongokwezifiso"</string>
     <string name="accessibility_custom_name_title" msgid="5494460518085463262">"Igama lesitayela esingokwezifiso"</string>
+    <string name="accessibility_clock_slider_description" msgid="8374135133110681332">"Ukuqina kombala"</string>
     <string name="mode_title" msgid="2394873501427436055">"Itimu emnyama"</string>
     <string name="mode_disabled_msg" msgid="9196245518435936512">"Kukhutshaziwe okwesikhashana ngenxa Yesilondolozi Sebhethri"</string>
     <string name="mode_changed" msgid="2243581369395418584">"Itimu ishintshiwe"</string>
@@ -116,7 +122,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>
@@ -125,10 +131,16 @@
     <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="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="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>
+    <string name="scroll_forward_and_select" msgid="6156132388656395769">"Swayiphela kwesokunxele ukuze ukhethe ubuso bewashi obuhlukile"</string>
+    <string name="scroll_backward_and_select" msgid="5472202348434803757">"Swayiphela kwesokudla ukuze ukhethe ubuso bewashi obuhlukile"</string>
+    <string name="custom_clocks_label" msgid="8168419717593569347">"Amawashi Angokwezifiso"</string>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9b55965..d1f6035 100755
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -303,6 +303,9 @@
     <!-- Accessibility for custom style name page [CHAR_LIMIT=50] -->
     <string name="accessibility_custom_name_title">Custom style name</string>
 
+    <!-- Accessibility for clock color slider [CHAR_LIMIT=50] -->
+    <string name="accessibility_clock_slider_description">Color intensity</string>
+
     <!--Name of metadata in the main launcher Activity which values contains the authority
     corresponding to a ContentProvider in launcher to query or change themed icon option  -->
     <string name="themed_icon_metadata_key" translatable="false">com.android.launcher3.themedicon.option</string>
@@ -436,15 +439,6 @@
     <string name="show_notifications_on_lock_screen">Show notifications on the lock screen</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 not allowing notifications to show on
-    their device's lock screen.
-
-    [CHAR LIMIT=64].
-    -->
-    <string name="hide_notifications_on_lock_screen">Hide notifications on the lock screen</string>
-
-    <!--
     Title for a section in a list of sections in the settings app that allows the user to access
     additional settings related to lock screen behaviour.
 
diff --git a/res/values/styles.xml b/res/values/styles.xml
index b2cd71d..c2710f6 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -75,7 +75,9 @@
     </style>
 
     <!-- Common components and widgets -->
-    <style name="TitleTextAppearance" parent="@android:style/TextAppearance.DeviceDefault.Widget.ActionBar.Title"/>
+    <style name="TitleTextAppearance" parent="@android:style/TextAppearance.DeviceDefault.Widget.ActionBar.Title">
+        <item name="android:textSize">14sp</item>
+    </style>
 
     <style name="ActionPrimaryButton" parent="android:Widget.DeviceDefault.Button.Colored"/>
 
diff --git a/src/com/android/customization/model/color/ColorBundle.java b/src/com/android/customization/model/color/ColorBundle.java
deleted file mode 100644
index d34f3fc..0000000
--- a/src/com/android/customization/model/color/ColorBundle.java
+++ /dev/null
@@ -1,306 +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.color;
-
-import android.content.Context;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.graphics.Color;
-import android.graphics.PorterDuff;
-import android.view.View;
-import android.widget.ImageView;
-
-import androidx.annotation.ColorInt;
-import androidx.annotation.Dimension;
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
-
-import com.android.customization.model.ResourceConstants;
-import com.android.systemui.monet.Style;
-import com.android.wallpaper.R;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Represents a preset color available for the user to chose as their theming option.
- */
-public class ColorBundle extends ColorOption {
-
-    private final PreviewInfo mPreviewInfo;
-
-    @VisibleForTesting ColorBundle(String title,
-            Map<String, String> overlayPackages, boolean isDefault, Style style, int index,
-            PreviewInfo previewInfo) {
-        super(title, overlayPackages, isDefault, style, index);
-        mPreviewInfo = previewInfo;
-    }
-
-    @Override
-    public void bindThumbnailTile(View view) {
-        Resources res = view.getContext().getResources();
-        int primaryColor = mPreviewInfo.resolvePrimaryColor(res);
-        int secondaryColor = mPreviewInfo.resolveSecondaryColor(res);
-
-        for (int i = 0; i < mPreviewColorIds.length; i++) {
-            ImageView colorPreviewImageView = view.findViewById(mPreviewColorIds[i]);
-            int color = i % 2 == 0 ? primaryColor : secondaryColor;
-            colorPreviewImageView.getDrawable().setColorFilter(color, PorterDuff.Mode.SRC);
-        }
-        view.setContentDescription(getContentDescription(view.getContext()));
-    }
-
-    @Override
-    public PreviewInfo getPreviewInfo() {
-        return mPreviewInfo;
-    }
-
-    @Override
-    public int getLayoutResId() {
-        return R.layout.color_option;
-    }
-
-    @Override
-    public String getSource() {
-        return ColorOptionsProvider.COLOR_SOURCE_PRESET;
-    }
-
-    /**
-     * The preview information of {@link ColorBundle}
-     */
-    public static class PreviewInfo implements ColorOption.PreviewInfo {
-        @ColorInt
-        public final int secondaryColorLight;
-        @ColorInt public final int secondaryColorDark;
-        // Monet system palette and accent colors
-        @ColorInt public final int primaryColorLight;
-        @ColorInt public final int primaryColorDark;
-        @Dimension
-        public final int bottomSheetCornerRadius;
-
-        @ColorInt private int mOverrideSecondaryColorLight = Color.TRANSPARENT;
-        @ColorInt private int mOverrideSecondaryColorDark = Color.TRANSPARENT;
-        @ColorInt private int mOverridePrimaryColorLight = Color.TRANSPARENT;
-        @ColorInt private int mOverridePrimaryColorDark = Color.TRANSPARENT;
-
-        private PreviewInfo(
-                int secondaryColorLight, int secondaryColorDark, int colorSystemPaletteLight,
-                int primaryColorDark, @Dimension int cornerRadius) {
-            this.secondaryColorLight = secondaryColorLight;
-            this.secondaryColorDark = secondaryColorDark;
-            this.primaryColorLight = colorSystemPaletteLight;
-            this.primaryColorDark = primaryColorDark;
-            this.bottomSheetCornerRadius = cornerRadius;
-        }
-
-        /**
-         * Returns the accent color to be applied corresponding with the current configuration's
-         * UI mode.
-         * @return one of {@link #secondaryColorDark} or {@link #secondaryColorLight}
-         */
-        @ColorInt
-        public int resolveSecondaryColor(Resources res) {
-            boolean night = (res.getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK)
-                    == Configuration.UI_MODE_NIGHT_YES;
-            if (mOverrideSecondaryColorDark != Color.TRANSPARENT
-                    || mOverrideSecondaryColorLight != Color.TRANSPARENT) {
-                return night ? mOverrideSecondaryColorDark : mOverrideSecondaryColorLight;
-            }
-            return night ? secondaryColorDark : secondaryColorLight;
-        }
-
-        /**
-         * Returns the palette (main) color to be applied corresponding with the current
-         * configuration's UI mode.
-         * @return one of {@link #secondaryColorDark} or {@link #secondaryColorLight}
-         */
-        @ColorInt
-        public int resolvePrimaryColor(Resources res) {
-            boolean night = (res.getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK)
-                    == Configuration.UI_MODE_NIGHT_YES;
-            if (mOverridePrimaryColorDark != Color.TRANSPARENT
-                    || mOverridePrimaryColorLight != Color.TRANSPARENT) {
-                return night ? mOverridePrimaryColorDark : mOverridePrimaryColorLight;
-            }
-            return night ? primaryColorDark
-                    : primaryColorLight;
-        }
-
-        /**
-         * Sets accent colors to override the ones in this bundle
-         */
-        public void setOverrideAccentColors(int overrideColorAccentLight,
-                int overrideColorAccentDark) {
-            mOverrideSecondaryColorLight = overrideColorAccentLight;
-            mOverrideSecondaryColorDark = overrideColorAccentDark;
-        }
-
-        /**
-         * Sets palette colors to override the ones in this bundle
-         */
-        public void setOverridePaletteColors(int overrideColorPaletteLight,
-                int overrideColorPaletteDark) {
-            mOverridePrimaryColorLight = overrideColorPaletteLight;
-            mOverridePrimaryColorDark = overrideColorPaletteDark;
-        }
-    }
-
-    /**
-     * The builder of ColorBundle
-     */
-    public static class Builder {
-        protected String mTitle;
-        @ColorInt private int mSecondaryColorLight = Color.TRANSPARENT;
-        @ColorInt private int mSecondaryColorDark = Color.TRANSPARENT;
-        // System and Monet colors
-        @ColorInt private int mPrimaryColorLight = Color.TRANSPARENT;
-        @ColorInt private int mPrimaryColorDark = Color.TRANSPARENT;
-        private boolean mIsDefault;
-        private Style mStyle = Style.TONAL_SPOT;
-        private int mIndex;
-        protected Map<String, String> mPackages = new HashMap<>();
-
-        /**
-         * Builds the ColorBundle
-         * @param context {@link Context}
-         * @return new {@link ColorBundle} object
-         */
-        public ColorBundle build(Context context) {
-            if (mTitle == null) {
-                mTitle = context.getString(R.string.adaptive_color_title);
-            }
-            return new ColorBundle(mTitle, mPackages, mIsDefault, mStyle, mIndex,
-                    createPreviewInfo(context));
-        }
-
-        /**
-         * Creates preview information
-         * @param context the {@link Context}
-         * @return the {@link PreviewInfo} object
-         */
-        public PreviewInfo createPreviewInfo(@NonNull Context context) {
-            Resources system = context.getResources().getSystem();
-            return new PreviewInfo(mSecondaryColorLight,
-                    mSecondaryColorDark, mPrimaryColorLight, mPrimaryColorDark,
-                    system.getDimensionPixelOffset(
-                            system.getIdentifier(ResourceConstants.CONFIG_CORNERRADIUS, "dimen",
-                                    ResourceConstants.ANDROID_PACKAGE)));
-        }
-
-        public Map<String, String> getPackages() {
-            return Collections.unmodifiableMap(mPackages);
-        }
-
-        /**
-         * Gets title of this {@link ColorBundle} object
-         * @return title string
-         */
-        public String getTitle() {
-            return mTitle;
-        }
-
-        /**
-         * Sets title of bundle
-         * @param title specified title
-         * @return this of {@link Builder}
-         */
-        public Builder setTitle(String title) {
-            mTitle = title;
-            return this;
-        }
-
-        /**
-         * Sets color accent (light)
-         * @param colorSecondaryLight color accent light in {@link ColorInt}
-         * @return this of {@link Builder}
-         */
-        public Builder setColorSecondaryLight(@ColorInt int colorSecondaryLight) {
-            mSecondaryColorLight = colorSecondaryLight;
-            return this;
-        }
-
-        /**
-         * Sets color accent (dark)
-         * @param colorSecondaryDark color accent dark in {@link ColorInt}
-         * @return this of {@link Builder}
-         */
-        public Builder setColorSecondaryDark(@ColorInt int colorSecondaryDark) {
-            mSecondaryColorDark = colorSecondaryDark;
-            return this;
-        }
-
-        /**
-         * Sets color system palette (light)
-         * @param colorPrimaryLight color system palette in {@link ColorInt}
-         * @return this of {@link Builder}
-         */
-        public Builder setColorPrimaryLight(@ColorInt int colorPrimaryLight) {
-            mPrimaryColorLight = colorPrimaryLight;
-            return this;
-        }
-
-        /**
-         * Sets color system palette (dark)
-         * @param colorPrimaryDark color system palette in {@link ColorInt}
-         * @return this of {@link Builder}
-         */
-        public Builder setColorPrimaryDark(@ColorInt int colorPrimaryDark) {
-            mPrimaryColorDark = colorPrimaryDark;
-            return this;
-        }
-
-        /**
-         * Sets overlay package for bundle
-         * @param category the category of bundle
-         * @param packageName tha name of package in the category
-         * @return this of {@link Builder}
-         */
-        public Builder addOverlayPackage(String category, String packageName) {
-            mPackages.put(category, packageName);
-            return this;
-        }
-
-        /**
-         * Sets the style of this color seed
-         * @param style color style of {@link Style}
-         * @return this of {@link Builder}
-         */
-        public Builder setStyle(Style style) {
-            mStyle = style;
-            return this;
-        }
-
-        /**
-         * Sets color option index of bundle
-         * @param index color option index
-         * @return this of {@link Builder}
-         */
-        public Builder setIndex(int index) {
-            mIndex = index;
-            return this;
-        }
-
-        /**
-         * Sets as default bundle
-         * @return this of {@link Builder}
-         */
-        public Builder asDefault() {
-            mIsDefault = true;
-            return this;
-        }
-    }
-}
diff --git a/src/com/android/customization/model/color/ColorBundlePreviewExtractor.java b/src/com/android/customization/model/color/ColorBundlePreviewExtractor.java
deleted file mode 100644
index 55b637f..0000000
--- a/src/com/android/customization/model/color/ColorBundlePreviewExtractor.java
+++ /dev/null
@@ -1,77 +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.color;
-
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_COLOR;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SYSTEM_PALETTE;
-import static com.android.customization.model.color.ColorUtils.toColorString;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.text.TextUtils;
-import android.util.Log;
-
-import androidx.annotation.ColorInt;
-
-import com.android.systemui.monet.ColorScheme;
-import com.android.systemui.monet.Style;
-
-/**
- * Utility class to read all the details of a color bundle for previewing it
- * (eg, actual color values)
- */
-class ColorBundlePreviewExtractor {
-
-    private static final String TAG = "ColorBundlePreviewExtractor";
-
-    private final PackageManager mPackageManager;
-
-    ColorBundlePreviewExtractor(Context context) {
-        mPackageManager = context.getPackageManager();
-    }
-
-    void addSecondaryColor(ColorBundle.Builder builder, @ColorInt int color) {
-        ColorScheme darkColorScheme = new ColorScheme(color, true);
-        ColorScheme lightColorScheme = new ColorScheme(color, false);
-        int lightSecondary = lightColorScheme.getAccentColor();
-        int darkSecondary = darkColorScheme.getAccentColor();
-        builder.addOverlayPackage(OVERLAY_CATEGORY_COLOR, toColorString(color))
-                .setColorSecondaryLight(lightSecondary)
-                .setColorSecondaryDark(darkSecondary);
-    }
-
-    void addPrimaryColor(ColorBundle.Builder builder, @ColorInt int color) {
-        ColorScheme darkColorScheme = new ColorScheme(color, true);
-        ColorScheme lightColorScheme = new ColorScheme(color, false);
-        int lightPrimary = lightColorScheme.getAccentColor();
-        int darkPrimary = darkColorScheme.getAccentColor();
-        builder.addOverlayPackage(OVERLAY_CATEGORY_SYSTEM_PALETTE, toColorString(color))
-                .setColorPrimaryLight(lightPrimary)
-                .setColorPrimaryDark(darkPrimary);
-    }
-
-    void addColorStyle(ColorBundle.Builder builder, String styleName) {
-        Style s = Style.TONAL_SPOT;
-        if (!TextUtils.isEmpty(styleName)) {
-            try {
-                s = Style.valueOf(styleName);
-            } catch (IllegalArgumentException e) {
-                Log.i(TAG, "Unknown style : " + styleName + ". Will default to TONAL_SPOT.");
-            }
-        }
-        builder.setStyle(s);
-    }
-}
diff --git a/src/com/android/customization/model/color/ColorCustomizationManager.java b/src/com/android/customization/model/color/ColorCustomizationManager.java
index 790c86f..a09efd2 100644
--- a/src/com/android/customization/model/color/ColorCustomizationManager.java
+++ b/src/com/android/customization/model/color/ColorCustomizationManager.java
@@ -15,6 +15,11 @@
  */
 package com.android.customization.model.color;
 
+import static android.stats.style.StyleEnums.COLOR_SOURCE_HOME_SCREEN_WALLPAPER;
+import static android.stats.style.StyleEnums.COLOR_SOURCE_LOCK_SCREEN_WALLPAPER;
+import static android.stats.style.StyleEnums.COLOR_SOURCE_PRESET_COLOR;
+import static android.stats.style.StyleEnums.COLOR_SOURCE_UNSPECIFIED;
+
 import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_COLOR;
 import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SYSTEM_PALETTE;
 import static com.android.customization.model.color.ColorOptionsProvider.COLOR_SOURCE_PRESET;
@@ -27,6 +32,7 @@
 import android.content.ContentResolver;
 import android.content.Context;
 import android.database.ContentObserver;
+import android.graphics.Color;
 import android.net.Uri;
 import android.os.Handler;
 import android.os.Looper;
@@ -41,6 +47,7 @@
 import com.android.customization.model.ResourceConstants;
 import com.android.customization.model.color.ColorOptionsProvider.ColorSource;
 import com.android.customization.model.theme.OverlayManagerCompat;
+import com.android.customization.module.logging.ThemesUserEventLogger;
 import com.android.wallpaper.R;
 
 import org.json.JSONArray;
@@ -182,22 +189,7 @@
             lockWallpaperColors = null;
         }
         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);
+                lockWallpaperColors);
     }
 
     /**
@@ -220,6 +212,38 @@
         return mCurrentOverlays;
     }
 
+    /** */
+    public int getCurrentColorSourceForLogging() {
+        String colorSource = getCurrentColorSource();
+        if (colorSource == null) {
+            return COLOR_SOURCE_UNSPECIFIED;
+        }
+        return switch (colorSource) {
+            case ColorOptionsProvider.COLOR_SOURCE_PRESET -> COLOR_SOURCE_PRESET_COLOR;
+            case ColorOptionsProvider.COLOR_SOURCE_HOME -> COLOR_SOURCE_HOME_SCREEN_WALLPAPER;
+            case ColorOptionsProvider.COLOR_SOURCE_LOCK -> COLOR_SOURCE_LOCK_SCREEN_WALLPAPER;
+            default -> COLOR_SOURCE_UNSPECIFIED;
+        };
+    }
+
+    /** */
+    public int getCurrentStyleForLogging() {
+        String style = getCurrentStyle();
+        return style != null ? style.hashCode() : 0;
+    }
+
+    /** */
+    public int getCurrentSeedColorForLogging() {
+        String seedColor = getCurrentOverlays().get(OVERLAY_CATEGORY_SYSTEM_PALETTE);
+        if (seedColor == null || seedColor.isEmpty()) {
+            return ThemesUserEventLogger.NULL_SEED_COLOR;
+        }
+        if (!seedColor.startsWith("#")) {
+            seedColor = "#" + seedColor;
+        }
+        return Color.parseColor(seedColor);
+    }
+
     /**
      * @return The source of the currently applied color. One of
      * {@link ColorOptionsProvider#COLOR_SOURCE_HOME},{@link ColorOptionsProvider#COLOR_SOURCE_LOCK}
diff --git a/src/com/android/customization/model/color/ColorOption.java b/src/com/android/customization/model/color/ColorOption.java
index 216bb9b..f57aa86 100644
--- a/src/com/android/customization/model/color/ColorOption.java
+++ b/src/com/android/customization/model/color/ColorOption.java
@@ -19,6 +19,7 @@
 import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SYSTEM_PALETTE;
 
 import android.content.Context;
+import android.graphics.Color;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -27,6 +28,7 @@
 import com.android.customization.model.CustomizationManager;
 import com.android.customization.model.CustomizationOption;
 import com.android.customization.model.color.ColorOptionsProvider.ColorSource;
+import com.android.customization.module.logging.ThemesUserEventLogger;
 import com.android.systemui.monet.Style;
 import com.android.wallpaper.R;
 
@@ -52,8 +54,6 @@
     static final String TIMESTAMP_FIELD = "_applied_timestamp";
 
     protected final Map<String, String> mPackagesByCategory;
-    protected final int[] mPreviewColorIds = {R.id.color_preview_0, R.id.color_preview_1,
-            R.id.color_preview_2, R.id.color_preview_3};
     private final String mTitle;
     private final boolean mIsDefault;
     private final Style mStyle;
@@ -86,6 +86,9 @@
 
         if (mIsDefault) {
             String serializedOverlays = colorManager.getStoredOverlays();
+            // a default color option is active if the manager has no stored overlays or current
+            // overlays, or the stored overlay does not contain either category system palette or
+            // category color
             return (TextUtils.isEmpty(serializedOverlays) || EMPTY_JSON.equals(serializedOverlays)
                     || colorManager.getCurrentOverlays().isEmpty() || !(serializedOverlays.contains(
                     OVERLAY_CATEGORY_SYSTEM_PALETTE) || serializedOverlays.contains(
@@ -100,6 +103,22 @@
     }
 
     /**
+     * Gets the seed color from the overlay packages for logging.
+     *
+     * @return an int representing the seed color, or NULL_SEED_COLOR
+     */
+    public int getSeedColorForLogging() {
+        String seedColor = mPackagesByCategory.get(OVERLAY_CATEGORY_SYSTEM_PALETTE);
+        if (seedColor == null || seedColor.isEmpty()) {
+            return ThemesUserEventLogger.NULL_SEED_COLOR;
+        }
+        if (!seedColor.startsWith("#")) {
+            seedColor = "#" + seedColor;
+        }
+        return Color.parseColor(seedColor);
+    }
+
+    /**
      * This is similar to #equals() but it only compares this theme's packages with the other, that
      * is, it will return true if applying this theme has the same effect of applying the given one.
      */
@@ -208,6 +227,12 @@
     public abstract String getSource();
 
     /**
+     * @return the source of this color option for logging
+     */
+    @ThemesUserEventLogger.ColorSource
+    public abstract int getSourceForLogging();
+
+    /**
      * @return the style of this color option
      */
     public Style getStyle() {
@@ -215,6 +240,11 @@
     }
 
     /**
+     * @return the style of this color option for logging
+     */
+    public abstract int getStyleForLogging();
+
+    /**
      * @return the index of this color option
      */
     public int getIndex() {
diff --git a/src/com/android/customization/model/color/ColorOptionImpl.kt b/src/com/android/customization/model/color/ColorOptionImpl.kt
index 3273ce2..f090528 100644
--- a/src/com/android/customization/model/color/ColorOptionImpl.kt
+++ b/src/com/android/customization/model/color/ColorOptionImpl.kt
@@ -17,6 +17,7 @@
 package com.android.customization.model.color
 
 import android.content.Context
+import android.stats.style.StyleEnums
 import android.view.View
 import androidx.annotation.ColorInt
 import com.android.customization.model.color.ColorOptionsProvider.ColorSource
@@ -68,6 +69,17 @@
         return source
     }
 
+    override fun getSourceForLogging(): Int {
+        return when (getSource()) {
+            ColorOptionsProvider.COLOR_SOURCE_PRESET -> StyleEnums.COLOR_SOURCE_PRESET_COLOR
+            ColorOptionsProvider.COLOR_SOURCE_HOME -> StyleEnums.COLOR_SOURCE_HOME_SCREEN_WALLPAPER
+            ColorOptionsProvider.COLOR_SOURCE_LOCK -> StyleEnums.COLOR_SOURCE_LOCK_SCREEN_WALLPAPER
+            else -> StyleEnums.COLOR_SOURCE_UNSPECIFIED
+        }
+    }
+
+    override fun getStyleForLogging(): Int = style.toString().hashCode()
+
     class Builder {
         var title: String? = null
 
diff --git a/src/com/android/customization/model/color/ColorOptionsProvider.java b/src/com/android/customization/model/color/ColorOptionsProvider.java
index 166b4da..9703907 100644
--- a/src/com/android/customization/model/color/ColorOptionsProvider.java
+++ b/src/com/android/customization/model/color/ColorOptionsProvider.java
@@ -70,12 +70,9 @@
      * @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,
-            boolean shouldUseRevampedUi
+            @Nullable WallpaperColors lockWallpaperColors
     );
 }
diff --git a/src/com/android/customization/model/color/ColorProvider.kt b/src/com/android/customization/model/color/ColorProvider.kt
index 74a4051..6fdfd2c 100644
--- a/src/com/android/customization/model/color/ColorProvider.kt
+++ b/src/com/android/customization/model/color/ColorProvider.kt
@@ -48,6 +48,7 @@
 
 /**
  * Default implementation of {@link ColorOptionsProvider} that reads preset colors from a stub APK.
+ * TODO (b/311212666): Make [ColorProvider] and [ColorCustomizationManager] injectable
  */
 class ColorProvider(private val context: Context, stubPackageName: String) :
     ResourcesApkProvider(context, stubPackageName), ColorOptionsProvider {
@@ -68,8 +69,6 @@
             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 =
@@ -93,7 +92,6 @@
         reload: Boolean,
         homeWallpaperColors: WallpaperColors?,
         lockWallpaperColors: WallpaperColors?,
-        shouldUseRevampedUi: Boolean
     ) {
         val wallpaperColorsChanged =
             this.homeWallpaperColors != homeWallpaperColors ||
@@ -106,13 +104,12 @@
             scope.launch {
                 try {
                     if (colorBundles == null || reload) {
-                        loadPreset(shouldUseRevampedUi)
+                        loadPreset()
                     }
                     if (wallpaperColorsChanged || reload) {
                         loadSeedColors(
                             homeWallpaperColors,
                             lockWallpaperColors,
-                            shouldUseRevampedUi
                         )
                     }
                 } catch (e: Throwable) {
@@ -138,7 +135,6 @@
     private fun loadSeedColors(
         homeWallpaperColors: WallpaperColors?,
         lockWallpaperColors: WallpaperColors?,
-        shouldUseRevampedUi: Boolean,
     ) {
         if (homeWallpaperColors == null) return
 
@@ -159,7 +155,6 @@
                 if (shouldLockColorsGoFirst) COLOR_SOURCE_LOCK else COLOR_SOURCE_HOME,
                 true,
                 bundles,
-                shouldUseRevampedUi
             )
             // Second half of the colors
             buildColorSeeds(
@@ -168,7 +163,6 @@
                 if (shouldLockColorsGoFirst) COLOR_SOURCE_HOME else COLOR_SOURCE_LOCK,
                 false,
                 bundles,
-                shouldUseRevampedUi
             )
         } else {
             buildColorSeeds(
@@ -177,35 +171,20 @@
                 COLOR_SOURCE_HOME,
                 true,
                 bundles,
-                shouldUseRevampedUi
             )
         }
 
-        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
-                        )
-                    )
-                }
+        // Insert monochrome in the second position if it is enabled and included in preset
+        // colors
+        if (InjectorProvider.getInjector().getFlags().isMonochromaticThemeEnabled(mContext)) {
+            monochromeBundleName?.let {
+                bundles.add(1, buildPreset(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())
         }
+        bundles.addAll(
+            colorBundles?.filterNot { (it as ColorOptionImpl).type == ColorType.WALLPAPER_COLOR }
+                ?: emptyList()
+        )
         colorBundles = bundles
     }
 
@@ -215,13 +194,12 @@
         source: String,
         containsDefault: Boolean,
         bundles: MutableList<ColorOption>,
-        shouldUseRevampedUi: Boolean,
     ) {
         val seedColors = ColorScheme.getSeedColors(wallpaperColors)
         val defaultSeed = seedColors.first()
-        buildBundle(defaultSeed, 0, containsDefault, source, bundles, shouldUseRevampedUi)
+        buildBundle(defaultSeed, 0, containsDefault, source, bundles)
         for ((i, colorInt) in seedColors.drop(1).take(maxColors - 1).withIndex()) {
-            buildBundle(colorInt, i + 1, false, source, bundles, shouldUseRevampedUi)
+            buildBundle(colorInt, i + 1, false, source, bundles)
         }
     }
 
@@ -231,102 +209,41 @@
         isDefault: Boolean,
         source: String,
         bundles: MutableList<ColorOption>,
-        shouldUseRevampedUi: Boolean,
     ) {
         // TODO(b/202145216): Measure time cost in the loop.
-        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)
-                )
-                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.
-                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()
-
-                bundles.add(builder.build())
-            }
+        for (style in styleList) {
+            val lightColorScheme = ColorScheme(colorInt, /* darkTheme= */ false, style)
+            val darkColorScheme = ColorScheme(colorInt, /* darkTheme= */ true, style)
+            val builder = ColorOptionImpl.Builder()
+            builder.lightColors = getLightColorPreview(lightColorScheme)
+            builder.darkColors = getDarkColorPreview(darkColorScheme)
+            builder.addOverlayPackage(
+                OVERLAY_CATEGORY_SYSTEM_PALETTE,
+                if (isDefault) "" else toColorString(colorInt)
+            )
+            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.
+            builder.index = i + 1
+            builder.isDefault = isDefault
+            builder.type = ColorType.WALLPAPER_COLOR
+            bundles.add(builder.build())
         }
     }
 
     /**
-     * Returns the colors for the light theme version of the preview of a ColorScheme based on this
-     * order: top left, top right, bottom left, bottom right
-     */
-    @ColorInt
-    private fun ColorScheme.getLightColorPreview(): IntArray {
-        return when (this.style) {
-            Style.EXPRESSIVE ->
-                intArrayOf(
-                    setAlphaComponent(this.accent1.s100, ALPHA_MASK),
-                    setAlphaComponent(this.accent1.s100, ALPHA_MASK),
-                    ColorStateList.valueOf(this.neutral2.s500).withLStar(80f).colors[0],
-                    setAlphaComponent(this.accent2.s500, ALPHA_MASK)
-                )
-            else ->
-                intArrayOf(
-                    setAlphaComponent(this.accent1.s100, ALPHA_MASK),
-                    setAlphaComponent(this.accent1.s100, ALPHA_MASK),
-                    ColorStateList.valueOf(this.accent3.s500).withLStar(85f).colors[0],
-                    setAlphaComponent(this.accent1.s500, ALPHA_MASK)
-                )
-        }
-    }
-
-    /**
-     * Returns the color for the dark theme version of the preview of a ColorScheme based on this
-     * 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
      *
@@ -334,7 +251,7 @@
      * LStar 85, and Tertiary LStar 70
      */
     @ColorInt
-    private fun getRevampedUILightColorPreview(colorScheme: ColorScheme): IntArray {
+    private fun getLightColorPreview(colorScheme: ColorScheme): IntArray {
         return intArrayOf(
             setAlphaComponent(colorScheme.accent1.s600, ALPHA_MASK),
             setAlphaComponent(colorScheme.accent1.s600, ALPHA_MASK),
@@ -351,7 +268,7 @@
      * 35, and Tertiary LStar 70
      */
     @ColorInt
-    private fun getRevampedUIDarkColorPreview(colorScheme: ColorScheme): IntArray {
+    private fun getDarkColorPreview(colorScheme: ColorScheme): IntArray {
         return intArrayOf(
             setAlphaComponent(colorScheme.accent1.s200, ALPHA_MASK),
             setAlphaComponent(colorScheme.accent1.s200, ALPHA_MASK),
@@ -368,7 +285,7 @@
      * LStar 85, and Tertiary LStar 70
      */
     @ColorInt
-    private fun getRevampedUILightMonochromePreview(colorScheme: ColorScheme): IntArray {
+    private fun getLightMonochromePreview(colorScheme: ColorScheme): IntArray {
         return intArrayOf(
             setAlphaComponent(colorScheme.accent1.s1000, ALPHA_MASK),
             setAlphaComponent(colorScheme.accent1.s1000, ALPHA_MASK),
@@ -385,7 +302,7 @@
      * LStar 35, and Tertiary LStar 70
      */
     @ColorInt
-    private fun getRevampedUIDarkMonochromePreview(colorScheme: ColorScheme): IntArray {
+    private fun getDarkMonochromePreview(colorScheme: ColorScheme): IntArray {
         return intArrayOf(
             setAlphaComponent(colorScheme.accent1.s10, ALPHA_MASK),
             setAlphaComponent(colorScheme.accent1.s10, ALPHA_MASK),
@@ -398,7 +315,7 @@
      * 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 {
+    private fun getPresetColorPreview(colorScheme: ColorScheme, seed: Int): IntArray {
         val colors =
             when (colorScheme.style) {
                 Style.FRUIT_SALAD -> intArrayOf(seed, colorScheme.accent1.s200)
@@ -414,22 +331,8 @@
         )
     }
 
-    private fun ColorScheme.getPresetColorPreview(seed: Int): IntArray {
-        return when (this.style) {
-            Style.FRUIT_SALAD -> intArrayOf(seed, this.accent1.s100)
-            Style.TONAL_SPOT -> intArrayOf(this.accentColor, this.accentColor)
-            Style.MONOCHROMATIC ->
-                intArrayOf(
-                    setAlphaComponent(0x000000, 255),
-                    setAlphaComponent(0xFFFFFF, 255),
-                )
-            else -> intArrayOf(this.accent1.s100, this.accent1.s100)
-        }
-    }
-
-    private suspend fun loadPreset(shouldUseRevampedUi: Boolean) =
+    private suspend fun loadPreset() =
         withContext(Dispatchers.IO) {
-            val extractor = ColorBundlePreviewExtractor(mContext)
             val bundles: MutableList<ColorOption> = ArrayList()
 
             val bundleNames =
@@ -438,95 +341,50 @@
             var index = 1
             val maxPresetColors = if (themeStyleEnabled) bundleNames.size else MAX_PRESET_COLORS
 
-            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
+            // 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
                         }
-                        bundles.add(buildRevampedUIPreset(bundleName, index, style))
-                    } else {
-                        bundles.add(buildRevampedUIPreset(bundleName, index, null))
-                    }
+                    val style =
+                        try {
+                            if (styleName != null) Style.valueOf(styleName) else Style.TONAL_SPOT
+                        } catch (e: IllegalArgumentException) {
+                            Style.TONAL_SPOT
+                        }
 
-                    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
-                            }
-
-                        if (style == Style.MONOCHROMATIC && !monochromeEnabled) {
+                    if (style == Style.MONOCHROMATIC) {
+                        if (
+                            !InjectorProvider.getInjector()
+                                .getFlags()
+                                .isMonochromaticThemeEnabled(mContext)
+                        ) {
                             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])
+                        hasMonochrome = true
+                        monochromeBundleName = bundleName
                     }
-
-                    bundles.add(builder.build(mContext))
-                    index++
+                    bundles.add(buildPreset(bundleName, index, style))
+                } else {
+                    bundles.add(buildPreset(bundleName, index, null))
                 }
+
+                index++
+            }
+            if (!hasMonochrome) {
+                monochromeBundleName = null
             }
 
             colorBundles = bundles
         }
 
-    private fun buildRevampedUIPreset(
+    private fun buildPreset(
         bundleName: String,
         index: Int,
         style: Style? = null,
@@ -554,12 +412,12 @@
 
             when (style) {
                 Style.MONOCHROMATIC -> {
-                    darkColors = getRevampedUIDarkMonochromePreview(darkColorScheme)
-                    lightColors = getRevampedUILightMonochromePreview(lightColorScheme)
+                    darkColors = getDarkMonochromePreview(darkColorScheme)
+                    lightColors = getLightMonochromePreview(lightColorScheme)
                 }
                 else -> {
-                    darkColors = getRevampedUIPresetColorPreview(darkColorScheme, colorFromStub)
-                    lightColors = getRevampedUIPresetColorPreview(lightColorScheme, colorFromStub)
+                    darkColors = getPresetColorPreview(darkColorScheme, colorFromStub)
+                    lightColors = getPresetColorPreview(lightColorScheme, colorFromStub)
                 }
             }
         }
diff --git a/src/com/android/customization/model/color/ColorSeedOption.java b/src/com/android/customization/model/color/ColorSeedOption.java
deleted file mode 100644
index ed38049..0000000
--- a/src/com/android/customization/model/color/ColorSeedOption.java
+++ /dev/null
@@ -1,252 +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.color;
-
-import android.content.Context;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.graphics.PorterDuff.Mode;
-import android.view.View;
-import android.widget.ImageView;
-
-import androidx.annotation.ColorInt;
-import androidx.annotation.VisibleForTesting;
-
-import com.android.customization.model.color.ColorOptionsProvider.ColorSource;
-import com.android.systemui.monet.Style;
-import com.android.wallpaper.R;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Represents a seed color obtained from WallpaperColors, for the user to chose as their theming
- * option.
- */
-public class ColorSeedOption extends ColorOption {
-
-    private final PreviewInfo mPreviewInfo;
-    @ColorSource
-    private final String mSource;
-
-    @VisibleForTesting
-    ColorSeedOption(String title, Map<String, String> overlayPackages, boolean isDefault,
-            @ColorSource String source, Style style, int index, PreviewInfo previewInfo) {
-        super(title, overlayPackages, isDefault, style, index);
-        mSource = source;
-        mPreviewInfo = previewInfo;
-    }
-
-    @Override
-    public PreviewInfo getPreviewInfo() {
-        return mPreviewInfo;
-    }
-
-    @Override
-    public String getSource() {
-        return mSource;
-    }
-
-    @Override
-    public int getLayoutResId() {
-        return R.layout.color_option;
-    }
-
-    @Override
-    public void bindThumbnailTile(View view) {
-        Resources res = view.getContext().getResources();
-        @ColorInt int[] colors = mPreviewInfo.resolveColors(res);
-
-        for (int i = 0; i < mPreviewColorIds.length; i++) {
-            ImageView colorPreviewImageView = view.findViewById(mPreviewColorIds[i]);
-            colorPreviewImageView.getDrawable().setColorFilter(colors[i], Mode.SRC);
-        }
-
-        view.setContentDescription(getContentDescription(view.getContext()));
-    }
-
-    @Override
-    public CharSequence getContentDescription(Context context) {
-        // Override because we want all options with the same description.
-        return context.getString(R.string.wallpaper_color_title);
-    }
-
-    /**
-     * The preview information of {@link ColorOption}
-     */
-    public static class PreviewInfo implements ColorOption.PreviewInfo {
-        @ColorInt public int[] lightColors;
-        @ColorInt public int[] darkColors;
-
-        private PreviewInfo(@ColorInt int[] lightColors, @ColorInt int[] darkColors) {
-            this.lightColors = lightColors;
-            this.darkColors = darkColors;
-        }
-
-        /**
-         * 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
-        public int[] resolveColors(Resources res) {
-            boolean night = (res.getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK)
-                    == 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;
-        }
-    }
-
-    /**
-     * The builder of ColorSeedOption
-     */
-    public static class Builder {
-        protected String mTitle;
-        @ColorInt
-        private int[] mLightColors;
-        @ColorInt
-        private int[] mDarkColors;
-        @ColorSource
-        private String mSource;
-        private boolean mIsDefault;
-        private Style mStyle = Style.TONAL_SPOT;
-        private int mIndex;
-        protected Map<String, String> mPackages = new HashMap<>();
-
-        /**
-         * Builds the ColorSeedOption
-         * @return new {@link ColorOption} object
-         */
-        public ColorSeedOption build() {
-            return new ColorSeedOption(mTitle, mPackages, mIsDefault, mSource, mStyle, mIndex,
-                    createPreviewInfo());
-        }
-
-        /**
-         * Creates preview information
-         * @return the {@link PreviewInfo} object
-         */
-        public PreviewInfo createPreviewInfo() {
-            return new PreviewInfo(mLightColors, mDarkColors);
-        }
-
-        public Map<String, String> getPackages() {
-            return Collections.unmodifiableMap(mPackages);
-        }
-
-        /**
-         * Gets title of {@link ColorOption} object
-         * @return title string
-         */
-        public String getTitle() {
-            return mTitle;
-        }
-
-        /**
-         * Sets title of bundle
-         * @param title specified title
-         * @return this of {@link ColorBundle.Builder}
-         */
-        public Builder setTitle(String title) {
-            mTitle = title;
-            return this;
-        }
-
-        /**
-         * Sets the colors for preview in light mode
-         * @param lightColors  {@link ColorInt} colors for light mode
-         * @return this of {@link Builder}
-         */
-        public Builder setLightColors(@ColorInt int[] lightColors) {
-            mLightColors = lightColors;
-            return this;
-        }
-
-        /**
-         * Sets the colors for preview in light mode
-         * @param darkColors  {@link ColorInt} colors for light mode
-         * @return this of {@link Builder}
-         */
-        public Builder setDarkColors(@ColorInt int[] darkColors) {
-            mDarkColors = darkColors;
-            return this;
-        }
-
-
-        /**
-         * Sets overlay package for bundle
-         * @param category the category of bundle
-         * @param packageName tha name of package in the category
-         * @return this of {@link Builder}
-         */
-        public Builder addOverlayPackage(String category, String packageName) {
-            mPackages.put(category, packageName);
-            return this;
-        }
-
-        /**
-         * Sets the source of this color seed
-         * @param source typically either {@link ColorOptionsProvider#COLOR_SOURCE_HOME} or
-         *              {@link ColorOptionsProvider#COLOR_SOURCE_LOCK}
-         * @return this of {@link Builder}
-         */
-        public Builder setSource(@ColorSource String source) {
-            mSource = source;
-            return this;
-        }
-
-        /**
-         * Sets the source of this color seed
-         * @param style color style of {@link Style}
-         * @return this of {@link Builder}
-         */
-        public Builder setStyle(Style style) {
-            mStyle = style;
-            return this;
-        }
-
-        /**
-         * Sets color option index of seed
-         * @param index color option index
-         * @return this of {@link ColorBundle.Builder}
-         */
-        public Builder setIndex(int index) {
-            mIndex = index;
-            return this;
-        }
-
-        /**
-         * Sets as default bundle
-         * @return this of {@link Builder}
-         */
-        public Builder asDefault() {
-            mIsDefault = true;
-            return this;
-        }
-    }
-}
diff --git a/src/com/android/customization/model/color/ThemedWallpaperColorResources.kt b/src/com/android/customization/model/color/ThemedWallpaperColorResources.kt
new file mode 100644
index 0000000..906d902
--- /dev/null
+++ b/src/com/android/customization/model/color/ThemedWallpaperColorResources.kt
@@ -0,0 +1,72 @@
+/*
+ * 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.R
+import android.app.WallpaperColors
+import android.content.Context
+import android.provider.Settings
+import android.util.Log
+import com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_THEME_STYLE
+import com.android.systemui.monet.ColorScheme
+import com.android.systemui.monet.Style
+import org.json.JSONException
+import org.json.JSONObject
+
+class ThemedWallpaperColorResources(wallpaperColors: WallpaperColors, context: Context) :
+    WallpaperColorResources(wallpaperColors) {
+
+    init {
+        val wallpaperColorScheme =
+            ColorScheme(
+                wallpaperColors = wallpaperColors,
+                darkTheme = false,
+                style = fetchThemeStyleFromSetting(context)
+            )
+        addOverlayColor(wallpaperColorScheme.neutral1, R.color.system_neutral1_10)
+        addOverlayColor(wallpaperColorScheme.neutral2, R.color.system_neutral2_10)
+        addOverlayColor(wallpaperColorScheme.accent1, R.color.system_accent1_10)
+        addOverlayColor(wallpaperColorScheme.accent2, R.color.system_accent2_10)
+        addOverlayColor(wallpaperColorScheme.accent3, R.color.system_accent3_10)
+    }
+
+    private fun fetchThemeStyleFromSetting(context: Context): Style {
+        val overlayPackageJson =
+            Settings.Secure.getString(
+                context.contentResolver,
+                Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES,
+            )
+        return if (!overlayPackageJson.isNullOrEmpty()) {
+            try {
+                val jsonObject = JSONObject(overlayPackageJson)
+                Style.valueOf(jsonObject.getString(OVERLAY_CATEGORY_THEME_STYLE))
+            } catch (e: (JSONException)) {
+                Log.i(TAG, "Failed to parse THEME_CUSTOMIZATION_OVERLAY_PACKAGES.", e)
+                Style.TONAL_SPOT
+            } catch (e: IllegalArgumentException) {
+                Log.i(TAG, "Failed to parse THEME_CUSTOMIZATION_OVERLAY_PACKAGES.", e)
+                Style.TONAL_SPOT
+            }
+        } else {
+            Style.TONAL_SPOT
+        }
+    }
+
+    companion object {
+        private const val TAG = "ThemedWallpaperColorResources"
+    }
+}
diff --git a/src/com/android/customization/model/grid/GridOption.java b/src/com/android/customization/model/grid/GridOption.java
index a5307c9..347929c 100644
--- a/src/com/android/customization/model/grid/GridOption.java
+++ b/src/com/android/customization/model/grid/GridOption.java
@@ -15,14 +15,11 @@
  */
 package com.android.customization.model.grid;
 
-import android.content.Context;
-import android.graphics.PorterDuff.Mode;
 import android.net.Uri;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.text.TextUtils;
 import android.view.View;
-import android.widget.ImageView;
 
 import androidx.annotation.Nullable;
 
@@ -30,7 +27,6 @@
 import com.android.customization.model.CustomizationOption;
 import com.android.customization.widget.GridTileDrawable;
 import com.android.wallpaper.R;
-import com.android.wallpaper.util.ResourceUtils;
 
 /**
  * Represents a grid layout option available in the current launcher.
@@ -94,21 +90,7 @@
 
     @Override
     public void bindThumbnailTile(View view) {
-        Context context = view.getContext();
-
-        int colorFilter = ResourceUtils.getColorAttr(context,
-                view.isActivated()
-                        ? (mIsCurrent
-                            ? android.R.attr.textColorPrimary
-                            : android.R.attr.textColorPrimaryInverse)
-                        : android.R.attr.textColorTertiary);
-        mTileDrawable.setColorFilter(colorFilter, Mode.SRC_ATOP);
-        ((ImageView) view.findViewById(R.id.grid_option_thumbnail))
-                .setImageDrawable(mTileDrawable);
-
-        int backgroundResource = view.isActivated() && !mIsCurrent
-                ? R.drawable.option_border_new_selection : R.drawable.option_border;
-        view.findViewById(R.id.option_tile).setBackgroundResource(backgroundResource);
+        // Do nothing. This function will no longer be used in the Revamped UI
     }
 
     @Override
diff --git a/src/com/android/customization/model/grid/GridOptionViewModel.java b/src/com/android/customization/model/grid/GridOptionViewModel.java
deleted file mode 100644
index 33fa8e179..0000000
--- a/src/com/android/customization/model/grid/GridOptionViewModel.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2021 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.grid;
-
-import androidx.lifecycle.SavedStateHandle;
-import androidx.lifecycle.ViewModel;
-
-/** The class to store status of the grid fragment view. */
-public class GridOptionViewModel extends ViewModel {
-    private static final String SELECTED_OPTION_KEY = "selected_option";
-    private static final String BOTTOM_ACTION_BAR_VISIBLE_KEY = "bottom_action_bar_visible";
-
-    private SavedStateHandle mState;
-
-    public GridOptionViewModel(SavedStateHandle savedStateHandle) {
-        mState = savedStateHandle;
-    }
-
-    /** Gets selected {@link GridOption} from {@link SavedStateHandle} */
-    public GridOption getSelectedOption() {
-        return mState.get(SELECTED_OPTION_KEY);
-    }
-
-    /** Sets selected {@link GridOption} to {@link SavedStateHandle} */
-    public void setSelectedOption(GridOption selectedOption) {
-        mState.set(SELECTED_OPTION_KEY, selectedOption);
-    }
-
-    /** Gets bottom action bar visible from {@link SavedStateHandle} */
-    public boolean getBottomActionBarVisible() {
-        return mState.contains(BOTTOM_ACTION_BAR_VISIBLE_KEY)
-                ? mState.get(BOTTOM_ACTION_BAR_VISIBLE_KEY)
-                : false;
-    }
-
-    /** Sets bottom action bar visible to {@link SavedStateHandle} */
-    public void setBottomActionBarVisible(boolean bottomActionBarVisible) {
-        mState.set(BOTTOM_ACTION_BAR_VISIBLE_KEY, bottomActionBarVisible);
-    }
-}
diff --git a/src/com/android/customization/model/grid/GridOptionsManager.java b/src/com/android/customization/model/grid/GridOptionsManager.java
index 78dbb5b..bd24cf5 100644
--- a/src/com/android/customization/model/grid/GridOptionsManager.java
+++ b/src/com/android/customization/model/grid/GridOptionsManager.java
@@ -27,7 +27,7 @@
 
 import com.android.customization.model.CustomizationManager;
 import com.android.customization.module.CustomizationInjector;
-import com.android.customization.module.ThemesUserEventLogger;
+import com.android.customization.module.logging.ThemesUserEventLogger;
 import com.android.wallpaper.R;
 import com.android.wallpaper.module.InjectorProvider;
 import com.android.wallpaper.util.PreviewUtils;
diff --git a/src/com/android/customization/model/mode/DarkModeSectionController.java b/src/com/android/customization/model/mode/DarkModeSectionController.java
index ebeaa56..7139829 100644
--- a/src/com/android/customization/model/mode/DarkModeSectionController.java
+++ b/src/com/android/customization/model/mode/DarkModeSectionController.java
@@ -39,6 +39,7 @@
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
 
+import com.android.customization.module.logging.ThemesUserEventLogger;
 import com.android.customization.picker.mode.DarkModeSectionView;
 import com.android.wallpaper.R;
 import com.android.wallpaper.model.CustomizationSectionController;
@@ -60,16 +61,19 @@
     private Context mContext;
     private DarkModeSectionView mDarkModeSectionView;
     private final DarkModeSnapshotRestorer mSnapshotRestorer;
+    private final ThemesUserEventLogger mThemesUserEventLogger;
 
     public DarkModeSectionController(
             Context context,
             Lifecycle lifecycle,
-            DarkModeSnapshotRestorer snapshotRestorer) {
+            DarkModeSnapshotRestorer snapshotRestorer,
+            ThemesUserEventLogger themesUserEventLogger) {
         mContext = context;
         mLifecycle = lifecycle;
         mPowerManager = context.getSystemService(PowerManager.class);
         mLifecycle.addObserver(this);
         mSnapshotRestorer = snapshotRestorer;
+        mThemesUserEventLogger = themesUserEventLogger;
     }
 
     @OnLifecycleEvent(Lifecycle.Event.ON_START)
@@ -137,6 +141,7 @@
                     mDarkModeSectionView.announceForAccessibility(
                             context.getString(R.string.mode_changed));
                     uiModeManager.setNightModeActivated(viewActivated);
+                    mThemesUserEventLogger.logDarkThemeApplied(viewActivated);
                     mSnapshotRestorer.store(viewActivated);
                 },
                 /* delayMillis= */ shortDelay);
diff --git a/src/com/android/customization/model/theme/DefaultThemeProvider.java b/src/com/android/customization/model/theme/DefaultThemeProvider.java
deleted file mode 100644
index 89067c6..0000000
--- a/src/com/android/customization/model/theme/DefaultThemeProvider.java
+++ /dev/null
@@ -1,424 +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.theme;
-
-import static com.android.customization.model.ResourceConstants.ANDROID_PACKAGE;
-import static com.android.customization.model.ResourceConstants.ICONS_FOR_PREVIEW;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_COLOR;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_FONT;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_ANDROID;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_LAUNCHER;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_SETTINGS;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_SYSUI;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_THEMEPICKER;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SHAPE;
-import static com.android.customization.model.ResourceConstants.SYSUI_PACKAGE;
-
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.res.Resources.NotFoundException;
-import android.graphics.drawable.Drawable;
-import android.text.TextUtils;
-import android.util.Log;
-
-import androidx.annotation.Nullable;
-
-import com.android.customization.model.CustomizationManager.OptionsFetchedListener;
-import com.android.customization.model.ResourcesApkProvider;
-import com.android.customization.model.theme.ThemeBundle.Builder;
-import com.android.customization.model.theme.ThemeBundle.PreviewInfo.ShapeAppIcon;
-import com.android.customization.model.theme.custom.CustomTheme;
-import com.android.customization.module.CustomizationPreferences;
-import com.android.wallpaper.R;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Default implementation of {@link ThemeBundleProvider} that reads Themes' overlays from a stub APK.
- */
-public class DefaultThemeProvider extends ResourcesApkProvider implements ThemeBundleProvider {
-
-    private static final String TAG = "DefaultThemeProvider";
-
-    private static final String THEMES_ARRAY = "themes";
-    private static final String TITLE_PREFIX = "theme_title_";
-    private static final String FONT_PREFIX = "theme_overlay_font_";
-    private static final String COLOR_PREFIX = "theme_overlay_color_";
-    private static final String SHAPE_PREFIX = "theme_overlay_shape_";
-    private static final String ICON_ANDROID_PREFIX = "theme_overlay_icon_android_";
-    private static final String ICON_LAUNCHER_PREFIX = "theme_overlay_icon_launcher_";
-    private static final String ICON_THEMEPICKER_PREFIX = "theme_overlay_icon_themepicker_";
-    private static final String ICON_SETTINGS_PREFIX = "theme_overlay_icon_settings_";
-    private static final String ICON_SYSUI_PREFIX = "theme_overlay_icon_sysui_";
-
-    private static final String DEFAULT_THEME_NAME= "default";
-    private static final String THEME_TITLE_FIELD = "_theme_title";
-    private static final String THEME_ID_FIELD = "_theme_id";
-
-    private final OverlayThemeExtractor mOverlayProvider;
-    private List<ThemeBundle> mThemes;
-    private final CustomizationPreferences mCustomizationPreferences;
-
-    public DefaultThemeProvider(Context context, CustomizationPreferences customizationPrefs) {
-        super(context, context.getString(R.string.themes_stub_package));
-        mOverlayProvider = new OverlayThemeExtractor(context);
-        mCustomizationPreferences = customizationPrefs;
-    }
-
-    @Override
-    public void fetch(OptionsFetchedListener<ThemeBundle> callback, boolean reload) {
-        if (mThemes == null || reload) {
-            mThemes = new ArrayList<>();
-            loadAll();
-        }
-
-        if(callback != null) {
-            callback.onOptionsLoaded(mThemes);
-        }
-    }
-
-    @Override
-    public boolean isAvailable() {
-        return mOverlayProvider.isAvailable() && super.isAvailable();
-    }
-
-    private void loadAll() {
-        // Add "Custom" option at the beginning.
-        mThemes.add(new CustomTheme.Builder()
-                .setId(CustomTheme.newId())
-                .setTitle(mContext.getString(R.string.custom_theme))
-                .build(mContext));
-
-        addDefaultTheme();
-
-        String[] themeNames = getItemsFromStub(THEMES_ARRAY);
-
-        for (String themeName : themeNames) {
-            // Default theme needs special treatment (see #addDefaultTheme())
-            if (DEFAULT_THEME_NAME.equals(themeName)) {
-                continue;
-            }
-            ThemeBundle.Builder builder = new Builder();
-            try {
-                builder.setTitle(mStubApkResources.getString(
-                        mStubApkResources.getIdentifier(TITLE_PREFIX + themeName,
-                                "string", mStubPackageName)));
-
-                String shapeOverlayPackage = getOverlayPackage(SHAPE_PREFIX, themeName);
-                mOverlayProvider.addShapeOverlay(builder, shapeOverlayPackage);
-
-                String fontOverlayPackage = getOverlayPackage(FONT_PREFIX, themeName);
-                mOverlayProvider.addFontOverlay(builder, fontOverlayPackage);
-
-                String colorOverlayPackage = getOverlayPackage(COLOR_PREFIX, themeName);
-                mOverlayProvider.addColorOverlay(builder, colorOverlayPackage);
-
-                String iconAndroidOverlayPackage = getOverlayPackage(ICON_ANDROID_PREFIX,
-                        themeName);
-
-                mOverlayProvider.addAndroidIconOverlay(builder, iconAndroidOverlayPackage);
-
-                String iconSysUiOverlayPackage = getOverlayPackage(ICON_SYSUI_PREFIX, themeName);
-
-                mOverlayProvider.addSysUiIconOverlay(builder, iconSysUiOverlayPackage);
-
-                String iconLauncherOverlayPackage = getOverlayPackage(ICON_LAUNCHER_PREFIX,
-                        themeName);
-                mOverlayProvider.addNoPreviewIconOverlay(builder, iconLauncherOverlayPackage);
-
-                String iconThemePickerOverlayPackage = getOverlayPackage(ICON_THEMEPICKER_PREFIX,
-                        themeName);
-                mOverlayProvider.addNoPreviewIconOverlay(builder,
-                        iconThemePickerOverlayPackage);
-
-                String iconSettingsOverlayPackage = getOverlayPackage(ICON_SETTINGS_PREFIX,
-                        themeName);
-
-                mOverlayProvider.addNoPreviewIconOverlay(builder, iconSettingsOverlayPackage);
-
-                mThemes.add(builder.build(mContext));
-            } catch (NameNotFoundException | NotFoundException e) {
-                Log.w(TAG, String.format("Couldn't load part of theme %s, will skip it", themeName),
-                        e);
-            }
-        }
-
-        addCustomThemes();
-    }
-
-    /**
-     * Default theme requires different treatment: if there are overlay packages specified in the
-     * stub apk, we'll use those, otherwise we'll get the System default values. But we cannot skip
-     * the default theme.
-     */
-    private void addDefaultTheme() {
-        ThemeBundle.Builder builder = new Builder().asDefault();
-
-        int titleId = mStubApkResources.getIdentifier(TITLE_PREFIX + DEFAULT_THEME_NAME,
-                "string", mStubPackageName);
-        if (titleId > 0) {
-            builder.setTitle(mStubApkResources.getString(titleId));
-        } else {
-            builder.setTitle(mContext.getString(R.string.default_theme_title));
-        }
-
-        try {
-            String colorOverlayPackage = getOverlayPackage(COLOR_PREFIX, DEFAULT_THEME_NAME);
-            mOverlayProvider.addColorOverlay(builder, colorOverlayPackage);
-        } catch (NameNotFoundException | NotFoundException e) {
-            Log.d(TAG, "Didn't find color overlay for default theme, will use system default");
-            mOverlayProvider.addSystemDefaultColor(builder);
-        }
-
-        try {
-            String fontOverlayPackage = getOverlayPackage(FONT_PREFIX, DEFAULT_THEME_NAME);
-            mOverlayProvider.addFontOverlay(builder, fontOverlayPackage);
-        } catch (NameNotFoundException | NotFoundException e) {
-            Log.d(TAG, "Didn't find font overlay for default theme, will use system default");
-            mOverlayProvider.addSystemDefaultFont(builder);
-        }
-
-        try {
-            String shapeOverlayPackage = getOverlayPackage(SHAPE_PREFIX, DEFAULT_THEME_NAME);
-            mOverlayProvider.addShapeOverlay(builder ,shapeOverlayPackage, false);
-        } catch (NameNotFoundException | NotFoundException e) {
-            Log.d(TAG, "Didn't find shape overlay for default theme, will use system default");
-            mOverlayProvider.addSystemDefaultShape(builder);
-        }
-
-        List<ShapeAppIcon> icons = new ArrayList<>();
-        for (String packageName : mOverlayProvider.getShapePreviewIconPackages()) {
-            Drawable icon = null;
-            CharSequence name = null;
-            try {
-                icon = mContext.getPackageManager().getApplicationIcon(packageName);
-                ApplicationInfo appInfo = mContext.getPackageManager()
-                        .getApplicationInfo(packageName, /* flag= */ 0);
-                name = mContext.getPackageManager().getApplicationLabel(appInfo);
-            } catch (NameNotFoundException e) {
-                Log.d(TAG, "Couldn't find app " + packageName + ", won't use it for icon shape"
-                        + "preview");
-            } finally {
-                if (icon != null && !TextUtils.isEmpty(name)) {
-                    icons.add(new ShapeAppIcon(icon, name));
-                }
-            }
-        }
-        builder.setShapePreviewIcons(icons);
-
-        try {
-            String iconAndroidOverlayPackage = getOverlayPackage(ICON_ANDROID_PREFIX,
-                    DEFAULT_THEME_NAME);
-            mOverlayProvider.addAndroidIconOverlay(builder, iconAndroidOverlayPackage);
-        } catch (NameNotFoundException | NotFoundException e) {
-            Log.d(TAG, "Didn't find Android icons overlay for default theme, using system default");
-            mOverlayProvider.addSystemDefaultIcons(builder, ANDROID_PACKAGE, ICONS_FOR_PREVIEW);
-        }
-
-        try {
-            String iconSysUiOverlayPackage = getOverlayPackage(ICON_SYSUI_PREFIX,
-                    DEFAULT_THEME_NAME);
-            mOverlayProvider.addSysUiIconOverlay(builder, iconSysUiOverlayPackage);
-        } catch (NameNotFoundException | NotFoundException e) {
-            Log.d(TAG,
-                    "Didn't find SystemUi icons overlay for default theme, using system default");
-            mOverlayProvider.addSystemDefaultIcons(builder, SYSUI_PACKAGE, ICONS_FOR_PREVIEW);
-        }
-
-        mThemes.add(builder.build(mContext));
-    }
-
-    @Override
-    public void storeCustomTheme(CustomTheme theme) {
-        if (mThemes == null) {
-            fetch(options -> {
-                addCustomThemeAndStore(theme);
-            }, false);
-        } else {
-            addCustomThemeAndStore(theme);
-        }
-    }
-
-    private void addCustomThemeAndStore(CustomTheme theme) {
-        if (!mThemes.contains(theme)) {
-            mThemes.add(theme);
-        } else {
-            mThemes.replaceAll(t -> theme.equals(t) ? theme : t);
-        }
-        JSONArray themesArray = new JSONArray();
-        mThemes.stream()
-                .filter(themeBundle -> themeBundle instanceof CustomTheme
-                        && !themeBundle.getPackagesByCategory().isEmpty())
-                .forEachOrdered(themeBundle -> addThemeBundleToArray(themesArray, themeBundle));
-        mCustomizationPreferences.storeCustomThemes(themesArray.toString());
-    }
-
-    private void addThemeBundleToArray(JSONArray themesArray, ThemeBundle themeBundle) {
-        JSONObject jsonPackages = themeBundle.getJsonPackages(false);
-        try {
-            jsonPackages.put(THEME_TITLE_FIELD, themeBundle.getTitle());
-            if (themeBundle instanceof CustomTheme) {
-                jsonPackages.put(THEME_ID_FIELD, ((CustomTheme)themeBundle).getId());
-            }
-        } catch (JSONException e) {
-            Log.w("Exception saving theme's title", e);
-        }
-        themesArray.put(jsonPackages);
-    }
-
-    @Override
-    public void removeCustomTheme(CustomTheme theme) {
-        JSONArray themesArray = new JSONArray();
-        mThemes.stream()
-                .filter(themeBundle -> themeBundle instanceof CustomTheme
-                        && ((CustomTheme) themeBundle).isDefined())
-                .forEachOrdered(customTheme -> {
-                    if (!customTheme.equals(theme)) {
-                        addThemeBundleToArray(themesArray, customTheme);
-                    }
-                });
-        mCustomizationPreferences.storeCustomThemes(themesArray.toString());
-    }
-
-    private void addCustomThemes() {
-        String serializedThemes = mCustomizationPreferences.getSerializedCustomThemes();
-        int customThemesCount = 0;
-        if (!TextUtils.isEmpty(serializedThemes)) {
-            try {
-                JSONArray customThemes = new JSONArray(serializedThemes);
-                for (int i = 0; i < customThemes.length(); i++) {
-                    JSONObject jsonTheme = customThemes.getJSONObject(i);
-                    CustomTheme.Builder builder = new CustomTheme.Builder();
-                    try {
-                        convertJsonToBuilder(jsonTheme, builder);
-                    } catch (NameNotFoundException | NotFoundException e) {
-                        Log.i(TAG, "Couldn't parse serialized custom theme", e);
-                        builder = null;
-                    }
-                    if (builder != null) {
-                        if (TextUtils.isEmpty(builder.getTitle())) {
-                            builder.setTitle(mContext.getString(R.string.custom_theme_title,
-                                    customThemesCount + 1));
-                        }
-                        mThemes.add(builder.build(mContext));
-                    } else {
-                        Log.w(TAG, "Couldn't read stored custom theme, resetting");
-                        mThemes.add(new CustomTheme.Builder()
-                                .setId(CustomTheme.newId())
-                                .setTitle(mContext.getString(
-                                        R.string.custom_theme_title, customThemesCount + 1))
-                                .build(mContext));
-                    }
-                    customThemesCount++;
-                }
-            } catch (JSONException e) {
-                Log.w(TAG, "Couldn't read stored custom theme, resetting", e);
-                mThemes.add(new CustomTheme.Builder()
-                        .setId(CustomTheme.newId())
-                        .setTitle(mContext.getString(
-                                R.string.custom_theme_title, customThemesCount + 1))
-                        .build(mContext));
-            }
-        }
-    }
-
-    @Nullable
-    @Override
-    public ThemeBundle.Builder parseThemeBundle(String serializedTheme) throws JSONException {
-        JSONObject theme = new JSONObject(serializedTheme);
-        try {
-            ThemeBundle.Builder builder = new ThemeBundle.Builder();
-            convertJsonToBuilder(theme, builder);
-            return builder;
-        } catch (NameNotFoundException | NotFoundException e) {
-            Log.i(TAG, "Couldn't parse serialized custom theme", e);
-            return null;
-        }
-    }
-
-    @Nullable
-    @Override
-    public CustomTheme.Builder parseCustomTheme(String serializedTheme) throws JSONException {
-        JSONObject theme = new JSONObject(serializedTheme);
-        try {
-            CustomTheme.Builder builder = new CustomTheme.Builder();
-            convertJsonToBuilder(theme, builder);
-            return builder;
-        } catch (NameNotFoundException | NotFoundException e) {
-            Log.i(TAG, "Couldn't parse serialized custom theme", e);
-            return null;
-        }
-    }
-
-    private void convertJsonToBuilder(JSONObject theme, ThemeBundle.Builder builder)
-            throws JSONException, NameNotFoundException, NotFoundException {
-        Map<String, String> customPackages = new HashMap<>();
-        Iterator<String> keysIterator = theme.keys();
-
-        while (keysIterator.hasNext()) {
-            String category = keysIterator.next();
-            customPackages.put(category, theme.getString(category));
-        }
-        mOverlayProvider.addShapeOverlay(builder,
-                customPackages.get(OVERLAY_CATEGORY_SHAPE));
-        mOverlayProvider.addFontOverlay(builder,
-                customPackages.get(OVERLAY_CATEGORY_FONT));
-        mOverlayProvider.addColorOverlay(builder,
-                customPackages.get(OVERLAY_CATEGORY_COLOR));
-        mOverlayProvider.addAndroidIconOverlay(builder,
-                customPackages.get(OVERLAY_CATEGORY_ICON_ANDROID));
-        mOverlayProvider.addSysUiIconOverlay(builder,
-                customPackages.get(OVERLAY_CATEGORY_ICON_SYSUI));
-        mOverlayProvider.addNoPreviewIconOverlay(builder,
-                customPackages.get(OVERLAY_CATEGORY_ICON_SETTINGS));
-        mOverlayProvider.addNoPreviewIconOverlay(builder,
-                customPackages.get(OVERLAY_CATEGORY_ICON_LAUNCHER));
-        mOverlayProvider.addNoPreviewIconOverlay(builder,
-                customPackages.get(OVERLAY_CATEGORY_ICON_THEMEPICKER));
-        if (theme.has(THEME_TITLE_FIELD)) {
-            builder.setTitle(theme.getString(THEME_TITLE_FIELD));
-        }
-        if (builder instanceof CustomTheme.Builder && theme.has(THEME_ID_FIELD)) {
-            ((CustomTheme.Builder) builder).setId(theme.getString(THEME_ID_FIELD));
-        }
-    }
-
-    @Override
-    public ThemeBundle findEquivalent(ThemeBundle other) {
-        if (mThemes == null) {
-            return null;
-        }
-        for (ThemeBundle theme : mThemes) {
-            if (theme.isEquivalent(other)) {
-                return theme;
-            }
-        }
-        return null;
-    }
-
-    private String getOverlayPackage(String prefix, String themeName) {
-        return getItemStringFromStub(prefix, themeName);
-    }
-}
diff --git a/src/com/android/customization/model/theme/OverlayThemeExtractor.java b/src/com/android/customization/model/theme/OverlayThemeExtractor.java
deleted file mode 100644
index 816176e..0000000
--- a/src/com/android/customization/model/theme/OverlayThemeExtractor.java
+++ /dev/null
@@ -1,293 +0,0 @@
-package com.android.customization.model.theme;
-
-import static com.android.customization.model.ResourceConstants.ANDROID_PACKAGE;
-import static com.android.customization.model.ResourceConstants.ICONS_FOR_PREVIEW;
-import static com.android.customization.model.ResourceConstants.SETTINGS_PACKAGE;
-import static com.android.customization.model.ResourceConstants.SYSUI_PACKAGE;
-
-import android.content.Context;
-import android.content.om.OverlayInfo;
-import android.content.om.OverlayManager;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.res.Resources;
-import android.content.res.Resources.NotFoundException;
-import android.graphics.Typeface;
-import android.graphics.drawable.Drawable;
-import android.os.UserHandle;
-import android.text.TextUtils;
-import android.util.Log;
-
-import androidx.annotation.Dimension;
-import androidx.annotation.Nullable;
-
-import com.android.customization.model.ResourceConstants;
-import com.android.customization.model.theme.ThemeBundle.Builder;
-import com.android.customization.model.theme.ThemeBundle.PreviewInfo.ShapeAppIcon;
-import com.android.wallpaper.R;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Consumer;
-
-class OverlayThemeExtractor {
-
-    private static final String TAG = "OverlayThemeExtractor";
-
-    private final Context mContext;
-    private final Map<String, OverlayInfo> mOverlayInfos = new HashMap<>();
-    // List of packages
-    private final String[] mShapePreviewIconPackages;
-
-    OverlayThemeExtractor(Context context) {
-        mContext = context;
-        OverlayManager om = context.getSystemService(OverlayManager.class);
-        if (om != null) {
-            Consumer<OverlayInfo> addToMap = overlayInfo -> mOverlayInfos.put(
-                    overlayInfo.getPackageName(), overlayInfo);
-
-            UserHandle user = UserHandle.of(UserHandle.myUserId());
-            om.getOverlayInfosForTarget(ANDROID_PACKAGE, user).forEach(addToMap);
-            om.getOverlayInfosForTarget(SYSUI_PACKAGE, user).forEach(addToMap);
-            om.getOverlayInfosForTarget(SETTINGS_PACKAGE, user).forEach(addToMap);
-            om.getOverlayInfosForTarget(ResourceConstants.getLauncherPackage(context), user)
-                    .forEach(addToMap);
-            om.getOverlayInfosForTarget(context.getPackageName(), user).forEach(addToMap);
-        }
-        mShapePreviewIconPackages = context.getResources().getStringArray(
-                R.array.icon_shape_preview_packages);
-    }
-
-    boolean isAvailable() {
-        return !mOverlayInfos.isEmpty();
-    }
-
-    void addColorOverlay(Builder builder, String colorOverlayPackage)
-            throws NameNotFoundException {
-        if (!TextUtils.isEmpty(colorOverlayPackage)) {
-            builder.addOverlayPackage(getOverlayCategory(colorOverlayPackage),
-                    colorOverlayPackage)
-                    .setColorAccentLight(loadColor(ResourceConstants.ACCENT_COLOR_LIGHT_NAME,
-                            colorOverlayPackage))
-                    .setColorAccentDark(loadColor(ResourceConstants.ACCENT_COLOR_DARK_NAME,
-                            colorOverlayPackage));
-        } else {
-            addSystemDefaultColor(builder);
-        }
-    }
-
-    void addShapeOverlay(Builder builder, String shapeOverlayPackage)
-            throws NameNotFoundException {
-        addShapeOverlay(builder, shapeOverlayPackage, true);
-    }
-
-    void addShapeOverlay(Builder builder, String shapeOverlayPackage, boolean addPreview)
-            throws NameNotFoundException {
-        if (!TextUtils.isEmpty(shapeOverlayPackage)) {
-            builder.addOverlayPackage(getOverlayCategory(shapeOverlayPackage),
-                    shapeOverlayPackage)
-                    .setShapePath(
-                            loadString(ResourceConstants.CONFIG_ICON_MASK, shapeOverlayPackage))
-                    .setBottomSheetCornerRadius(
-                            loadDimen(ResourceConstants.CONFIG_CORNERRADIUS, shapeOverlayPackage));
-        } else {
-            addSystemDefaultShape(builder);
-        }
-        if (addPreview) {
-            addShapePreviewIcons(builder);
-        }
-    }
-
-    private void addShapePreviewIcons(Builder builder) {
-        List<ShapeAppIcon> icons = new ArrayList<>();
-        for (String packageName : mShapePreviewIconPackages) {
-            Drawable icon = null;
-            CharSequence name = null;
-            try {
-                icon = mContext.getPackageManager().getApplicationIcon(packageName);
-                // Add the shape icon app name.
-                ApplicationInfo appInfo = mContext.getPackageManager()
-                        .getApplicationInfo(packageName, /* flag= */ 0);
-                name = mContext.getPackageManager().getApplicationLabel(appInfo);
-            } catch (NameNotFoundException e) {
-                Log.d(TAG, "Couldn't find app " + packageName
-                        + ", won't use it for icon shape preview");
-            } finally {
-                if (icon != null && !TextUtils.isEmpty(name)) {
-                    icons.add(new ShapeAppIcon(icon, name));
-                }
-            }
-        }
-        builder.setShapePreviewIcons(icons);
-    }
-
-    void addNoPreviewIconOverlay(Builder builder, String overlayPackage) {
-        if (!TextUtils.isEmpty(overlayPackage)) {
-            builder.addOverlayPackage(getOverlayCategory(overlayPackage),
-                    overlayPackage);
-        }
-    }
-
-    void addSysUiIconOverlay(Builder builder, String iconSysUiOverlayPackage)
-            throws NameNotFoundException {
-        if (!TextUtils.isEmpty(iconSysUiOverlayPackage)) {
-            addIconOverlay(builder, iconSysUiOverlayPackage);
-        }
-    }
-
-    void addAndroidIconOverlay(Builder builder, String iconAndroidOverlayPackage)
-            throws NameNotFoundException {
-        if (!TextUtils.isEmpty(iconAndroidOverlayPackage)) {
-            addIconOverlay(builder, iconAndroidOverlayPackage, ICONS_FOR_PREVIEW);
-        } else {
-            addSystemDefaultIcons(builder, ANDROID_PACKAGE, ICONS_FOR_PREVIEW);
-        }
-    }
-
-    void addIconOverlay(Builder builder, String packageName, String... previewIcons)
-            throws NameNotFoundException {
-        builder.addOverlayPackage(getOverlayCategory(packageName), packageName);
-        for (String iconName : previewIcons) {
-            builder.addIcon(loadIconPreviewDrawable(iconName, packageName, false));
-        }
-    }
-
-    void addFontOverlay(Builder builder, String fontOverlayPackage)
-            throws NameNotFoundException {
-        if (!TextUtils.isEmpty(fontOverlayPackage)) {
-            builder.addOverlayPackage(getOverlayCategory(fontOverlayPackage),
-                    fontOverlayPackage)
-                    .setBodyFontFamily(loadTypeface(
-                            ResourceConstants.CONFIG_BODY_FONT_FAMILY,
-                            fontOverlayPackage))
-                    .setHeadlineFontFamily(loadTypeface(
-                            ResourceConstants.CONFIG_HEADLINE_FONT_FAMILY,
-                            fontOverlayPackage));
-        } else {
-            addSystemDefaultFont(builder);
-        }
-    }
-
-    void addSystemDefaultIcons(Builder builder, String packageName,
-            String... previewIcons) {
-        try {
-            for (String iconName : previewIcons) {
-                builder.addIcon(loadIconPreviewDrawable(iconName, packageName, true));
-            }
-        } catch (NameNotFoundException | NotFoundException e) {
-            Log.w(TAG, "Didn't find android package icons, will skip preview", e);
-        }
-    }
-
-    void addSystemDefaultShape(Builder builder) {
-        Resources system = Resources.getSystem();
-        String iconMaskPath = system.getString(
-                system.getIdentifier(ResourceConstants.CONFIG_ICON_MASK,
-                        "string", ResourceConstants.ANDROID_PACKAGE));
-        builder.setShapePath(iconMaskPath)
-                .setBottomSheetCornerRadius(
-                        system.getDimensionPixelOffset(
-                                system.getIdentifier(ResourceConstants.CONFIG_CORNERRADIUS,
-                                        "dimen", ResourceConstants.ANDROID_PACKAGE)));
-    }
-
-    void addSystemDefaultColor(Builder builder) {
-        Resources system = Resources.getSystem();
-        int colorAccentLight = system.getColor(
-                system.getIdentifier(ResourceConstants.ACCENT_COLOR_LIGHT_NAME, "color",
-                        ResourceConstants.ANDROID_PACKAGE), null);
-        builder.setColorAccentLight(colorAccentLight);
-
-        int colorAccentDark = system.getColor(
-                system.getIdentifier(ResourceConstants.ACCENT_COLOR_DARK_NAME, "color",
-                        ResourceConstants.ANDROID_PACKAGE), null);
-        builder.setColorAccentDark(colorAccentDark);
-    }
-
-    void addSystemDefaultFont(Builder builder) {
-        Resources system = Resources.getSystem();
-        String headlineFontFamily = system.getString(system.getIdentifier(
-                ResourceConstants.CONFIG_HEADLINE_FONT_FAMILY, "string",
-                ResourceConstants.ANDROID_PACKAGE));
-        String bodyFontFamily = system.getString(system.getIdentifier(
-                ResourceConstants.CONFIG_BODY_FONT_FAMILY,
-                "string", ResourceConstants.ANDROID_PACKAGE));
-        builder.setHeadlineFontFamily(Typeface.create(headlineFontFamily, Typeface.NORMAL))
-                .setBodyFontFamily(Typeface.create(bodyFontFamily, Typeface.NORMAL));
-    }
-
-    Typeface loadTypeface(String configName, String fontOverlayPackage)
-            throws NameNotFoundException, NotFoundException {
-
-        // TODO(santie): check for font being present in system
-
-        Resources overlayRes = mContext.getPackageManager()
-                .getResourcesForApplication(fontOverlayPackage);
-
-        String fontFamily = overlayRes.getString(overlayRes.getIdentifier(configName,
-                "string", fontOverlayPackage));
-        return Typeface.create(fontFamily, Typeface.NORMAL);
-    }
-
-    int loadColor(String colorName, String colorPackage)
-            throws NameNotFoundException, NotFoundException {
-
-        Resources overlayRes = mContext.getPackageManager()
-                .getResourcesForApplication(colorPackage);
-        return overlayRes.getColor(overlayRes.getIdentifier(colorName, "color", colorPackage),
-                null);
-    }
-
-    String loadString(String stringName, String packageName)
-            throws NameNotFoundException, NotFoundException {
-
-        Resources overlayRes =
-                mContext.getPackageManager().getResourcesForApplication(
-                        packageName);
-        return overlayRes.getString(overlayRes.getIdentifier(stringName, "string", packageName));
-    }
-
-    @Dimension
-    int loadDimen(String dimenName, String packageName)
-            throws NameNotFoundException, NotFoundException {
-
-        Resources overlayRes =
-                mContext.getPackageManager().getResourcesForApplication(
-                        packageName);
-        return overlayRes.getDimensionPixelOffset(overlayRes.getIdentifier(
-                dimenName, "dimen", packageName));
-    }
-
-    boolean loadBoolean(String booleanName, String packageName)
-            throws NameNotFoundException, NotFoundException {
-
-        Resources overlayRes =
-                mContext.getPackageManager().getResourcesForApplication(
-                        packageName);
-        return overlayRes.getBoolean(overlayRes.getIdentifier(
-                booleanName, "boolean", packageName));
-    }
-
-    Drawable loadIconPreviewDrawable(String drawableName, String packageName,
-            boolean fromSystem) throws NameNotFoundException, NotFoundException {
-
-        Resources packageRes =
-                mContext.getPackageManager().getResourcesForApplication(
-                        packageName);
-        Resources res = fromSystem ? Resources.getSystem() : packageRes;
-        return res.getDrawable(
-                packageRes.getIdentifier(drawableName, "drawable", packageName), null);
-    }
-
-    @Nullable
-    String getOverlayCategory(String packageName) {
-        OverlayInfo info = mOverlayInfos.get(packageName);
-        return info != null ? info.getCategory() : null;
-    }
-
-    String[] getShapePreviewIconPackages() {
-        return mShapePreviewIconPackages;
-    }
-}
\ No newline at end of file
diff --git a/src/com/android/customization/model/theme/ThemeBundle.java b/src/com/android/customization/model/theme/ThemeBundle.java
deleted file mode 100644
index 3a32f25..0000000
--- a/src/com/android/customization/model/theme/ThemeBundle.java
+++ /dev/null
@@ -1,432 +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.theme;
-
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_COLOR;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_FONT;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_ANDROID;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SHAPE;
-import static com.android.customization.model.ResourceConstants.PATH_SIZE;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.graphics.Path;
-import android.graphics.Typeface;
-import android.graphics.drawable.AdaptiveIconDrawable;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.ShapeDrawable;
-import android.graphics.drawable.shapes.PathShape;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import androidx.annotation.ColorInt;
-import androidx.annotation.Dimension;
-import androidx.annotation.Nullable;
-import androidx.core.graphics.PathParser;
-
-import com.android.customization.model.CustomizationManager;
-import com.android.customization.model.CustomizationOption;
-import com.android.customization.model.theme.ThemeBundle.PreviewInfo.ShapeAppIcon;
-import com.android.customization.widget.DynamicAdaptiveIconDrawable;
-import com.android.wallpaper.R;
-import com.android.wallpaper.asset.Asset;
-import com.android.wallpaper.asset.BitmapCachingAsset;
-import com.android.wallpaper.model.WallpaperInfo;
-import com.android.wallpaper.util.ResourceUtils;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-/**
- * Represents a Theme component available in the system as a "persona" bundle.
- * Note that in this context a Theme is not related to Android's Styles, but it's rather an
- * abstraction representing a series of overlays to be applied to the system.
- */
-public class ThemeBundle implements CustomizationOption<ThemeBundle> {
-
-    private static final String TAG = "ThemeBundle";
-    private final static String EMPTY_JSON = "{}";
-    private final static String TIMESTAMP_FIELD = "_applied_timestamp";
-
-    private final String mTitle;
-    private final PreviewInfo mPreviewInfo;
-    private final boolean mIsDefault;
-    protected final Map<String, String> mPackagesByCategory;
-    private WallpaperInfo mOverrideWallpaper;
-    private Asset mOverrideWallpaperAsset;
-    private CharSequence mContentDescription;
-
-    protected ThemeBundle(String title, Map<String, String> overlayPackages,
-            boolean isDefault, PreviewInfo previewInfo) {
-        mTitle = title;
-        mIsDefault = isDefault;
-        mPreviewInfo = previewInfo;
-        mPackagesByCategory = Collections.unmodifiableMap(removeNullValues(overlayPackages));
-    }
-
-    @Override
-    public String getTitle() {
-        return mTitle;
-    }
-
-    @Override
-    public void bindThumbnailTile(View view) {
-        Resources res = view.getContext().getResources();
-
-        ((TextView) view.findViewById(R.id.theme_option_font)).setTypeface(
-                mPreviewInfo.headlineFontFamily);
-        if (mPreviewInfo.shapeDrawable != null) {
-            ((ShapeDrawable) mPreviewInfo.shapeDrawable).getPaint().setColor(
-                    mPreviewInfo.resolveAccentColor(res));
-            ((ImageView) view.findViewById(R.id.theme_option_shape)).setImageDrawable(
-                    mPreviewInfo.shapeDrawable);
-        }
-        if (!mPreviewInfo.icons.isEmpty()) {
-            Drawable icon = mPreviewInfo.icons.get(0).getConstantState().newDrawable().mutate();
-            icon.setTint(ResourceUtils.getColorAttr(
-                    view.getContext(), android.R.attr.textColorSecondary));
-            ((ImageView) view.findViewById(R.id.theme_option_icon)).setImageDrawable(
-                    icon);
-        }
-        view.setContentDescription(getContentDescription(view.getContext()));
-    }
-
-    @Override
-    public boolean isActive(CustomizationManager<ThemeBundle> manager) {
-        ThemeManager themeManager = (ThemeManager) manager;
-
-        if (mIsDefault) {
-            String serializedOverlays = themeManager.getStoredOverlays();
-            return TextUtils.isEmpty(serializedOverlays) || EMPTY_JSON.equals(serializedOverlays);
-        } else {
-            Map<String, String> currentOverlays = themeManager.getCurrentOverlays();
-            return mPackagesByCategory.equals(currentOverlays);
-        }
-    }
-
-    @Override
-    public int getLayoutResId() {
-        return R.layout.theme_option;
-    }
-
-    /**
-     * This is similar to #equals() but it only compares this theme's packages with the other, that
-     * is, it will return true if applying this theme has the same effect of applying the given one.
-     */
-    public boolean isEquivalent(ThemeBundle other) {
-        if (other == null) {
-            return false;
-        }
-        if (mIsDefault) {
-            return other.isDefault() || TextUtils.isEmpty(other.getSerializedPackages())
-                    || EMPTY_JSON.equals(other.getSerializedPackages());
-        }
-        // Map#equals ensures keys and values are compared.
-        return mPackagesByCategory.equals(other.mPackagesByCategory);
-    }
-
-    public PreviewInfo getPreviewInfo() {
-        return mPreviewInfo;
-    }
-
-    public void setOverrideThemeWallpaper(WallpaperInfo homeWallpaper) {
-        mOverrideWallpaper = homeWallpaper;
-        mOverrideWallpaperAsset = null;
-    }
-
-    private Asset getOverrideWallpaperAsset(Context context) {
-        if (mOverrideWallpaperAsset == null) {
-            mOverrideWallpaperAsset = new BitmapCachingAsset(context,
-                    mOverrideWallpaper.getThumbAsset(context));
-        }
-        return mOverrideWallpaperAsset;
-    }
-
-    boolean isDefault() {
-        return mIsDefault;
-    }
-
-    public Map<String, String> getPackagesByCategory() {
-        return mPackagesByCategory;
-    }
-
-    public String getSerializedPackages() {
-        return getJsonPackages(false).toString();
-    }
-
-    public String getSerializedPackagesWithTimestamp() {
-        return getJsonPackages(true).toString();
-    }
-
-    JSONObject getJsonPackages(boolean insertTimestamp) {
-        if (isDefault()) {
-            return new JSONObject();
-        }
-        JSONObject json = new JSONObject(mPackagesByCategory);
-        // Remove items with null values to avoid deserialization issues.
-        removeNullValues(json);
-        if (insertTimestamp) {
-            try {
-                json.put(TIMESTAMP_FIELD, System.currentTimeMillis());
-            } catch (JSONException e) {
-                Log.e(TAG, "Couldn't add timestamp to serialized themebundle");
-            }
-        }
-        return json;
-    }
-
-    private void removeNullValues(JSONObject json) {
-        Iterator<String> keys = json.keys();
-        Set<String> keysToRemove = new HashSet<>();
-        while(keys.hasNext()) {
-            String key = keys.next();
-            if (json.isNull(key)) {
-                keysToRemove.add(key);
-            }
-        }
-        for (String key : keysToRemove) {
-            json.remove(key);
-        }
-    }
-
-    private Map<String, String> removeNullValues(Map<String, String> map) {
-        return map.entrySet()
-                .stream()
-                .filter(entry -> entry.getValue() != null)
-                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
-    }
-
-    protected CharSequence getContentDescription(Context context) {
-        if (mContentDescription == null) {
-            CharSequence defaultName = context.getString(R.string.default_theme_title);
-            if (isDefault()) {
-                mContentDescription = defaultName;
-            } else {
-                PackageManager pm = context.getPackageManager();
-                CharSequence fontName = getOverlayName(pm, OVERLAY_CATEGORY_FONT);
-                CharSequence iconName = getOverlayName(pm, OVERLAY_CATEGORY_ICON_ANDROID);
-                CharSequence shapeName = getOverlayName(pm, OVERLAY_CATEGORY_SHAPE);
-                CharSequence colorName = getOverlayName(pm, OVERLAY_CATEGORY_COLOR);
-                mContentDescription = context.getString(R.string.theme_description,
-                        TextUtils.isEmpty(fontName) ? defaultName : fontName,
-                        TextUtils.isEmpty(iconName) ? defaultName : iconName,
-                        TextUtils.isEmpty(shapeName) ? defaultName : shapeName,
-                        TextUtils.isEmpty(colorName) ? defaultName : colorName);
-            }
-        }
-        return mContentDescription;
-    }
-
-    private CharSequence getOverlayName(PackageManager pm, String overlayCategoryFont) {
-        try {
-            return pm.getApplicationInfo(
-                    mPackagesByCategory.get(overlayCategoryFont), 0).loadLabel(pm);
-        } catch (PackageManager.NameNotFoundException e) {
-            return "";
-        }
-    }
-
-    public static class PreviewInfo {
-        public final Typeface bodyFontFamily;
-        public final Typeface headlineFontFamily;
-        @ColorInt public final int colorAccentLight;
-        @ColorInt public final int colorAccentDark;
-        public final List<Drawable> icons;
-        public final Drawable shapeDrawable;
-        public final List<ShapeAppIcon> shapeAppIcons;
-        @Dimension public final int bottomSheeetCornerRadius;
-
-        /** A class to represent an App icon and its name. */
-        public static class ShapeAppIcon {
-            private Drawable mIconDrawable;
-            private CharSequence mAppName;
-
-            public ShapeAppIcon(Drawable icon, CharSequence appName) {
-                mIconDrawable = icon;
-                mAppName = appName;
-            }
-
-            /** Returns a copy of app icon drawable. */
-            public Drawable getDrawableCopy() {
-                return mIconDrawable.getConstantState().newDrawable().mutate();
-            }
-
-            /** Returns the app name. */
-            public CharSequence getAppName() {
-                return mAppName;
-            }
-        }
-
-        private PreviewInfo(Context context, Typeface bodyFontFamily, Typeface headlineFontFamily,
-                int colorAccentLight, int colorAccentDark, List<Drawable> icons,
-                Drawable shapeDrawable, @Dimension int cornerRadius,
-                List<ShapeAppIcon> shapeAppIcons) {
-            this.bodyFontFamily = bodyFontFamily;
-            this.headlineFontFamily = headlineFontFamily;
-            this.colorAccentLight = colorAccentLight;
-            this.colorAccentDark = colorAccentDark;
-            this.icons = icons;
-            this.shapeDrawable = shapeDrawable;
-            this.bottomSheeetCornerRadius = cornerRadius;
-            this.shapeAppIcons = shapeAppIcons;
-        }
-
-        /**
-         * Returns the accent color to be applied corresponding with the current configuration's
-         * UI mode.
-         * @return one of {@link #colorAccentDark} or {@link #colorAccentLight}
-         */
-        @ColorInt
-        public int resolveAccentColor(Resources res) {
-            return (res.getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK)
-                    == Configuration.UI_MODE_NIGHT_YES ? colorAccentDark : colorAccentLight;
-        }
-    }
-
-    public static class Builder {
-        protected String mTitle;
-        private Typeface mBodyFontFamily;
-        private Typeface mHeadlineFontFamily;
-        @ColorInt private int mColorAccentLight = -1;
-        @ColorInt private int mColorAccentDark = -1;
-        private List<Drawable> mIcons = new ArrayList<>();
-        private String mPathString;
-        private Path mShapePath;
-        private boolean mIsDefault;
-        @Dimension private int mCornerRadius;
-        protected Map<String, String> mPackages = new HashMap<>();
-        private List<ShapeAppIcon> mAppIcons = new ArrayList<>();
-
-        public ThemeBundle build(Context context) {
-            return new ThemeBundle(mTitle, mPackages, mIsDefault, createPreviewInfo(context));
-        }
-
-        public PreviewInfo createPreviewInfo(Context context) {
-            ShapeDrawable shapeDrawable = null;
-            List<ShapeAppIcon> shapeIcons = new ArrayList<>();
-            Path path = mShapePath;
-            if (!TextUtils.isEmpty(mPathString)) {
-                path = PathParser.createPathFromPathData(mPathString);
-            }
-            if (path != null) {
-                PathShape shape = new PathShape(path, PATH_SIZE, PATH_SIZE);
-                shapeDrawable = new ShapeDrawable(shape);
-                shapeDrawable.setIntrinsicHeight((int) PATH_SIZE);
-                shapeDrawable.setIntrinsicWidth((int) PATH_SIZE);
-                for (ShapeAppIcon icon : mAppIcons) {
-                    Drawable drawable = icon.mIconDrawable;
-                    if (drawable instanceof AdaptiveIconDrawable) {
-                        AdaptiveIconDrawable adaptiveIcon = (AdaptiveIconDrawable) drawable;
-                        shapeIcons.add(new ShapeAppIcon(
-                                new DynamicAdaptiveIconDrawable(adaptiveIcon.getBackground(),
-                                        adaptiveIcon.getForeground(), path),
-                                icon.getAppName()));
-                    } else if (drawable instanceof DynamicAdaptiveIconDrawable) {
-                        shapeIcons.add(icon);
-                    }
-                    // TODO: add iconloader library's legacy treatment helper methods for
-                    //  non-adaptive icons
-                }
-            }
-            return new PreviewInfo(context, mBodyFontFamily, mHeadlineFontFamily, mColorAccentLight,
-                    mColorAccentDark, mIcons, shapeDrawable, mCornerRadius, shapeIcons);
-        }
-
-        public Map<String, String> getPackages() {
-            return Collections.unmodifiableMap(mPackages);
-        }
-
-        public String getTitle() {
-            return mTitle;
-        }
-
-        public Builder setTitle(String title) {
-            mTitle = title;
-            return this;
-        }
-
-        public Builder setBodyFontFamily(@Nullable Typeface bodyFontFamily) {
-            mBodyFontFamily = bodyFontFamily;
-            return this;
-        }
-
-        public Builder setHeadlineFontFamily(@Nullable Typeface headlineFontFamily) {
-            mHeadlineFontFamily = headlineFontFamily;
-            return this;
-        }
-
-        public Builder setColorAccentLight(@ColorInt int colorAccentLight) {
-            mColorAccentLight = colorAccentLight;
-            return this;
-        }
-
-        public Builder setColorAccentDark(@ColorInt int colorAccentDark) {
-            mColorAccentDark = colorAccentDark;
-            return this;
-        }
-
-        public Builder addIcon(Drawable icon) {
-            mIcons.add(icon);
-            return this;
-        }
-
-        public Builder addOverlayPackage(String category, String packageName) {
-            mPackages.put(category, packageName);
-            return this;
-        }
-
-        public Builder setShapePath(String path) {
-            mPathString = path;
-            return this;
-        }
-
-        public Builder setShapePath(Path path) {
-            mShapePath = path;
-            return this;
-        }
-
-        public Builder asDefault() {
-            mIsDefault = true;
-            return this;
-        }
-
-        public Builder setShapePreviewIcons(List<ShapeAppIcon> appIcons) {
-            mAppIcons.clear();
-            mAppIcons.addAll(appIcons);
-            return this;
-        }
-
-        public Builder setBottomSheetCornerRadius(@Dimension int radius) {
-            mCornerRadius = radius;
-            return this;
-        }
-    }
-}
diff --git a/src/com/android/customization/model/theme/ThemeBundleProvider.java b/src/com/android/customization/model/theme/ThemeBundleProvider.java
deleted file mode 100644
index 34342b3..0000000
--- a/src/com/android/customization/model/theme/ThemeBundleProvider.java
+++ /dev/null
@@ -1,51 +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.theme;
-
-import androidx.annotation.Nullable;
-
-import com.android.customization.model.CustomizationManager.OptionsFetchedListener;
-import com.android.customization.model.theme.custom.CustomTheme;
-
-import org.json.JSONException;
-
-/**
- * Interface for a class that can retrieve Themes from the system.
- */
-public interface ThemeBundleProvider {
-
-    /**
-     * Returns whether themes are available in the current setup.
-     */
-    boolean isAvailable();
-
-    /**
-     * Retrieve the available themes.
-     * @param callback called when the themes have been retrieved (or immediately if cached)
-     * @param reload whether to reload themes if they're cached.
-     */
-    void fetch(OptionsFetchedListener<ThemeBundle> callback, boolean reload);
-
-    void storeCustomTheme(CustomTheme theme);
-
-    void removeCustomTheme(CustomTheme theme);
-
-    @Nullable ThemeBundle.Builder parseThemeBundle(String serializedTheme) throws JSONException;
-
-    @Nullable CustomTheme.Builder parseCustomTheme(String serializedTheme) throws JSONException;
-
-    ThemeBundle findEquivalent(ThemeBundle other);
-}
diff --git a/src/com/android/customization/model/theme/ThemeBundledWallpaperInfo.java b/src/com/android/customization/model/theme/ThemeBundledWallpaperInfo.java
deleted file mode 100644
index 4f0cd6c..0000000
--- a/src/com/android/customization/model/theme/ThemeBundledWallpaperInfo.java
+++ /dev/null
@@ -1,190 +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.theme;
-
-import android.app.Activity;
-import android.content.ActivityNotFoundException;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.content.res.Resources;
-import android.os.Parcel;
-import android.util.Log;
-
-import androidx.annotation.DrawableRes;
-import androidx.annotation.StringRes;
-
-import com.android.wallpaper.asset.Asset;
-import com.android.wallpaper.asset.ResourceAsset;
-import com.android.wallpaper.model.InlinePreviewIntentFactory;
-import com.android.wallpaper.model.WallpaperInfo;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Represents a wallpaper coming from the resources of the theme bundle container APK.
- */
-public class ThemeBundledWallpaperInfo extends WallpaperInfo {
-    public static final Creator<ThemeBundledWallpaperInfo> CREATOR =
-            new Creator<ThemeBundledWallpaperInfo>() {
-                @Override
-                public ThemeBundledWallpaperInfo createFromParcel(Parcel in) {
-                    return new ThemeBundledWallpaperInfo(in);
-                }
-
-                @Override
-                public ThemeBundledWallpaperInfo[] newArray(int size) {
-                    return new ThemeBundledWallpaperInfo[size];
-                }
-            };
-
-    private static final String TAG = "ThemeBundledWallpaperInfo";
-
-    private final String mPackageName;
-    private final String mResName;
-    private final String mCollectionId;
-    @DrawableRes private final int mDrawableResId;
-    @StringRes private final int mTitleResId;
-    @StringRes private final int mAttributionResId;
-    @StringRes private final int mActionUrlResId;
-    private List<String> mAttributions;
-    private String mActionUrl;
-    private Resources mResources;
-    private Asset mAsset;
-
-    /**
-     * Constructs a new theme-bundled static wallpaper model object.
-     *
-     * @param drawableResId  Resource ID of the raw wallpaper image.
-     * @param resName        The unique name of the wallpaper resource, e.g. "z_wp001".
-     * @param themeName   Unique name of the collection this wallpaper belongs in; used for logging.
-     * @param titleResId     Resource ID of the string for the title attribution.
-     * @param attributionResId Resource ID of the string for the first subtitle attribution.
-     */
-    public ThemeBundledWallpaperInfo(String packageName, String resName, String themeName,
-            int drawableResId, int titleResId, int attributionResId, int actionUrlResId) {
-        mPackageName = packageName;
-        mResName = resName;
-        mCollectionId = themeName;
-        mDrawableResId = drawableResId;
-        mTitleResId = titleResId;
-        mAttributionResId = attributionResId;
-        mActionUrlResId = actionUrlResId;
-    }
-
-    private ThemeBundledWallpaperInfo(Parcel in) {
-        super(in);
-        mPackageName = in.readString();
-        mResName = in.readString();
-        mCollectionId = in.readString();
-        mDrawableResId = in.readInt();
-        mTitleResId = in.readInt();
-        mAttributionResId = in.readInt();
-        mActionUrlResId = in.readInt();
-    }
-
-    @Override
-    public List<String> getAttributions(Context context) {
-        if (mAttributions == null) {
-            Resources res = getPackageResources(context);
-            mAttributions = new ArrayList<>();
-            if (mTitleResId != 0) {
-                mAttributions.add(res.getString(mTitleResId));
-            }
-            if (mAttributionResId != 0) {
-                mAttributions.add(res.getString(mAttributionResId));
-            }
-        }
-
-        return mAttributions;
-    }
-
-    @Override
-    public String getActionUrl(Context context) {
-        if (mActionUrl == null && mActionUrlResId != 0) {
-            mActionUrl = getPackageResources(context).getString(mActionUrlResId);
-        }
-        return mActionUrl;
-    }
-
-    @Override
-    public Asset getAsset(Context context) {
-        if (mAsset == null) {
-            Resources res = getPackageResources(context);
-            mAsset = new ResourceAsset(res, mDrawableResId);
-        }
-
-        return mAsset;
-    }
-
-    @Override
-    public Asset getThumbAsset(Context context) {
-        return getAsset(context);
-    }
-
-    @Override
-    public void showPreview(Activity srcActivity, InlinePreviewIntentFactory factory,
-            int requestCode, boolean isAssetIdPresent) {
-        try {
-            srcActivity.startActivityForResult(factory.newIntent(srcActivity, this,
-                    isAssetIdPresent), requestCode);
-        } catch (ActivityNotFoundException |SecurityException e) {
-            Log.e(TAG, "App isn't installed or ThemePicker doesn't have permission to launch", e);
-        }
-    }
-
-    @Override
-    public String getCollectionId(Context unused) {
-        return mCollectionId;
-    }
-
-    @Override
-    public String getWallpaperId() {
-        return mResName;
-    }
-
-    public String getResName() {
-        return mResName;
-    }
-
-    /**
-     * Returns the {@link Resources} instance for the theme bundles stub APK.
-     */
-    private Resources getPackageResources(Context context) {
-        if (mResources != null) {
-            return mResources;
-        }
-
-        try {
-            mResources = context.getPackageManager().getResourcesForApplication(mPackageName);
-        } catch (PackageManager.NameNotFoundException e) {
-            Log.e(TAG, "Could not get app resources for " + mPackageName);
-        }
-        return mResources;
-    }
-
-    @Override
-    public void writeToParcel(Parcel dest, int flags) {
-        super.writeToParcel(dest, flags);
-        dest.writeString(mPackageName);
-        dest.writeString(mResName);
-        dest.writeString(mCollectionId);
-        dest.writeInt(mDrawableResId);
-        dest.writeInt(mTitleResId);
-        dest.writeInt(mAttributionResId);
-        dest.writeInt(mActionUrlResId);
-    }
-}
diff --git a/src/com/android/customization/model/theme/ThemeManager.java b/src/com/android/customization/model/theme/ThemeManager.java
deleted file mode 100644
index 85241c1..0000000
--- a/src/com/android/customization/model/theme/ThemeManager.java
+++ /dev/null
@@ -1,149 +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.theme;
-
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_COLOR;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_FONT;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_ANDROID;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_LAUNCHER;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_SETTINGS;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_SYSUI;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_THEMEPICKER;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SHAPE;
-
-import android.provider.Settings;
-import android.text.TextUtils;
-
-import androidx.annotation.Nullable;
-import androidx.fragment.app.FragmentActivity;
-
-import com.android.customization.model.CustomizationManager;
-import com.android.customization.model.ResourceConstants;
-import com.android.customization.model.theme.custom.CustomTheme;
-import com.android.customization.module.ThemesUserEventLogger;
-
-import org.json.JSONObject;
-
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-public class ThemeManager implements CustomizationManager<ThemeBundle> {
-
-    public static final Set<String> THEME_CATEGORIES = new HashSet<>();
-    static {
-        THEME_CATEGORIES.add(OVERLAY_CATEGORY_COLOR);
-        THEME_CATEGORIES.add(OVERLAY_CATEGORY_FONT);
-        THEME_CATEGORIES.add(OVERLAY_CATEGORY_SHAPE);
-        THEME_CATEGORIES.add(OVERLAY_CATEGORY_ICON_ANDROID);
-        THEME_CATEGORIES.add(OVERLAY_CATEGORY_ICON_SETTINGS);
-        THEME_CATEGORIES.add(OVERLAY_CATEGORY_ICON_SYSUI);
-        THEME_CATEGORIES.add(OVERLAY_CATEGORY_ICON_LAUNCHER);
-        THEME_CATEGORIES.add(OVERLAY_CATEGORY_ICON_THEMEPICKER);
-    }
-
-    private final ThemeBundleProvider mProvider;
-    private final OverlayManagerCompat mOverlayManagerCompat;
-
-    protected final FragmentActivity mActivity;
-    private final ThemesUserEventLogger mEventLogger;
-
-    private Map<String, String> mCurrentOverlays;
-
-    public ThemeManager(ThemeBundleProvider provider, FragmentActivity activity,
-            OverlayManagerCompat overlayManagerCompat,
-            ThemesUserEventLogger logger) {
-        mProvider = provider;
-        mActivity = activity;
-        mOverlayManagerCompat = overlayManagerCompat;
-        mEventLogger = logger;
-    }
-
-    @Override
-    public boolean isAvailable() {
-        return mOverlayManagerCompat.isAvailable() && mProvider.isAvailable();
-    }
-
-    @Override
-    public void apply(ThemeBundle theme, Callback callback) {
-        applyOverlays(theme, callback);
-    }
-
-    private void applyOverlays(ThemeBundle theme, Callback callback) {
-        boolean allApplied = Settings.Secure.putString(mActivity.getContentResolver(),
-                ResourceConstants.THEME_SETTING, theme.getSerializedPackagesWithTimestamp());
-        if (theme instanceof CustomTheme) {
-            storeCustomTheme((CustomTheme) theme);
-        }
-        mCurrentOverlays = null;
-        if (allApplied) {
-            mEventLogger.logThemeApplied(theme, theme instanceof CustomTheme);
-            callback.onSuccess();
-        } else {
-            callback.onError(null);
-        }
-    }
-
-    private void storeCustomTheme(CustomTheme theme) {
-        mProvider.storeCustomTheme(theme);
-    }
-
-    @Override
-    public void fetchOptions(OptionsFetchedListener<ThemeBundle> callback, boolean reload) {
-        mProvider.fetch(callback, reload);
-    }
-
-    public Map<String, String> getCurrentOverlays() {
-        if (mCurrentOverlays == null) {
-            mCurrentOverlays = mOverlayManagerCompat.getEnabledOverlaysForTargets(
-                    ResourceConstants.getPackagesToOverlay(mActivity));
-            mCurrentOverlays.entrySet().removeIf(
-                    categoryAndPackage -> !THEME_CATEGORIES.contains(categoryAndPackage.getKey()));
-        }
-        return mCurrentOverlays;
-    }
-
-    public String getStoredOverlays() {
-        return Settings.Secure.getString(mActivity.getContentResolver(),
-                ResourceConstants.THEME_SETTING);
-    }
-
-    public void removeCustomTheme(CustomTheme theme) {
-        mProvider.removeCustomTheme(theme);
-    }
-
-    /**
-     * @return an existing ThemeBundle that matches the same packages as the given one, if one
-     * exists, or {@code null} otherwise.
-     */
-    @Nullable
-    public ThemeBundle findThemeByPackages(ThemeBundle other) {
-        return mProvider.findEquivalent(other);
-    }
-
-    /**
-     * Store empty theme if no theme has been set yet. This will prevent Settings from showing the
-     * suggestion to select a theme
-     */
-    public void storeEmptyTheme() {
-        String themeSetting = Settings.Secure.getString(mActivity.getContentResolver(),
-                ResourceConstants.THEME_SETTING);
-        if (TextUtils.isEmpty(themeSetting)) {
-            Settings.Secure.putString(mActivity.getContentResolver(),
-                    ResourceConstants.THEME_SETTING, new JSONObject().toString());
-        }
-    }
-}
diff --git a/src/com/android/customization/model/theme/custom/ColorOptionsProvider.java b/src/com/android/customization/model/theme/custom/ColorOptionsProvider.java
deleted file mode 100644
index f3b950b..0000000
--- a/src/com/android/customization/model/theme/custom/ColorOptionsProvider.java
+++ /dev/null
@@ -1,171 +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.theme.custom;
-
-import static com.android.customization.model.ResourceConstants.ACCENT_COLOR_DARK_NAME;
-import static com.android.customization.model.ResourceConstants.ACCENT_COLOR_LIGHT_NAME;
-import static com.android.customization.model.ResourceConstants.ANDROID_PACKAGE;
-import static com.android.customization.model.ResourceConstants.ICONS_FOR_PREVIEW;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ANDROID_THEME;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_COLOR;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_ANDROID;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SHAPE;
-import static com.android.customization.model.ResourceConstants.PATH_SIZE;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.res.Resources;
-import android.content.res.Resources.NotFoundException;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.ShapeDrawable;
-import android.graphics.drawable.shapes.PathShape;
-import android.os.UserHandle;
-import android.text.TextUtils;
-import android.util.Log;
-
-import androidx.core.graphics.PathParser;
-
-import com.android.customization.model.ResourceConstants;
-import com.android.customization.model.theme.OverlayManagerCompat;
-import com.android.customization.model.theme.custom.ThemeComponentOption.ColorOption;
-import com.android.wallpaper.R;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Implementation of {@link ThemeComponentOptionProvider} that reads {@link ColorOption}s from
- * icon overlays.
- */
-public class ColorOptionsProvider extends ThemeComponentOptionProvider<ColorOption> {
-
-    private static final String TAG = "ColorOptionsProvider";
-    private final CustomThemeManager mCustomThemeManager;
-    private final String mDefaultThemePackage;
-
-    public ColorOptionsProvider(Context context, OverlayManagerCompat manager,
-            CustomThemeManager customThemeManager) {
-        super(context, manager, OVERLAY_CATEGORY_COLOR);
-        mCustomThemeManager = customThemeManager;
-        // System color is set with a static overlay for android.theme category, so let's try to
-        // find that first, and if that's not present, we'll default to System resources.
-        // (see #addDefault())
-        List<String> themePackages = manager.getOverlayPackagesForCategory(
-                OVERLAY_CATEGORY_ANDROID_THEME, UserHandle.myUserId(), ANDROID_PACKAGE);
-        mDefaultThemePackage = themePackages.isEmpty() ? null : themePackages.get(0);
-    }
-
-    @Override
-    protected void loadOptions() {
-        List<Drawable> previewIcons = new ArrayList<>();
-        String iconPackage =
-                mCustomThemeManager.getOverlayPackages().get(OVERLAY_CATEGORY_ICON_ANDROID);
-        if (TextUtils.isEmpty(iconPackage)) {
-            iconPackage = ANDROID_PACKAGE;
-        }
-        for (String iconName : ICONS_FOR_PREVIEW) {
-            try {
-                previewIcons.add(loadIconPreviewDrawable(iconName, iconPackage));
-            } catch (NameNotFoundException | NotFoundException e) {
-                Log.w(TAG, String.format("Couldn't load icon in %s for color preview, will skip it",
-                        iconPackage), e);
-            }
-        }
-        String shapePackage = mCustomThemeManager.getOverlayPackages().get(OVERLAY_CATEGORY_SHAPE);
-        if (TextUtils.isEmpty(shapePackage)) {
-            shapePackage = ANDROID_PACKAGE;
-        }
-        Drawable shape = loadShape(shapePackage);
-        addDefault(previewIcons, shape);
-        for (String overlayPackage : mOverlayPackages) {
-            try {
-                Resources overlayRes = getOverlayResources(overlayPackage);
-                int lightColor = overlayRes.getColor(
-                        overlayRes.getIdentifier(ACCENT_COLOR_LIGHT_NAME, "color", overlayPackage),
-                        null);
-                int darkColor = overlayRes.getColor(
-                        overlayRes.getIdentifier(ACCENT_COLOR_DARK_NAME, "color", overlayPackage),
-                        null);
-                PackageManager pm = mContext.getPackageManager();
-                String label = pm.getApplicationInfo(overlayPackage, 0).loadLabel(pm).toString();
-                ColorOption option = new ColorOption(overlayPackage, label, lightColor, darkColor);
-                option.setPreviewIcons(previewIcons);
-                option.setShapeDrawable(shape);
-                mOptions.add(option);
-            } catch (NameNotFoundException | NotFoundException e) {
-                Log.w(TAG, String.format("Couldn't load color overlay %s, will skip it",
-                        overlayPackage), e);
-            }
-        }
-    }
-
-    private void addDefault(List<Drawable> previewIcons, Drawable shape) {
-        int lightColor, darkColor;
-        Resources system = Resources.getSystem();
-        try {
-            Resources r = getOverlayResources(mDefaultThemePackage);
-            lightColor = r.getColor(
-                    r.getIdentifier(ACCENT_COLOR_LIGHT_NAME, "color", mDefaultThemePackage),
-                    null);
-            darkColor = r.getColor(
-                    r.getIdentifier(ACCENT_COLOR_DARK_NAME, "color", mDefaultThemePackage),
-                    null);
-        } catch (NotFoundException | NameNotFoundException e) {
-            Log.d(TAG, "Didn't find default color, will use system option", e);
-
-            lightColor = system.getColor(
-                    system.getIdentifier(ACCENT_COLOR_LIGHT_NAME, "color", ANDROID_PACKAGE), null);
-
-            darkColor = system.getColor(
-                    system.getIdentifier(ACCENT_COLOR_DARK_NAME, "color", ANDROID_PACKAGE), null);
-        }
-        ColorOption option = new ColorOption(null,
-                mContext.getString(R.string.default_theme_title), lightColor, darkColor);
-        option.setPreviewIcons(previewIcons);
-        option.setShapeDrawable(shape);
-        mOptions.add(option);
-    }
-
-    private Drawable loadIconPreviewDrawable(String drawableName, String packageName)
-            throws NameNotFoundException, NotFoundException {
-
-        Resources overlayRes = getOverlayResources(packageName);
-        return overlayRes.getDrawable(
-                overlayRes.getIdentifier(drawableName, "drawable", packageName), null);
-    }
-
-    private Drawable loadShape(String packageName) {
-        String path = null;
-        try {
-            Resources r = getOverlayResources(packageName);
-
-            path = ResourceConstants.getIconMask(r, packageName);
-        } catch (NameNotFoundException e) {
-            Log.d(TAG, String.format("Couldn't load shape icon for %s, skipping.", packageName), e);
-        }
-        ShapeDrawable shapeDrawable = null;
-        if (!TextUtils.isEmpty(path)) {
-            PathShape shape = new PathShape(PathParser.createPathFromPathData(path),
-                    PATH_SIZE, PATH_SIZE);
-            shapeDrawable = new ShapeDrawable(shape);
-            shapeDrawable.setIntrinsicHeight((int) PATH_SIZE);
-            shapeDrawable.setIntrinsicWidth((int) PATH_SIZE);
-        }
-        return shapeDrawable;
-    }
-
-}
diff --git a/src/com/android/customization/model/theme/custom/CustomTheme.java b/src/com/android/customization/model/theme/custom/CustomTheme.java
deleted file mode 100644
index a1ee106..0000000
--- a/src/com/android/customization/model/theme/custom/CustomTheme.java
+++ /dev/null
@@ -1,106 +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.theme.custom;
-
-import android.content.Context;
-import android.view.View;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.customization.model.CustomizationManager;
-import com.android.customization.model.theme.ThemeBundle;
-import com.android.wallpaper.R;
-
-import java.util.Map;
-import java.util.UUID;
-
-public class CustomTheme extends ThemeBundle {
-
-    public static String newId() {
-        return UUID.randomUUID().toString();
-    }
-
-    /**
-     * Used to uniquely identify a custom theme since names can change.
-     */
-    private final String mId;
-
-    private CustomTheme(@NonNull String id, String title, Map<String, String> overlayPackages,
-            @Nullable PreviewInfo previewInfo) {
-        super(title, overlayPackages, false, previewInfo);
-        mId = id;
-    }
-
-    public String getId() {
-        return mId;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (!(obj instanceof CustomTheme)) {
-            return false;
-        }
-        CustomTheme other = (CustomTheme) obj;
-        return mId.equals(other.mId);
-    }
-
-    @Override
-    public int hashCode() {
-        return mId.hashCode();
-    }
-
-    @Override
-    public void bindThumbnailTile(View view) {
-        if (isDefined()) {
-            super.bindThumbnailTile(view);
-        }
-    }
-
-    @Override
-    public int getLayoutResId() {
-        return isDefined() ? R.layout.theme_option : R.layout.custom_theme_option;
-    }
-
-    @Override
-    public boolean isActive(CustomizationManager<ThemeBundle> manager) {
-        return isDefined() && super.isActive(manager);
-    }
-
-    @Override
-    public boolean isEquivalent(ThemeBundle other) {
-        return isDefined() && super.isEquivalent(other);
-    }
-
-    public boolean isDefined() {
-        return getPreviewInfo() != null;
-    }
-
-    public static class Builder extends ThemeBundle.Builder {
-        private String mId;
-
-        @Override
-        public CustomTheme build(Context context) {
-            return new CustomTheme(mId, mTitle, mPackages,
-                    mPackages.isEmpty() ? null : createPreviewInfo(context));
-        }
-
-        public Builder setId(String id) {
-            mId = id;
-            return this;
-        }
-    }
-}
diff --git a/src/com/android/customization/model/theme/custom/CustomThemeManager.java b/src/com/android/customization/model/theme/custom/CustomThemeManager.java
deleted file mode 100644
index 42d73e6..0000000
--- a/src/com/android/customization/model/theme/custom/CustomThemeManager.java
+++ /dev/null
@@ -1,116 +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.theme.custom;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.util.Log;
-
-import androidx.annotation.Nullable;
-
-import com.android.customization.model.CustomizationManager;
-import com.android.customization.model.theme.ThemeBundle.PreviewInfo;
-import com.android.customization.model.theme.ThemeBundleProvider;
-import com.android.customization.model.theme.ThemeManager;
-import com.android.customization.model.theme.custom.CustomTheme.Builder;
-
-import org.json.JSONException;
-
-import java.util.Map;
-
-public class CustomThemeManager implements CustomizationManager<ThemeComponentOption> {
-
-    private static final String TAG = "CustomThemeManager";
-    private static final String KEY_STATE_CURRENT_SELECTION = "CustomThemeManager.currentSelection";
-
-    private final CustomTheme mOriginalTheme;
-    private CustomTheme.Builder mBuilder;
-
-    private CustomThemeManager(Map<String, String> overlayPackages,
-            @Nullable CustomTheme originalTheme) {
-        mBuilder = new Builder();
-        overlayPackages.forEach(mBuilder::addOverlayPackage);
-        mOriginalTheme = originalTheme;
-    }
-
-    @Override
-    public boolean isAvailable() {
-        return true;
-    }
-
-    @Override
-    public void apply(ThemeComponentOption option, @Nullable Callback callback) {
-        option.buildStep(mBuilder);
-        if (callback != null) {
-            callback.onSuccess();
-        }
-    }
-
-    public Map<String, String> getOverlayPackages() {
-        return mBuilder.getPackages();
-    }
-
-    public CustomTheme buildPartialCustomTheme(Context context, String id, String title) {
-        return ((CustomTheme.Builder)mBuilder.setId(id).setTitle(title)).build(context);
-    }
-
-    @Override
-    public void fetchOptions(OptionsFetchedListener<ThemeComponentOption> callback, boolean reload) {
-        //Unused
-    }
-
-    public CustomTheme getOriginalTheme() {
-        return mOriginalTheme;
-    }
-
-    public PreviewInfo buildCustomThemePreviewInfo(Context context) {
-        return mBuilder.createPreviewInfo(context);
-    }
-
-    /** Saves the custom theme selections while system config changes. */
-    public void saveCustomTheme(Context context, Bundle savedInstanceState) {
-        CustomTheme customTheme =
-                buildPartialCustomTheme(context, /* id= */ null, /* title= */ null);
-        savedInstanceState.putString(KEY_STATE_CURRENT_SELECTION,
-                customTheme.getSerializedPackages());
-    }
-
-    /** Reads the saved custom theme after system config changed. */
-    public void readCustomTheme(ThemeBundleProvider themeBundleProvider,
-                                Bundle savedInstanceState) {
-        String packages = savedInstanceState.getString(KEY_STATE_CURRENT_SELECTION);
-        if (!TextUtils.isEmpty(packages)) {
-            try {
-                mBuilder = themeBundleProvider.parseCustomTheme(packages);
-            } catch (JSONException e) {
-                Log.w(TAG, "Couldn't parse provided custom theme.");
-            }
-        } else {
-            Log.w(TAG, "No custom theme being restored.");
-        }
-    }
-
-    public static CustomThemeManager create(
-            @Nullable CustomTheme customTheme, ThemeManager themeManager) {
-        if (customTheme != null && customTheme.isDefined()) {
-            return new CustomThemeManager(customTheme.getPackagesByCategory(), customTheme);
-        }
-        // Seed the first custom theme with the currently applied theme.
-        return new CustomThemeManager(themeManager.getCurrentOverlays(), customTheme);
-    }
-
-}
diff --git a/src/com/android/customization/model/theme/custom/FontOptionsProvider.java b/src/com/android/customization/model/theme/custom/FontOptionsProvider.java
deleted file mode 100644
index 53568c9..0000000
--- a/src/com/android/customization/model/theme/custom/FontOptionsProvider.java
+++ /dev/null
@@ -1,86 +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.theme.custom;
-
-import static com.android.customization.model.ResourceConstants.ANDROID_PACKAGE;
-import static com.android.customization.model.ResourceConstants.CONFIG_BODY_FONT_FAMILY;
-import static com.android.customization.model.ResourceConstants.CONFIG_HEADLINE_FONT_FAMILY;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_FONT;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.res.Resources;
-import android.content.res.Resources.NotFoundException;
-import android.graphics.Typeface;
-import android.util.Log;
-
-import com.android.customization.model.ResourceConstants;
-import com.android.customization.model.theme.OverlayManagerCompat;
-import com.android.customization.model.theme.custom.ThemeComponentOption.FontOption;
-import com.android.wallpaper.R;
-
-/**
- * Implementation of {@link ThemeComponentOptionProvider} that reads {@link FontOption}s from
- * font overlays.
- */
-public class FontOptionsProvider extends ThemeComponentOptionProvider<FontOption> {
-
-    private static final String TAG = "FontOptionsProvider";
-
-    public FontOptionsProvider(Context context, OverlayManagerCompat manager) {
-        super(context, manager, OVERLAY_CATEGORY_FONT);
-    }
-
-    @Override
-    protected void loadOptions() {
-        addDefault();
-        for (String overlayPackage : mOverlayPackages) {
-            try {
-                Resources overlayRes = getOverlayResources(overlayPackage);
-                Typeface headlineFont = Typeface.create(
-                        getFontFamily(overlayPackage, overlayRes, CONFIG_HEADLINE_FONT_FAMILY),
-                        Typeface.NORMAL);
-                Typeface bodyFont = Typeface.create(
-                        getFontFamily(overlayPackage, overlayRes, CONFIG_BODY_FONT_FAMILY),
-                        Typeface.NORMAL);
-                PackageManager pm = mContext.getPackageManager();
-                String label = pm.getApplicationInfo(overlayPackage, 0).loadLabel(pm).toString();
-                mOptions.add(new FontOption(overlayPackage, label, headlineFont, bodyFont));
-            } catch (NameNotFoundException | NotFoundException e) {
-                Log.w(TAG, String.format("Couldn't load font overlay %s, will skip it",
-                        overlayPackage), e);
-            }
-        }
-    }
-
-    private void addDefault() {
-        Resources system = Resources.getSystem();
-        Typeface headlineFont = Typeface.create(system.getString(system.getIdentifier(
-                ResourceConstants.CONFIG_HEADLINE_FONT_FAMILY,"string", ANDROID_PACKAGE)),
-                Typeface.NORMAL);
-        Typeface bodyFont = Typeface.create(system.getString(system.getIdentifier(
-                ResourceConstants.CONFIG_BODY_FONT_FAMILY,
-                "string", ANDROID_PACKAGE)),
-                Typeface.NORMAL);
-        mOptions.add(new FontOption(null, mContext.getString(R.string.default_theme_title),
-                headlineFont, bodyFont));
-    }
-
-    private String getFontFamily(String overlayPackage, Resources overlayRes, String configName) {
-        return overlayRes.getString(overlayRes.getIdentifier(configName, "string", overlayPackage));
-    }
-}
diff --git a/src/com/android/customization/model/theme/custom/IconOptionsProvider.java b/src/com/android/customization/model/theme/custom/IconOptionsProvider.java
deleted file mode 100644
index f7b669b..0000000
--- a/src/com/android/customization/model/theme/custom/IconOptionsProvider.java
+++ /dev/null
@@ -1,153 +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.theme.custom;
-
-import static com.android.customization.model.ResourceConstants.ANDROID_PACKAGE;
-import static com.android.customization.model.ResourceConstants.ICONS_FOR_PREVIEW;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_ANDROID;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_LAUNCHER;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_SETTINGS;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_SYSUI;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_THEMEPICKER;
-
-import android.content.Context;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.res.Resources;
-import android.content.res.Resources.NotFoundException;
-import android.graphics.drawable.Drawable;
-import android.os.UserHandle;
-import android.util.Log;
-
-import com.android.customization.model.ResourceConstants;
-import com.android.customization.model.theme.OverlayManagerCompat;
-import com.android.customization.model.theme.custom.ThemeComponentOption.IconOption;
-import com.android.wallpaper.R;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Implementation of {@link ThemeComponentOptionProvider} that reads {@link IconOption}s from
- * icon overlays.
- */
-public class IconOptionsProvider extends ThemeComponentOptionProvider<IconOption> {
-
-    private static final String TAG = "IconOptionsProvider";
-
-    private final List<String> mSysUiIconsOverlayPackages = new ArrayList<>();
-    private final List<String> mSettingsIconsOverlayPackages = new ArrayList<>();
-    private final List<String> mLauncherIconsOverlayPackages = new ArrayList<>();
-    private final List<String> mThemePickerIconsOverlayPackages = new ArrayList<>();
-
-    public IconOptionsProvider(Context context, OverlayManagerCompat manager) {
-        super(context, manager, OVERLAY_CATEGORY_ICON_ANDROID);
-        String[] targetPackages = ResourceConstants.getPackagesToOverlay(context);
-        mSysUiIconsOverlayPackages.addAll(manager.getOverlayPackagesForCategory(
-                OVERLAY_CATEGORY_ICON_SYSUI, UserHandle.myUserId(), targetPackages));
-        mSettingsIconsOverlayPackages.addAll(manager.getOverlayPackagesForCategory(
-                OVERLAY_CATEGORY_ICON_SETTINGS, UserHandle.myUserId(), targetPackages));
-        mLauncherIconsOverlayPackages.addAll(manager.getOverlayPackagesForCategory(
-                OVERLAY_CATEGORY_ICON_LAUNCHER, UserHandle.myUserId(), targetPackages));
-        mThemePickerIconsOverlayPackages.addAll(manager.getOverlayPackagesForCategory(
-                OVERLAY_CATEGORY_ICON_THEMEPICKER, UserHandle.myUserId(), targetPackages));
-    }
-
-    @Override
-    protected void loadOptions() {
-        addDefault();
-
-        Map<String, IconOption> optionsByPrefix = new HashMap<>();
-        for (String overlayPackage : mOverlayPackages) {
-            IconOption option = addOrUpdateOption(optionsByPrefix, overlayPackage,
-                    OVERLAY_CATEGORY_ICON_ANDROID);
-            try{
-                for (String iconName : ICONS_FOR_PREVIEW) {
-                    option.addIcon(loadIconPreviewDrawable(iconName, overlayPackage));
-                }
-            } catch (NotFoundException | NameNotFoundException e) {
-                Log.w(TAG, String.format("Couldn't load icon overlay details for %s, will skip it",
-                        overlayPackage), e);
-            }
-        }
-
-        for (String overlayPackage : mSysUiIconsOverlayPackages) {
-            addOrUpdateOption(optionsByPrefix, overlayPackage, OVERLAY_CATEGORY_ICON_SYSUI);
-        }
-
-        for (String overlayPackage : mSettingsIconsOverlayPackages) {
-            addOrUpdateOption(optionsByPrefix, overlayPackage, OVERLAY_CATEGORY_ICON_SETTINGS);
-        }
-
-        for (String overlayPackage : mLauncherIconsOverlayPackages) {
-            addOrUpdateOption(optionsByPrefix, overlayPackage, OVERLAY_CATEGORY_ICON_LAUNCHER);
-        }
-
-        for (String overlayPackage : mThemePickerIconsOverlayPackages) {
-            addOrUpdateOption(optionsByPrefix, overlayPackage, OVERLAY_CATEGORY_ICON_THEMEPICKER);
-        }
-
-        for (IconOption option : optionsByPrefix.values()) {
-            if (option.isValid(mContext)) {
-                mOptions.add(option);
-                option.setLabel(mContext.getString(R.string.icon_component_label, mOptions.size()));
-            }
-        }
-    }
-
-    private IconOption addOrUpdateOption(Map<String, IconOption> optionsByPrefix,
-            String overlayPackage, String category) {
-        String prefix = overlayPackage.substring(0, overlayPackage.lastIndexOf("."));
-        IconOption option;
-        if (!optionsByPrefix.containsKey(prefix)) {
-            option = new IconOption();
-            optionsByPrefix.put(prefix, option);
-        } else {
-            option = optionsByPrefix.get(prefix);
-        }
-        option.addOverlayPackage(category, overlayPackage);
-        return option;
-    }
-
-    private Drawable loadIconPreviewDrawable(String drawableName, String packageName)
-            throws NameNotFoundException, NotFoundException {
-        final Resources resources = ANDROID_PACKAGE.equals(packageName)
-                ? Resources.getSystem()
-                : mContext.getPackageManager().getResourcesForApplication(packageName);
-        return resources.getDrawable(
-                resources.getIdentifier(drawableName, "drawable", packageName), null);
-    }
-
-    private void addDefault() {
-        IconOption option = new IconOption();
-        option.setLabel(mContext.getString(R.string.default_theme_title));
-        try {
-            for (String iconName : ICONS_FOR_PREVIEW) {
-                option.addIcon(loadIconPreviewDrawable(iconName, ANDROID_PACKAGE));
-            }
-        } catch (NameNotFoundException | NotFoundException e) {
-            Log.w(TAG, "Didn't find SystemUi package icons, will skip option", e);
-        }
-        option.addOverlayPackage(OVERLAY_CATEGORY_ICON_ANDROID, null);
-        option.addOverlayPackage(OVERLAY_CATEGORY_ICON_SYSUI, null);
-        option.addOverlayPackage(OVERLAY_CATEGORY_ICON_SETTINGS, null);
-        option.addOverlayPackage(OVERLAY_CATEGORY_ICON_LAUNCHER, null);
-        option.addOverlayPackage(OVERLAY_CATEGORY_ICON_THEMEPICKER, null);
-        mOptions.add(option);
-    }
-
-}
diff --git a/src/com/android/customization/model/theme/custom/ShapeOptionsProvider.java b/src/com/android/customization/model/theme/custom/ShapeOptionsProvider.java
deleted file mode 100644
index f93b892..0000000
--- a/src/com/android/customization/model/theme/custom/ShapeOptionsProvider.java
+++ /dev/null
@@ -1,154 +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.theme.custom;
-
-import static com.android.customization.model.ResourceConstants.ANDROID_PACKAGE;
-import static com.android.customization.model.ResourceConstants.CONFIG_CORNERRADIUS;
-import static com.android.customization.model.ResourceConstants.CONFIG_ICON_MASK;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SHAPE;
-import static com.android.customization.model.ResourceConstants.PATH_SIZE;
-
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.res.Resources;
-import android.content.res.Resources.NotFoundException;
-import android.graphics.Path;
-import android.graphics.drawable.AdaptiveIconDrawable;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.ShapeDrawable;
-import android.graphics.drawable.shapes.PathShape;
-import android.text.TextUtils;
-import android.util.Log;
-
-import androidx.annotation.Dimension;
-import androidx.core.graphics.PathParser;
-
-import com.android.customization.model.ResourceConstants;
-import com.android.customization.model.theme.OverlayManagerCompat;
-import com.android.customization.model.theme.ThemeBundle.PreviewInfo.ShapeAppIcon;
-import com.android.customization.model.theme.custom.ThemeComponentOption.ShapeOption;
-import com.android.customization.widget.DynamicAdaptiveIconDrawable;
-import com.android.wallpaper.R;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Implementation of {@link ThemeComponentOptionProvider} that reads {@link ShapeOption}s from
- * icon overlays.
- */
-public class ShapeOptionsProvider extends ThemeComponentOptionProvider<ShapeOption> {
-
-    private static final String TAG = "ShapeOptionsProvider";
-    private final String[] mShapePreviewIconPackages;
-    private int mThumbSize;
-
-    public ShapeOptionsProvider(Context context, OverlayManagerCompat manager) {
-        super(context, manager, OVERLAY_CATEGORY_SHAPE);
-        mShapePreviewIconPackages = context.getResources().getStringArray(
-                R.array.icon_shape_preview_packages);
-        mThumbSize = mContext.getResources().getDimensionPixelSize(
-                R.dimen.component_shape_thumb_size);
-    }
-
-    @Override
-    protected void loadOptions() {
-        addDefault();
-        for (String overlayPackage : mOverlayPackages) {
-            try {
-                Path path = loadPath(mContext.getPackageManager()
-                        .getResourcesForApplication(overlayPackage), overlayPackage);
-                PackageManager pm = mContext.getPackageManager();
-                String label = pm.getApplicationInfo(overlayPackage, 0).loadLabel(pm).toString();
-                mOptions.add(new ShapeOption(overlayPackage, label, path,
-                        loadCornerRadius(overlayPackage), createShapeDrawable(path),
-                        getShapedAppIcons(path)));
-            } catch (NameNotFoundException | NotFoundException e) {
-                Log.w(TAG, String.format("Couldn't load shape overlay %s, will skip it",
-                        overlayPackage), e);
-            }
-        }
-    }
-
-    private void addDefault() {
-        Resources system = Resources.getSystem();
-        Path path = loadPath(system, ANDROID_PACKAGE);
-        mOptions.add(new ShapeOption(null, mContext.getString(R.string.default_theme_title), path,
-                system.getDimensionPixelOffset(
-                        system.getIdentifier(ResourceConstants.CONFIG_CORNERRADIUS,
-                                "dimen", ResourceConstants.ANDROID_PACKAGE)),
-                createShapeDrawable(path), getShapedAppIcons(path)));
-    }
-
-    private ShapeDrawable createShapeDrawable(Path path) {
-        PathShape shape = new PathShape(path, PATH_SIZE, PATH_SIZE);
-        ShapeDrawable shapeDrawable = new ShapeDrawable(shape);
-        shapeDrawable.setIntrinsicHeight(mThumbSize);
-        shapeDrawable.setIntrinsicWidth(mThumbSize);
-        return shapeDrawable;
-    }
-
-    private List<ShapeAppIcon> getShapedAppIcons(Path path) {
-        List<ShapeAppIcon> shapedAppIcons = new ArrayList<>();
-        for (String packageName : mShapePreviewIconPackages) {
-            Drawable icon = null;
-            CharSequence name = null;
-            try {
-                Drawable appIcon = mContext.getPackageManager().getApplicationIcon(packageName);
-                if (appIcon instanceof AdaptiveIconDrawable) {
-                    AdaptiveIconDrawable adaptiveIcon = (AdaptiveIconDrawable) appIcon;
-                    icon = new DynamicAdaptiveIconDrawable(adaptiveIcon.getBackground(),
-                            adaptiveIcon.getForeground(), path);
-
-                    ApplicationInfo appInfo = mContext.getPackageManager()
-                            .getApplicationInfo(packageName, /* flag= */ 0);
-                    name = mContext.getPackageManager().getApplicationLabel(appInfo);
-                }
-            } catch (NameNotFoundException e) {
-                Log.d(TAG, "Couldn't find app " + packageName
-                        + ", won't use it for icon shape preview");
-            } finally {
-                if (icon != null && !TextUtils.isEmpty(name)) {
-                    shapedAppIcons.add(new ShapeAppIcon(icon, name));
-                }
-            }
-        }
-        return shapedAppIcons;
-    }
-
-    private Path loadPath(Resources overlayRes, String packageName) {
-        String shape = overlayRes.getString(overlayRes.getIdentifier(CONFIG_ICON_MASK, "string",
-                packageName));
-
-        if (!TextUtils.isEmpty(shape)) {
-            return PathParser.createPathFromPathData(shape);
-        }
-        return null;
-    }
-
-    @Dimension
-    private int loadCornerRadius(String packageName)
-            throws NameNotFoundException, NotFoundException {
-
-        Resources overlayRes =
-                mContext.getPackageManager().getResourcesForApplication(
-                        packageName);
-        return overlayRes.getDimensionPixelOffset(overlayRes.getIdentifier(
-                CONFIG_CORNERRADIUS, "dimen", packageName));
-    }
-}
diff --git a/src/com/android/customization/model/theme/custom/ThemeComponentOption.java b/src/com/android/customization/model/theme/custom/ThemeComponentOption.java
deleted file mode 100644
index 78be0fc..0000000
--- a/src/com/android/customization/model/theme/custom/ThemeComponentOption.java
+++ /dev/null
@@ -1,556 +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.theme.custom;
-
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_COLOR;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_FONT;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_ANDROID;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_LAUNCHER;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_SETTINGS;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_SYSUI;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_THEMEPICKER;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SHAPE;
-import static com.android.customization.model.ResourceConstants.getLauncherPackage;
-
-import android.content.Context;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.res.ColorStateList;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.content.res.Resources.NotFoundException;
-import android.content.res.Resources.Theme;
-import android.content.res.TypedArray;
-import android.graphics.Path;
-import android.graphics.Typeface;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.LayerDrawable;
-import android.graphics.drawable.ShapeDrawable;
-import android.graphics.drawable.StateListDrawable;
-import android.text.TextUtils;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.CompoundButton;
-import android.widget.ImageView;
-import android.widget.SeekBar;
-import android.widget.Switch;
-import android.widget.TextView;
-
-import androidx.annotation.ColorInt;
-import androidx.annotation.Dimension;
-import androidx.annotation.DrawableRes;
-import androidx.annotation.Nullable;
-import androidx.annotation.StringRes;
-import androidx.core.graphics.ColorUtils;
-
-import com.android.customization.model.CustomizationManager;
-import com.android.customization.model.CustomizationOption;
-import com.android.customization.model.ResourceConstants;
-import com.android.customization.model.theme.ThemeBundle.PreviewInfo.ShapeAppIcon;
-import com.android.customization.model.theme.custom.CustomTheme.Builder;
-import com.android.wallpaper.R;
-import com.android.wallpaper.util.ResourceUtils;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
-/**
- * Represents an option of a component of a custom Theme (for example, a possible color, or font,
- * shape, etc).
- * Extending classes correspond to each component's options and provide the structure to bind
- * preview and thumbnails.
- * // TODO (santie): refactor the logic to bind preview cards to reuse between ThemeFragment and
- * // here
- */
-public abstract class ThemeComponentOption implements CustomizationOption<ThemeComponentOption> {
-
-    protected final Map<String, String> mOverlayPackageNames = new HashMap<>();
-
-    protected void addOverlayPackage(String category, String packageName) {
-        mOverlayPackageNames.put(category, packageName);
-    }
-
-    public Map<String, String> getOverlayPackages() {
-        return mOverlayPackageNames;
-    }
-
-    @Override
-    public String getTitle() {
-        return null;
-    }
-
-    public abstract void bindPreview(ViewGroup container);
-
-    public Builder buildStep(Builder builder) {
-        getOverlayPackages().forEach(builder::addOverlayPackage);
-        return builder;
-    }
-
-    public static class FontOption extends ThemeComponentOption {
-
-        private final String mLabel;
-        private final Typeface mHeadlineFont;
-        private final Typeface mBodyFont;
-
-        public FontOption(String packageName, String label, Typeface headlineFont,
-                Typeface bodyFont) {
-            addOverlayPackage(OVERLAY_CATEGORY_FONT, packageName);
-            mLabel = label;
-            mHeadlineFont = headlineFont;
-            mBodyFont = bodyFont;
-        }
-
-        @Override
-        public String getTitle() {
-            return null;
-        }
-
-        @Override
-        public void bindThumbnailTile(View view) {
-            ((TextView) view.findViewById(R.id.thumbnail_text)).setTypeface(
-                    mHeadlineFont);
-            view.setContentDescription(mLabel);
-        }
-
-        @Override
-        public boolean isActive(CustomizationManager<ThemeComponentOption> manager) {
-            CustomThemeManager customThemeManager = (CustomThemeManager) manager;
-            return Objects.equals(getOverlayPackages().get(OVERLAY_CATEGORY_FONT),
-                    customThemeManager.getOverlayPackages().get(OVERLAY_CATEGORY_FONT));
-        }
-
-        @Override
-        public int getLayoutResId() {
-            return R.layout.theme_font_option;
-        }
-
-        @Override
-        public void bindPreview(ViewGroup container) {
-            container.setContentDescription(
-                    container.getContext().getString(R.string.font_preview_content_description));
-
-            bindPreviewHeader(container, R.string.preview_name_font, R.drawable.ic_font, null);
-
-            ViewGroup cardBody = container.findViewById(R.id.theme_preview_card_body_container);
-            if (cardBody.getChildCount() == 0) {
-                LayoutInflater.from(container.getContext()).inflate(
-                        R.layout.preview_card_font_content,
-                        cardBody, true);
-            }
-            TextView title = container.findViewById(R.id.font_card_title);
-            title.setTypeface(mHeadlineFont);
-            TextView bodyText = container.findViewById(R.id.font_card_body);
-            bodyText.setTypeface(mBodyFont);
-            container.findViewById(R.id.font_card_divider).setBackgroundColor(
-                    title.getCurrentTextColor());
-        }
-
-        @Override
-        public Builder buildStep(Builder builder) {
-            builder.setHeadlineFontFamily(mHeadlineFont).setBodyFontFamily(mBodyFont);
-            return super.buildStep(builder);
-        }
-    }
-
-    void bindPreviewHeader(ViewGroup container, @StringRes int headerTextResId,
-            @DrawableRes int headerIcon, String drawableName) {
-        TextView header = container.findViewById(R.id.theme_preview_card_header);
-        header.setText(headerTextResId);
-
-        Context context = container.getContext();
-        Drawable icon;
-        if (!TextUtils.isEmpty(drawableName)) {
-            try {
-                Resources resources = context.getPackageManager()
-                        .getResourcesForApplication(getLauncherPackage(context));
-                icon = resources.getDrawable(resources.getIdentifier(
-                        drawableName, "drawable", getLauncherPackage(context)), null);
-            } catch (NameNotFoundException | NotFoundException e) {
-                icon = context.getResources().getDrawable(headerIcon, context.getTheme());
-            }
-        } else {
-            icon = context.getResources().getDrawable(headerIcon, context.getTheme());
-        }
-        int size = context.getResources().getDimensionPixelSize(R.dimen.card_header_icon_size);
-        icon.setBounds(0, 0, size, size);
-
-        header.setCompoundDrawables(null, icon, null, null);
-        header.setCompoundDrawableTintList(ColorStateList.valueOf(
-                header.getCurrentTextColor()));
-    }
-
-    public static class IconOption extends ThemeComponentOption {
-
-        public static final int THUMBNAIL_ICON_POSITION = 0;
-        private static int[] mIconIds = {
-                R.id.preview_icon_0, R.id.preview_icon_1, R.id.preview_icon_2, R.id.preview_icon_3,
-                R.id.preview_icon_4, R.id.preview_icon_5
-        };
-
-        private List<Drawable> mIcons = new ArrayList<>();
-        private String mLabel;
-
-        @Override
-        public void bindThumbnailTile(View view) {
-            Resources res = view.getContext().getResources();
-            Drawable icon = mIcons.get(THUMBNAIL_ICON_POSITION)
-                    .getConstantState().newDrawable().mutate();
-            icon.setTint(ResourceUtils.getColorAttr(
-                    view.getContext(), android.R.attr.textColorSecondary));
-            ((ImageView) view.findViewById(R.id.option_icon)).setImageDrawable(
-                    icon);
-            view.setContentDescription(mLabel);
-        }
-
-        @Override
-        public boolean isActive(CustomizationManager<ThemeComponentOption> manager) {
-            CustomThemeManager customThemeManager = (CustomThemeManager) manager;
-            Map<String, String> themePackages = customThemeManager.getOverlayPackages();
-            if (getOverlayPackages().isEmpty()) {
-                return themePackages.get(OVERLAY_CATEGORY_ICON_SYSUI) == null &&
-                        themePackages.get(OVERLAY_CATEGORY_ICON_SETTINGS) == null &&
-                        themePackages.get(OVERLAY_CATEGORY_ICON_ANDROID) == null &&
-                        themePackages.get(OVERLAY_CATEGORY_ICON_LAUNCHER) == null &&
-                        themePackages.get(OVERLAY_CATEGORY_ICON_THEMEPICKER) == null;
-            }
-            for (Map.Entry<String, String> overlayEntry : getOverlayPackages().entrySet()) {
-                if(!Objects.equals(overlayEntry.getValue(),
-                        themePackages.get(overlayEntry.getKey()))) {
-                    return false;
-                }
-            }
-            return true;
-        }
-
-        @Override
-        public int getLayoutResId() {
-            return R.layout.theme_icon_option;
-        }
-
-        @Override
-        public void bindPreview(ViewGroup container) {
-            container.setContentDescription(
-                    container.getContext().getString(R.string.icon_preview_content_description));
-
-            bindPreviewHeader(container, R.string.preview_name_icon, R.drawable.ic_widget,
-                    "ic_widget");
-
-            ViewGroup cardBody = container.findViewById(R.id.theme_preview_card_body_container);
-            if (cardBody.getChildCount() == 0) {
-                LayoutInflater.from(container.getContext()).inflate(
-                        R.layout.preview_card_icon_content, cardBody, true);
-            }
-            for (int i = 0; i < mIconIds.length && i < mIcons.size(); i++) {
-                ((ImageView) container.findViewById(mIconIds[i])).setImageDrawable(
-                        mIcons.get(i));
-            }
-        }
-
-        public void addIcon(Drawable previewIcon) {
-            mIcons.add(previewIcon);
-        }
-
-        /**
-         * @return whether this icon option has overlays and previews for all the required packages
-         */
-        public boolean isValid(Context context) {
-            return getOverlayPackages().keySet().size() ==
-                    ResourceConstants.getPackagesToOverlay(context).length;
-        }
-
-        public void setLabel(String label) {
-            mLabel = label;
-        }
-
-        @Override
-        public Builder buildStep(Builder builder) {
-            for (Drawable icon : mIcons) {
-                builder.addIcon(icon);
-            }
-            return super.buildStep(builder);
-        }
-    }
-
-    public static class ColorOption extends ThemeComponentOption {
-
-        /**
-         * Ids of views used to represent quick setting tiles in the color preview screen
-         */
-        private static int[] COLOR_TILE_IDS = {
-                R.id.preview_color_qs_0_bg, R.id.preview_color_qs_1_bg, R.id.preview_color_qs_2_bg
-        };
-
-        /**
-         * Ids of the views for the foreground of the icon, mapping to the corresponding index of
-         * the actual icon drawable.
-         */
-        static int[][] COLOR_TILES_ICON_IDS = {
-                new int[]{ R.id.preview_color_qs_0_icon, 0},
-                new int[]{ R.id.preview_color_qs_1_icon, 1},
-                new int[] { R.id.preview_color_qs_2_icon, 3}
-        };
-
-        /**
-         * Ids of views used to represent control buttons in the color preview screen
-         */
-        private static int[] COLOR_BUTTON_IDS = {
-                R.id.preview_check_selected, R.id.preview_radio_selected,
-                R.id.preview_toggle_selected
-        };
-
-        @ColorInt private int mColorAccentLight;
-        @ColorInt private int mColorAccentDark;
-        /**
-         * Icons shown as example of QuickSettings tiles in the color preview screen.
-         */
-        private List<Drawable> mIcons = new ArrayList<>();
-
-        /**
-         * Drawable with the currently selected shape to be used as background of the sample
-         * QuickSetting icons in the color preview screen.
-         */
-        private Drawable mShapeDrawable;
-
-        private String mLabel;
-
-        ColorOption(String packageName, String label, @ColorInt int lightColor,
-                @ColorInt int darkColor) {
-            addOverlayPackage(OVERLAY_CATEGORY_COLOR, packageName);
-            mLabel = label;
-            mColorAccentLight = lightColor;
-            mColorAccentDark = darkColor;
-        }
-
-        @Override
-        public void bindThumbnailTile(View view) {
-            @ColorInt int color = resolveColor(view.getResources());
-            LayerDrawable selectedOption = (LayerDrawable) view.getResources().getDrawable(
-                    R.drawable.color_chip_hollow, view.getContext().getTheme());
-            Drawable unselectedOption = view.getResources().getDrawable(
-                    R.drawable.color_chip_filled, view.getContext().getTheme());
-
-            selectedOption.findDrawableByLayerId(R.id.center_fill).setTintList(
-                    ColorStateList.valueOf(color));
-            unselectedOption.setTintList(ColorStateList.valueOf(color));
-
-            StateListDrawable stateListDrawable = new StateListDrawable();
-            stateListDrawable.addState(new int[] {android.R.attr.state_activated}, selectedOption);
-            stateListDrawable.addState(
-                    new int[] {-android.R.attr.state_activated}, unselectedOption);
-
-            ((ImageView) view.findViewById(R.id.option_tile)).setImageDrawable(stateListDrawable);
-            view.setContentDescription(mLabel);
-        }
-
-        @ColorInt
-        private int resolveColor(Resources res) {
-            Configuration configuration = res.getConfiguration();
-            return (configuration.uiMode & Configuration.UI_MODE_NIGHT_MASK)
-                    == Configuration.UI_MODE_NIGHT_YES ? mColorAccentDark : mColorAccentLight;
-        }
-
-        @Override
-        public boolean isActive(CustomizationManager<ThemeComponentOption> manager) {
-            CustomThemeManager customThemeManager = (CustomThemeManager) manager;
-            return Objects.equals(getOverlayPackages().get(OVERLAY_CATEGORY_COLOR),
-                    customThemeManager.getOverlayPackages().get(OVERLAY_CATEGORY_COLOR));
-        }
-
-        @Override
-        public int getLayoutResId() {
-            return R.layout.theme_color_option;
-        }
-
-        @Override
-        public void bindPreview(ViewGroup container) {
-            container.setContentDescription(
-                    container.getContext().getString(R.string.color_preview_content_description));
-
-            bindPreviewHeader(container, R.string.preview_name_color, R.drawable.ic_colorize_24px,
-                    null);
-
-            ViewGroup cardBody = container.findViewById(R.id.theme_preview_card_body_container);
-            if (cardBody.getChildCount() == 0) {
-                LayoutInflater.from(container.getContext()).inflate(
-                        R.layout.preview_card_color_content, cardBody, true);
-            }
-            Resources res = container.getResources();
-            @ColorInt int accentColor = resolveColor(res);
-            @ColorInt int controlGreyColor = ResourceUtils.getColorAttr(
-                    container.getContext(),
-                    android.R.attr.textColorTertiary);
-            ColorStateList tintList = new ColorStateList(
-                    new int[][]{
-                            new int[]{android.R.attr.state_selected},
-                            new int[]{android.R.attr.state_checked},
-                            new int[]{-android.R.attr.state_enabled}
-                    },
-                    new int[] {
-                            accentColor,
-                            accentColor,
-                            controlGreyColor
-                    }
-            );
-
-            for (int i = 0; i < COLOR_BUTTON_IDS.length; i++) {
-                CompoundButton button = container.findViewById(COLOR_BUTTON_IDS[i]);
-                button.setButtonTintList(tintList);
-            }
-
-            Switch enabledSwitch = container.findViewById(R.id.preview_toggle_selected);
-            enabledSwitch.setThumbTintList(tintList);
-            enabledSwitch.setTrackTintList(tintList);
-
-            ColorStateList seekbarTintList = ColorStateList.valueOf(accentColor);
-            SeekBar seekbar = container.findViewById(R.id.preview_seekbar);
-            seekbar.setThumbTintList(seekbarTintList);
-            seekbar.setProgressTintList(seekbarTintList);
-            seekbar.setProgressBackgroundTintList(seekbarTintList);
-            // Disable seekbar
-            seekbar.setOnTouchListener((view, motionEvent) -> true);
-
-            int iconFgColor = ResourceUtils.getColorAttr(container.getContext(),
-                    android.R.attr.colorBackground);
-            if (!mIcons.isEmpty() && mShapeDrawable != null) {
-                for (int i = 0; i < COLOR_TILE_IDS.length; i++) {
-                    Drawable icon = mIcons.get(COLOR_TILES_ICON_IDS[i][1]).getConstantState()
-                            .newDrawable();
-                    icon.setTint(iconFgColor);
-                    //TODO: load and set the shape.
-                    Drawable bgShape = mShapeDrawable.getConstantState().newDrawable();
-                    bgShape.setTint(accentColor);
-
-                    ImageView bg = container.findViewById(COLOR_TILE_IDS[i]);
-                    bg.setImageDrawable(bgShape);
-                    ImageView fg = container.findViewById(COLOR_TILES_ICON_IDS[i][0]);
-                    fg.setImageDrawable(icon);
-                }
-            }
-        }
-
-        public void setPreviewIcons(List<Drawable> icons) {
-            mIcons.addAll(icons);
-        }
-
-        public void setShapeDrawable(@Nullable Drawable shapeDrawable) {
-            mShapeDrawable = shapeDrawable;
-        }
-
-        @Override
-        public Builder buildStep(Builder builder) {
-            builder.setColorAccentDark(mColorAccentDark).setColorAccentLight(mColorAccentLight);
-            return super.buildStep(builder);
-        }
-    }
-
-    public static class ShapeOption extends ThemeComponentOption {
-
-        private final LayerDrawable mShape;
-        private final List<ShapeAppIcon> mAppIcons;
-        private final String mLabel;
-        private final Path mPath;
-        private final int mCornerRadius;
-        private int[] mShapeIconIds = {
-                R.id.shape_preview_icon_0, R.id.shape_preview_icon_1, R.id.shape_preview_icon_2,
-                R.id.shape_preview_icon_3, R.id.shape_preview_icon_4, R.id.shape_preview_icon_5
-        };
-
-        ShapeOption(String packageName, String label, Path path,
-                @Dimension int cornerRadius, Drawable shapeDrawable,
-                List<ShapeAppIcon> appIcons) {
-            addOverlayPackage(OVERLAY_CATEGORY_SHAPE, packageName);
-            mLabel = label;
-            mAppIcons = appIcons;
-            mPath = path;
-            mCornerRadius = cornerRadius;
-            Drawable background = shapeDrawable.getConstantState().newDrawable();
-            Drawable foreground = shapeDrawable.getConstantState().newDrawable();
-            mShape = new LayerDrawable(new Drawable[]{background, foreground});
-            mShape.setLayerGravity(0, Gravity.CENTER);
-            mShape.setLayerGravity(1, Gravity.CENTER);
-        }
-
-        @Override
-        public void bindThumbnailTile(View view) {
-            ImageView thumb = view.findViewById(R.id.shape_thumbnail);
-            Resources res = view.getResources();
-            Theme theme = view.getContext().getTheme();
-            int borderWidth = 2 * res.getDimensionPixelSize(R.dimen.option_border_width);
-
-            Drawable background = mShape.getDrawable(0);
-            background.setTintList(res.getColorStateList(R.color.option_border_color, theme));
-
-            ShapeDrawable foreground = (ShapeDrawable) mShape.getDrawable(1);
-
-            foreground.setIntrinsicHeight(background.getIntrinsicHeight() - borderWidth);
-            foreground.setIntrinsicWidth(background.getIntrinsicWidth() - borderWidth);
-            TypedArray ta = view.getContext().obtainStyledAttributes(
-                    new int[]{android.R.attr.colorPrimary});
-            int primaryColor = ta.getColor(0, 0);
-            ta.recycle();
-            int foregroundColor =
-                    ResourceUtils.getColorAttr(view.getContext(), android.R.attr.textColorPrimary);
-
-            foreground.setTint(ColorUtils.blendARGB(primaryColor, foregroundColor, .05f));
-
-            thumb.setImageDrawable(mShape);
-            view.setContentDescription(mLabel);
-        }
-
-        @Override
-        public boolean isActive(CustomizationManager<ThemeComponentOption> manager) {
-            CustomThemeManager customThemeManager = (CustomThemeManager) manager;
-            return Objects.equals(getOverlayPackages().get(OVERLAY_CATEGORY_SHAPE),
-                    customThemeManager.getOverlayPackages().get(OVERLAY_CATEGORY_SHAPE));
-        }
-
-        @Override
-        public int getLayoutResId() {
-            return R.layout.theme_shape_option;
-        }
-
-        @Override
-        public void bindPreview(ViewGroup container) {
-            container.setContentDescription(
-                    container.getContext().getString(R.string.shape_preview_content_description));
-
-            bindPreviewHeader(container, R.string.preview_name_shape, R.drawable.ic_shapes_24px,
-                    null);
-
-            ViewGroup cardBody = container.findViewById(R.id.theme_preview_card_body_container);
-            if (cardBody.getChildCount() == 0) {
-                LayoutInflater.from(container.getContext()).inflate(
-                        R.layout.preview_card_shape_content, cardBody, true);
-            }
-            for (int i = 0; i < mShapeIconIds.length && i < mAppIcons.size(); i++) {
-                ImageView iconView = cardBody.findViewById(mShapeIconIds[i]);
-                iconView.setBackground(mAppIcons.get(i).getDrawableCopy());
-            }
-        }
-
-        @Override
-        public Builder buildStep(Builder builder) {
-            builder.setShapePath(mPath)
-                    .setBottomSheetCornerRadius(mCornerRadius)
-                    .setShapePreviewIcons(mAppIcons);
-            return super.buildStep(builder);
-        }
-    }
-}
diff --git a/src/com/android/customization/model/theme/custom/ThemeComponentOptionProvider.java b/src/com/android/customization/model/theme/custom/ThemeComponentOptionProvider.java
deleted file mode 100644
index 992c47c..0000000
--- a/src/com/android/customization/model/theme/custom/ThemeComponentOptionProvider.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.theme.custom;
-
-import android.content.Context;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.res.Resources;
-import android.os.UserHandle;
-
-import com.android.customization.model.CustomizationManager.OptionsFetchedListener;
-import com.android.customization.model.ResourceConstants;
-import com.android.customization.model.theme.OverlayManagerCompat;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Base class used to retrieve Custom Theme Component options (eg, different fonts)
- * from the system.
- */
-public abstract class ThemeComponentOptionProvider<T extends ThemeComponentOption> {
-
-    protected final Context mContext;
-    protected final List<String> mOverlayPackages;
-    protected List<T> mOptions;
-
-    public ThemeComponentOptionProvider(Context context, OverlayManagerCompat manager,
-            String... categories) {
-        mContext = context;
-        mOverlayPackages = new ArrayList<>();
-        for (String category : categories) {
-            mOverlayPackages.addAll(manager.getOverlayPackagesForCategory(category,
-                    UserHandle.myUserId(), ResourceConstants.getPackagesToOverlay(mContext)));
-        }
-    }
-
-    /**
-     * Returns whether there are options for this component available in the current setup.
-     */
-    public boolean isAvailable() {
-        return !mOverlayPackages.isEmpty();
-    }
-
-    /**
-     * Retrieve the available options for this component.
-     * @param callback called when the themes have been retrieved (or immediately if cached)
-     * @param reload whether to reload themes if they're cached.
-     */
-    public void fetch(OptionsFetchedListener<T> callback, boolean reload) {
-        if (mOptions == null || reload) {
-            mOptions = new ArrayList<>();
-            loadOptions();
-        }
-
-        if(callback != null) {
-            callback.onOptionsLoaded(mOptions);
-        }
-    }
-
-    protected abstract void loadOptions();
-
-    protected Resources getOverlayResources(String overlayPackage) throws NameNotFoundException {
-        return mContext.getPackageManager().getResourcesForApplication(overlayPackage);
-    }
-}
diff --git a/src/com/android/customization/model/themedicon/ThemedIconSectionController.java b/src/com/android/customization/model/themedicon/ThemedIconSectionController.java
index 5d551a6..1cc6d0a 100644
--- a/src/com/android/customization/model/themedicon/ThemedIconSectionController.java
+++ b/src/com/android/customization/model/themedicon/ThemedIconSectionController.java
@@ -24,10 +24,12 @@
 
 import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor;
 import com.android.customization.model.themedicon.domain.interactor.ThemedIconSnapshotRestorer;
+import com.android.customization.module.logging.ThemesUserEventLogger;
 import com.android.customization.picker.themedicon.ThemedIconSectionView;
 import com.android.wallpaper.R;
 import com.android.wallpaper.model.CustomizationSectionController;
 
+// TODO (b/311712452): Refactor CustomizationSectionController to use recommended arch UI components
 /** The {@link CustomizationSectionController} for themed icon section. */
 public class ThemedIconSectionController implements
         CustomizationSectionController<ThemedIconSectionView> {
@@ -38,6 +40,7 @@
     private final ThemedIconInteractor mInteractor;
     private final ThemedIconSnapshotRestorer mSnapshotRestorer;
     private final Observer<Boolean> mIsActivatedChangeObserver;
+    private final ThemesUserEventLogger mThemesUserEventLogger;
 
     private ThemedIconSectionView mThemedIconSectionView;
     private boolean mSavedThemedIconEnabled = false;
@@ -46,7 +49,8 @@
             ThemedIconSwitchProvider themedIconOptionsProvider,
             ThemedIconInteractor interactor,
             @Nullable Bundle savedInstanceState,
-            ThemedIconSnapshotRestorer snapshotRestorer) {
+            ThemedIconSnapshotRestorer snapshotRestorer,
+            ThemesUserEventLogger themesUserEventLogger) {
         mThemedIconOptionsProvider = themedIconOptionsProvider;
         mInteractor = interactor;
         mSnapshotRestorer = snapshotRestorer;
@@ -55,6 +59,7 @@
                 mThemedIconSectionView.getSwitch().setChecked(isActivated);
             }
         };
+        mThemesUserEventLogger = themesUserEventLogger;
 
         if (savedInstanceState != null) {
             mSavedThemedIconEnabled = savedInstanceState.getBoolean(
@@ -75,7 +80,10 @@
         mThemedIconSectionView.setViewListener(this::onViewActivated);
         mThemedIconSectionView.getSwitch().setChecked(mSavedThemedIconEnabled);
         mThemedIconOptionsProvider.fetchThemedIconEnabled(
-                enabled -> mThemedIconSectionView.getSwitch().setChecked(enabled));
+                enabled -> {
+                    mInteractor.setActivated(enabled);
+                    mThemedIconSectionView.getSwitch().setChecked(enabled);
+                });
         mInteractor.isActivatedAsLiveData().observeForever(mIsActivatedChangeObserver);
         return mThemedIconSectionView;
     }
@@ -91,6 +99,7 @@
         }
         mThemedIconOptionsProvider.setThemedIconEnabled(viewActivated);
         mInteractor.setActivated(viewActivated);
+        mThemesUserEventLogger.logThemedIconApplied(viewActivated);
         mSnapshotRestorer.store(viewActivated);
     }
 
diff --git a/src/com/android/customization/module/CustomizationInjector.kt b/src/com/android/customization/module/CustomizationInjector.kt
index 8fd3768..82203d9 100644
--- a/src/com/android/customization/module/CustomizationInjector.kt
+++ b/src/com/android/customization/module/CustomizationInjector.kt
@@ -18,33 +18,21 @@
 import android.content.Context
 import android.content.res.Resources
 import androidx.activity.ComponentActivity
-import androidx.fragment.app.FragmentActivity
-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.logging.ThemesUserEventLogger
 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.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
 import com.android.systemui.shared.clocks.ClockRegistry
-import com.android.wallpaper.model.WallpaperColorsViewModel
 import com.android.wallpaper.module.Injector
+import com.android.wallpaper.picker.customization.data.repository.WallpaperColorsRepository
 
 interface CustomizationInjector : Injector {
     fun getCustomizationPreferences(context: Context): CustomizationPreferences
 
-    fun getThemeManager(
-        provider: ThemeBundleProvider,
-        activity: FragmentActivity,
-        overlayManagerCompat: OverlayManagerCompat,
-        logger: ThemesUserEventLogger,
-    ): ThemeManager
-
     fun getKeyguardQuickAffordancePickerInteractor(
         context: Context,
     ): KeyguardQuickAffordancePickerInteractor
@@ -53,31 +41,28 @@
 
     fun getClockPickerInteractor(context: Context): ClockPickerInteractor
 
-    fun getClockSectionViewModel(
-        context: Context,
-    ): ClockSectionViewModel
-
     fun getColorPickerInteractor(
         context: Context,
-        wallpaperColorsViewModel: WallpaperColorsViewModel,
+        wallpaperColorsRepository: WallpaperColorsRepository,
     ): ColorPickerInteractor
 
     fun getColorPickerViewModelFactory(
         context: Context,
-        wallpaperColorsViewModel: WallpaperColorsViewModel,
+        wallpaperColorsRepository: WallpaperColorsRepository,
     ): ColorPickerViewModel.Factory
 
     fun getClockCarouselViewModelFactory(
         interactor: ClockPickerInteractor,
+        clockViewFactory: ClockViewFactory,
+        resources: Resources,
+        logger: ThemesUserEventLogger,
     ): ClockCarouselViewModel.Factory
 
     fun getClockViewFactory(activity: ComponentActivity): ClockViewFactory
 
     fun getClockSettingsViewModelFactory(
         context: Context,
-        wallpaperColorsViewModel: WallpaperColorsViewModel,
+        wallpaperColorsRepository: WallpaperColorsRepository,
         clockViewFactory: ClockViewFactory,
     ): ClockSettingsViewModel.Factory
-
-    fun getClockDescriptionUtils(resources: Resources): ClockDescriptionUtils
 }
diff --git a/src/com/android/customization/module/CustomizationPreferences.java b/src/com/android/customization/module/CustomizationPreferences.java
deleted file mode 100644
index 0df3ff9..0000000
--- a/src/com/android/customization/module/CustomizationPreferences.java
+++ /dev/null
@@ -1,37 +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.module;
-
-import com.android.wallpaper.module.WallpaperPreferences;
-
-public interface CustomizationPreferences extends WallpaperPreferences {
-
-    String KEY_CUSTOM_THEME= "themepicker_custom_theme";
-    String KEY_VISITED_PREFIX = "themepicker_visited_";
-    String KEY_THEMED_ICON_ENABLED = "themepicker_themed_icon_enabled";
-
-    String getSerializedCustomThemes();
-
-    void storeCustomThemes(String serializedCustomThemes);
-
-    boolean getTabVisited(String id);
-
-    void setTabVisited(String id);
-
-    boolean getThemedIconEnabled();
-
-    void setThemedIconEnabled(boolean enabled);
-}
diff --git a/src/com/android/customization/module/CustomizationPreferences.kt b/src/com/android/customization/module/CustomizationPreferences.kt
new file mode 100644
index 0000000..4148c3b
--- /dev/null
+++ b/src/com/android/customization/module/CustomizationPreferences.kt
@@ -0,0 +1,38 @@
+/*
+ * 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.module
+
+import com.android.wallpaper.module.WallpaperPreferences
+
+interface CustomizationPreferences : WallpaperPreferences {
+    fun getSerializedCustomThemes(): String?
+
+    fun storeCustomThemes(serializedCustomThemes: String)
+
+    fun getTabVisited(id: String): Boolean
+
+    fun setTabVisited(id: String)
+
+    fun getThemedIconEnabled(): Boolean
+
+    fun setThemedIconEnabled(enabled: Boolean)
+
+    companion object {
+        const val KEY_CUSTOM_THEME = "themepicker_custom_theme"
+        const val KEY_VISITED_PREFIX = "themepicker_visited_"
+        const val KEY_THEMED_ICON_ENABLED = "themepicker_themed_icon_enabled"
+    }
+}
diff --git a/src/com/android/customization/module/DefaultCustomizationPreferences.java b/src/com/android/customization/module/DefaultCustomizationPreferences.java
deleted file mode 100644
index 4af402f..0000000
--- a/src/com/android/customization/module/DefaultCustomizationPreferences.java
+++ /dev/null
@@ -1,59 +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.module;
-
-import android.content.Context;
-
-import com.android.wallpaper.module.DefaultWallpaperPreferences;
-
-public class DefaultCustomizationPreferences extends DefaultWallpaperPreferences
-        implements CustomizationPreferences {
-
-    public DefaultCustomizationPreferences(Context context) {
-        super(context);
-    }
-
-
-    @Override
-    public String getSerializedCustomThemes() {
-        return mSharedPrefs.getString(KEY_CUSTOM_THEME, null);
-    }
-
-    @Override
-    public void storeCustomThemes(String serializedCustomThemes) {
-        mSharedPrefs.edit().putString(KEY_CUSTOM_THEME, serializedCustomThemes).apply();
-    }
-
-    @Override
-    public boolean getTabVisited(String id) {
-        return mSharedPrefs.getBoolean(KEY_VISITED_PREFIX + id, false);
-    }
-
-    @Override
-    public void setTabVisited(String id) {
-        mSharedPrefs.edit().putBoolean(KEY_VISITED_PREFIX + id, true).apply();
-    }
-
-    @Override
-    public boolean getThemedIconEnabled() {
-        return mSharedPrefs.getBoolean(KEY_THEMED_ICON_ENABLED, false);
-    }
-
-    @Override
-    public void setThemedIconEnabled(boolean enabled) {
-        mSharedPrefs.edit().putBoolean(KEY_THEMED_ICON_ENABLED, enabled).apply();
-    }
-}
diff --git a/src/com/android/customization/module/DefaultCustomizationPreferences.kt b/src/com/android/customization/module/DefaultCustomizationPreferences.kt
new file mode 100644
index 0000000..49fd1a9
--- /dev/null
+++ b/src/com/android/customization/module/DefaultCustomizationPreferences.kt
@@ -0,0 +1,56 @@
+/*
+ * 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.module
+
+import android.content.Context
+import com.android.wallpaper.module.DefaultWallpaperPreferences
+
+open class DefaultCustomizationPreferences(context: Context) :
+    DefaultWallpaperPreferences(context), CustomizationPreferences {
+
+    override fun getSerializedCustomThemes(): String? {
+        return sharedPrefs.getString(CustomizationPreferences.KEY_CUSTOM_THEME, null)
+    }
+
+    override fun storeCustomThemes(serializedCustomThemes: String) {
+        sharedPrefs
+            .edit()
+            .putString(CustomizationPreferences.KEY_CUSTOM_THEME, serializedCustomThemes)
+            .apply()
+    }
+
+    override fun getTabVisited(id: String): Boolean {
+        return sharedPrefs.getBoolean(CustomizationPreferences.KEY_VISITED_PREFIX + id, false)
+    }
+
+    override fun setTabVisited(id: String) {
+        sharedPrefs
+            .edit()
+            .putBoolean(CustomizationPreferences.KEY_VISITED_PREFIX + id, true)
+            .apply()
+    }
+
+    override fun getThemedIconEnabled(): Boolean {
+        return sharedPrefs.getBoolean(CustomizationPreferences.KEY_THEMED_ICON_ENABLED, false)
+    }
+
+    override fun setThemedIconEnabled(enabled: Boolean) {
+        sharedPrefs
+            .edit()
+            .putBoolean(CustomizationPreferences.KEY_THEMED_ICON_ENABLED, enabled)
+            .apply()
+    }
+}
diff --git a/src/com/android/customization/module/DefaultCustomizationSections.java b/src/com/android/customization/module/DefaultCustomizationSections.java
index bbe6bef..8347d03 100644
--- a/src/com/android/customization/module/DefaultCustomizationSections.java
+++ b/src/com/android/customization/module/DefaultCustomizationSections.java
@@ -9,22 +9,21 @@
 import androidx.lifecycle.ViewModelProvider;
 
 import com.android.customization.model.grid.GridOptionsManager;
-import com.android.customization.model.grid.GridSectionController;
-import com.android.customization.model.mode.DarkModeSnapshotRestorer;
 import com.android.customization.model.themedicon.ThemedIconSectionController;
 import com.android.customization.model.themedicon.ThemedIconSwitchProvider;
 import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor;
 import com.android.customization.model.themedicon.domain.interactor.ThemedIconSnapshotRestorer;
+import com.android.customization.module.logging.ThemesUserEventLogger;
 import com.android.customization.picker.clock.ui.view.ClockViewFactory;
 import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel;
 import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor;
-import com.android.customization.picker.color.ui.section.ColorSectionController2;
+import com.android.customization.picker.color.ui.section.ColorSectionController;
 import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel;
+import com.android.customization.picker.grid.ui.section.GridSectionController;
 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;
 import com.android.customization.picker.settings.ui.section.MoreSettingsSectionController;
@@ -32,10 +31,10 @@
 import com.android.wallpaper.model.CustomizationSectionController;
 import com.android.wallpaper.model.CustomizationSectionController.CustomizationSectionNavigationController;
 import com.android.wallpaper.model.PermissionRequester;
-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.data.repository.WallpaperColorsRepository;
 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.WallpaperQuickSwitchSectionController;
@@ -49,43 +48,40 @@
 public final class DefaultCustomizationSections implements CustomizationSections {
 
     private final ColorPickerViewModel.Factory mColorPickerViewModelFactory;
-    private final KeyguardQuickAffordancePickerInteractor mKeyguardQuickAffordancePickerInteractor;
     private final KeyguardQuickAffordancePickerViewModel.Factory
             mKeyguardQuickAffordancePickerViewModelFactory;
     private final NotificationSectionViewModel.Factory mNotificationSectionViewModelFactory;
     private final BaseFlags mFlags;
     private final ClockCarouselViewModel.Factory mClockCarouselViewModelFactory;
     private final ClockViewFactory mClockViewFactory;
-    private final DarkModeSnapshotRestorer mDarkModeSnapshotRestorer;
     private final ThemedIconSnapshotRestorer mThemedIconSnapshotRestorer;
     private final ThemedIconInteractor mThemedIconInteractor;
     private final ColorPickerInteractor mColorPickerInteractor;
+    private final ThemesUserEventLogger mThemesUserEventLogger;
 
     public DefaultCustomizationSections(
             ColorPickerViewModel.Factory colorPickerViewModelFactory,
-            KeyguardQuickAffordancePickerInteractor keyguardQuickAffordancePickerInteractor,
             KeyguardQuickAffordancePickerViewModel.Factory
                     keyguardQuickAffordancePickerViewModelFactory,
             NotificationSectionViewModel.Factory notificationSectionViewModelFactory,
             BaseFlags flags,
             ClockCarouselViewModel.Factory clockCarouselViewModelFactory,
             ClockViewFactory clockViewFactory,
-            DarkModeSnapshotRestorer darkModeSnapshotRestorer,
             ThemedIconSnapshotRestorer themedIconSnapshotRestorer,
             ThemedIconInteractor themedIconInteractor,
-            ColorPickerInteractor colorPickerInteractor) {
+            ColorPickerInteractor colorPickerInteractor,
+            ThemesUserEventLogger themesUserEventLogger) {
         mColorPickerViewModelFactory = colorPickerViewModelFactory;
-        mKeyguardQuickAffordancePickerInteractor = keyguardQuickAffordancePickerInteractor;
         mKeyguardQuickAffordancePickerViewModelFactory =
                 keyguardQuickAffordancePickerViewModelFactory;
         mNotificationSectionViewModelFactory = notificationSectionViewModelFactory;
         mFlags = flags;
         mClockCarouselViewModelFactory = clockCarouselViewModelFactory;
         mClockViewFactory = clockViewFactory;
-        mDarkModeSnapshotRestorer = darkModeSnapshotRestorer;
         mThemedIconSnapshotRestorer = themedIconSnapshotRestorer;
         mThemedIconInteractor = themedIconInteractor;
         mColorPickerInteractor = colorPickerInteractor;
+        mThemesUserEventLogger = themesUserEventLogger;
     }
 
     @Override
@@ -93,7 +89,7 @@
             Screen screen,
             FragmentActivity activity,
             LifecycleOwner lifecycleOwner,
-            WallpaperColorsViewModel wallpaperColorsViewModel,
+            WallpaperColorsRepository wallpaperColorsRepository,
             PermissionRequester permissionRequester,
             WallpaperPreviewNavigator wallpaperPreviewNavigator,
             CustomizationSectionNavigationController sectionNavigationController,
@@ -114,7 +110,7 @@
                         lifecycleOwner,
                         screen,
                         wallpaperInfoFactory,
-                        wallpaperColorsViewModel,
+                        wallpaperColorsRepository,
                         displayUtils,
                         mClockCarouselViewModelFactory,
                         mClockViewFactory,
@@ -131,7 +127,7 @@
                                 lifecycleOwner,
                                 screen,
                                 wallpaperInfoFactory,
-                                wallpaperColorsViewModel,
+                                wallpaperColorsRepository,
                                 displayUtils,
                                 wallpaperPreviewNavigator,
                                 wallpaperInteractor,
@@ -144,7 +140,7 @@
         sectionControllers.add(
                 new ConnectedSectionController(
                         // Theme color section.
-                        new ColorSectionController2(
+                        new ColorSectionController(
                                 sectionNavigationController,
                                 new ViewModelProvider(
                                         activity,
@@ -166,7 +162,6 @@
                 sectionControllers.add(
                         new KeyguardQuickAffordanceSectionController(
                                 sectionNavigationController,
-                                mKeyguardQuickAffordancePickerInteractor,
                                 new ViewModelProvider(
                                         activity,
                                         mKeyguardQuickAffordancePickerViewModelFactory)
@@ -193,7 +188,8 @@
                                 ThemedIconSwitchProvider.getInstance(activity),
                                 mThemedIconInteractor,
                                 savedInstanceState,
-                                mThemedIconSnapshotRestorer));
+                                mThemedIconSnapshotRestorer,
+                                mThemesUserEventLogger));
 
                 // App grid section.
                 sectionControllers.add(
diff --git a/src/com/android/customization/module/StatsLogUserEventLogger.java b/src/com/android/customization/module/StatsLogUserEventLogger.java
deleted file mode 100644
index 647cdc9..0000000
--- a/src/com/android/customization/module/StatsLogUserEventLogger.java
+++ /dev/null
@@ -1,258 +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.module;
-
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_COLOR;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_FONT;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SHAPE;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__ACTION__APP_LAUNCHED;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_CROP_AND_SET_ACTION;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_DEEP_LINK;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_LAUNCHER;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_LAUNCH_ICON;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_PREFERENCE_UNSPECIFIED;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SETTINGS;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SETTINGS_SEARCH;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SUW;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_TIPS;
-import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SETTINGS_SEARCH;
-import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SOURCE_DEEP_LINK;
-import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SOURCE_LAUNCHER;
-import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SOURCE_SETTINGS;
-import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SOURCE_SUW;
-import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SOURCE_TIPS;
-import static com.android.wallpaper.util.LaunchSourceUtils.WALLPAPER_LAUNCH_SOURCE;
-
-import android.app.WallpaperManager;
-import android.content.Intent;
-import android.stats.style.StyleEnums;
-import android.text.TextUtils;
-
-import androidx.annotation.Nullable;
-
-import com.android.customization.model.color.ColorOption;
-import com.android.customization.model.grid.GridOption;
-import com.android.customization.model.theme.ThemeBundle;
-import com.android.wallpaper.module.NoOpUserEventLogger;
-import com.android.wallpaper.module.WallpaperPreferences;
-import com.android.wallpaper.module.WallpaperStatusChecker;
-
-import java.util.Map;
-import java.util.Objects;
-
-/**
- * StatsLog-backed implementation of {@link ThemesUserEventLogger}.
- */
-public class StatsLogUserEventLogger extends NoOpUserEventLogger implements ThemesUserEventLogger {
-
-    private final WallpaperPreferences mPreferences;
-    private final WallpaperStatusChecker mWallpaperStatusChecker;
-
-    public StatsLogUserEventLogger(
-            WallpaperPreferences preferences,
-            WallpaperStatusChecker wallpaperStatusChecker) {
-        mPreferences = preferences;
-        mWallpaperStatusChecker = wallpaperStatusChecker;
-    }
-
-    @Override
-    public void logAppLaunched(Intent launchSource) {
-        new SysUiStatsLogger(STYLE_UICHANGED__ACTION__APP_LAUNCHED)
-                .setLaunchedPreference(getAppLaunchSource(launchSource))
-                .log();
-    }
-
-    @Override
-    public void logResumed(boolean provisioned, boolean wallpaper) {
-        new SysUiStatsLogger(StyleEnums.ONRESUME)
-                .log();
-    }
-
-    @Override
-    public void logStopped() {
-        new SysUiStatsLogger(StyleEnums.ONSTOP)
-                .log();
-    }
-
-    @Override
-    public void logActionClicked(String collectionId, int actionLabelResId) {
-        new SysUiStatsLogger(StyleEnums.WALLPAPER_EXPLORE)
-                .setWallpaperCategoryHash(getIdHashCode(collectionId))
-                .log();
-    }
-
-    @Override
-    public void logIndividualWallpaperSelected(String collectionId) {
-        new SysUiStatsLogger(StyleEnums.WALLPAPER_SELECT)
-                .setWallpaperCategoryHash(getIdHashCode(collectionId))
-                .log();
-    }
-
-    @Override
-    public void logCategorySelected(String collectionId) {
-        new SysUiStatsLogger(StyleEnums.WALLPAPER_OPEN_CATEGORY)
-                .setWallpaperCategoryHash(getIdHashCode(collectionId))
-                .log();
-    }
-
-    @Override
-    public void logSnapshot() {
-        final boolean isLockWallpaperSet = mWallpaperStatusChecker.isLockWallpaperSet();
-        final String homeCollectionId = mPreferences.getHomeWallpaperCollectionId();
-        final String homeRemoteId = mPreferences.getHomeWallpaperRemoteId();
-        final String effects = mPreferences.getHomeWallpaperEffects();
-        String homeWallpaperId = TextUtils.isEmpty(homeRemoteId)
-                ? mPreferences.getHomeWallpaperServiceName() : homeRemoteId;
-        String lockCollectionId = isLockWallpaperSet ? mPreferences.getLockWallpaperCollectionId()
-                : homeCollectionId;
-        String lockWallpaperId = isLockWallpaperSet ? mPreferences.getLockWallpaperRemoteId()
-                : homeWallpaperId;
-
-        new SysUiStatsLogger(StyleEnums.SNAPSHOT)
-                .setWallpaperCategoryHash(getIdHashCode(homeCollectionId))
-                .setWallpaperIdHash(getIdHashCode(homeWallpaperId))
-                .setLockWallpaperCategoryHash(getIdHashCode(lockCollectionId))
-                .setLockWallpaperIdHash(getIdHashCode(lockWallpaperId))
-                .setFirstLaunchDateSinceSetup(mPreferences.getFirstLaunchDateSinceSetup())
-                .setFirstWallpaperApplyDateSinceSetup(
-                        mPreferences.getFirstWallpaperApplyDateSinceSetup())
-                .setAppLaunchCount(mPreferences.getAppLaunchCount())
-                .setEffectIdHash(getIdHashCode(effects))
-                .log();
-    }
-
-    @Override
-    public void logWallpaperSet(String collectionId, @Nullable String wallpaperId,
-            @Nullable String effects) {
-        new SysUiStatsLogger(StyleEnums.WALLPAPER_APPLIED)
-                .setWallpaperCategoryHash(getIdHashCode(collectionId))
-                .setWallpaperIdHash(getIdHashCode(wallpaperId))
-                .setEffectIdHash(getIdHashCode(effects))
-                .log();
-    }
-
-    @Override
-    public void logEffectApply(String effect, @EffectStatus int status, long timeElapsedMillis,
-            int resultCode) {
-        new SysUiStatsLogger(StyleEnums.WALLPAPER_EFFECT_APPLIED)
-                .setEffectPreference(status)
-                .setEffectIdHash(getIdHashCode(effect))
-                .setTimeElapsed(timeElapsedMillis)
-                .setEffectResultCode(resultCode)
-                .log();
-    }
-
-    @Override
-    public void logEffectProbe(String effect, @EffectStatus int status) {
-        new SysUiStatsLogger(StyleEnums.WALLPAPER_EFFECT_PROBE)
-                .setEffectPreference(status)
-                .setEffectIdHash(getIdHashCode(effect))
-                .log();
-    }
-
-    @Override
-    public void logEffectForegroundDownload(String effect, @EffectStatus int status,
-            long timeElapsedMillis) {
-        new SysUiStatsLogger(StyleEnums.WALLPAPER_EFFECT_FG_DOWNLOAD)
-                .setEffectPreference(status)
-                .setEffectIdHash(getIdHashCode(effect))
-                .setTimeElapsed(timeElapsedMillis)
-                .log();
-    }
-
-    @Nullable
-    private String getThemePackage(ThemeBundle theme, String category) {
-        Map<String, String> packages = theme.getPackagesByCategory();
-        return packages.get(category);
-    }
-
-    @Override
-    public void logThemeSelected(ThemeBundle theme, boolean isCustomTheme) {
-        new SysUiStatsLogger(StyleEnums.PICKER_SELECT)
-                .setColorPackageHash(
-                        Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_COLOR)))
-                .setFontPackageHash(Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_FONT)))
-                .setShapePackageHash(
-                        Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_SHAPE)))
-                .log();
-    }
-
-    @Override
-    public void logThemeApplied(ThemeBundle theme, boolean isCustomTheme) {
-        new SysUiStatsLogger(StyleEnums.PICKER_APPLIED)
-                .setColorPackageHash(
-                        Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_COLOR)))
-                .setFontPackageHash(Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_FONT)))
-                .setShapePackageHash(
-                        Objects.hashCode(getThemePackage(theme, OVERLAY_CATEGORY_SHAPE)))
-                .log();
-    }
-
-    @Override
-    public void logColorApplied(int action, ColorOption colorOption) {
-        new SysUiStatsLogger(action)
-                .setColorPreference(colorOption.getIndex())
-                .setColorVariant(colorOption.getStyle().ordinal() + 1)
-                .log();
-    }
-
-    @Override
-    public void logGridSelected(GridOption grid) {
-        new SysUiStatsLogger(StyleEnums.PICKER_SELECT)
-                .setLauncherGrid(grid.cols)
-                .log();
-    }
-
-    @Override
-    public void logGridApplied(GridOption grid) {
-        new SysUiStatsLogger(StyleEnums.PICKER_APPLIED)
-                .setLauncherGrid(grid.cols)
-                .log();
-    }
-
-    private int getAppLaunchSource(Intent launchSource) {
-        if (launchSource.hasExtra(WALLPAPER_LAUNCH_SOURCE)) {
-            switch (launchSource.getStringExtra(WALLPAPER_LAUNCH_SOURCE)) {
-                case LAUNCH_SOURCE_LAUNCHER:
-                    return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_LAUNCHER;
-                case LAUNCH_SOURCE_SETTINGS:
-                    return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SETTINGS;
-                case LAUNCH_SOURCE_SUW:
-                    return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SUW;
-                case LAUNCH_SOURCE_TIPS:
-                    return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_TIPS;
-                case LAUNCH_SOURCE_DEEP_LINK:
-                    return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_DEEP_LINK;
-                default:
-                    return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_PREFERENCE_UNSPECIFIED;
-            }
-        } else if (launchSource.hasExtra(LAUNCH_SETTINGS_SEARCH)) {
-            return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SETTINGS_SEARCH;
-        } else if (launchSource.getAction() != null && launchSource.getAction().equals(
-                WallpaperManager.ACTION_CROP_AND_SET_WALLPAPER)) {
-            return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_CROP_AND_SET_ACTION;
-        } else if (launchSource.getCategories() != null
-                && launchSource.getCategories().contains(Intent.CATEGORY_LAUNCHER)) {
-            return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_LAUNCH_ICON;
-        } else {
-            return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_PREFERENCE_UNSPECIFIED;
-        }
-    }
-
-    private int getIdHashCode(String id) {
-        return id != null ? id.hashCode() : 0;
-    }
-}
diff --git a/src/com/android/customization/module/ThemePickerInjector.kt b/src/com/android/customization/module/ThemePickerInjector.kt
index 497456f..f22e562 100644
--- a/src/com/android/customization/module/ThemePickerInjector.kt
+++ b/src/com/android/customization/module/ThemePickerInjector.kt
@@ -15,7 +15,9 @@
  */
 package com.android.customization.module
 
+import android.app.Activity
 import android.app.UiModeManager
+import android.app.WallpaperColors
 import android.app.WallpaperManager
 import android.content.Context
 import android.content.Intent
@@ -23,40 +25,37 @@
 import android.net.Uri
 import android.text.TextUtils
 import androidx.activity.ComponentActivity
-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
 import com.android.customization.model.color.ColorOptionsProvider.COLOR_SOURCE_PRESET
+import com.android.customization.model.color.ThemedWallpaperColorResources
+import com.android.customization.model.color.WallpaperColorResources
 import com.android.customization.model.grid.GridOptionsManager
-import com.android.customization.model.grid.data.repository.GridRepositoryImpl
-import com.android.customization.model.grid.domain.interactor.GridInteractor
-import com.android.customization.model.grid.domain.interactor.GridSnapshotRestorer
-import com.android.customization.model.grid.ui.viewmodel.GridScreenViewModel
 import com.android.customization.model.mode.DarkModeSnapshotRestorer
 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.model.themedicon.ThemedIconSwitchProvider
 import com.android.customization.model.themedicon.data.repository.ThemeIconRepository
 import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor
 import com.android.customization.model.themedicon.domain.interactor.ThemedIconSnapshotRestorer
+import com.android.customization.module.logging.ThemesUserEventLogger
 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.view.ClockViewFactoryImpl
 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
 import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
+import com.android.customization.picker.grid.data.repository.GridRepositoryImpl
+import com.android.customization.picker.grid.domain.interactor.GridInteractor
+import com.android.customization.picker.grid.domain.interactor.GridSnapshotRestorer
+import com.android.customization.picker.grid.ui.viewmodel.GridScreenViewModel
 import com.android.customization.picker.notifications.data.repository.NotificationsRepository
 import com.android.customization.picker.notifications.domain.interactor.NotificationsInteractor
 import com.android.customization.picker.notifications.domain.interactor.NotificationsSnapshotRestorer
@@ -69,17 +68,16 @@
 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.dispatchers.BackgroundDispatcher
-import com.android.wallpaper.dispatchers.MainDispatcher
-import com.android.wallpaper.model.WallpaperColorsViewModel
 import com.android.wallpaper.module.CustomizationSections
 import com.android.wallpaper.module.FragmentFactory
-import com.android.wallpaper.module.UserEventLogger
 import com.android.wallpaper.module.WallpaperPicker2Injector
 import com.android.wallpaper.picker.CustomizationPickerActivity
 import com.android.wallpaper.picker.customization.data.content.WallpaperClientImpl
+import com.android.wallpaper.picker.customization.data.repository.WallpaperColorsRepository
 import com.android.wallpaper.picker.customization.data.repository.WallpaperRepository
 import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
+import com.android.wallpaper.picker.di.modules.BackgroundDispatcher
+import com.android.wallpaper.picker.di.modules.MainDispatcher
 import com.android.wallpaper.picker.undo.domain.interactor.SnapshotRestorer
 import com.android.wallpaper.util.ScreenSizeCalculator
 import javax.inject.Inject
@@ -94,9 +92,9 @@
     @MainDispatcher private val mainScope: CoroutineScope,
     @MainDispatcher private val mainDispatcher: CoroutineDispatcher,
     @BackgroundDispatcher private val bgDispatcher: CoroutineDispatcher,
-) : WallpaperPicker2Injector(mainScope, bgDispatcher), CustomizationInjector {
+    private val userEventLogger: ThemesUserEventLogger,
+) : WallpaperPicker2Injector(mainScope, bgDispatcher, userEventLogger), CustomizationInjector {
     private var customizationSections: CustomizationSections? = null
-    private var userEventLogger: UserEventLogger? = null
     private var wallpaperInteractor: WallpaperInteractor? = null
     private var keyguardQuickAffordancePickerInteractor: KeyguardQuickAffordancePickerInteractor? =
         null
@@ -109,9 +107,8 @@
         null
     private var notificationsSnapshotRestorer: NotificationsSnapshotRestorer? = null
     private var clockPickerInteractor: ClockPickerInteractor? = null
-    private var clockSectionViewModel: ClockSectionViewModel? = null
     private var clockCarouselViewModelFactory: ClockCarouselViewModel.Factory? = null
-    private var clockViewFactories: MutableMap<Int, ClockViewFactory> = HashMap()
+    private var clockViewFactory: ClockViewFactory? = null
     private var clockPickerSnapshotRestorer: ClockPickerSnapshotRestorer? = null
     private var notificationsInteractor: NotificationsInteractor? = null
     private var notificationSectionViewModelFactory: NotificationSectionViewModel.Factory? = null
@@ -123,33 +120,35 @@
     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 {
+        val appContext = activity.applicationContext
+        val clockViewFactory = getClockViewFactory(activity)
+        val resources = activity.resources
         return customizationSections
             ?: DefaultCustomizationSections(
                     getColorPickerViewModelFactory(
-                        context = activity,
-                        wallpaperColorsViewModel = getWallpaperColorsViewModel(),
+                        context = appContext,
+                        wallpaperColorsRepository = getWallpaperColorsRepository(),
                     ),
-                    getKeyguardQuickAffordancePickerInteractor(activity),
-                    getKeyguardQuickAffordancePickerViewModelFactory(activity),
-                    NotificationSectionViewModel.Factory(
-                        interactor = getNotificationsInteractor(activity),
-                    ),
+                    getKeyguardQuickAffordancePickerViewModelFactory(appContext),
+                    getNotificationSectionViewModelFactory(appContext),
                     getFlags(),
                     getClockCarouselViewModelFactory(
-                        getClockPickerInteractor(activity.applicationContext),
+                        interactor = getClockPickerInteractor(appContext),
+                        clockViewFactory = clockViewFactory,
+                        resources = resources,
+                        logger = userEventLogger,
                     ),
-                    getClockViewFactory(activity),
-                    getDarkModeSnapshotRestorer(activity),
-                    getThemedIconSnapshotRestorer(activity),
+                    clockViewFactory,
+                    getThemedIconSnapshotRestorer(appContext),
                     getThemedIconInteractor(),
-                    getColorPickerInteractor(activity, getWallpaperColorsViewModel()),
+                    getColorPickerInteractor(appContext, getWallpaperColorsRepository()),
+                    getUserEventLogger(appContext),
                 )
                 .also { customizationSections = it }
     }
@@ -168,12 +167,7 @@
 
     @Synchronized
     override fun getUserEventLogger(context: Context): ThemesUserEventLogger {
-        return userEventLogger as? ThemesUserEventLogger
-            ?: StatsLogUserEventLogger(
-                    getPreferences(context.applicationContext),
-                    getWallpaperStatusChecker(context.applicationContext),
-                )
-                .also { userEventLogger = it }
+        return userEventLogger
     }
 
     override fun getFragmentFactory(): FragmentFactory? {
@@ -195,7 +189,7 @@
             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())
+                getColorPickerSnapshotRestorer(context, getWallpaperColorsRepository())
             this[KEY_CLOCKS_SNAPSHOT_RESTORER] = getClockPickerSnapshotRestorer(context)
         }
     }
@@ -204,16 +198,11 @@
         return getPreferences(context) as CustomizationPreferences
     }
 
-    override fun getThemeManager(
-        provider: ThemeBundleProvider,
-        activity: FragmentActivity,
-        overlayManagerCompat: OverlayManagerCompat,
-        logger: ThemesUserEventLogger
-    ): ThemeManager {
-        return ThemeManager(provider, activity, overlayManagerCompat, logger)
-    }
-
     override fun getWallpaperInteractor(context: Context): WallpaperInteractor {
+        if (getFlags().isMultiCropEnabled() && getFlags().isMultiCropPreviewUiEnabled()) {
+            return injectedWallpaperInteractor
+        }
+
         val appContext = context.applicationContext
         return wallpaperInteractor
             ?: WallpaperInteractor(
@@ -223,8 +212,8 @@
                             client =
                                 WallpaperClientImpl(
                                     context = appContext,
-                                    infoFactory = getCurrentWallpaperInfoFactory(appContext),
-                                    wallpaperManager = WallpaperManager.getInstance(appContext)
+                                    wallpaperManager = WallpaperManager.getInstance(appContext),
+                                    wallpaperPreferences = getPreferences(appContext)
                                 ),
                             wallpaperPreferences = getPreferences(context = appContext),
                             backgroundDispatcher = bgDispatcher,
@@ -232,7 +221,7 @@
                     shouldHandleReload = {
                         TextUtils.equals(
                             getColorCustomizationManager(appContext).currentColorSource,
-                            ColorOptionsProvider.COLOR_SOURCE_PRESET
+                            COLOR_SOURCE_PRESET,
                         )
                     }
                 )
@@ -257,6 +246,7 @@
                     getKeyguardQuickAffordancePickerInteractor(context),
                     getWallpaperInteractor(context),
                     getCurrentWallpaperInfoFactory(context),
+                    getUserEventLogger(context),
                 )
                 .also { keyguardQuickAffordancePickerViewModelFactory = it }
     }
@@ -267,7 +257,7 @@
         val client = getKeyguardQuickAffordancePickerProviderClient(context)
         val appContext = context.applicationContext
         return KeyguardQuickAffordancePickerInteractor(
-            KeyguardQuickAffordancePickerRepository(client, bgDispatcher),
+            KeyguardQuickAffordancePickerRepository(client, getApplicationCoroutineScope()),
             client
         ) {
             getKeyguardQuickAffordanceSnapshotRestorer(appContext)
@@ -300,6 +290,7 @@
         return notificationSectionViewModelFactory
             ?: NotificationSectionViewModel.Factory(
                     interactor = getNotificationsInteractor(context),
+                    logger = getUserEventLogger(context),
                 )
                 .also { notificationSectionViewModelFactory = it }
     }
@@ -362,30 +353,26 @@
                 .also { clockPickerInteractor = it }
     }
 
-    override fun getClockSectionViewModel(
-        context: Context,
-    ): ClockSectionViewModel {
-        return clockSectionViewModel
-            ?: ClockSectionViewModel(
-                    context.applicationContext,
-                    getClockPickerInteractor(context.applicationContext)
-                )
-                .also { clockSectionViewModel = it }
-    }
-
     override fun getClockCarouselViewModelFactory(
         interactor: ClockPickerInteractor,
+        clockViewFactory: ClockViewFactory,
+        resources: Resources,
+        logger: ThemesUserEventLogger,
     ): ClockCarouselViewModel.Factory {
         return clockCarouselViewModelFactory
-            ?: ClockCarouselViewModel.Factory(interactor, bgDispatcher).also {
-                clockCarouselViewModelFactory = it
-            }
+            ?: ClockCarouselViewModel.Factory(
+                    interactor,
+                    bgDispatcher,
+                    clockViewFactory,
+                    resources,
+                    logger,
+                )
+                .also { clockCarouselViewModelFactory = it }
     }
 
     override fun getClockViewFactory(activity: ComponentActivity): ClockViewFactory {
-        val activityHashCode = activity.hashCode()
-        return clockViewFactories[activityHashCode]
-            ?: ClockViewFactory(
+        return clockViewFactory
+            ?: ClockViewFactoryImpl(
                     activity.applicationContext,
                     ScreenSizeCalculator.getInstance()
                         .getScreenSize(activity.windowManager.defaultDisplay),
@@ -393,13 +380,13 @@
                     getClockRegistry(activity.applicationContext),
                 )
                 .also {
-                    clockViewFactories[activityHashCode] = it
+                    clockViewFactory = it
                     activity.lifecycle.addObserver(
                         object : DefaultLifecycleObserver {
                             override fun onDestroy(owner: LifecycleOwner) {
                                 super.onDestroy(owner)
-                                clockViewFactories[activityHashCode]?.onDestroy()
-                                clockViewFactories.remove(activityHashCode)
+                                if ((owner as Activity).isChangingConfigurations()) return
+                                clockViewFactory?.onDestroy()
                             }
                         }
                     )
@@ -415,20 +402,27 @@
             }
     }
 
+    override fun getWallpaperColorResources(
+        wallpaperColors: WallpaperColors,
+        context: Context
+    ): WallpaperColorResources {
+        return ThemedWallpaperColorResources(wallpaperColors, context)
+    }
+
     override fun getColorPickerInteractor(
         context: Context,
-        wallpaperColorsViewModel: WallpaperColorsViewModel,
+        wallpaperColorsRepository: WallpaperColorsRepository,
     ): ColorPickerInteractor {
         val appContext = context.applicationContext
         return colorPickerInteractor
             ?: ColorPickerInteractor(
                     repository =
                         ColorPickerRepositoryImpl(
-                            wallpaperColorsViewModel,
+                            wallpaperColorsRepository,
                             getColorCustomizationManager(appContext)
                         ),
                     snapshotRestorer = {
-                        getColorPickerSnapshotRestorer(appContext, wallpaperColorsViewModel)
+                        getColorPickerSnapshotRestorer(appContext, wallpaperColorsRepository)
                     }
                 )
                 .also { colorPickerInteractor = it }
@@ -436,23 +430,24 @@
 
     override fun getColorPickerViewModelFactory(
         context: Context,
-        wallpaperColorsViewModel: WallpaperColorsViewModel,
+        wallpaperColorsRepository: WallpaperColorsRepository,
     ): ColorPickerViewModel.Factory {
         return colorPickerViewModelFactory
             ?: ColorPickerViewModel.Factory(
                     context.applicationContext,
-                    getColorPickerInteractor(context, wallpaperColorsViewModel),
+                    getColorPickerInteractor(context, wallpaperColorsRepository),
+                    userEventLogger,
                 )
                 .also { colorPickerViewModelFactory = it }
     }
 
     private fun getColorPickerSnapshotRestorer(
         context: Context,
-        wallpaperColorsViewModel: WallpaperColorsViewModel,
+        wallpaperColorsRepository: WallpaperColorsRepository,
     ): ColorPickerSnapshotRestorer {
         return colorPickerSnapshotRestorer
             ?: ColorPickerSnapshotRestorer(
-                    getColorPickerInteractor(context, wallpaperColorsViewModel)
+                    getColorPickerInteractor(context, wallpaperColorsRepository)
                 )
                 .also { colorPickerSnapshotRestorer = it }
     }
@@ -502,7 +497,7 @@
 
     override fun getClockSettingsViewModelFactory(
         context: Context,
-        wallpaperColorsViewModel: WallpaperColorsViewModel,
+        wallpaperColorsRepository: WallpaperColorsRepository,
         clockViewFactory: ClockViewFactory,
     ): ClockSettingsViewModel.Factory {
         return clockSettingsViewModelFactory
@@ -511,8 +506,9 @@
                     getClockPickerInteractor(context),
                     getColorPickerInteractor(
                         context,
-                        wallpaperColorsViewModel,
+                        wallpaperColorsRepository,
                     ),
+                    userEventLogger,
                 ) { clockId ->
                     clockId?.let { clockViewFactory.getController(clockId).config.isReactiveToTone }
                         ?: false
@@ -520,11 +516,6 @@
                 .also { clockSettingsViewModelFactory = it }
     }
 
-    override fun getClockDescriptionUtils(resources: Resources): ClockDescriptionUtils {
-        return clockDescriptionUtils
-            ?: ThemePickerClockDescriptionUtils().also { clockDescriptionUtils = it }
-    }
-
     fun getGridScreenViewModelFactory(
         context: Context,
     ): ViewModelProvider.Factory {
diff --git a/src/com/android/customization/module/ThemesUserEventLogger.java b/src/com/android/customization/module/ThemesUserEventLogger.java
deleted file mode 100644
index b1a87b9..0000000
--- a/src/com/android/customization/module/ThemesUserEventLogger.java
+++ /dev/null
@@ -1,44 +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.module;
-
-import com.android.customization.model.color.ColorOption;
-import com.android.customization.model.grid.GridOption;
-import com.android.customization.model.theme.ThemeBundle;
-import com.android.wallpaper.module.UserEventLogger;
-
-/**
- * Extension of {@link UserEventLogger} that adds ThemePicker specific events.
- */
-public interface ThemesUserEventLogger extends UserEventLogger {
-
-    void logThemeSelected(ThemeBundle theme, boolean isCustomTheme);
-
-    void logThemeApplied(ThemeBundle theme, boolean isCustomTheme);
-
-    /**
-     * Logs the color usage while color is applied.
-     *
-     * @param action color applied action.
-     * @param colorOption applied color option.
-     */
-    void logColorApplied(int action, ColorOption colorOption);
-
-    void logGridSelected(GridOption grid);
-
-    void logGridApplied(GridOption grid);
-
-}
diff --git a/src/com/android/customization/module/logging/AppSessionId.kt b/src/com/android/customization/module/logging/AppSessionId.kt
new file mode 100644
index 0000000..c831f22
--- /dev/null
+++ b/src/com/android/customization/module/logging/AppSessionId.kt
@@ -0,0 +1,43 @@
+/*
+ * 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.module.logging
+
+import com.android.internal.logging.InstanceId
+import com.android.internal.logging.InstanceIdSequence
+import javax.inject.Inject
+import javax.inject.Singleton
+
+@Singleton
+class AppSessionId @Inject constructor() {
+
+    private var sessionId: InstanceId = newInstanceId()
+
+    fun createNewId(): AppSessionId {
+        sessionId = newInstanceId()
+        return this
+    }
+
+    fun getId(): Int {
+        return sessionId.hashCode()
+    }
+
+    private fun newInstanceId(): InstanceId = InstanceIdSequence(INSTANCE_ID_MAX).newInstanceId()
+
+    companion object {
+        // At most 20 bits: ~1m possibilities, ~0.5% probability of collision in 100 values
+        private const val INSTANCE_ID_MAX = 1 shl 20
+    }
+}
diff --git a/src/com/android/customization/module/SysUiStatsLogger.kt b/src/com/android/customization/module/logging/SysUiStatsLogger.kt
similarity index 61%
rename from src/com/android/customization/module/SysUiStatsLogger.kt
rename to src/com/android/customization/module/logging/SysUiStatsLogger.kt
index 8e97b0b..111c2c2 100644
--- a/src/com/android/customization/module/SysUiStatsLogger.kt
+++ b/src/com/android/customization/module/logging/SysUiStatsLogger.kt
@@ -13,11 +13,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.customization.module
+package com.android.customization.module.logging
 
-import android.stats.style.StyleEnums
+import android.stats.style.StyleEnums.CLOCK_SIZE_UNSPECIFIED
+import android.stats.style.StyleEnums.COLOR_SOURCE_UNSPECIFIED
+import android.stats.style.StyleEnums.DATE_PREFERENCE_UNSPECIFIED
+import android.stats.style.StyleEnums.EFFECT_PREFERENCE_UNSPECIFIED
+import android.stats.style.StyleEnums.LAUNCHED_PREFERENCE_UNSPECIFIED
+import android.stats.style.StyleEnums.LOCATION_PREFERENCE_UNSPECIFIED
+import android.stats.style.StyleEnums.SET_WALLPAPER_ENTRY_POINT_UNSPECIFIED
+import android.stats.style.StyleEnums.WALLPAPER_DESTINATION_UNSPECIFIED
 import com.android.systemui.shared.system.SysUiStatsLog
 import com.android.systemui.shared.system.SysUiStatsLog.STYLE_UI_CHANGED
+import com.android.wallpaper.module.logging.UserEventLogger.SetWallpaperEntryPoint
 
 /** The builder for [SysUiStatsLog]. */
 class SysUiStatsLogger(val action: Int) {
@@ -30,10 +38,10 @@
     private var wallpaperCategoryHash = 0
     private var wallpaperIdHash = 0
     private var colorPreference = 0
-    private var locationPreference = StyleEnums.EFFECT_PREFERENCE_UNSPECIFIED
-    private var datePreference = StyleEnums.DATE_PREFERENCE_UNSPECIFIED
-    private var launchedPreference = StyleEnums.LAUNCHED_PREFERENCE_UNSPECIFIED
-    private var effectPreference = StyleEnums.EFFECT_PREFERENCE_UNSPECIFIED
+    private var locationPreference = LOCATION_PREFERENCE_UNSPECIFIED
+    private var datePreference = DATE_PREFERENCE_UNSPECIFIED
+    private var launchedPreference = LAUNCHED_PREFERENCE_UNSPECIFIED
+    private var effectPreference = EFFECT_PREFERENCE_UNSPECIFIED
     private var effectIdHash = 0
     private var lockWallpaperCategoryHash = 0
     private var lockWallpaperIdHash = 0
@@ -43,14 +51,21 @@
     private var colorVariant = 0
     private var timeElapsedMillis = 0L
     private var effectResultCode = -1
+    private var appSessionId = 0
+    private var setWallpaperEntryPoint = SET_WALLPAPER_ENTRY_POINT_UNSPECIFIED
+    private var wallpaperDestination = WALLPAPER_DESTINATION_UNSPECIFIED
+    private var colorSource = COLOR_SOURCE_UNSPECIFIED
+    private var seedColor = 0
+    private var clockSize = CLOCK_SIZE_UNSPECIFIED
+    private var toggleOn = false
+    private var shortcut = ""
+    private var shortcutSlotId = ""
 
     fun setColorPackageHash(colorPackageHash: Int) = apply {
         this.colorPackageHash = colorPackageHash
     }
 
-    fun setFontPackageHash(fontPackageHash: Int) = apply {
-        this.fontPackageHash = fontPackageHash
-    }
+    fun setFontPackageHash(fontPackageHash: Int) = apply { this.fontPackageHash = fontPackageHash }
 
     fun setShapePackageHash(shapePackageHash: Int) = apply {
         this.shapePackageHash = shapePackageHash
@@ -66,13 +81,9 @@
         this.wallpaperCategoryHash = wallpaperCategoryHash
     }
 
-    fun setWallpaperIdHash(wallpaperIdHash: Int) = apply {
-        this.wallpaperIdHash = wallpaperIdHash
-    }
+    fun setWallpaperIdHash(wallpaperIdHash: Int) = apply { this.wallpaperIdHash = wallpaperIdHash }
 
-    fun setColorPreference(colorPreference: Int) = apply {
-        this.colorPreference = colorPreference
-    }
+    fun setColorPreference(colorPreference: Int) = apply { this.colorPreference = colorPreference }
 
     fun setLocationPreference(locationPreference: Int) = apply {
         this.locationPreference = locationPreference
@@ -111,13 +122,35 @@
     fun setColorVariant(colorVariant: Int) = apply { this.colorVariant = colorVariant }
 
     fun setTimeElapsed(timeElapsedMillis: Long) = apply {
-      this.timeElapsedMillis = timeElapsedMillis
+        this.timeElapsedMillis = timeElapsedMillis
     }
 
     fun setEffectResultCode(effectResultCode: Int) = apply {
         this.effectResultCode = effectResultCode
     }
 
+    fun setAppSessionId(sessionId: Int) = apply { this.appSessionId = sessionId }
+
+    fun setSetWallpaperEntryPoint(@SetWallpaperEntryPoint setWallpaperEntryPoint: Int) = apply {
+        this.setWallpaperEntryPoint = setWallpaperEntryPoint
+    }
+
+    fun setWallpaperDestination(wallpaperDestination: Int) = apply {
+        this.wallpaperDestination = wallpaperDestination
+    }
+
+    fun setColorSource(colorSource: Int) = apply { this.colorSource = colorSource }
+
+    fun setSeedColor(seedColor: Int) = apply { this.seedColor = seedColor }
+
+    fun setClockSize(clockSize: Int) = apply { this.clockSize = clockSize }
+
+    fun setToggleOn(toggleOn: Boolean) = apply { this.toggleOn = toggleOn }
+
+    fun setShortcut(shortcut: String) = apply { this.shortcut = shortcut }
+
+    fun setShortcutSlotId(shortcutSlotId: String) = apply { this.shortcutSlotId = shortcutSlotId }
+
     fun log() {
         SysUiStatsLog.write(
             STYLE_UI_CHANGED,
@@ -143,6 +176,15 @@
             colorVariant,
             timeElapsedMillis,
             effectResultCode,
+            appSessionId,
+            setWallpaperEntryPoint,
+            wallpaperDestination,
+            colorSource,
+            seedColor,
+            clockSize,
+            toggleOn,
+            shortcut,
+            shortcutSlotId,
         )
     }
 }
diff --git a/src/com/android/customization/module/logging/ThemesUserEventLogger.kt b/src/com/android/customization/module/logging/ThemesUserEventLogger.kt
new file mode 100644
index 0000000..60fd062
--- /dev/null
+++ b/src/com/android/customization/module/logging/ThemesUserEventLogger.kt
@@ -0,0 +1,64 @@
+/*
+ * 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.module.logging
+
+import android.stats.style.StyleEnums
+import androidx.annotation.IntDef
+import com.android.customization.model.grid.GridOption
+import com.android.wallpaper.module.logging.UserEventLogger
+
+/** Extension of [UserEventLogger] that adds ThemePicker specific events. */
+interface ThemesUserEventLogger : UserEventLogger {
+
+    fun logThemeColorApplied(@ColorSource source: Int, style: Int, seedColor: Int)
+
+    fun logGridApplied(grid: GridOption)
+
+    fun logClockApplied(clockId: String)
+
+    fun logClockColorApplied(seedColor: Int)
+
+    fun logClockSizeApplied(@ClockSize clockSize: Int)
+
+    fun logThemedIconApplied(useThemeIcon: Boolean)
+
+    fun logLockScreenNotificationApplied(showLockScreenNotifications: Boolean)
+
+    fun logShortcutApplied(shortcut: String, shortcutSlotId: String)
+
+    fun logDarkThemeApplied(useDarkTheme: Boolean)
+
+    @IntDef(
+        StyleEnums.COLOR_SOURCE_UNSPECIFIED,
+        StyleEnums.COLOR_SOURCE_HOME_SCREEN_WALLPAPER,
+        StyleEnums.COLOR_SOURCE_LOCK_SCREEN_WALLPAPER,
+        StyleEnums.COLOR_SOURCE_PRESET_COLOR,
+    )
+    @Retention(AnnotationRetention.SOURCE)
+    annotation class ColorSource
+
+    @IntDef(
+        StyleEnums.CLOCK_SIZE_UNSPECIFIED,
+        StyleEnums.CLOCK_SIZE_DYNAMIC,
+        StyleEnums.CLOCK_SIZE_SMALL,
+    )
+    @Retention(AnnotationRetention.SOURCE)
+    annotation class ClockSize
+
+    companion object {
+        const val NULL_SEED_COLOR = 0
+    }
+}
diff --git a/src/com/android/customization/module/logging/ThemesUserEventLoggerImpl.kt b/src/com/android/customization/module/logging/ThemesUserEventLoggerImpl.kt
new file mode 100644
index 0000000..3f4a6dc
--- /dev/null
+++ b/src/com/android/customization/module/logging/ThemesUserEventLoggerImpl.kt
@@ -0,0 +1,299 @@
+/*
+ * 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.module.logging
+
+import android.app.WallpaperManager
+import android.content.Intent
+import android.stats.style.StyleEnums.APP_LAUNCHED
+import android.stats.style.StyleEnums.CLOCK_APPLIED
+import android.stats.style.StyleEnums.CLOCK_COLOR_APPLIED
+import android.stats.style.StyleEnums.CLOCK_SIZE_APPLIED
+import android.stats.style.StyleEnums.DARK_THEME_APPLIED
+import android.stats.style.StyleEnums.GRID_APPLIED
+import android.stats.style.StyleEnums.LAUNCHED_CROP_AND_SET_ACTION
+import android.stats.style.StyleEnums.LAUNCHED_DEEP_LINK
+import android.stats.style.StyleEnums.LAUNCHED_KEYGUARD
+import android.stats.style.StyleEnums.LAUNCHED_LAUNCHER
+import android.stats.style.StyleEnums.LAUNCHED_LAUNCH_ICON
+import android.stats.style.StyleEnums.LAUNCHED_PREFERENCE_UNSPECIFIED
+import android.stats.style.StyleEnums.LAUNCHED_SETTINGS
+import android.stats.style.StyleEnums.LAUNCHED_SETTINGS_SEARCH
+import android.stats.style.StyleEnums.LAUNCHED_SUW
+import android.stats.style.StyleEnums.LAUNCHED_TIPS
+import android.stats.style.StyleEnums.LOCK_SCREEN_NOTIFICATION_APPLIED
+import android.stats.style.StyleEnums.RESET_APPLIED
+import android.stats.style.StyleEnums.SHORTCUT_APPLIED
+import android.stats.style.StyleEnums.SNAPSHOT
+import android.stats.style.StyleEnums.THEMED_ICON_APPLIED
+import android.stats.style.StyleEnums.THEME_COLOR_APPLIED
+import android.stats.style.StyleEnums.WALLPAPER_APPLIED
+import android.stats.style.StyleEnums.WALLPAPER_DESTINATION_HOME_AND_LOCK_SCREEN
+import android.stats.style.StyleEnums.WALLPAPER_DESTINATION_HOME_SCREEN
+import android.stats.style.StyleEnums.WALLPAPER_DESTINATION_LOCK_SCREEN
+import android.stats.style.StyleEnums.WALLPAPER_EFFECT_APPLIED
+import android.stats.style.StyleEnums.WALLPAPER_EFFECT_FG_DOWNLOAD
+import android.stats.style.StyleEnums.WALLPAPER_EFFECT_PROBE
+import android.stats.style.StyleEnums.WALLPAPER_EXPLORE
+import android.text.TextUtils
+import com.android.customization.model.color.ColorCustomizationManager
+import com.android.customization.model.grid.GridOption
+import com.android.customization.module.logging.ThemesUserEventLogger.ClockSize
+import com.android.customization.module.logging.ThemesUserEventLogger.ColorSource
+import com.android.wallpaper.module.WallpaperPreferences
+import com.android.wallpaper.module.logging.UserEventLogger.EffectStatus
+import com.android.wallpaper.module.logging.UserEventLogger.SetWallpaperEntryPoint
+import com.android.wallpaper.module.logging.UserEventLogger.WallpaperDestination
+import com.android.wallpaper.util.ActivityUtils
+import com.android.wallpaper.util.LaunchSourceUtils
+import javax.inject.Inject
+import javax.inject.Singleton
+
+/** StatsLog-backed implementation of [ThemesUserEventLogger]. */
+@Singleton
+class ThemesUserEventLoggerImpl
+@Inject
+constructor(
+    private val preferences: WallpaperPreferences,
+    private val colorManager: ColorCustomizationManager,
+    private val appSessionId: AppSessionId,
+) : ThemesUserEventLogger {
+
+    override fun logSnapshot() {
+        SysUiStatsLogger(SNAPSHOT)
+            .setWallpaperCategoryHash(preferences.getHomeCategoryHash())
+            .setWallpaperIdHash(preferences.getHomeWallpaperIdHash())
+            .setLockWallpaperCategoryHash(preferences.getLockCategoryHash())
+            .setLockWallpaperIdHash(preferences.getLockWallpaperIdHash())
+            .setEffectIdHash(preferences.getHomeWallpaperEffectsIdHash())
+            .setColorSource(colorManager.currentColorSourceForLogging)
+            .setColorVariant(colorManager.currentStyleForLogging)
+            .setSeedColor(colorManager.currentSeedColorForLogging)
+            .log()
+    }
+
+    override fun logAppLaunched(launchSource: Intent) {
+        SysUiStatsLogger(APP_LAUNCHED)
+            .setAppSessionId(appSessionId.createNewId().getId())
+            .setLaunchedPreference(launchSource.getAppLaunchSource())
+            .log()
+    }
+
+    override fun logWallpaperApplied(
+        collectionId: String?,
+        wallpaperId: String?,
+        effects: String?,
+        @SetWallpaperEntryPoint setWallpaperEntryPoint: Int,
+        @WallpaperDestination destination: Int,
+    ) {
+        val categoryHash = getIdHashCode(collectionId)
+        val wallpaperIdHash = getIdHashCode(wallpaperId)
+        val isHomeWallpaperSet =
+            destination == WALLPAPER_DESTINATION_HOME_SCREEN ||
+                destination == WALLPAPER_DESTINATION_HOME_AND_LOCK_SCREEN
+        val isLockWallpaperSet =
+            destination == WALLPAPER_DESTINATION_LOCK_SCREEN ||
+                destination == WALLPAPER_DESTINATION_HOME_AND_LOCK_SCREEN
+        SysUiStatsLogger(WALLPAPER_APPLIED)
+            .setAppSessionId(appSessionId.getId())
+            .setWallpaperCategoryHash(if (isHomeWallpaperSet) categoryHash else 0)
+            .setWallpaperIdHash(if (isHomeWallpaperSet) wallpaperIdHash else 0)
+            .setLockWallpaperCategoryHash(if (isLockWallpaperSet) categoryHash else 0)
+            .setLockWallpaperIdHash(if (isLockWallpaperSet) wallpaperIdHash else 0)
+            .setEffectIdHash(getIdHashCode(effects))
+            .setSetWallpaperEntryPoint(setWallpaperEntryPoint)
+            .setWallpaperDestination(destination)
+            .log()
+    }
+
+    override fun logEffectApply(
+        effect: String,
+        @EffectStatus status: Int,
+        timeElapsedMillis: Long,
+        resultCode: Int
+    ) {
+        SysUiStatsLogger(WALLPAPER_EFFECT_APPLIED)
+            .setAppSessionId(appSessionId.getId())
+            .setEffectPreference(status)
+            .setEffectIdHash(getIdHashCode(effect))
+            .setTimeElapsed(timeElapsedMillis)
+            .setEffectResultCode(resultCode)
+            .log()
+    }
+
+    override fun logEffectProbe(effect: String, @EffectStatus status: Int) {
+        SysUiStatsLogger(WALLPAPER_EFFECT_PROBE)
+            .setAppSessionId(appSessionId.getId())
+            .setEffectPreference(status)
+            .setEffectIdHash(getIdHashCode(effect))
+            .log()
+    }
+
+    override fun logEffectForegroundDownload(
+        effect: String,
+        @EffectStatus status: Int,
+        timeElapsedMillis: Long
+    ) {
+        SysUiStatsLogger(WALLPAPER_EFFECT_FG_DOWNLOAD)
+            .setAppSessionId(appSessionId.getId())
+            .setEffectPreference(status)
+            .setEffectIdHash(getIdHashCode(effect))
+            .setTimeElapsed(timeElapsedMillis)
+            .log()
+    }
+
+    override fun logResetApplied() {
+        SysUiStatsLogger(RESET_APPLIED).setAppSessionId(appSessionId.getId()).log()
+    }
+
+    override fun logWallpaperExploreButtonClicked() {
+        SysUiStatsLogger(WALLPAPER_EXPLORE).setAppSessionId(appSessionId.getId()).log()
+    }
+
+    override fun logThemeColorApplied(
+        @ColorSource source: Int,
+        style: Int,
+        seedColor: Int,
+    ) {
+        SysUiStatsLogger(THEME_COLOR_APPLIED)
+            .setAppSessionId(appSessionId.getId())
+            .setColorSource(source)
+            .setColorVariant(style)
+            .setSeedColor(seedColor)
+            .log()
+    }
+
+    override fun logGridApplied(grid: GridOption) {
+        SysUiStatsLogger(GRID_APPLIED)
+            .setAppSessionId(appSessionId.getId())
+            .setLauncherGrid(grid.getLauncherGridInt())
+            .log()
+    }
+
+    override fun logClockApplied(clockId: String) {
+        SysUiStatsLogger(CLOCK_APPLIED)
+            .setAppSessionId(appSessionId.getId())
+            .setClockPackageHash(getIdHashCode(clockId))
+            .log()
+    }
+
+    override fun logClockColorApplied(seedColor: Int) {
+        SysUiStatsLogger(CLOCK_COLOR_APPLIED)
+            .setAppSessionId(appSessionId.getId())
+            .setSeedColor(seedColor)
+            .log()
+    }
+
+    override fun logClockSizeApplied(@ClockSize clockSize: Int) {
+        SysUiStatsLogger(CLOCK_SIZE_APPLIED)
+            .setAppSessionId(appSessionId.getId())
+            .setClockSize(clockSize)
+            .log()
+    }
+
+    override fun logThemedIconApplied(useThemeIcon: Boolean) {
+        SysUiStatsLogger(THEMED_ICON_APPLIED)
+            .setAppSessionId(appSessionId.getId())
+            .setToggleOn(useThemeIcon)
+            .log()
+    }
+
+    override fun logLockScreenNotificationApplied(showLockScreenNotifications: Boolean) {
+        SysUiStatsLogger(LOCK_SCREEN_NOTIFICATION_APPLIED)
+            .setAppSessionId(appSessionId.getId())
+            .setToggleOn(showLockScreenNotifications)
+            .log()
+    }
+
+    override fun logShortcutApplied(shortcut: String, shortcutSlotId: String) {
+        SysUiStatsLogger(SHORTCUT_APPLIED)
+            .setAppSessionId(appSessionId.getId())
+            .setShortcut(shortcut)
+            .setShortcutSlotId(shortcutSlotId)
+            .log()
+    }
+
+    override fun logDarkThemeApplied(useDarkTheme: Boolean) {
+        SysUiStatsLogger(DARK_THEME_APPLIED)
+            .setAppSessionId(appSessionId.getId())
+            .setToggleOn(useDarkTheme)
+            .log()
+    }
+
+    /**
+     * The grid integer depends on the column and row numbers. For example: 4x5 is 405 13x37 is 1337
+     * The upper limit for the column / row count is 99.
+     */
+    private fun GridOption.getLauncherGridInt(): Int {
+        return cols * 100 + rows
+    }
+
+    private fun Intent.getAppLaunchSource(): Int {
+        return if (hasExtra(LaunchSourceUtils.WALLPAPER_LAUNCH_SOURCE)) {
+            when (getStringExtra(LaunchSourceUtils.WALLPAPER_LAUNCH_SOURCE)) {
+                LaunchSourceUtils.LAUNCH_SOURCE_LAUNCHER -> LAUNCHED_LAUNCHER
+                LaunchSourceUtils.LAUNCH_SOURCE_SETTINGS -> LAUNCHED_SETTINGS
+                LaunchSourceUtils.LAUNCH_SOURCE_SUW -> LAUNCHED_SUW
+                LaunchSourceUtils.LAUNCH_SOURCE_TIPS -> LAUNCHED_TIPS
+                LaunchSourceUtils.LAUNCH_SOURCE_DEEP_LINK -> LAUNCHED_DEEP_LINK
+                LaunchSourceUtils.LAUNCH_SOURCE_KEYGUARD -> LAUNCHED_KEYGUARD
+                else -> LAUNCHED_PREFERENCE_UNSPECIFIED
+            }
+        } else if (ActivityUtils.isLaunchedFromSettingsSearch(this)) {
+            LAUNCHED_SETTINGS_SEARCH
+        } else if (action != null && action == WallpaperManager.ACTION_CROP_AND_SET_WALLPAPER) {
+            LAUNCHED_CROP_AND_SET_ACTION
+        } else if (categories != null && categories.contains(Intent.CATEGORY_LAUNCHER)) {
+            LAUNCHED_LAUNCH_ICON
+        } else {
+            LAUNCHED_PREFERENCE_UNSPECIFIED
+        }
+    }
+
+    /** If not set, the output hash is 0. */
+    private fun WallpaperPreferences.getHomeCategoryHash(): Int {
+        return getIdHashCode(getHomeWallpaperCollectionId())
+    }
+
+    /** If not set, the output hash is 0. */
+    private fun WallpaperPreferences.getHomeWallpaperIdHash(): Int {
+        val remoteId = getHomeWallpaperRemoteId()
+        val wallpaperId =
+            if (!TextUtils.isEmpty(remoteId)) remoteId else getHomeWallpaperServiceName()
+        return getIdHashCode(wallpaperId)
+    }
+
+    /** If not set, the output hash is 0. */
+    private fun WallpaperPreferences.getLockCategoryHash(): Int {
+        return getIdHashCode(getLockWallpaperCollectionId())
+    }
+
+    /** If not set, the output hash is 0. */
+    private fun WallpaperPreferences.getLockWallpaperIdHash(): Int {
+        val remoteId = getLockWallpaperRemoteId()
+        val wallpaperId =
+            if (!TextUtils.isEmpty(remoteId)) remoteId else getLockWallpaperServiceName()
+        return getIdHashCode(wallpaperId)
+    }
+
+    /** If not set, the output hash is 0. */
+    private fun WallpaperPreferences.getHomeWallpaperEffectsIdHash(): Int {
+        return getIdHashCode(getHomeWallpaperEffects())
+    }
+
+    private fun getIdHashCode(id: String?): Int {
+        return id?.hashCode() ?: 0
+    }
+}
diff --git a/src/com/android/customization/picker/WallpaperPreviewer.java b/src/com/android/customization/picker/WallpaperPreviewer.java
index d74bfae..18bc89c 100644
--- a/src/com/android/customization/picker/WallpaperPreviewer.java
+++ b/src/com/android/customization/picker/WallpaperPreviewer.java
@@ -241,7 +241,7 @@
                                                 () -> mFadeInScrim.setVisibility(View.INVISIBLE));
                             }
                         }
-                    }, mWallpaperSurface, WallpaperConnection.WHICH_PREVIEW.PREVIEW_CURRENT);
+                    }, mWallpaperSurface, WallpaperConnection.WhichPreview.PREVIEW_CURRENT);
 
             mWallpaperConnection.setVisibility(true);
             mHomePreview.post(() -> {
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 004103f..cc4079a 100644
--- a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt
+++ b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt
@@ -21,7 +21,7 @@
 import androidx.annotation.IntRange
 import com.android.customization.picker.clock.shared.ClockSize
 import com.android.customization.picker.clock.shared.model.ClockMetadataModel
-import com.android.systemui.plugins.ClockMetadata
+import com.android.systemui.plugins.clocks.ClockMetadata
 import com.android.systemui.shared.clocks.ClockRegistry
 import com.android.wallpaper.settings.data.repository.SecureSettingsRepository
 import kotlinx.coroutines.CoroutineDispatcher
@@ -187,7 +187,6 @@
     ): ClockMetadataModel {
         return ClockMetadataModel(
             clockId = clockId,
-            name = name,
             isSelected = isSelected,
             selectedColorId = selectedColorId,
             colorToneProgress = colorTone,
diff --git a/src/com/android/customization/picker/clock/shared/ClockSize.kt b/src/com/android/customization/picker/clock/shared/ClockSize.kt
index 279ee54..9b35f73 100644
--- a/src/com/android/customization/picker/clock/shared/ClockSize.kt
+++ b/src/com/android/customization/picker/clock/shared/ClockSize.kt
@@ -16,7 +16,18 @@
  */
 package com.android.customization.picker.clock.shared
 
+import android.stats.style.StyleEnums
+import com.android.customization.module.logging.ThemesUserEventLogger
+
 enum class ClockSize {
     DYNAMIC,
     SMALL,
 }
+
+@ThemesUserEventLogger.ClockSize
+fun ClockSize.toClockSizeForLogging(): Int {
+    return when (this) {
+        ClockSize.DYNAMIC -> StyleEnums.CLOCK_SIZE_DYNAMIC
+        ClockSize.SMALL -> StyleEnums.CLOCK_SIZE_SMALL
+    }
+}
diff --git a/src/com/android/customization/picker/clock/shared/model/ClockMetadataModel.kt b/src/com/android/customization/picker/clock/shared/model/ClockMetadataModel.kt
index 2522507..6e2bfb3 100644
--- a/src/com/android/customization/picker/clock/shared/model/ClockMetadataModel.kt
+++ b/src/com/android/customization/picker/clock/shared/model/ClockMetadataModel.kt
@@ -23,7 +23,6 @@
 /** Model for clock metadata. */
 data class ClockMetadataModel(
     val clockId: String,
-    val name: String,
     val isSelected: Boolean,
     val selectedColorId: String?,
     @IntRange(from = 0, to = 100) val colorToneProgress: Int,
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 6bd717b..e2616c7 100644
--- a/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
+++ b/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
@@ -58,11 +58,6 @@
                     carouselView.transitionToPrevious()
                 }
             )
-        screenPreviewClickView.accessibilityDelegate = carouselAccessibilityDelegate
-        screenPreviewClickView.setOnSideClickedListener { isStart ->
-            if (isStart) carouselView.scrollToPrevious() else carouselView.scrollToNext()
-        }
-
         lifecycleOwner.lifecycleScope.launch {
             lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
                 launch {
@@ -76,6 +71,11 @@
                             },
                             isTwoPaneAndSmallWidth = isTwoPaneAndSmallWidth,
                         )
+                        screenPreviewClickView.accessibilityDelegate = carouselAccessibilityDelegate
+                        screenPreviewClickView.setOnSideClickedListener { isStart ->
+                            if (isStart) carouselView.scrollToPrevious()
+                            else carouselView.scrollToNext()
+                        }
                     }
                 }
 
diff --git a/src/com/android/customization/picker/clock/ui/binder/ClockSectionViewBinder.kt b/src/com/android/customization/picker/clock/ui/binder/ClockSectionViewBinder.kt
deleted file mode 100644
index 7dc0d0c..0000000
--- a/src/com/android/customization/picker/clock/ui/binder/ClockSectionViewBinder.kt
+++ /dev/null
@@ -1,53 +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.ui.binder
-
-import android.view.View
-import android.widget.TextView
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.LifecycleOwner
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import com.android.customization.picker.clock.ui.viewmodel.ClockSectionViewModel
-import com.android.wallpaper.R
-import kotlinx.coroutines.flow.collectLatest
-import kotlinx.coroutines.launch
-
-object ClockSectionViewBinder {
-    fun bind(
-        view: View,
-        viewModel: ClockSectionViewModel,
-        lifecycleOwner: LifecycleOwner,
-        onClicked: () -> Unit,
-    ) {
-        view.setOnClickListener { onClicked() }
-
-        val selectedClockColorAndSize: TextView =
-            view.requireViewById(R.id.selected_clock_color_and_size)
-
-        lifecycleOwner.lifecycleScope.launch {
-            lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
-                launch {
-                    viewModel.selectedClockColorAndSizeText.collectLatest {
-                        selectedClockColorAndSize.text = it
-                    }
-                }
-            }
-        }
-    }
-}
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 6e745d5..d17cdf8 100644
--- a/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt
+++ b/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt
@@ -15,11 +15,18 @@
  */
 package com.android.customization.picker.clock.ui.binder
 
+import android.content.Context
 import android.content.res.Configuration
+import android.text.Spannable
+import android.text.SpannableString
+import android.text.style.TextAppearanceSpan
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import android.widget.LinearLayout
+import android.widget.RadioButton
+import android.widget.RadioGroup
+import android.widget.RadioGroup.OnCheckedChangeListener
 import android.widget.SeekBar
 import androidx.core.view.doOnPreDraw
 import androidx.core.view.isInvisible
@@ -35,7 +42,6 @@
 import com.android.customization.picker.clock.ui.adapter.ClockSettingsTabAdapter
 import com.android.customization.picker.clock.ui.view.ClockCarouselView
 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.binder.ColorOptionIconBinder
@@ -83,14 +89,27 @@
             }
         )
 
-        val sizeOptions =
-            view.requireViewById<ClockSizeRadioButtonGroup>(R.id.clock_size_radio_button_group)
-        sizeOptions.onRadioButtonClickListener =
-            object : ClockSizeRadioButtonGroup.OnRadioButtonClickListener {
-                override fun onClick(size: ClockSize) {
-                    viewModel.setClockSize(size)
-                }
+        val onCheckedChangeListener = OnCheckedChangeListener { _, id ->
+            when (id) {
+                R.id.radio_dynamic -> viewModel.setClockSize(ClockSize.DYNAMIC)
+                R.id.radio_small -> viewModel.setClockSize(ClockSize.SMALL)
             }
+        }
+        val clockSizeRadioGroup =
+            view.requireViewById<RadioGroup>(R.id.clock_size_radio_button_group)
+        clockSizeRadioGroup.setOnCheckedChangeListener(onCheckedChangeListener)
+        view.requireViewById<RadioButton>(R.id.radio_dynamic).text =
+            getRadioText(
+                view.context.applicationContext,
+                view.resources.getString(R.string.clock_size_dynamic),
+                view.resources.getString(R.string.clock_size_dynamic_description)
+            )
+        view.requireViewById<RadioButton>(R.id.radio_small).text =
+            getRadioText(
+                view.context.applicationContext,
+                view.resources.getString(R.string.clock_size_small),
+                view.resources.getString(R.string.clock_size_small_description)
+            )
 
         val colorOptionContainer = view.requireViewById<View>(R.id.color_picker_container)
         lifecycleOwner.lifecycleScope.launch {
@@ -110,11 +129,11 @@
                         when (tab) {
                             ClockSettingsViewModel.Tab.COLOR -> {
                                 colorOptionContainer.isVisible = true
-                                sizeOptions.isInvisible = true
+                                clockSizeRadioGroup.isInvisible = true
                             }
                             ClockSettingsViewModel.Tab.SIZE -> {
                                 colorOptionContainer.isInvisible = true
-                                sizeOptions.isVisible = true
+                                clockSizeRadioGroup.isVisible = true
                             }
                         }
                     }
@@ -122,6 +141,7 @@
 
                 launch {
                     viewModel.colorOptions.collect { colorOptions ->
+                        colorOptionContainerListView.removeAllViews()
                         colorOptions.forEachIndexed { index, colorOption ->
                             colorOption.payload?.let { payload ->
                                 val item =
@@ -189,16 +209,28 @@
                             clockHostView.addView(clockView)
                             when (size) {
                                 ClockSize.DYNAMIC -> {
-                                    sizeOptions.radioButtonDynamic.isChecked = true
-                                    sizeOptions.radioButtonSmall.isChecked = false
+                                    // When clock size data flow emits clock size signal, we want
+                                    // to update the view without triggering on checked change,
+                                    // which is supposed to be triggered by user interaction only.
+                                    clockSizeRadioGroup.setOnCheckedChangeListener(null)
+                                    clockSizeRadioGroup.check(R.id.radio_dynamic)
+                                    clockSizeRadioGroup.setOnCheckedChangeListener(
+                                        onCheckedChangeListener
+                                    )
                                     clockHostView.doOnPreDraw {
                                         it.pivotX = it.width / 2F
                                         it.pivotY = it.height / 2F
                                     }
                                 }
                                 ClockSize.SMALL -> {
-                                    sizeOptions.radioButtonDynamic.isChecked = false
-                                    sizeOptions.radioButtonSmall.isChecked = true
+                                    // When clock size data flow emits clock size signal, we want
+                                    // to update the view without triggering on checked change,
+                                    // which is supposed to be triggered by user interaction only.
+                                    clockSizeRadioGroup.setOnCheckedChangeListener(null)
+                                    clockSizeRadioGroup.check(R.id.radio_small)
+                                    clockSizeRadioGroup.setOnCheckedChangeListener(
+                                        onCheckedChangeListener
+                                    )
                                     clockHostView.doOnPreDraw {
                                         it.pivotX = ClockCarouselView.getCenteredHostViewPivotX(it)
                                         it.pivotY = 0F
@@ -238,4 +270,25 @@
             }
         )
     }
+
+    private fun getRadioText(
+        context: Context,
+        title: String,
+        description: String
+    ): SpannableString {
+        val text = SpannableString(title + "\n" + description)
+        text.setSpan(
+            TextAppearanceSpan(context, R.style.SectionTitleTextStyle),
+            0,
+            title.length,
+            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
+        )
+        text.setSpan(
+            TextAppearanceSpan(context, R.style.SectionSubtitleTextStyle),
+            title.length + 1,
+            title.length + 1 + description.length,
+            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
+        )
+        return text
+    }
 }
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 4805f37..dc70633 100644
--- a/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
+++ b/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
@@ -68,7 +68,7 @@
         val injector = InjectorProvider.getInjector() as ThemePickerInjector
 
         val lockScreenView: CardView = view.requireViewById(R.id.lock_preview)
-        val colorViewModel = injector.getWallpaperColorsViewModel()
+        val wallpaperColorsRepository = injector.getWallpaperColorsRepository()
         val displayUtils = injector.getDisplayUtils(context)
         ScreenPreviewBinder.bind(
             activity = activity,
@@ -88,18 +88,18 @@
                             injector
                                 .getCurrentWallpaperInfoFactory(context)
                                 .createCurrentWallpaperInfos(
-                                    { homeWallpaper, lockWallpaper, _ ->
-                                        continuation.resume(
-                                            lockWallpaper ?: homeWallpaper,
-                                            null,
-                                        )
-                                    },
+                                    context,
                                     forceReload,
-                                )
+                                ) { homeWallpaper, lockWallpaper, _ ->
+                                    continuation.resume(
+                                        lockWallpaper ?: homeWallpaper,
+                                        null,
+                                    )
+                                }
                         }
                     },
                     onWallpaperColorChanged = { colors ->
-                        colorViewModel.setLockWallpaperColors(colors)
+                        wallpaperColorsRepository.setLockWallpaperColors(colors)
                     },
                     initialExtrasProvider = {
                         Bundle().apply {
@@ -125,7 +125,7 @@
                     this,
                     injector.getClockSettingsViewModelFactory(
                         context,
-                        injector.getWallpaperColorsViewModel(),
+                        injector.getWallpaperColorsRepository(),
                         injector.getClockViewFactory(activity),
                     ),
                 )
diff --git a/src/com/android/customization/picker/clock/ui/section/ClockSectionController.kt b/src/com/android/customization/picker/clock/ui/section/ClockSectionController.kt
deleted file mode 100644
index b47c243..0000000
--- a/src/com/android/customization/picker/clock/ui/section/ClockSectionController.kt
+++ /dev/null
@@ -1,62 +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.picker.clock.ui.section
-
-import android.content.Context
-import android.view.LayoutInflater
-import androidx.lifecycle.LifecycleOwner
-import androidx.lifecycle.lifecycleScope
-import com.android.customization.picker.clock.ui.binder.ClockSectionViewBinder
-import com.android.customization.picker.clock.ui.fragment.ClockSettingsFragment
-import com.android.customization.picker.clock.ui.view.ClockSectionView
-import com.android.customization.picker.clock.ui.viewmodel.ClockSectionViewModel
-import com.android.wallpaper.R
-import com.android.wallpaper.config.BaseFlags
-import com.android.wallpaper.model.CustomizationSectionController
-import com.android.wallpaper.model.CustomizationSectionController.CustomizationSectionNavigationController
-import kotlinx.coroutines.launch
-
-/** A [CustomizationSectionController] for clock customization. */
-class ClockSectionController(
-    private val navigationController: CustomizationSectionNavigationController,
-    private val lifecycleOwner: LifecycleOwner,
-    private val flag: BaseFlags,
-    private val viewModel: ClockSectionViewModel,
-) : CustomizationSectionController<ClockSectionView> {
-
-    override fun isAvailable(context: Context): Boolean {
-        return flag.isCustomClocksEnabled(context!!)
-    }
-
-    override fun createView(context: Context): ClockSectionView {
-        val view =
-            LayoutInflater.from(context)
-                .inflate(
-                    R.layout.clock_section_view,
-                    null,
-                ) as ClockSectionView
-        lifecycleOwner.lifecycleScope.launch {
-            ClockSectionViewBinder.bind(
-                view = view,
-                viewModel = viewModel,
-                lifecycleOwner = lifecycleOwner
-            ) {
-                navigationController.navigateTo(ClockSettingsFragment())
-            }
-        }
-        return view
-    }
-}
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 d4f501b..cae4e06 100644
--- a/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt
+++ b/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt
@@ -31,7 +31,7 @@
 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.systemui.plugins.clocks.ClockController
 import com.android.wallpaper.R
 import com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
 import java.lang.Float.max
@@ -384,7 +384,7 @@
     ) : Carousel.Adapter {
 
         fun getContentDescription(index: Int, resources: Resources): String {
-            return clocks[index].getContentDescription(resources)
+            return clocks[index].contentDescription
         }
 
         override fun count(): Int {
diff --git a/src/com/android/customization/picker/clock/ui/view/ClockSizeRadioButtonGroup.kt b/src/com/android/customization/picker/clock/ui/view/ClockSizeRadioButtonGroup.kt
deleted file mode 100644
index 909491a..0000000
--- a/src/com/android/customization/picker/clock/ui/view/ClockSizeRadioButtonGroup.kt
+++ /dev/null
@@ -1,50 +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.ui.view
-
-import android.content.Context
-import android.util.AttributeSet
-import android.view.LayoutInflater
-import android.view.View
-import android.widget.FrameLayout
-import android.widget.RadioButton
-import com.android.customization.picker.clock.shared.ClockSize
-import com.android.wallpaper.R
-
-/** The radio button group to pick the clock size. */
-class ClockSizeRadioButtonGroup(
-    context: Context,
-    attrs: AttributeSet?,
-) : FrameLayout(context, attrs) {
-
-    interface OnRadioButtonClickListener {
-        fun onClick(size: ClockSize)
-    }
-
-    val radioButtonDynamic: RadioButton
-    val radioButtonSmall: RadioButton
-    var onRadioButtonClickListener: OnRadioButtonClickListener? = null
-
-    init {
-        LayoutInflater.from(context).inflate(R.layout.clock_size_radio_button_group, this, true)
-        radioButtonDynamic = requireViewById(R.id.radio_button_dynamic)
-        val buttonDynamic = requireViewById<View>(R.id.button_container_dynamic)
-        buttonDynamic.setOnClickListener { onRadioButtonClickListener?.onClick(ClockSize.DYNAMIC) }
-        radioButtonSmall = requireViewById(R.id.radio_button_large)
-        val buttonLarge = requireViewById<View>(R.id.button_container_small)
-        buttonLarge.setOnClickListener { onRadioButtonClickListener?.onClick(ClockSize.SMALL) }
-    }
-}
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 3f6f423..2ab162d 100644
--- a/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt
+++ b/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt
@@ -15,226 +15,38 @@
  */
 package com.android.customization.picker.clock.ui.view
 
-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.TimeUtils.TimeTicker
-import java.util.concurrent.ConcurrentHashMap
+import com.android.systemui.plugins.clocks.ClockController
 
-/**
- * Provide reusable clock view and related util functions.
- *
- * @property screenSize The Activity or Fragment's window size.
- */
-class ClockViewFactory(
-    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 val smallClockFrames: HashMap<String, FrameLayout> = HashMap()
+interface ClockViewFactory {
 
-    fun getController(clockId: String): ClockController {
-        return clockControllers[clockId]
-            ?: initClockController(clockId).also { clockControllers[clockId] = it }
-    }
+    fun getController(clockId: String): ClockController
 
     /**
      * 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
-        }
-    }
+    fun getLargeView(clockId: String): 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
-    }
+    fun getSmallView(clockId: String): View
 
-    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
-    }
+    fun updateColorForAllClocks(@ColorInt seedColor: Int?)
 
-    private fun getSmallClockTopMargin() =
-        getStatusBarHeight(appContext.resources) +
-            appContext.resources.getDimensionPixelSize(R.dimen.small_clock_padding_top)
+    fun updateColor(clockId: String, @ColorInt seedColor: Int?)
 
-    private fun getSmallClockStartPadding() =
-        appContext.resources.getDimensionPixelSize(R.dimen.clock_padding_start)
+    fun updateRegionDarkness()
 
-    fun updateColorForAllClocks(@ColorInt seedColor: Int?) {
-        clockControllers.values.forEach { it.events.onSeedColorChanged(seedColor = seedColor) }
-    }
+    fun updateTimeFormat(clockId: String)
 
-    fun updateColor(clockId: String, @ColorInt seedColor: Int?) {
-        clockControllers[clockId]?.events?.onSeedColorChanged(seedColor)
-    }
+    fun registerTimeTicker(owner: LifecycleOwner)
 
-    fun updateRegionDarkness() {
-        val isRegionDark = isLockscreenWallpaperDark()
-        clockControllers.values.forEach {
-            it.largeClock.events.onRegionDarknessChanged(isRegionDark)
-            it.smallClock.events.onRegionDarknessChanged(isRegionDark)
-        }
-    }
+    fun onDestroy()
 
-    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
-            .onTimeFormatChanged(android.text.format.DateFormat.is24HourFormat(appContext))
-    }
-
-    fun registerTimeTicker(owner: LifecycleOwner) {
-        val hashCode = owner.hashCode()
-        if (timeTickListeners.keys.contains(hashCode)) {
-            return
-        }
-
-        timeTickListeners[hashCode] = TimeTicker.registerNewReceiver(appContext) { onTimeTick() }
-    }
-
-    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(resources, 0f, 0f) }
-        checkNotNull(controller)
-
-        val isWallpaperDark = isLockscreenWallpaperDark()
-        // Initialize large clock
-        controller.largeClock.events.onRegionDarknessChanged(isWallpaperDark)
-        controller.largeClock.events.onFontSettingChanged(
-            resources.getDimensionPixelSize(R.dimen.large_clock_text_size).toFloat()
-        )
-        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
-        }
-    }
+    fun unregisterTimeTicker(owner: LifecycleOwner)
 }
diff --git a/src/com/android/customization/picker/clock/ui/view/ClockViewFactoryImpl.kt b/src/com/android/customization/picker/clock/ui/view/ClockViewFactoryImpl.kt
new file mode 100644
index 0000000..5caea58
--- /dev/null
+++ b/src/com/android/customization/picker/clock/ui/view/ClockViewFactoryImpl.kt
@@ -0,0 +1,240 @@
+/*
+ * 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.view
+
+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.clocks.ClockController
+import com.android.systemui.plugins.clocks.WeatherData
+import com.android.systemui.shared.clocks.ClockRegistry
+import com.android.wallpaper.R
+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 ClockViewFactoryImpl(
+    private val appContext: Context,
+    val screenSize: Point,
+    private val wallpaperManager: WallpaperManager,
+    private val registry: ClockRegistry,
+) : ClockViewFactory {
+    private val resources = appContext.resources
+    private val timeTickListeners: ConcurrentHashMap<Int, TimeTicker> = ConcurrentHashMap()
+    private val clockControllers: HashMap<String, ClockController> = HashMap()
+    private val smallClockFrames: HashMap<String, FrameLayout> = HashMap()
+
+    override 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.
+     */
+    override 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.
+     */
+    override 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)
+
+    override fun updateColorForAllClocks(@ColorInt seedColor: Int?) {
+        clockControllers.values.forEach { it.events.onSeedColorChanged(seedColor = seedColor) }
+    }
+
+    override fun updateColor(clockId: String, @ColorInt seedColor: Int?) {
+        clockControllers[clockId]?.events?.onSeedColorChanged(seedColor)
+    }
+
+    override 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
+    }
+
+    override fun updateTimeFormat(clockId: String) {
+        getController(clockId)
+            .events
+            .onTimeFormatChanged(android.text.format.DateFormat.is24HourFormat(appContext))
+    }
+
+    override fun registerTimeTicker(owner: LifecycleOwner) {
+        val hashCode = owner.hashCode()
+        if (timeTickListeners.keys.contains(hashCode)) {
+            return
+        }
+
+        timeTickListeners[hashCode] = TimeTicker.registerNewReceiver(appContext) { onTimeTick() }
+    }
+
+    override 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()
+        }
+    }
+
+    override 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(resources, 0f, 0f) }
+        checkNotNull(controller)
+
+        val isWallpaperDark = isLockscreenWallpaperDark()
+        // Initialize large clock
+        controller.largeClock.events.onRegionDarknessChanged(isWallpaperDark)
+        controller.largeClock.events.onFontSettingChanged(
+            resources.getDimensionPixelSize(R.dimen.large_clock_text_size).toFloat()
+        )
+        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
index 9811426..e5ac953 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselItemViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselItemViewModel.kt
@@ -15,20 +15,8 @@
  */
 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, val isSelected: Boolean) {
-
-    /** Description for accessibility purposes when a clock is selected. */
-    fun getContentDescription(resources: Resources): String {
-        val clockContent =
-            (InjectorProvider.getInjector() as? CustomizationInjector)
-                ?.getClockDescriptionUtils(resources)
-                ?.getDescription(clockId)
-                ?: ""
-        return resources.getString(R.string.select_clock_action_description, clockContent)
-    }
-}
+class ClockCarouselItemViewModel(
+    val clockId: String,
+    val isSelected: Boolean,
+    val contentDescription: String,
+)
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 27c25a2..3f6394b 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModel.kt
@@ -15,12 +15,15 @@
  */
 package com.android.customization.picker.clock.ui.viewmodel
 
+import android.content.res.Resources
 import android.graphics.Color
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
+import com.android.customization.module.logging.ThemesUserEventLogger
 import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
 import com.android.customization.picker.clock.shared.ClockSize
+import com.android.customization.picker.clock.ui.view.ClockViewFactory
 import com.android.wallpaper.R
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -43,6 +46,9 @@
 class ClockCarouselViewModel(
     private val interactor: ClockPickerInteractor,
     private val backgroundDispatcher: CoroutineDispatcher,
+    private val clockViewFactory: ClockViewFactory,
+    private val resources: Resources,
+    private val logger: ThemesUserEventLogger,
 ) : ViewModel() {
     @OptIn(ExperimentalCoroutinesApi::class)
     val allClocks: StateFlow<List<ClockCarouselItemViewModel>> =
@@ -50,7 +56,14 @@
             .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, it.isSelected) }
+                allClocks.map {
+                    val contentDescription =
+                        resources.getString(
+                            R.string.select_clock_action_description,
+                            clockViewFactory.getController(it.clockId).config.description
+                        )
+                    ClockCarouselItemViewModel(it.clockId, it.isSelected, contentDescription)
+                }
             }
             .stateIn(viewModelScope, SharingStarted.Eagerly, emptyList())
 
@@ -111,18 +124,27 @@
     fun setSelectedClock(clockId: String) {
         setSelectedClockJob?.cancel()
         setSelectedClockJob =
-            viewModelScope.launch(backgroundDispatcher) { interactor.setSelectedClock(clockId) }
+            viewModelScope.launch(backgroundDispatcher) {
+                interactor.setSelectedClock(clockId)
+                logger.logClockApplied(clockId)
+            }
     }
 
     class Factory(
         private val interactor: ClockPickerInteractor,
         private val backgroundDispatcher: CoroutineDispatcher,
+        private val clockViewFactory: ClockViewFactory,
+        private val resources: Resources,
+        private val logger: ThemesUserEventLogger,
     ) : ViewModelProvider.Factory {
         override fun <T : ViewModel> create(modelClass: Class<T>): T {
             @Suppress("UNCHECKED_CAST")
             return ClockCarouselViewModel(
                 interactor = interactor,
                 backgroundDispatcher = backgroundDispatcher,
+                clockViewFactory = clockViewFactory,
+                resources = resources,
+                logger = logger,
             )
                 as T
         }
diff --git a/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt b/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt
deleted file mode 100644
index 8a65522..0000000
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt
+++ /dev/null
@@ -1,51 +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.ui.viewmodel
-
-import android.content.Context
-import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
-import com.android.customization.picker.clock.shared.ClockSize
-import com.android.wallpaper.R
-import java.util.Locale
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.combine
-import kotlinx.coroutines.flow.map
-
-/** View model for the clock section view on the lockscreen customization surface. */
-class ClockSectionViewModel(context: Context, interactor: ClockPickerInteractor) {
-    val appContext: Context = context.applicationContext
-    val clockColorMap: Map<String, ClockColorViewModel> =
-        ClockColorViewModel.getPresetColorMap(appContext.resources)
-    val selectedClockColorAndSizeText: Flow<String> =
-        combine(interactor.selectedColorId, interactor.selectedClockSize, ::Pair).map {
-            (selectedColorId, selectedClockSize) ->
-            val colorText =
-                clockColorMap[selectedColorId]?.colorName
-                    ?: appContext.getString(R.string.default_theme_title)
-            val sizeText =
-                when (selectedClockSize) {
-                    ClockSize.SMALL -> appContext.getString(R.string.clock_size_small)
-                    ClockSize.DYNAMIC -> appContext.getString(R.string.clock_size_dynamic)
-                }
-            appContext
-                .getString(R.string.clock_color_and_size_description, colorText, sizeText)
-                .lowercase()
-                .replaceFirstChar {
-                    if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString()
-                }
-        }
-}
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 a498c71..d0e4f8f 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModel.kt
@@ -21,9 +21,12 @@
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
 import com.android.customization.model.color.ColorOptionImpl
+import com.android.customization.module.logging.ThemesUserEventLogger
+import com.android.customization.module.logging.ThemesUserEventLogger.Companion.NULL_SEED_COLOR
 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.clock.shared.toClockSizeForLogging
 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
@@ -53,6 +56,7 @@
     private val clockPickerInteractor: ClockPickerInteractor,
     private val colorPickerInteractor: ColorPickerInteractor,
     private val getIsReactiveToTone: (clockId: String?) -> Boolean,
+    private val logger: ThemesUserEventLogger,
 ) : ViewModel() {
 
     enum class Tab {
@@ -106,15 +110,17 @@
     suspend fun onSliderProgressStop(progress: Int) {
         val selectedColorId = selectedColorId.value ?: return
         val clockColorViewModel = colorMap[selectedColorId] ?: return
+        val seedColor =
+            blendColorWithTone(
+                color = clockColorViewModel.color,
+                colorTone = clockColorViewModel.getColorTone(progress),
+            )
         clockPickerInteractor.setClockColor(
             selectedColorId = selectedColorId,
             colorToneProgress = progress,
-            seedColor =
-                blendColorWithTone(
-                    color = clockColorViewModel.color,
-                    colorTone = clockColorViewModel.getColorTone(progress),
-                )
+            seedColor = seedColor,
         )
+        logger.logClockColorApplied(seedColor)
     }
 
     @OptIn(ExperimentalCoroutinesApi::class)
@@ -169,18 +175,20 @@
                                     } else {
                                         {
                                             viewModelScope.launch {
+                                                val seedColor =
+                                                    blendColorWithTone(
+                                                        color = colorModel.color,
+                                                        colorTone =
+                                                            colorModel.getColorTone(
+                                                                colorToneProgress,
+                                                            ),
+                                                    )
                                                 clockPickerInteractor.setClockColor(
                                                     selectedColorId = colorModel.colorId,
                                                     colorToneProgress = colorToneProgress,
-                                                    seedColor =
-                                                        blendColorWithTone(
-                                                            color = colorModel.color,
-                                                            colorTone =
-                                                                colorModel.getColorTone(
-                                                                    colorToneProgress,
-                                                                ),
-                                                        ),
+                                                    seedColor = seedColor,
                                                 )
+                                                logger.logClockColorApplied(seedColor)
                                             }
                                         }
                                     }
@@ -244,6 +252,7 @@
                                         ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
                                     seedColor = null,
                                 )
+                                logger.logClockColorApplied(NULL_SEED_COLOR)
                             }
                         }
                     }
@@ -254,7 +263,10 @@
     val selectedClockSize: Flow<ClockSize> = clockPickerInteractor.selectedClockSize
 
     fun setClockSize(size: ClockSize) {
-        viewModelScope.launch { clockPickerInteractor.setClockSize(size) }
+        viewModelScope.launch {
+            clockPickerInteractor.setClockSize(size)
+            logger.logClockSizeApplied(size.toClockSizeForLogging())
+        }
     }
 
     private val _selectedTabPosition = MutableStateFlow(Tab.COLOR)
@@ -304,6 +316,7 @@
         private val context: Context,
         private val clockPickerInteractor: ClockPickerInteractor,
         private val colorPickerInteractor: ColorPickerInteractor,
+        private val logger: ThemesUserEventLogger,
         private val getIsReactiveToTone: (clockId: String?) -> Boolean,
     ) : ViewModelProvider.Factory {
         override fun <T : ViewModel> create(modelClass: Class<T>): T {
@@ -312,6 +325,7 @@
                 context = context,
                 clockPickerInteractor = clockPickerInteractor,
                 colorPickerInteractor = colorPickerInteractor,
+                logger = logger,
                 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
deleted file mode 100644
index 28ea4a3..0000000
--- a/src/com/android/customization/picker/clock/utils/ClockDescriptionUtils.kt
+++ /dev/null
@@ -1,26 +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.utils
-
-/** Provides clock description for accessibility purposes. */
-interface ClockDescriptionUtils {
-
-    /**
-     * TODO (b/287507746) : Migrate the clock description to system UI or a shared library, instead
-     * of preserving at the Wallpaper Picker side.
-     */
-    fun getDescription(clockId: String): String
-}
diff --git a/src/com/android/customization/picker/clock/utils/ThemePickerClockDescriptionUtils.kt b/src/com/android/customization/picker/clock/utils/ThemePickerClockDescriptionUtils.kt
deleted file mode 100644
index a04ebff..0000000
--- a/src/com/android/customization/picker/clock/utils/ThemePickerClockDescriptionUtils.kt
+++ /dev/null
@@ -1,22 +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.utils
-
-class ThemePickerClockDescriptionUtils : ClockDescriptionUtils {
-    override fun getDescription(clockId: String): String {
-        return ""
-    }
-}
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 6540ce0..942a846 100644
--- a/src/com/android/customization/picker/color/data/repository/ColorPickerRepositoryImpl.kt
+++ b/src/com/android/customization/picker/color/data/repository/ColorPickerRepositoryImpl.kt
@@ -24,8 +24,8 @@
 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 com.android.wallpaper.picker.customization.data.repository.WallpaperColorsRepository
+import com.android.wallpaper.picker.customization.shared.model.WallpaperColorsModel
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.StateFlow
@@ -37,14 +37,14 @@
 // TODO (b/262924623): refactor to remove dependency on ColorCustomizationManager & ColorOption
 // TODO (b/268203200): Create test for ColorPickerRepositoryImpl
 class ColorPickerRepositoryImpl(
-    wallpaperColorsViewModel: WallpaperColorsViewModel,
+    wallpaperColorsRepository: WallpaperColorsRepository,
     private val colorManager: ColorCustomizationManager,
 ) : ColorPickerRepository {
 
     private val homeWallpaperColors: StateFlow<WallpaperColorsModel?> =
-        wallpaperColorsViewModel.homeWallpaperColors
+        wallpaperColorsRepository.homeWallpaperColors
     private val lockWallpaperColors: StateFlow<WallpaperColorsModel?> =
-        wallpaperColorsViewModel.lockWallpaperColors
+        wallpaperColorsRepository.lockWallpaperColors
     private var selectedColorOption: MutableStateFlow<ColorOptionModel> =
         MutableStateFlow(getCurrentColorOption())
 
@@ -78,7 +78,7 @@
                         homeColorsLoaded.colors,
                         lockColorsLoaded.colors
                     )
-                    colorManager.fetchRevampedUIOptions(
+                    colorManager.fetchOptions(
                         object : CustomizationManager.OptionsFetchedListener<ColorOption?> {
                             override fun onOptionsLoaded(options: MutableList<ColorOption?>?) {
                                 val wallpaperColorOptions: MutableList<ColorOptionModel> =
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 bb2ef9d..f35d934 100644
--- a/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt
+++ b/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt
@@ -19,10 +19,12 @@
 import android.content.Context
 import android.graphics.Color
 import android.text.TextUtils
+import com.android.customization.model.ResourceConstants
 import com.android.customization.model.color.ColorOptionImpl
 import com.android.customization.model.color.ColorOptionsProvider
 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 kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.StateFlow
 import kotlinx.coroutines.flow.asStateFlow
@@ -49,6 +51,53 @@
     }
 
     fun setOptions(
+        wallpaperOptions: List<ColorOptionImpl>,
+        presetOptions: List<ColorOptionImpl>,
+        selectedColorOptionType: ColorType,
+        selectedColorOptionIndex: Int
+    ) {
+        _colorOptions.value =
+            mapOf(
+                ColorType.WALLPAPER_COLOR to
+                    buildList {
+                        for ((index, colorOption) in wallpaperOptions.withIndex()) {
+                            val isSelected =
+                                selectedColorOptionType == ColorType.WALLPAPER_COLOR &&
+                                    selectedColorOptionIndex == index
+                            val colorOptionModel =
+                                ColorOptionModel(
+                                    key = "${ColorType.WALLPAPER_COLOR}::$index",
+                                    colorOption = colorOption,
+                                    isSelected = isSelected
+                                )
+                            if (isSelected) {
+                                selectedColorOption = colorOptionModel
+                            }
+                            add(colorOptionModel)
+                        }
+                    },
+                ColorType.PRESET_COLOR to
+                    buildList {
+                        for ((index, colorOption) in presetOptions.withIndex()) {
+                            val isSelected =
+                                selectedColorOptionType == ColorType.PRESET_COLOR &&
+                                    selectedColorOptionIndex == index
+                            val colorOptionModel =
+                                ColorOptionModel(
+                                    key = "${ColorType.PRESET_COLOR}::$index",
+                                    colorOption = colorOption,
+                                    isSelected = isSelected
+                                )
+                            if (isSelected) {
+                                selectedColorOption = colorOptionModel
+                            }
+                            add(colorOptionModel)
+                        }
+                    },
+            )
+    }
+
+    fun setOptions(
         numWallpaperOptions: Int,
         numPresetOptions: Int,
         selectedColorOptionType: ColorType,
@@ -111,6 +160,22 @@
         return builder.build()
     }
 
+    fun buildPresetOption(style: Style, seedColor: String): 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.type = ColorType.PRESET_COLOR
+        builder.source = ColorOptionsProvider.COLOR_SOURCE_PRESET
+        builder.style = style
+        builder.title = "Preset"
+        builder
+            .addOverlayPackage("TEST_PACKAGE_TYPE", "preset_color")
+            .addOverlayPackage(ResourceConstants.OVERLAY_CATEGORY_SYSTEM_PALETTE, seedColor)
+        return builder.build()
+    }
+
     private fun buildWallpaperOption(index: Int): ColorOptionImpl {
         val builder = ColorOptionImpl.Builder()
         builder.lightColors =
@@ -127,6 +192,22 @@
         return builder.build()
     }
 
+    fun buildWallpaperOption(source: String, style: Style, seedColor: String): 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.type = ColorType.WALLPAPER_COLOR
+        builder.source = source
+        builder.style = style
+        builder.title = "Dynamic"
+        builder
+            .addOverlayPackage("TEST_PACKAGE_TYPE", "wallpaper_color")
+            .addOverlayPackage(ResourceConstants.OVERLAY_CATEGORY_SYSTEM_PALETTE, seedColor)
+        return builder.build()
+    }
+
     override suspend fun select(colorOptionModel: ColorOptionModel) {
         val colorOptions = _colorOptions.value
         val wallpaperColorOptions = colorOptions[ColorType.WALLPAPER_COLOR]!!
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 0f82f49..9838c31 100644
--- a/src/com/android/customization/picker/color/ui/binder/ColorPickerBinder.kt
+++ b/src/com/android/customization/picker/color/ui/binder/ColorPickerBinder.kt
@@ -62,7 +62,7 @@
         colorTypeTabView.addItemDecoration(ItemSpacing(ItemSpacing.TAB_ITEM_SPACING_DP))
         val colorOptionAdapter =
             OptionItemAdapter(
-                layoutResourceId = R.layout.color_option_2,
+                layoutResourceId = R.layout.color_option,
                 lifecycleOwner = lifecycleOwner,
                 bindIcon = { foregroundView: View, colorIcon: ColorOptionIconViewModel ->
                     val colorOptionIconView = foregroundView as? ColorOptionIconView
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 4ef29d6..2c00609 100644
--- a/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt
+++ b/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt
@@ -33,11 +33,11 @@
 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.data.repository.WallpaperColorsRepository
+import com.android.wallpaper.picker.customization.shared.model.WallpaperColorsModel
 import com.android.wallpaper.picker.customization.ui.binder.ScreenPreviewBinder
 import com.android.wallpaper.picker.customization.ui.viewmodel.ScreenPreviewViewModel
 import com.android.wallpaper.util.DisplayUtils
@@ -76,7 +76,7 @@
         val homeScreenView: CardView = view.requireViewById(R.id.home_preview)
         val wallpaperInfoFactory = injector.getCurrentWallpaperInfoFactory(requireContext())
         val displayUtils: DisplayUtils = injector.getDisplayUtils(requireContext())
-        val wcViewModel = injector.getWallpaperColorsViewModel()
+        val wallpaperColorsRepository = injector.getWallpaperColorsRepository()
         val wallpaperManager = WallpaperManager.getInstance(requireContext())
 
         binding =
@@ -87,7 +87,7 @@
                             requireActivity(),
                             injector.getColorPickerViewModelFactory(
                                 context = requireContext(),
-                                wallpaperColorsViewModel = wcViewModel,
+                                wallpaperColorsRepository = wallpaperColorsRepository,
                             ),
                         )
                         .get(),
@@ -114,27 +114,27 @@
                         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)
-                                    },
+                                    context,
                                     forceReload,
-                                )
+                                ) { homeWallpaper, lockWallpaper, _ ->
+                                    lifecycleScope.launch {
+                                        if (
+                                            wallpaperColorsRepository.lockWallpaperColors.value
+                                                is WallpaperColorsModel.Loading
+                                        ) {
+                                            loadInitialColors(
+                                                wallpaperManager,
+                                                wallpaperColorsRepository,
+                                                CustomizationSections.Screen.LOCK_SCREEN
+                                            )
+                                        }
+                                    }
+                                    continuation.resume(lockWallpaper ?: homeWallpaper, null)
+                                }
                             }
                         },
                         onWallpaperColorChanged = { colors ->
-                            wcViewModel.setLockWallpaperColors(colors)
+                            wallpaperColorsRepository.setLockWallpaperColors(colors)
                         },
                         wallpaperInteractor = injector.getWallpaperInteractor(requireContext()),
                         screen = CustomizationSections.Screen.LOCK_SCREEN,
@@ -165,27 +165,27 @@
                     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)
-                                },
+                                context,
                                 forceReload,
-                            )
+                            ) { homeWallpaper, lockWallpaper, _ ->
+                                lifecycleScope.launch {
+                                    if (
+                                        wallpaperColorsRepository.homeWallpaperColors.value
+                                            is WallpaperColorsModel.Loading
+                                    ) {
+                                        loadInitialColors(
+                                            wallpaperManager,
+                                            wallpaperColorsRepository,
+                                            CustomizationSections.Screen.HOME_SCREEN
+                                        )
+                                    }
+                                }
+                                continuation.resume(homeWallpaper ?: lockWallpaper, null)
+                            }
                         }
                     },
                     onWallpaperColorChanged = { colors ->
-                        wcViewModel.setHomeWallpaperColors(colors)
+                        wallpaperColorsRepository.setHomeWallpaperColors(colors)
                     },
                     wallpaperInteractor = injector.getWallpaperInteractor(requireContext()),
                     screen = CustomizationSections.Screen.HOME_SCREEN,
@@ -202,7 +202,8 @@
             DarkModeSectionController(
                     context,
                     lifecycle,
-                    injector.getDarkModeSnapshotRestorer(requireContext())
+                    injector.getDarkModeSnapshotRestorer(requireContext()),
+                    injector.getUserEventLogger(requireContext()),
                 )
                 .createView(requireContext())
         darkModeSectionView.background = null
@@ -218,7 +219,7 @@
 
     private suspend fun loadInitialColors(
         wallpaperManager: WallpaperManager,
-        colorViewModel: WallpaperColorsViewModel,
+        colorViewModel: WallpaperColorsRepository,
         screen: CustomizationSections.Screen,
     ) {
         withContext(Dispatchers.IO) {
diff --git a/src/com/android/customization/picker/color/ui/section/ColorSectionController2.kt b/src/com/android/customization/picker/color/ui/section/ColorSectionController.kt
similarity index 89%
rename from src/com/android/customization/picker/color/ui/section/ColorSectionController2.kt
rename to src/com/android/customization/picker/color/ui/section/ColorSectionController.kt
index f1c982b..a36fd80 100644
--- a/src/com/android/customization/picker/color/ui/section/ColorSectionController2.kt
+++ b/src/com/android/customization/picker/color/ui/section/ColorSectionController.kt
@@ -22,37 +22,37 @@
 import androidx.lifecycle.LifecycleOwner
 import com.android.customization.picker.color.ui.binder.ColorSectionViewBinder
 import com.android.customization.picker.color.ui.fragment.ColorPickerFragment
-import com.android.customization.picker.color.ui.view.ColorSectionView2
+import com.android.customization.picker.color.ui.view.ColorSectionView
 import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
 import com.android.wallpaper.R
 import com.android.wallpaper.model.CustomizationSectionController
 import com.android.wallpaper.model.CustomizationSectionController.CustomizationSectionNavigationController as NavigationController
 
-class ColorSectionController2(
+class ColorSectionController(
     private val navigationController: NavigationController,
     private val viewModel: ColorPickerViewModel,
     private val lifecycleOwner: LifecycleOwner
-) : CustomizationSectionController<ColorSectionView2> {
+) : CustomizationSectionController<ColorSectionView> {
 
     override fun isAvailable(context: Context): Boolean {
         return true
     }
 
-    override fun createView(context: Context): ColorSectionView2 {
+    override fun createView(context: Context): ColorSectionView {
         return createView(context, CustomizationSectionController.ViewCreationParams())
     }
 
     override fun createView(
         context: Context,
         params: CustomizationSectionController.ViewCreationParams
-    ): ColorSectionView2 {
+    ): ColorSectionView {
         @SuppressWarnings("It is fine to inflate with null parent for our need.")
         val view =
             LayoutInflater.from(context)
                 .inflate(
-                    R.layout.color_section_view2,
+                    R.layout.color_section_view,
                     null,
-                ) as ColorSectionView2
+                ) as ColorSectionView
         ColorSectionViewBinder.bind(
             view = view,
             viewModel = viewModel,
diff --git a/src/com/android/customization/picker/color/ui/view/ColorSectionView2.kt b/src/com/android/customization/picker/color/ui/view/ColorSectionView.kt
similarity index 90%
rename from src/com/android/customization/picker/color/ui/view/ColorSectionView2.kt
rename to src/com/android/customization/picker/color/ui/view/ColorSectionView.kt
index 7a8f21a..a89292d 100644
--- a/src/com/android/customization/picker/color/ui/view/ColorSectionView2.kt
+++ b/src/com/android/customization/picker/color/ui/view/ColorSectionView.kt
@@ -23,4 +23,4 @@
  * The class inherits from {@link SectionView} as the view representing the color section of the
  * customization picker. It displays a list of color options and an overflow option.
  */
-class ColorSectionView2(context: Context, attrs: AttributeSet?) : SectionView(context, attrs)
+class ColorSectionView(context: Context, attrs: AttributeSet?) : SectionView(context, attrs)
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 67c6838..ed83136 100644
--- a/src/com/android/customization/picker/color/ui/viewmodel/ColorPickerViewModel.kt
+++ b/src/com/android/customization/picker/color/ui/viewmodel/ColorPickerViewModel.kt
@@ -21,6 +21,7 @@
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
 import com.android.customization.model.color.ColorOptionImpl
+import com.android.customization.module.logging.ThemesUserEventLogger
 import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
 import com.android.customization.picker.color.shared.model.ColorType
 import com.android.wallpaper.R
@@ -43,6 +44,7 @@
 private constructor(
     context: Context,
     private val interactor: ColorPickerInteractor,
+    private val logger: ThemesUserEventLogger,
 ) : ViewModel() {
 
     private val selectedColorTypeTabId = MutableStateFlow<ColorType?>(null)
@@ -142,6 +144,14 @@
                                                 {
                                                     viewModelScope.launch {
                                                         interactor.select(colorOptionModel)
+                                                        logger.logThemeColorApplied(
+                                                            colorOptionModel.colorOption
+                                                                .sourceForLogging,
+                                                            colorOptionModel.colorOption
+                                                                .styleForLogging,
+                                                            colorOptionModel.colorOption
+                                                                .seedColorForLogging,
+                                                        )
                                                     }
                                                 }
                                             }
@@ -205,12 +215,14 @@
     class Factory(
         private val context: Context,
         private val interactor: ColorPickerInteractor,
+        private val logger: ThemesUserEventLogger,
     ) : ViewModelProvider.Factory {
         override fun <T : ViewModel> create(modelClass: Class<T>): T {
             @Suppress("UNCHECKED_CAST")
             return ColorPickerViewModel(
                 context = context,
                 interactor = interactor,
+                logger = logger,
             )
                 as T
         }
diff --git a/src/com/android/customization/picker/grid/GridFragment.java b/src/com/android/customization/picker/grid/GridFragment.java
deleted file mode 100644
index 4de1dab..0000000
--- a/src/com/android/customization/picker/grid/GridFragment.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * Copyright (C) 2018 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.grid;
-
-import static com.android.wallpaper.widget.BottomActionBar.BottomAction.APPLY_TEXT;
-
-import android.content.Context;
-import android.graphics.Point;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.SurfaceView;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.accessibility.AccessibilityManager;
-import android.widget.Toast;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.constraintlayout.widget.ConstraintLayout;
-import androidx.constraintlayout.widget.ConstraintSet;
-import androidx.core.widget.ContentLoadingProgressBar;
-import androidx.lifecycle.ViewModelProvider;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.customization.model.CustomizationManager.Callback;
-import com.android.customization.model.CustomizationManager.OptionsFetchedListener;
-import com.android.customization.model.CustomizationOption;
-import com.android.customization.model.grid.GridOption;
-import com.android.customization.model.grid.GridOptionViewModel;
-import com.android.customization.model.grid.GridOptionsManager;
-import com.android.customization.module.ThemesUserEventLogger;
-import com.android.customization.picker.WallpaperPreviewer;
-import com.android.customization.widget.OptionSelectorController;
-import com.android.customization.widget.OptionSelectorController.CheckmarkStyle;
-import com.android.wallpaper.R;
-import com.android.wallpaper.model.WallpaperInfo;
-import com.android.wallpaper.module.CurrentWallpaperInfoFactory;
-import com.android.wallpaper.module.InjectorProvider;
-import com.android.wallpaper.picker.AppbarFragment;
-import com.android.wallpaper.util.LaunchUtils;
-import com.android.wallpaper.util.ScreenSizeCalculator;
-import com.android.wallpaper.widget.BottomActionBar;
-
-import com.bumptech.glide.Glide;
-
-import java.util.List;
-import java.util.Locale;
-
-/**
- * Fragment that contains the UI for selecting and applying a GridOption.
- */
-public class GridFragment extends AppbarFragment {
-
-    private static final String TAG = "GridFragment";
-
-    private WallpaperInfo mHomeWallpaper;
-    private RecyclerView mOptionsContainer;
-    private OptionSelectorController<GridOption> mOptionsController;
-    private GridOptionsManager mGridManager;
-    private ContentLoadingProgressBar mLoading;
-    private ConstraintLayout mContent;
-    private View mError;
-    private BottomActionBar mBottomActionBar;
-    private ThemesUserEventLogger mEventLogger;
-    private GridOptionPreviewer mGridOptionPreviewer;
-    private GridOptionViewModel mGridOptionViewModel;
-
-    private final Callback mApplyGridCallback = new Callback() {
-        @Override
-        public void onSuccess() {
-            mGridManager.fetchOptions(unused -> {}, true);
-            Toast.makeText(getContext(), R.string.applied_grid_msg, Toast.LENGTH_SHORT).show();
-            getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
-            getActivity().finish();
-
-            // Go back to launcher home
-            LaunchUtils.launchHome(getContext());
-        }
-
-        @Override
-        public void onError(@Nullable Throwable throwable) {
-            // Since we disabled it when clicked apply button.
-            mBottomActionBar.enableActions();
-            mBottomActionBar.hide();
-            mGridOptionViewModel.setBottomActionBarVisible(false);
-            //TODO(chihhangchuang): handle
-        }
-    };
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        mGridOptionViewModel = new ViewModelProvider(requireActivity()).get(
-                GridOptionViewModel.class);
-    }
-
-    @Nullable
-    @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
-            @Nullable Bundle savedInstanceState) {
-        View view = inflater.inflate(
-                R.layout.fragment_grid_picker, container, /* attachToRoot */ false);
-        setUpToolbar(view);
-        mContent = view.findViewById(R.id.content_section);
-        mOptionsContainer = view.findViewById(R.id.options_container);
-        AccessibilityManager accessibilityManager =
-                (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
-        if (accessibilityManager.isEnabled()) {
-            // Make Talkback focus won't reset when notifyDataSetChange
-            mOptionsContainer.setItemAnimator(null);
-        }
-
-        // Set aspect ratio on the preview card dynamically.
-        Point mScreenSize;
-        ScreenSizeCalculator screenSizeCalculator = ScreenSizeCalculator.getInstance();
-        mScreenSize = screenSizeCalculator.getScreenSize(
-                requireActivity().getWindowManager().getDefaultDisplay());
-        ConstraintSet set = new ConstraintSet();
-        set.clone(mContent);
-        String ratio = String.format(Locale.US, "%d:%d", mScreenSize.x, mScreenSize.y);
-        set.setDimensionRatio(R.id.preview_card_container, ratio);
-        set.applyTo(mContent);
-
-        mLoading = view.findViewById(R.id.loading_indicator);
-        mError = view.findViewById(R.id.error_section);
-
-        // For nav bar edge-to-edge effect.
-        view.setOnApplyWindowInsetsListener((v, windowInsets) -> {
-            v.setPadding(
-                    v.getPaddingLeft(),
-                    windowInsets.getSystemWindowInsetTop(),
-                    v.getPaddingRight(),
-                    windowInsets.getSystemWindowInsetBottom());
-            return windowInsets.consumeSystemWindowInsets();
-        });
-
-        // Clear memory cache whenever grid fragment view is being loaded.
-        Glide.get(getContext()).clearMemory();
-
-        mGridManager = GridOptionsManager.getInstance(getContext());
-        mEventLogger = (ThemesUserEventLogger) InjectorProvider.getInjector()
-                .getUserEventLogger(getContext());
-        setUpOptions();
-
-        SurfaceView wallpaperSurface = view.findViewById(R.id.wallpaper_preview_surface);
-        WallpaperPreviewer wallpaperPreviewer = new WallpaperPreviewer(getLifecycle(),
-                getActivity(), view.findViewById(R.id.wallpaper_preview_image), wallpaperSurface,
-                view.findViewById(R.id.grid_fadein_scrim));
-        // Loads current Wallpaper.
-        CurrentWallpaperInfoFactory factory = InjectorProvider.getInjector()
-                .getCurrentWallpaperInfoFactory(getContext().getApplicationContext());
-        factory.createCurrentWallpaperInfos((homeWallpaper, lockWallpaper, presentationMode) -> {
-            mHomeWallpaper = homeWallpaper;
-            wallpaperPreviewer.setWallpaper(mHomeWallpaper, /* listener= */ null);
-        }, false);
-
-        mGridOptionPreviewer = new GridOptionPreviewer(mGridManager,
-                view.findViewById(R.id.grid_preview_container));
-
-        return view;
-    }
-
-    @Override
-    public boolean onBackPressed() {
-        mGridOptionViewModel.setSelectedOption(null);
-        mGridOptionViewModel.setBottomActionBarVisible(false);
-        return super.onBackPressed();
-    }
-
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-        if (mGridOptionPreviewer != null) {
-            mGridOptionPreviewer.release();
-        }
-    }
-
-    @Override
-    public CharSequence getDefaultTitle() {
-        return getString(R.string.grid_title);
-    }
-
-    @Override
-    protected void onBottomActionBarReady(BottomActionBar bottomActionBar) {
-        super.onBottomActionBarReady(bottomActionBar);
-        mBottomActionBar = bottomActionBar;
-        mBottomActionBar.showActionsOnly(APPLY_TEXT);
-        mBottomActionBar.setActionClickListener(APPLY_TEXT,
-                v -> applyGridOption(mGridOptionViewModel.getSelectedOption()));
-        mBottomActionBar.setActionAccessibilityTraversalAfter(APPLY_TEXT,
-                mOptionsContainer.getId());
-    }
-
-    private void applyGridOption(GridOption gridOption) {
-        mBottomActionBar.disableActions();
-        mGridManager.apply(gridOption, mApplyGridCallback);
-    }
-
-    private void setUpOptions() {
-        hideError();
-        mLoading.show();
-        mGridManager.fetchOptions(new OptionsFetchedListener<GridOption>() {
-            @Override
-            public void onOptionsLoaded(List<GridOption> options) {
-                mLoading.hide();
-                mOptionsController = new OptionSelectorController<>(
-                        mOptionsContainer, options, /* useGrid= */ false,
-                        CheckmarkStyle.CENTER_CHANGE_COLOR_WHEN_NOT_SELECTED);
-                mOptionsController.initOptions(mGridManager);
-                GridOption previouslySelectedOption = findEquivalent(options,
-                        mGridOptionViewModel.getSelectedOption());
-                mGridOptionViewModel.setSelectedOption(
-                        previouslySelectedOption != null
-                                ? previouslySelectedOption
-                                : getActiveOption(options));
-
-                mOptionsController.setSelectedOption(mGridOptionViewModel.getSelectedOption());
-                onOptionSelected(mGridOptionViewModel.getSelectedOption());
-                restoreBottomActionBarVisibility();
-
-                mOptionsController.addListener(selectedOption -> {
-                    String title = selectedOption.getTitle();
-                    int stringId = R.string.option_previewed_description;
-                    if (selectedOption.isActive(mGridManager)) {
-                        stringId = R.string.option_applied_previewed_description;
-                    }
-                    CharSequence cd = getContext().getString(stringId, title);
-                    mOptionsContainer.announceForAccessibility(cd);
-                    onOptionSelected(selectedOption);
-                    mBottomActionBar.show();
-                    mGridOptionViewModel.setBottomActionBarVisible(true);
-                });
-            }
-
-            @Override
-            public void onError(@Nullable Throwable throwable) {
-                if (throwable != null) {
-                    Log.e(TAG, "Error loading grid options", throwable);
-                }
-                showError();
-            }
-        }, /*reload= */ true);
-    }
-
-    private GridOption getActiveOption(List<GridOption> options) {
-        return options.stream()
-                .filter(option -> option.isActive(mGridManager))
-                .findAny()
-                // For development only, as there should always be a grid set.
-                .orElse(options.get(0));
-    }
-
-    @Nullable
-    private GridOption findEquivalent(List<GridOption> options, GridOption target) {
-        return options.stream()
-                .filter(option -> option.equals(target))
-                .findAny()
-                .orElse(null);
-    }
-
-    private void hideError() {
-        mContent.setVisibility(View.VISIBLE);
-        mError.setVisibility(View.GONE);
-    }
-
-    private void showError() {
-        mLoading.hide();
-        mContent.setVisibility(View.GONE);
-        mError.setVisibility(View.VISIBLE);
-    }
-
-    private void onOptionSelected(CustomizationOption selectedOption) {
-        mGridOptionViewModel.setSelectedOption((GridOption) selectedOption);
-        mEventLogger.logGridSelected(mGridOptionViewModel.getSelectedOption());
-        mGridOptionPreviewer.setGridOption(mGridOptionViewModel.getSelectedOption());
-    }
-
-    private void restoreBottomActionBarVisibility() {
-        if (mGridOptionViewModel.getBottomActionBarVisible()) {
-            mBottomActionBar.show();
-        } else {
-            mBottomActionBar.hide();
-        }
-    }
-}
diff --git a/src/com/android/customization/picker/grid/GridOptionPreviewer.java b/src/com/android/customization/picker/grid/GridOptionPreviewer.java
deleted file mode 100644
index 7786d35..0000000
--- a/src/com/android/customization/picker/grid/GridOptionPreviewer.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2020 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.grid;
-
-import android.content.Context;
-import android.view.SurfaceHolder;
-import android.view.SurfaceView;
-import android.view.ViewGroup;
-
-import com.android.customization.model.grid.GridOption;
-import com.android.customization.model.grid.GridOptionsManager;
-import com.android.wallpaper.R;
-import com.android.wallpaper.picker.WorkspaceSurfaceHolderCallback;
-import com.android.wallpaper.util.PreviewUtils;
-import com.android.wallpaper.util.SurfaceViewUtils;
-
-/** A class to load the {@link GridOption} preview to the view. */
-class GridOptionPreviewer {
-
-    private final GridOptionsManager mGridManager;
-    private final ViewGroup mPreviewContainer;
-
-    private SurfaceView mGridOptionSurface;
-    private GridOption mGridOption;
-    private GridOptionSurfaceHolderCallback mSurfaceCallback;
-
-    GridOptionPreviewer(GridOptionsManager gridManager, ViewGroup previewContainer) {
-        mGridManager = gridManager;
-        mPreviewContainer = previewContainer;
-    }
-
-    /** Loads the Grid option into the container view. */
-    public void setGridOption(GridOption gridOption) {
-        mGridOption = gridOption;
-        if (mGridOption != null) {
-            updateWorkspacePreview();
-        }
-    }
-
-    /** Releases the view resource. */
-    public void release() {
-        if (mGridOptionSurface != null) {
-            mSurfaceCallback.cleanUp();
-            mGridOptionSurface = null;
-        }
-        mPreviewContainer.removeAllViews();
-    }
-
-    private void updateWorkspacePreview() {
-        // Reattach SurfaceView to trigger #surfaceCreated to update preview for different option.
-        mPreviewContainer.removeAllViews();
-        if (mSurfaceCallback != null) {
-            mSurfaceCallback.cleanUp();
-            mSurfaceCallback.resetLastSurface();
-            if (mGridOptionSurface != null) {
-                mGridOptionSurface.getHolder().removeCallback(mSurfaceCallback);
-            }
-        }
-        mGridOptionSurface = new SurfaceView(mPreviewContainer.getContext());
-        mGridOptionSurface.setLayoutParams(new ViewGroup.LayoutParams(
-                ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
-        mGridOptionSurface.setZOrderMediaOverlay(true);
-        mSurfaceCallback = new GridOptionSurfaceHolderCallback(mGridOptionSurface,
-                mGridOptionSurface.getContext());
-        mGridOptionSurface.getHolder().addCallback(mSurfaceCallback);
-        mPreviewContainer.addView(mGridOptionSurface);
-    }
-
-    private class GridOptionSurfaceHolderCallback extends WorkspaceSurfaceHolderCallback {
-        private GridOptionSurfaceHolderCallback(SurfaceView workspaceSurface, Context context) {
-            super(
-                    workspaceSurface,
-                    new PreviewUtils(
-                            context, context.getString(R.string.grid_control_metadata_name)));
-        }
-
-        @Override
-        public void surfaceCreated(SurfaceHolder holder) {
-            if (mGridOption != null) {
-                super.surfaceCreated(holder);
-            }
-        }
-
-        @Override
-        protected void requestPreview(SurfaceView workspaceSurface,
-                PreviewUtils.WorkspacePreviewCallback callback) {
-            mGridManager.renderPreview(
-                    SurfaceViewUtils.createSurfaceViewRequest(workspaceSurface),
-                    mGridOption.name, callback);
-        }
-    }
-}
diff --git a/src/com/android/customization/model/grid/data/repository/GridRepository.kt b/src/com/android/customization/picker/grid/data/repository/GridRepository.kt
similarity index 96%
rename from src/com/android/customization/model/grid/data/repository/GridRepository.kt
rename to src/com/android/customization/picker/grid/data/repository/GridRepository.kt
index 4379dad..f384429 100644
--- a/src/com/android/customization/model/grid/data/repository/GridRepository.kt
+++ b/src/com/android/customization/picker/grid/data/repository/GridRepository.kt
@@ -15,15 +15,15 @@
  *
  */
 
-package com.android.customization.model.grid.data.repository
+package com.android.customization.picker.grid.data.repository
 
 import androidx.lifecycle.asFlow
 import com.android.customization.model.CustomizationManager
 import com.android.customization.model.CustomizationManager.Callback
 import com.android.customization.model.grid.GridOption
 import com.android.customization.model.grid.GridOptionsManager
-import com.android.customization.model.grid.shared.model.GridOptionItemModel
-import com.android.customization.model.grid.shared.model.GridOptionItemsModel
+import com.android.customization.picker.grid.shared.model.GridOptionItemModel
+import com.android.customization.picker.grid.shared.model.GridOptionItemsModel
 import kotlin.coroutines.resume
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.CoroutineScope
diff --git a/src/com/android/customization/model/grid/domain/interactor/GridInteractor.kt b/src/com/android/customization/picker/grid/domain/interactor/GridInteractor.kt
similarity index 93%
rename from src/com/android/customization/model/grid/domain/interactor/GridInteractor.kt
rename to src/com/android/customization/picker/grid/domain/interactor/GridInteractor.kt
index 7abd605..02e16dd 100644
--- a/src/com/android/customization/model/grid/domain/interactor/GridInteractor.kt
+++ b/src/com/android/customization/picker/grid/domain/interactor/GridInteractor.kt
@@ -15,13 +15,13 @@
  *
  */
 
-package com.android.customization.model.grid.domain.interactor
+package com.android.customization.picker.grid.domain.interactor
 
 import com.android.customization.model.CustomizationManager
 import com.android.customization.model.grid.GridOption
-import com.android.customization.model.grid.data.repository.GridRepository
-import com.android.customization.model.grid.shared.model.GridOptionItemModel
-import com.android.customization.model.grid.shared.model.GridOptionItemsModel
+import com.android.customization.picker.grid.data.repository.GridRepository
+import com.android.customization.picker.grid.shared.model.GridOptionItemModel
+import com.android.customization.picker.grid.shared.model.GridOptionItemsModel
 import javax.inject.Provider
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.Flow
diff --git a/src/com/android/customization/model/grid/domain/interactor/GridSnapshotRestorer.kt b/src/com/android/customization/picker/grid/domain/interactor/GridSnapshotRestorer.kt
similarity index 94%
rename from src/com/android/customization/model/grid/domain/interactor/GridSnapshotRestorer.kt
rename to src/com/android/customization/picker/grid/domain/interactor/GridSnapshotRestorer.kt
index 19d4c77..74d77f7 100644
--- a/src/com/android/customization/model/grid/domain/interactor/GridSnapshotRestorer.kt
+++ b/src/com/android/customization/picker/grid/domain/interactor/GridSnapshotRestorer.kt
@@ -15,10 +15,10 @@
  *
  */
 
-package com.android.customization.model.grid.domain.interactor
+package com.android.customization.picker.grid.domain.interactor
 
 import android.util.Log
-import com.android.customization.model.grid.shared.model.GridOptionItemModel
+import com.android.customization.picker.grid.shared.model.GridOptionItemModel
 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
diff --git a/src/com/android/customization/model/grid/shared/model/GridOptionItemModel.kt b/src/com/android/customization/picker/grid/shared/model/GridOptionItemModel.kt
similarity index 93%
rename from src/com/android/customization/model/grid/shared/model/GridOptionItemModel.kt
rename to src/com/android/customization/picker/grid/shared/model/GridOptionItemModel.kt
index 2eabeab..1fb01be 100644
--- a/src/com/android/customization/model/grid/shared/model/GridOptionItemModel.kt
+++ b/src/com/android/customization/picker/grid/shared/model/GridOptionItemModel.kt
@@ -15,7 +15,7 @@
  *
  */
 
-package com.android.customization.model.grid.shared.model
+package com.android.customization.picker.grid.shared.model
 
 import kotlinx.coroutines.flow.StateFlow
 
diff --git a/src/com/android/customization/model/grid/shared/model/GridOptionItemsModel.kt b/src/com/android/customization/picker/grid/shared/model/GridOptionItemsModel.kt
similarity index 93%
rename from src/com/android/customization/model/grid/shared/model/GridOptionItemsModel.kt
rename to src/com/android/customization/picker/grid/shared/model/GridOptionItemsModel.kt
index e969be8..e5b33c5 100644
--- a/src/com/android/customization/model/grid/shared/model/GridOptionItemsModel.kt
+++ b/src/com/android/customization/picker/grid/shared/model/GridOptionItemsModel.kt
@@ -15,7 +15,7 @@
  *
  */
 
-package com.android.customization.model.grid.shared.model
+package com.android.customization.picker.grid.shared.model
 
 sealed class GridOptionItemsModel {
     data class Loaded(
diff --git a/src/com/android/customization/model/grid/ui/binder/GridIconViewBinder.kt b/src/com/android/customization/picker/grid/ui/binder/GridIconViewBinder.kt
similarity index 73%
rename from src/com/android/customization/model/grid/ui/binder/GridIconViewBinder.kt
rename to src/com/android/customization/picker/grid/ui/binder/GridIconViewBinder.kt
index fba89a7..9fc88a0 100644
--- a/src/com/android/customization/model/grid/ui/binder/GridIconViewBinder.kt
+++ b/src/com/android/customization/picker/grid/ui/binder/GridIconViewBinder.kt
@@ -1,7 +1,7 @@
-package com.android.customization.model.grid.ui.binder
+package com.android.customization.picker.grid.ui.binder
 
 import android.widget.ImageView
-import com.android.customization.model.grid.ui.viewmodel.GridIconViewModel
+import com.android.customization.picker.grid.ui.viewmodel.GridIconViewModel
 import com.android.customization.widget.GridTileDrawable
 
 object GridIconViewBinder {
diff --git a/src/com/android/customization/model/grid/ui/binder/GridScreenBinder.kt b/src/com/android/customization/picker/grid/ui/binder/GridScreenBinder.kt
similarity index 92%
rename from src/com/android/customization/model/grid/ui/binder/GridScreenBinder.kt
rename to src/com/android/customization/picker/grid/ui/binder/GridScreenBinder.kt
index 56fe425..bcb3737 100644
--- a/src/com/android/customization/model/grid/ui/binder/GridScreenBinder.kt
+++ b/src/com/android/customization/picker/grid/ui/binder/GridScreenBinder.kt
@@ -15,7 +15,7 @@
  *
  */
 
-package com.android.customization.model.grid.ui.binder
+package com.android.customization.picker.grid.ui.binder
 
 import android.view.View
 import android.widget.Button
@@ -26,9 +26,9 @@
 import androidx.lifecycle.repeatOnLifecycle
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
-import com.android.customization.model.grid.ui.viewmodel.GridIconViewModel
-import com.android.customization.model.grid.ui.viewmodel.GridScreenViewModel
 import com.android.customization.picker.common.ui.view.ItemSpacing
+import com.android.customization.picker.grid.ui.viewmodel.GridIconViewModel
+import com.android.customization.picker.grid.ui.viewmodel.GridScreenViewModel
 import com.android.wallpaper.R
 import com.android.wallpaper.picker.option.ui.adapter.OptionItemAdapter
 import com.android.wallpaper.picker.option.ui.binder.OptionItemBinder
@@ -55,7 +55,7 @@
         optionView.addItemDecoration(ItemSpacing(ItemSpacing.ITEM_SPACING_DP))
         val adapter =
             OptionItemAdapter(
-                layoutResourceId = R.layout.grid_option_2,
+                layoutResourceId = R.layout.grid_option,
                 lifecycleOwner = lifecycleOwner,
                 backgroundDispatcher = backgroundDispatcher,
                 foregroundTintSpec =
diff --git a/src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt b/src/com/android/customization/picker/grid/ui/fragment/GridFragment.kt
similarity index 92%
rename from src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt
rename to src/com/android/customization/picker/grid/ui/fragment/GridFragment.kt
index 9e99efe..2a301b4 100644
--- a/src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt
+++ b/src/com/android/customization/picker/grid/ui/fragment/GridFragment.kt
@@ -15,7 +15,7 @@
  *
  */
 
-package com.android.customization.model.grid.ui.fragment
+package com.android.customization.picker.grid.ui.fragment
 
 import android.os.Bundle
 import android.util.Log
@@ -30,10 +30,10 @@
 import androidx.transition.Transition
 import androidx.transition.doOnStart
 import com.android.customization.model.CustomizationManager.Callback
-import com.android.customization.model.grid.domain.interactor.GridInteractor
-import com.android.customization.model.grid.ui.binder.GridScreenBinder
-import com.android.customization.model.grid.ui.viewmodel.GridScreenViewModel
 import com.android.customization.module.ThemePickerInjector
+import com.android.customization.picker.grid.domain.interactor.GridInteractor
+import com.android.customization.picker.grid.ui.binder.GridScreenBinder
+import com.android.customization.picker.grid.ui.viewmodel.GridScreenViewModel
 import com.android.wallpaper.R
 import com.android.wallpaper.config.BaseFlags
 import com.android.wallpaper.module.CurrentWallpaperInfoFactory
@@ -48,10 +48,10 @@
 import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.suspendCancellableCoroutine
 
-private val TAG = GridFragment2::class.java.simpleName
+private val TAG = GridFragment::class.java.simpleName
 
 @OptIn(ExperimentalCoroutinesApi::class)
-class GridFragment2 : AppbarFragment() {
+class GridFragment : AppbarFragment() {
 
     private lateinit var gridInteractor: GridInteractor
 
@@ -185,11 +185,11 @@
                     wallpaperInfoProvider = {
                         suspendCancellableCoroutine { continuation ->
                             wallpaperInfoFactory.createCurrentWallpaperInfos(
-                                { homeWallpaper, lockWallpaper, _ ->
-                                    continuation.resume(homeWallpaper ?: lockWallpaper, null)
-                                },
+                                context,
                                 /* forceRefresh= */ true,
-                            )
+                            ) { homeWallpaper, lockWallpaper, _ ->
+                                continuation.resume(homeWallpaper ?: lockWallpaper, null)
+                            }
                         }
                     },
                     wallpaperInteractor = wallpaperInteractor,
diff --git a/src/com/android/customization/model/grid/GridSectionController.java b/src/com/android/customization/picker/grid/ui/section/GridSectionController.java
similarity index 83%
rename from src/com/android/customization/model/grid/GridSectionController.java
rename to src/com/android/customization/picker/grid/ui/section/GridSectionController.java
index c50bfcc..6ae9acd 100644
--- a/src/com/android/customization/model/grid/GridSectionController.java
+++ b/src/com/android/customization/picker/grid/ui/section/GridSectionController.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.customization.model.grid;
+package com.android.customization.picker.grid.ui.section;
 
 import android.content.Context;
 import android.util.Log;
@@ -27,9 +27,10 @@
 import androidx.lifecycle.Observer;
 
 import com.android.customization.model.CustomizationManager.OptionsFetchedListener;
-import com.android.customization.model.grid.ui.fragment.GridFragment2;
-import com.android.customization.picker.grid.GridFragment;
-import com.android.customization.picker.grid.GridSectionView;
+import com.android.customization.model.grid.GridOption;
+import com.android.customization.model.grid.GridOptionsManager;
+import com.android.customization.picker.grid.ui.fragment.GridFragment;
+import com.android.customization.picker.grid.ui.view.GridSectionView;
 import com.android.wallpaper.R;
 import com.android.wallpaper.model.CustomizationSectionController;
 
@@ -42,7 +43,6 @@
 
     private final GridOptionsManager mGridOptionsManager;
     private final CustomizationSectionNavigationController mSectionNavigationController;
-    private final boolean mIsRevampedUiEnabled;
     private final Observer<Object> mOptionChangeObserver;
     private final LifecycleOwner mLifecycleOwner;
     private TextView mSectionDescription;
@@ -55,7 +55,6 @@
             boolean isRevampedUiEnabled) {
         mGridOptionsManager = gridOptionsManager;
         mSectionNavigationController = sectionNavigationController;
-        mIsRevampedUiEnabled = isRevampedUiEnabled;
         mLifecycleOwner = lifecycleOwner;
         mOptionChangeObserver = o -> updateUi(/* reload= */ true);
     }
@@ -74,20 +73,13 @@
 
         // Fetch grid options to show currently set grid.
         updateUi(/* The result is getting when calling isAvailable(), so reload= */ false);
-        if (mIsRevampedUiEnabled) {
-            mGridOptionsManager.getOptionChangeObservable(/* handler= */ null).observe(
-                    mLifecycleOwner,
-                    mOptionChangeObserver);
-        }
+        mGridOptionsManager.getOptionChangeObservable(/* handler= */ null).observe(
+                mLifecycleOwner,
+                mOptionChangeObserver);
 
         gridSectionView.setOnClickListener(
                 v -> {
-                    final Fragment gridFragment;
-                    if (mIsRevampedUiEnabled) {
-                        gridFragment = new GridFragment2();
-                    } else {
-                        gridFragment = new GridFragment();
-                    }
+                    final Fragment gridFragment = new GridFragment();
                     mSectionNavigationController.navigateTo(gridFragment);
                 });
 
@@ -96,7 +88,7 @@
 
     @Override
     public void release() {
-        if (mIsRevampedUiEnabled && mGridOptionsManager.isAvailable()) {
+        if (mGridOptionsManager.isAvailable()) {
             mGridOptionsManager.getOptionChangeObservable(/* handler= */ null).removeObserver(
                     mOptionChangeObserver
             );
diff --git a/src/com/android/customization/picker/grid/GridSectionView.java b/src/com/android/customization/picker/grid/ui/view/GridSectionView.java
similarity index 94%
rename from src/com/android/customization/picker/grid/GridSectionView.java
rename to src/com/android/customization/picker/grid/ui/view/GridSectionView.java
index 58468e1..545ef19 100644
--- a/src/com/android/customization/picker/grid/GridSectionView.java
+++ b/src/com/android/customization/picker/grid/ui/view/GridSectionView.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.customization.picker.grid;
+package com.android.customization.picker.grid.ui.view;
 
 import android.content.Context;
 import android.util.AttributeSet;
diff --git a/src/com/android/customization/model/grid/ui/viewmodel/GridIconViewModel.kt b/src/com/android/customization/picker/grid/ui/viewmodel/GridIconViewModel.kt
similarity index 92%
rename from src/com/android/customization/model/grid/ui/viewmodel/GridIconViewModel.kt
rename to src/com/android/customization/picker/grid/ui/viewmodel/GridIconViewModel.kt
index 3942d7c..d12dc6c 100644
--- a/src/com/android/customization/model/grid/ui/viewmodel/GridIconViewModel.kt
+++ b/src/com/android/customization/picker/grid/ui/viewmodel/GridIconViewModel.kt
@@ -15,7 +15,7 @@
  *
  */
 
-package com.android.customization.model.grid.ui.viewmodel
+package com.android.customization.picker.grid.ui.viewmodel
 
 data class GridIconViewModel(
     val columns: Int,
diff --git a/src/com/android/customization/model/grid/ui/viewmodel/GridScreenViewModel.kt b/src/com/android/customization/picker/grid/ui/viewmodel/GridScreenViewModel.kt
similarity index 94%
rename from src/com/android/customization/model/grid/ui/viewmodel/GridScreenViewModel.kt
rename to src/com/android/customization/picker/grid/ui/viewmodel/GridScreenViewModel.kt
index c11a594..179127d 100644
--- a/src/com/android/customization/model/grid/ui/viewmodel/GridScreenViewModel.kt
+++ b/src/com/android/customization/picker/grid/ui/viewmodel/GridScreenViewModel.kt
@@ -15,7 +15,7 @@
  *
  */
 
-package com.android.customization.model.grid.ui.viewmodel
+package com.android.customization.picker.grid.ui.viewmodel
 
 import android.annotation.SuppressLint
 import android.content.Context
@@ -24,8 +24,8 @@
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
 import com.android.customization.model.ResourceConstants
-import com.android.customization.model.grid.domain.interactor.GridInteractor
-import com.android.customization.model.grid.shared.model.GridOptionItemsModel
+import com.android.customization.picker.grid.domain.interactor.GridInteractor
+import com.android.customization.picker.grid.shared.model.GridOptionItemsModel
 import com.android.wallpaper.picker.common.text.ui.viewmodel.Text
 import com.android.wallpaper.picker.option.ui.viewmodel.OptionItemViewModel
 import kotlinx.coroutines.flow.Flow
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 954efa2..1a5254f 100644
--- a/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModel.kt
+++ b/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModel.kt
@@ -21,6 +21,7 @@
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
+import com.android.customization.module.logging.ThemesUserEventLogger
 import com.android.customization.picker.notifications.domain.interactor.NotificationsInteractor
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.map
@@ -31,6 +32,7 @@
 @VisibleForTesting
 constructor(
     private val interactor: NotificationsInteractor,
+    private val logger: ThemesUserEventLogger,
 ) : ViewModel() {
 
     /** Whether the switch should be on. */
@@ -39,16 +41,23 @@
 
     /** Notifies that the section has been clicked. */
     fun onClicked() {
-        viewModelScope.launch { interactor.toggleShowNotificationsOnLockScreenEnabled() }
+        viewModelScope.launch {
+            interactor.toggleShowNotificationsOnLockScreenEnabled()
+            logger.logLockScreenNotificationApplied(
+                interactor.getSettings().isShowNotificationsOnLockScreenEnabled
+            )
+        }
     }
 
     class Factory(
         private val interactor: NotificationsInteractor,
+        private val logger: ThemesUserEventLogger,
     ) : ViewModelProvider.Factory {
         @Suppress("UNCHECKED_CAST")
         override fun <T : ViewModel> create(modelClass: Class<T>): T {
             return NotificationSectionViewModel(
                 interactor = interactor,
+                logger = logger,
             )
                 as T
         }
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 71dfe1d..eb25af7 100644
--- a/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt
+++ b/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt
@@ -42,10 +42,10 @@
 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.data.repository.WallpaperColorsRepository
 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
@@ -64,7 +64,7 @@
     private val lifecycleOwner: LifecycleOwner,
     private val screen: CustomizationSections.Screen,
     wallpaperInfoFactory: CurrentWallpaperInfoFactory,
-    colorViewModel: WallpaperColorsViewModel,
+    wallpaperColorsRepository: WallpaperColorsRepository,
     displayUtils: DisplayUtils,
     clockCarouselViewModelFactory: ClockCarouselViewModel.Factory,
     private val clockViewFactory: ClockViewFactory,
@@ -82,7 +82,7 @@
         lifecycleOwner,
         screen,
         wallpaperInfoFactory,
-        colorViewModel,
+        wallpaperColorsRepository,
         displayUtils,
         wallpaperPreviewNavigator,
         wallpaperInteractor,
diff --git a/src/com/android/customization/picker/preview/ui/section/PreviewWithThemeSectionController.kt b/src/com/android/customization/picker/preview/ui/section/PreviewWithThemeSectionController.kt
index c4d6be4..b3e778b 100644
--- a/src/com/android/customization/picker/preview/ui/section/PreviewWithThemeSectionController.kt
+++ b/src/com/android/customization/picker/preview/ui/section/PreviewWithThemeSectionController.kt
@@ -25,16 +25,17 @@
 import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
 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.data.repository.WallpaperColorsRepository
 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.CustomizationPickerViewModel
 import com.android.wallpaper.picker.customization.ui.viewmodel.ScreenPreviewViewModel
 import com.android.wallpaper.util.DisplayUtils
 import com.android.wallpaper.util.PreviewUtils
+import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.suspendCancellableCoroutine
 
 /**
@@ -46,7 +47,7 @@
     lifecycleOwner: LifecycleOwner,
     private val screen: CustomizationSections.Screen,
     private val wallpaperInfoFactory: CurrentWallpaperInfoFactory,
-    private val colorViewModel: WallpaperColorsViewModel,
+    private val wallpaperColorsRepository: WallpaperColorsRepository,
     displayUtils: DisplayUtils,
     wallpaperPreviewNavigator: WallpaperPreviewNavigator,
     private val wallpaperInteractor: WallpaperInteractor,
@@ -61,7 +62,7 @@
         lifecycleOwner,
         screen,
         wallpaperInfoFactory,
-        colorViewModel,
+        wallpaperColorsRepository,
         displayUtils,
         wallpaperPreviewNavigator,
         wallpaperInteractor,
@@ -69,6 +70,7 @@
         isTwoPaneAndSmallWidth,
         customizationPickerViewModel,
     ) {
+    @OptIn(ExperimentalCoroutinesApi::class)
     override fun createScreenPreviewViewModel(context: Context): ScreenPreviewViewModel {
         return PreviewWithThemeViewModel(
             previewUtils =
@@ -92,28 +94,28 @@
             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)
-                        },
+                        context,
                         forceReload,
-                    )
+                    ) { homeWallpaper, lockWallpaper, _ ->
+                        val wallpaper =
+                            if (isOnLockScreen) {
+                                lockWallpaper ?: homeWallpaper
+                            } else {
+                                homeWallpaper ?: lockWallpaper
+                            }
+                        loadInitialColors(
+                            context = context,
+                            screen = screen,
+                        )
+                        continuation.resume(wallpaper, null)
+                    }
                 }
             },
             onWallpaperColorChanged = { colors ->
                 if (isOnLockScreen) {
-                    colorViewModel.setLockWallpaperColors(colors)
+                    wallpaperColorsRepository.setLockWallpaperColors(colors)
                 } else {
-                    colorViewModel.setHomeWallpaperColors(colors)
+                    wallpaperColorsRepository.setHomeWallpaperColors(colors)
                 }
             },
             initialExtrasProvider = { getInitialExtras(isOnLockScreen) },
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 b17af80..6bfe348 100644
--- a/src/com/android/customization/picker/quickaffordance/data/repository/KeyguardQuickAffordancePickerRepository.kt
+++ b/src/com/android/customization/picker/quickaffordance/data/repository/KeyguardQuickAffordancePickerRepository.kt
@@ -21,11 +21,11 @@
 import com.android.customization.picker.quickaffordance.shared.model.KeyguardQuickAffordancePickerSelectionModel as SelectionModel
 import com.android.customization.picker.quickaffordance.shared.model.KeyguardQuickAffordancePickerSlotModel as SlotModel
 import com.android.systemui.shared.customization.data.content.CustomizationProviderClient as Client
-import com.android.systemui.shared.customization.data.content.CustomizationProviderContract as Contract
-import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.SharingStarted
 import kotlinx.coroutines.flow.map
-import kotlinx.coroutines.withContext
+import kotlinx.coroutines.flow.shareIn
 
 /**
  * Abstracts access to application state related to functionality for selecting, picking, or setting
@@ -33,39 +33,25 @@
  */
 class KeyguardQuickAffordancePickerRepository(
     private val client: Client,
-    private val backgroundDispatcher: CoroutineDispatcher,
+    private val scope: CoroutineScope
 ) {
-    /** Whether the feature is enabled. */
-    val isFeatureEnabled: Flow<Boolean> =
-        client.observeFlags().map { flags -> flags.isFeatureEnabled() }
-
     /** List of slots available on the device. */
     val slots: Flow<List<SlotModel>> =
         client.observeSlots().map { slots -> slots.map { slot -> slot.toModel() } }
 
     /** List of all available quick affordances. */
     val affordances: Flow<List<AffordanceModel>> =
-        client.observeAffordances().map { affordances ->
-            affordances.map { affordance -> affordance.toModel() }
-        }
+        client
+            .observeAffordances()
+            .map { affordances -> affordances.map { affordance -> affordance.toModel() } }
+            .shareIn(scope, replay = 1, started = SharingStarted.Lazily)
 
     /** List of slot-affordance pairs, modeling what the user has currently chosen for each slot. */
     val selections: Flow<List<SelectionModel>> =
-        client.observeSelections().map { selections ->
-            selections.map { selection -> selection.toModel() }
-        }
-
-    suspend fun isFeatureEnabled(): Boolean {
-        return withContext(backgroundDispatcher) { client.queryFlags().isFeatureEnabled() }
-    }
-
-    private fun List<Client.Flag>.isFeatureEnabled(): Boolean {
-        return find { flag ->
-                flag.name ==
-                    Contract.FlagsTable.FLAG_NAME_CUSTOM_LOCK_SCREEN_QUICK_AFFORDANCES_ENABLED
-            }
-            ?.value == true
-    }
+        client
+            .observeSelections()
+            .map { selections -> selections.map { selection -> selection.toModel() } }
+            .shareIn(scope, replay = 1, started = SharingStarted.Lazily)
 
     private fun Client.Slot.toModel(): SlotModel {
         return SlotModel(
diff --git a/src/com/android/customization/picker/quickaffordance/domain/interactor/KeyguardQuickAffordancePickerInteractor.kt b/src/com/android/customization/picker/quickaffordance/domain/interactor/KeyguardQuickAffordancePickerInteractor.kt
index f154de6..3eca624 100644
--- a/src/com/android/customization/picker/quickaffordance/domain/interactor/KeyguardQuickAffordancePickerInteractor.kt
+++ b/src/com/android/customization/picker/quickaffordance/domain/interactor/KeyguardQuickAffordancePickerInteractor.kt
@@ -64,7 +64,7 @@
     }
 
     /** Unselects all affordances from the slot with the given ID. */
-    suspend fun unselectAll(slotId: String) {
+    suspend fun unselectAllFromSlot(slotId: String) {
         client.deleteAllSelections(
             slotId = slotId,
         )
@@ -72,15 +72,15 @@
         snapshotRestorer.get().storeSnapshot()
     }
 
+    /** Unselects all affordances from all slots. */
+    suspend fun unselectAll() {
+        client.querySlots().forEach { client.deleteAllSelections(it.id) }
+    }
+
     /** Returns a [Drawable] for the given resource ID, from the system UI package. */
     suspend fun getAffordanceIcon(
         @DrawableRes iconResourceId: Int,
     ): Drawable {
         return client.getAffordanceIcon(iconResourceId)
     }
-
-    /** Returns `true` if the feature is enabled; `false` otherwise. */
-    suspend fun isFeatureEnabled(): Boolean {
-        return repository.isFeatureEnabled()
-    }
 }
diff --git a/src/com/android/customization/picker/quickaffordance/domain/interactor/KeyguardQuickAffordanceSnapshotRestorer.kt b/src/com/android/customization/picker/quickaffordance/domain/interactor/KeyguardQuickAffordanceSnapshotRestorer.kt
index 3c7928c..fee0cb5 100644
--- a/src/com/android/customization/picker/quickaffordance/domain/interactor/KeyguardQuickAffordanceSnapshotRestorer.kt
+++ b/src/com/android/customization/picker/quickaffordance/domain/interactor/KeyguardQuickAffordanceSnapshotRestorer.kt
@@ -42,9 +42,14 @@
     }
 
     override suspend fun restoreToSnapshot(snapshot: RestorableSnapshot) {
+        // reset all current selections
+        interactor.unselectAll()
+
+        val allSelections = checkNotNull(snapshot.args[KEY_SELECTIONS])
+        if (allSelections.isEmpty()) return
+
         val selections: List<Pair<String, String>> =
-            checkNotNull(snapshot.args[KEY_SELECTIONS]).split(SELECTION_SEPARATOR).map { selection
-                ->
+            allSelections.split(SELECTION_SEPARATOR).map { selection ->
                 val (slotId, affordanceId) = selection.split(SLOT_AFFORDANCE_SEPARATOR)
                 slotId to affordanceId
             }
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 8891b03..0e3b716 100644
--- a/src/com/android/customization/picker/quickaffordance/ui/adapter/SlotTabAdapter.kt
+++ b/src/com/android/customization/picker/quickaffordance/ui/adapter/SlotTabAdapter.kt
@@ -67,7 +67,9 @@
                 .find { it.isSelected.value }
                 ?.text
                 ?.asString(holder.itemView.context)
-        stateDescription?.let { holder.itemView.stateDescription = it }
+        holder.itemView.stateDescription =
+            stateDescription
+                ?: holder.itemView.resources.getString(R.string.keyguard_affordance_none)
     }
 
     class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
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 091f484..3ac52ad 100644
--- a/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePickerBinder.kt
+++ b/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePickerBinder.kt
@@ -20,7 +20,11 @@
 import android.app.Dialog
 import android.content.Context
 import android.view.View
+import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
 import android.widget.ImageView
+import androidx.core.view.AccessibilityDelegateCompat
+import androidx.core.view.ViewCompat
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.lifecycleScope
@@ -62,6 +66,26 @@
         slotTabView.layoutManager =
             LinearLayoutManager(view.context, RecyclerView.HORIZONTAL, false)
         slotTabView.addItemDecoration(ItemSpacing(ItemSpacing.TAB_ITEM_SPACING_DP))
+
+        // Setting a custom accessibility delegate so that the default content descriptions
+        // for items in a list aren't announced (for left & right shortcuts). We populate
+        // the content description for these shortcuts later on with the right (expected)
+        // values.
+        val slotTabViewDelegate: AccessibilityDelegateCompat =
+            object : AccessibilityDelegateCompat() {
+                override fun onRequestSendAccessibilityEvent(
+                    host: ViewGroup,
+                    child: View,
+                    event: AccessibilityEvent
+                ): Boolean {
+                    if (event.eventType != AccessibilityEvent.TYPE_VIEW_FOCUSED) {
+                        child.contentDescription = null
+                    }
+                    return super.onRequestSendAccessibilityEvent(host, child, event)
+                }
+            }
+
+        ViewCompat.setAccessibilityDelegate(slotTabView, slotTabViewDelegate)
         val affordancesAdapter =
             OptionItemAdapter(
                 layoutResourceId = R.layout.keyguard_quick_affordance,
diff --git a/src/com/android/customization/picker/quickaffordance/ui/section/KeyguardQuickAffordanceSectionController.kt b/src/com/android/customization/picker/quickaffordance/ui/section/KeyguardQuickAffordanceSectionController.kt
index e0beeff..0c7b250 100644
--- a/src/com/android/customization/picker/quickaffordance/ui/section/KeyguardQuickAffordanceSectionController.kt
+++ b/src/com/android/customization/picker/quickaffordance/ui/section/KeyguardQuickAffordanceSectionController.kt
@@ -20,27 +20,23 @@
 import android.content.Context
 import android.view.LayoutInflater
 import androidx.lifecycle.LifecycleOwner
-import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor
 import com.android.customization.picker.quickaffordance.ui.binder.KeyguardQuickAffordanceSectionViewBinder
 import com.android.customization.picker.quickaffordance.ui.fragment.KeyguardQuickAffordancePickerFragment
 import com.android.customization.picker.quickaffordance.ui.view.KeyguardQuickAffordanceSectionView
 import com.android.customization.picker.quickaffordance.ui.viewmodel.KeyguardQuickAffordancePickerViewModel
 import com.android.wallpaper.R
+import com.android.wallpaper.config.BaseFlags
 import com.android.wallpaper.model.CustomizationSectionController
 import com.android.wallpaper.model.CustomizationSectionController.CustomizationSectionNavigationController as NavigationController
-import kotlinx.coroutines.runBlocking
 
 class KeyguardQuickAffordanceSectionController(
     private val navigationController: NavigationController,
-    private val interactor: KeyguardQuickAffordancePickerInteractor,
     private val viewModel: KeyguardQuickAffordancePickerViewModel,
     private val lifecycleOwner: LifecycleOwner,
 ) : CustomizationSectionController<KeyguardQuickAffordanceSectionView> {
 
-    private val isFeatureEnabled: Boolean = runBlocking { interactor.isFeatureEnabled() }
-
     override fun isAvailable(context: Context): Boolean {
-        return isFeatureEnabled
+        return BaseFlags.get().isKeyguardQuickAffordanceEnabled(context)
     }
 
     override fun createView(context: Context): KeyguardQuickAffordanceSectionView {
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 f832cde..260c0d3 100644
--- a/src/com/android/customization/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModel.kt
+++ b/src/com/android/customization/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModel.kt
@@ -26,6 +26,7 @@
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
+import com.android.customization.module.logging.ThemesUserEventLogger
 import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor
 import com.android.systemui.shared.keyguard.shared.model.KeyguardQuickAffordanceSlots
 import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants
@@ -63,6 +64,7 @@
     private val quickAffordanceInteractor: KeyguardQuickAffordancePickerInteractor,
     private val wallpaperInteractor: WallpaperInteractor,
     private val wallpaperInfoFactory: CurrentWallpaperInfoFactory,
+    private val logger: ThemesUserEventLogger,
 ) : ViewModel() {
 
     @SuppressLint("StaticFieldLeak") private val applicationContext = context.applicationContext
@@ -92,11 +94,11 @@
             wallpaperInfoProvider = { forceReload ->
                 suspendCancellableCoroutine { continuation ->
                     wallpaperInfoFactory.createCurrentWallpaperInfos(
-                        { homeWallpaper, lockWallpaper, _ ->
-                            continuation.resume(lockWallpaper ?: homeWallpaper, null)
-                        },
+                        context,
                         forceReload,
-                    )
+                    ) { homeWallpaper, lockWallpaper, _ ->
+                        continuation.resume(lockWallpaper ?: homeWallpaper, null)
+                    }
                 }
             },
             wallpaperInteractor = wallpaperInteractor,
@@ -158,7 +160,8 @@
                                         Icon.Loaded(
                                             drawable =
                                                 getAffordanceIcon(affordanceModel.iconResourceId),
-                                            contentDescription = null,
+                                            contentDescription =
+                                                Text.Loaded(getSlotContentDescription(slot.id)),
                                         ),
                                     text = Text.Loaded(affordanceModel.name),
                                     isSelected = MutableStateFlow(true) as StateFlow<Boolean>,
@@ -214,7 +217,13 @@
                             if (!isSelected) {
                                 {
                                     viewModelScope.launch {
-                                        quickAffordanceInteractor.unselectAll(selectedSlotId)
+                                        quickAffordanceInteractor.unselectAllFromSlot(
+                                            selectedSlotId
+                                        )
+                                        logger.logShortcutApplied(
+                                            shortcut = "none",
+                                            shortcutSlotId = selectedSlotId,
+                                        )
                                     }
                                 }
                             } else {
@@ -250,6 +259,10 @@
                                                     slotId = selectedSlotId,
                                                     affordanceId = affordance.id,
                                                 )
+                                                logger.logShortcutApplied(
+                                                    shortcut = affordance.id,
+                                                    shortcutSlotId = selectedSlotId,
+                                                )
                                             }
                                         }
                                     } else {
@@ -423,6 +436,18 @@
         )
     }
 
+    private fun getSlotContentDescription(slotId: String): String {
+        return applicationContext.getString(
+            when (slotId) {
+                KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START ->
+                    R.string.keyguard_slot_name_bottom_start
+                KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_END ->
+                    R.string.keyguard_slot_name_bottom_end
+                else -> error("No accessibility label for slot with ID \"$slotId\"!")
+            }
+        )
+    }
+
     private suspend fun getAffordanceIcon(@DrawableRes iconResourceId: Int): Drawable {
         return quickAffordanceInteractor.getAffordanceIcon(iconResourceId)
     }
@@ -463,6 +488,7 @@
         private val quickAffordanceInteractor: KeyguardQuickAffordancePickerInteractor,
         private val wallpaperInteractor: WallpaperInteractor,
         private val wallpaperInfoFactory: CurrentWallpaperInfoFactory,
+        private val logger: ThemesUserEventLogger,
     ) : ViewModelProvider.Factory {
         override fun <T : ViewModel> create(modelClass: Class<T>): T {
             @Suppress("UNCHECKED_CAST")
@@ -471,6 +497,7 @@
                 quickAffordanceInteractor = quickAffordanceInteractor,
                 wallpaperInteractor = wallpaperInteractor,
                 wallpaperInfoFactory = wallpaperInfoFactory,
+                logger = logger,
             )
                 as T
         }
diff --git a/src/com/android/customization/picker/theme/CustomThemeActivity.java b/src/com/android/customization/picker/theme/CustomThemeActivity.java
deleted file mode 100644
index 62a2f26..0000000
--- a/src/com/android/customization/picker/theme/CustomThemeActivity.java
+++ /dev/null
@@ -1,421 +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.picker.theme;
-
-import android.app.AlertDialog.Builder;
-import android.content.Intent;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import androidx.annotation.Nullable;
-import androidx.annotation.StringRes;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentActivity;
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentTransaction;
-
-import com.android.customization.model.CustomizationManager.Callback;
-import com.android.customization.model.theme.DefaultThemeProvider;
-import com.android.customization.model.theme.OverlayManagerCompat;
-import com.android.customization.model.theme.ThemeBundle;
-import com.android.customization.model.theme.ThemeBundleProvider;
-import com.android.customization.model.theme.ThemeManager;
-import com.android.customization.model.theme.custom.ColorOptionsProvider;
-import com.android.customization.model.theme.custom.CustomTheme;
-import com.android.customization.model.theme.custom.CustomThemeManager;
-import com.android.customization.model.theme.custom.FontOptionsProvider;
-import com.android.customization.model.theme.custom.IconOptionsProvider;
-import com.android.customization.model.theme.custom.ShapeOptionsProvider;
-import com.android.customization.model.theme.custom.ThemeComponentOption;
-import com.android.customization.model.theme.custom.ThemeComponentOption.ColorOption;
-import com.android.customization.model.theme.custom.ThemeComponentOption.FontOption;
-import com.android.customization.model.theme.custom.ThemeComponentOption.IconOption;
-import com.android.customization.model.theme.custom.ThemeComponentOption.ShapeOption;
-import com.android.customization.model.theme.custom.ThemeComponentOptionProvider;
-import com.android.customization.module.CustomizationInjector;
-import com.android.customization.module.ThemesUserEventLogger;
-import com.android.customization.picker.theme.CustomThemeStepFragment.CustomThemeComponentStepHost;
-import com.android.wallpaper.R;
-import com.android.wallpaper.module.InjectorProvider;
-import com.android.wallpaper.picker.AppbarFragment.AppbarFragmentHost;
-
-import org.json.JSONException;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class CustomThemeActivity extends FragmentActivity implements
-        AppbarFragmentHost, CustomThemeComponentStepHost {
-    public static final String EXTRA_THEME_ID = "CustomThemeActivity.ThemeId";
-    public static final String EXTRA_THEME_TITLE = "CustomThemeActivity.ThemeTitle";
-    public static final String EXTRA_THEME_PACKAGES = "CustomThemeActivity.ThemePackages";
-    public static final int REQUEST_CODE_CUSTOM_THEME = 1;
-    public static final int RESULT_THEME_DELETED = 10;
-    public static final int RESULT_THEME_APPLIED = 20;
-
-    private static final String TAG = "CustomThemeActivity";
-    private static final String KEY_STATE_CURRENT_STEP = "CustomThemeActivity.currentStep";
-
-    private ThemesUserEventLogger mUserEventLogger;
-    private List<ComponentStep<?>> mSteps;
-    private int mCurrentStep;
-    private CustomThemeManager mCustomThemeManager;
-    private ThemeManager mThemeManager;
-    private TextView mNextButton;
-    private TextView mPreviousButton;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        CustomizationInjector injector = (CustomizationInjector) InjectorProvider.getInjector();
-        mUserEventLogger = (ThemesUserEventLogger) injector.getUserEventLogger(this);
-        ThemeBundleProvider themeProvider =
-                new DefaultThemeProvider(this, injector.getCustomizationPreferences(this));
-        Intent intent = getIntent();
-        CustomTheme customTheme = null;
-        if (intent != null && intent.hasExtra(EXTRA_THEME_PACKAGES)
-                && intent.hasExtra(EXTRA_THEME_TITLE) && intent.hasExtra(EXTRA_THEME_ID)) {
-            try {
-                CustomTheme.Builder themeBuilder = themeProvider.parseCustomTheme(
-                        intent.getStringExtra(EXTRA_THEME_PACKAGES));
-                if (themeBuilder != null) {
-                    themeBuilder.setId(intent.getStringExtra(EXTRA_THEME_ID));
-                    themeBuilder.setTitle(intent.getStringExtra(EXTRA_THEME_TITLE));
-                    customTheme = themeBuilder.build(this);
-                }
-            } catch (JSONException e) {
-                Log.w(TAG, "Couldn't parse provided custom theme, will override it");
-            }
-        }
-
-        mThemeManager = injector.getThemeManager(
-                new DefaultThemeProvider(this, injector.getCustomizationPreferences(this)),
-                this,
-                new OverlayManagerCompat(this),
-                mUserEventLogger);
-        mThemeManager.fetchOptions(null, false);
-        mCustomThemeManager = CustomThemeManager.create(customTheme, mThemeManager);
-        if (savedInstanceState != null) {
-            mCustomThemeManager.readCustomTheme(themeProvider, savedInstanceState);
-        }
-
-        int currentStep = 0;
-        if (savedInstanceState != null) {
-            currentStep = savedInstanceState.getInt(KEY_STATE_CURRENT_STEP);
-        }
-        initSteps(currentStep);
-
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_custom_theme);
-        mNextButton = findViewById(R.id.next_button);
-        mNextButton.setOnClickListener(view -> onNextOrApply());
-        mPreviousButton = findViewById(R.id.previous_button);
-        mPreviousButton.setOnClickListener(view -> onBackPressed());
-
-        FragmentManager fm = getSupportFragmentManager();
-        Fragment fragment = fm.findFragmentById(R.id.fragment_container);
-        if (fragment == null) {
-            // Navigate to the first step
-            navigateToStep(0);
-        }
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putInt(KEY_STATE_CURRENT_STEP, mCurrentStep);
-        if (mCustomThemeManager != null) {
-            mCustomThemeManager.saveCustomTheme(this, outState);
-        }
-    }
-
-    private void navigateToStep(int i) {
-        FragmentManager fragmentManager = getSupportFragmentManager();
-        ComponentStep step = mSteps.get(i);
-        Fragment fragment = step.getFragment(mCustomThemeManager.getOriginalTheme().getTitle());
-
-        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
-        fragmentTransaction.replace(R.id.fragment_container, fragment);
-        // Don't add step 0 to the back stack so that going back from it just finishes the Activity
-        if (i > 0) {
-            fragmentTransaction.addToBackStack("Step " + i);
-        }
-        fragmentTransaction.commit();
-        fragmentManager.executePendingTransactions();
-        updateNavigationButtonLabels();
-    }
-
-    private void initSteps(int currentStep) {
-        mSteps = new ArrayList<>();
-        OverlayManagerCompat manager = new OverlayManagerCompat(this);
-        mSteps.add(new FontStep(new FontOptionsProvider(this, manager), 0));
-        mSteps.add(new IconStep(new IconOptionsProvider(this, manager), 1));
-        mSteps.add(new ColorStep(new ColorOptionsProvider(this, manager, mCustomThemeManager), 2));
-        mSteps.add(new ShapeStep(new ShapeOptionsProvider(this, manager), 3));
-        mSteps.add(new NameStep(4));
-        mCurrentStep = currentStep;
-    }
-
-    private void onNextOrApply() {
-        CustomThemeStepFragment stepFragment = getCurrentStepFragment();
-        if (stepFragment instanceof CustomThemeComponentFragment) {
-            CustomThemeComponentFragment fragment = (CustomThemeComponentFragment) stepFragment;
-            mCustomThemeManager.apply(fragment.getSelectedOption(), new Callback() {
-                @Override
-                public void onSuccess() {
-                    navigateToStep(mCurrentStep + 1);
-                }
-
-                @Override
-                public void onError(@Nullable Throwable throwable) {
-                    Log.w(TAG, "Error applying custom theme component", throwable);
-                    Toast.makeText(CustomThemeActivity.this, R.string.apply_theme_error_msg,
-                            Toast.LENGTH_LONG).show();
-                }
-            });
-        } else if (stepFragment instanceof CustomThemeNameFragment) {
-            CustomThemeNameFragment fragment = (CustomThemeNameFragment) stepFragment;
-            CustomTheme originalTheme = mCustomThemeManager.getOriginalTheme();
-
-            // We're on the last step, apply theme and leave
-            CustomTheme themeToApply = mCustomThemeManager.buildPartialCustomTheme(this,
-                    originalTheme.getId(), fragment.getThemeName());
-
-            // If the current theme is equal to the original theme being edited, then
-            // don't search for an equivalent, let the user apply the same one by keeping
-            // it null.
-            ThemeBundle equivalent = (originalTheme.isEquivalent(themeToApply))
-                    ? null : mThemeManager.findThemeByPackages(themeToApply);
-
-            if (equivalent != null) {
-                Builder builder =
-                        new Builder(CustomThemeActivity.this);
-                builder.setTitle(getString(R.string.use_style_instead_title,
-                        equivalent.getTitle()))
-                        .setMessage(getString(R.string.use_style_instead_body,
-                                equivalent.getTitle()))
-                        .setPositiveButton(getString(R.string.use_style_button,
-                                equivalent.getTitle()),
-                                (dialogInterface, i) -> applyTheme(equivalent))
-                        .setNegativeButton(R.string.no_thanks, null)
-                        .create()
-                        .show();
-            } else {
-                applyTheme(themeToApply);
-            }
-        } else {
-            throw new IllegalStateException("Unknown CustomThemeStepFragment");
-        }
-    }
-
-    private void applyTheme(ThemeBundle themeToApply) {
-        mThemeManager.apply(themeToApply, new Callback() {
-            @Override
-            public void onSuccess() {
-                overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
-                Toast.makeText(getApplicationContext(), R.string.applied_theme_msg,
-                        Toast.LENGTH_LONG).show();
-                setResult(RESULT_THEME_APPLIED);
-                finish();
-            }
-
-            @Override
-            public void onError(@Nullable Throwable throwable) {
-                Log.w(TAG, "Error applying custom theme", throwable);
-                Toast.makeText(CustomThemeActivity.this,
-                        R.string.apply_theme_error_msg,
-                        Toast.LENGTH_LONG).show();
-            }
-        });
-    }
-
-    private CustomThemeStepFragment getCurrentStepFragment() {
-        return (CustomThemeStepFragment)
-                getSupportFragmentManager().findFragmentById(R.id.fragment_container);
-    }
-
-    @Override
-    public void setCurrentStep(int i) {
-        mCurrentStep = i;
-        updateNavigationButtonLabels();
-    }
-
-    private void updateNavigationButtonLabels() {
-        mPreviousButton.setVisibility(mCurrentStep == 0 ? View.INVISIBLE : View.VISIBLE);
-        mNextButton.setText((mCurrentStep < mSteps.size() -1) ? R.string.custom_theme_next
-                : R.string.apply_btn);
-    }
-
-    @Override
-    public void delete() {
-        mThemeManager.removeCustomTheme(mCustomThemeManager.getOriginalTheme());
-        setResult(RESULT_THEME_DELETED);
-        finish();
-    }
-
-    @Override
-    public void cancel() {
-        finish();
-    }
-
-    @Override
-    public ThemeComponentOptionProvider<? extends ThemeComponentOption> getComponentOptionProvider(
-            int position) {
-        return mSteps.get(position).provider;
-    }
-
-    @Override
-    public CustomThemeManager getCustomThemeManager() {
-        return mCustomThemeManager;
-    }
-
-    @Override
-    public void onUpArrowPressed() {
-        // Skip it because CustomThemeStepFragment will implement cancel button
-        // (instead of up arrow) on action bar.
-    }
-
-    @Override
-    public boolean isUpArrowSupported() {
-        // Skip it because CustomThemeStepFragment will implement cancel button
-        // (instead of up arrow) on action bar.
-        return false;
-    }
-
-    /**
-     * Represents a step in selecting a custom theme, picking a particular component (eg font,
-     * color, shape, etc).
-     * Each step has a Fragment instance associated that instances of this class will provide.
-     */
-    private static abstract class ComponentStep<T extends ThemeComponentOption> {
-        @StringRes final int titleResId;
-        @StringRes final int accessibilityResId;
-        final ThemeComponentOptionProvider<T> provider;
-        final int position;
-        private CustomThemeStepFragment mFragment;
-
-        protected ComponentStep(@StringRes int titleResId, @StringRes int accessibilityResId,
-                ThemeComponentOptionProvider<T> provider, int position) {
-            this.titleResId = titleResId;
-            this.accessibilityResId = accessibilityResId;
-            this.provider = provider;
-            this.position = position;
-        }
-
-        CustomThemeStepFragment getFragment(String title) {
-            if (mFragment == null) {
-                mFragment = createFragment(title);
-            }
-            return mFragment;
-        }
-
-        /**
-         * @return a newly created fragment that will handle this step's UI.
-         */
-        abstract CustomThemeStepFragment createFragment(String title);
-    }
-
-    private class FontStep extends ComponentStep<FontOption> {
-
-        protected FontStep(ThemeComponentOptionProvider<FontOption> provider,
-                int position) {
-            super(R.string.font_component_title, R.string.accessibility_custom_font_title, provider,
-                    position);
-        }
-
-        @Override
-        CustomThemeComponentFragment createFragment(String title) {
-            return CustomThemeComponentFragment.newInstance(
-                    title,
-                    position,
-                    titleResId,
-                    accessibilityResId);
-        }
-    }
-
-    private class IconStep extends ComponentStep<IconOption> {
-
-        protected IconStep(ThemeComponentOptionProvider<IconOption> provider,
-                int position) {
-            super(R.string.icon_component_title, R.string.accessibility_custom_icon_title, provider,
-                    position);
-        }
-
-        @Override
-        CustomThemeComponentFragment createFragment(String title) {
-            return CustomThemeComponentFragment.newInstance(
-                    title,
-                    position,
-                    titleResId,
-                    accessibilityResId);
-        }
-    }
-
-    private class ColorStep extends ComponentStep<ColorOption> {
-
-        protected ColorStep(ThemeComponentOptionProvider<ColorOption> provider,
-                int position) {
-            super(R.string.color_component_title, R.string.accessibility_custom_color_title,
-                    provider, position);
-        }
-
-        @Override
-        CustomThemeComponentFragment createFragment(String title) {
-            return CustomThemeComponentFragment.newInstance(
-                    title,
-                    position,
-                    titleResId,
-                    accessibilityResId);
-        }
-    }
-
-    private class ShapeStep extends ComponentStep<ShapeOption> {
-
-        protected ShapeStep(ThemeComponentOptionProvider<ShapeOption> provider,
-                int position) {
-            super(R.string.shape_component_title, R.string.accessibility_custom_shape_title,
-                    provider, position);
-        }
-
-        @Override
-        CustomThemeComponentFragment createFragment(String title) {
-            return CustomThemeComponentFragment.newInstance(
-                    title,
-                    position,
-                    titleResId,
-                    accessibilityResId);
-        }
-    }
-
-    private class NameStep extends ComponentStep {
-
-        protected NameStep(int position) {
-            super(R.string.name_component_title, R.string.accessibility_custom_name_title, null,
-                    position);
-        }
-
-        @Override
-        CustomThemeNameFragment createFragment(String title) {
-            return CustomThemeNameFragment.newInstance(
-                    title,
-                    position,
-                    titleResId,
-                    accessibilityResId);
-        }
-    }
-}
diff --git a/src/com/android/customization/picker/theme/CustomThemeComponentFragment.java b/src/com/android/customization/picker/theme/CustomThemeComponentFragment.java
deleted file mode 100644
index a1e9967..0000000
--- a/src/com/android/customization/picker/theme/CustomThemeComponentFragment.java
+++ /dev/null
@@ -1,121 +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.picker.theme;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.customization.model.theme.custom.ThemeComponentOption;
-import com.android.customization.model.theme.custom.ThemeComponentOptionProvider;
-import com.android.customization.widget.OptionSelectorController;
-import com.android.customization.widget.OptionSelectorController.CheckmarkStyle;
-import com.android.wallpaper.R;
-import com.android.wallpaper.picker.AppbarFragment;
-
-public class CustomThemeComponentFragment extends CustomThemeStepFragment {
-    private static final String ARG_USE_GRID_LAYOUT = "CustomThemeComponentFragment.use_grid";;
-
-    public static CustomThemeComponentFragment newInstance(CharSequence toolbarTitle, int position,
-            int titleResId, int accessibilityResId) {
-        return newInstance(toolbarTitle, position, titleResId, accessibilityResId, false);
-    }
-
-    public static CustomThemeComponentFragment newInstance(CharSequence toolbarTitle, int position,
-            int titleResId, int accessibilityResId, boolean allowGridLayout) {
-        CustomThemeComponentFragment fragment = new CustomThemeComponentFragment();
-        Bundle arguments = AppbarFragment.createArguments(toolbarTitle);
-        arguments.putInt(ARG_KEY_POSITION, position);
-        arguments.putInt(ARG_KEY_TITLE_RES_ID, titleResId);
-        arguments.putInt(ARG_KEY_ACCESSIBILITY_RES_ID, accessibilityResId);
-        arguments.putBoolean(ARG_USE_GRID_LAYOUT, allowGridLayout);
-        fragment.setArguments(arguments);
-        return fragment;
-    }
-
-    private ThemeComponentOptionProvider<? extends ThemeComponentOption> mProvider;
-    private boolean mUseGridLayout;
-
-    private RecyclerView mOptionsContainer;
-    private OptionSelectorController<ThemeComponentOption> mOptionsController;
-    private ThemeComponentOption mSelectedOption;
-
-    @Override
-    public void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        mUseGridLayout = getArguments().getBoolean(ARG_USE_GRID_LAYOUT);
-        mProvider = mHost.getComponentOptionProvider(mPosition);
-    }
-
-    @Nullable
-    @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
-            @Nullable Bundle savedInstanceState) {
-        View view = super.onCreateView(inflater, container, savedInstanceState);
-        mOptionsContainer = view.findViewById(R.id.options_container);
-        mPreviewContainer = view.findViewById(R.id.component_preview_content);
-        mTitle = view.findViewById(R.id.component_options_title);
-        mTitle.setText(mTitleResId);
-        setUpOptions();
-
-        return view;
-    }
-
-    @Override
-    protected int getFragmentLayoutResId() {
-        return R.layout.fragment_custom_theme_component;
-    }
-
-    public ThemeComponentOption getSelectedOption() {
-        return mSelectedOption;
-    }
-
-    private void bindPreview() {
-        mSelectedOption.bindPreview(mPreviewContainer);
-    }
-
-    private void setUpOptions() {
-        mProvider.fetch(options -> {
-            mOptionsController = new OptionSelectorController(
-                    mOptionsContainer, options, mUseGridLayout, CheckmarkStyle.NONE);
-
-            mOptionsController.addListener(selected -> {
-                mSelectedOption = (ThemeComponentOption) selected;
-                bindPreview();
-                // Preview and apply. The selection will be kept whatever user goes to previous page
-                // or encounter system config changes, the current selection can be recovered.
-                mCustomThemeManager.apply(mSelectedOption, /* callback= */ null);
-            });
-            mOptionsController.initOptions(mCustomThemeManager);
-
-            for (ThemeComponentOption option : options) {
-                if (option.isActive(mCustomThemeManager)) {
-                    mSelectedOption = option;
-                    break;
-                }
-            }
-            if (mSelectedOption == null) {
-                mSelectedOption = options.get(0);
-            }
-            mOptionsController.setSelectedOption(mSelectedOption);
-        }, false);
-    }
-}
diff --git a/src/com/android/customization/picker/theme/CustomThemeNameFragment.java b/src/com/android/customization/picker/theme/CustomThemeNameFragment.java
deleted file mode 100644
index ea9099f..0000000
--- a/src/com/android/customization/picker/theme/CustomThemeNameFragment.java
+++ /dev/null
@@ -1,132 +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.picker.theme;
-
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.EditText;
-import android.widget.ImageView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.customization.model.theme.ThemeBundle.PreviewInfo;
-import com.android.customization.model.theme.custom.CustomTheme;
-import com.android.customization.module.CustomizationInjector;
-import com.android.customization.module.CustomizationPreferences;
-import com.android.customization.picker.WallpaperPreviewer;
-import com.android.wallpaper.R;
-import com.android.wallpaper.module.CurrentWallpaperInfoFactory;
-import com.android.wallpaper.module.InjectorProvider;
-import com.android.wallpaper.picker.AppbarFragment;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-
-/** Fragment of naming a custom theme. */
-public class CustomThemeNameFragment extends CustomThemeStepFragment {
-
-    private static final String TAG = "CustomThemeNameFragment";
-
-    public static CustomThemeNameFragment newInstance(CharSequence toolbarTitle, int position,
-            int titleResId, int accessibilityResId) {
-        CustomThemeNameFragment fragment = new CustomThemeNameFragment();
-        Bundle arguments = AppbarFragment.createArguments(toolbarTitle);
-        arguments.putInt(ARG_KEY_POSITION, position);
-        arguments.putInt(ARG_KEY_TITLE_RES_ID, titleResId);
-        arguments.putInt(ARG_KEY_ACCESSIBILITY_RES_ID, accessibilityResId);
-        fragment.setArguments(arguments);
-        return fragment;
-    }
-
-    private EditText mNameEditor;
-    private ImageView mWallpaperImage;
-    private ThemeOptionPreviewer mThemeOptionPreviewer;
-    private CustomizationPreferences mCustomizationPreferences;
-
-    @Nullable
-    @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
-            @Nullable Bundle savedInstanceState) {
-        View view = super.onCreateView(inflater, container, savedInstanceState);
-        mTitle = view.findViewById(R.id.component_options_title);
-        mTitle.setText(mTitleResId);
-        CurrentWallpaperInfoFactory currentWallpaperFactory = InjectorProvider.getInjector()
-                .getCurrentWallpaperInfoFactory(getActivity().getApplicationContext());
-        CustomizationInjector injector = (CustomizationInjector) InjectorProvider.getInjector();
-        mCustomizationPreferences = injector.getCustomizationPreferences(getContext());
-
-        // Set theme option.
-        ViewGroup previewContainer = view.findViewById(R.id.theme_preview_container);
-        mThemeOptionPreviewer = new ThemeOptionPreviewer(getLifecycle(), getContext(),
-                previewContainer);
-        PreviewInfo previewInfo = mCustomThemeManager.buildCustomThemePreviewInfo(getContext());
-        mThemeOptionPreviewer.setPreviewInfo(previewInfo);
-
-        // Set wallpaper background.
-        mWallpaperImage = view.findViewById(R.id.wallpaper_preview_image);
-        final WallpaperPreviewer wallpaperPreviewer = new WallpaperPreviewer(
-                getLifecycle(),
-                getActivity(),
-                mWallpaperImage,
-                view.findViewById(R.id.wallpaper_preview_surface));
-        currentWallpaperFactory.createCurrentWallpaperInfos(
-                (homeWallpaper, lockWallpaper, presentationMode) -> {
-                    wallpaperPreviewer.setWallpaper(homeWallpaper,
-                            mThemeOptionPreviewer::updateColorForLauncherWidgets);
-                }, false);
-
-        // Set theme default name.
-        mNameEditor = view.findViewById(R.id.custom_theme_name);
-        mNameEditor.setText(getOriginalThemeName());
-        return view;
-    }
-
-    private String getOriginalThemeName() {
-        CustomTheme originalTheme = mCustomThemeManager.getOriginalTheme();
-        if (originalTheme == null || !originalTheme.isDefined()) {
-            // For new custom theme. use custom themes amount plus 1 as default naming.
-            String serializedThemes = mCustomizationPreferences.getSerializedCustomThemes();
-            int customThemesCount = 0;
-            if (!TextUtils.isEmpty(serializedThemes)) {
-                try {
-                    JSONArray customThemes = new JSONArray(serializedThemes);
-                    customThemesCount = customThemes.length();
-                } catch (JSONException e) {
-                    Log.w(TAG, "Couldn't read stored custom theme");
-                }
-            }
-            return getContext().getString(
-                    R.string.custom_theme_title, customThemesCount + 1);
-        } else {
-            // For existing custom theme, keep its name as default naming.
-            return originalTheme.getTitle();
-        }
-    }
-
-    @Override
-    protected int getFragmentLayoutResId() {
-        return R.layout.fragment_custom_theme_name;
-    }
-
-    public String getThemeName() {
-        return mNameEditor.getText().toString();
-    }
-}
diff --git a/src/com/android/customization/picker/theme/CustomThemeStepFragment.java b/src/com/android/customization/picker/theme/CustomThemeStepFragment.java
deleted file mode 100644
index 3f07431..0000000
--- a/src/com/android/customization/picker/theme/CustomThemeStepFragment.java
+++ /dev/null
@@ -1,116 +0,0 @@
-package com.android.customization.picker.theme;
-
-import android.app.AlertDialog;
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.annotation.StringRes;
-
-import com.android.customization.model.theme.custom.CustomThemeManager;
-import com.android.customization.model.theme.custom.ThemeComponentOption;
-import com.android.customization.model.theme.custom.ThemeComponentOptionProvider;
-import com.android.wallpaper.R;
-import com.android.wallpaper.picker.AppbarFragment;
-
-abstract class CustomThemeStepFragment extends AppbarFragment {
-    protected static final String ARG_KEY_POSITION = "CustomThemeStepFragment.position";
-    protected static final String ARG_KEY_TITLE_RES_ID = "CustomThemeStepFragment.title_res";
-    protected static final String ARG_KEY_ACCESSIBILITY_RES_ID =
-            "CustomThemeStepFragment.accessibility_res";
-    protected CustomThemeComponentStepHost mHost;
-    protected CustomThemeManager mCustomThemeManager;
-    protected int mPosition;
-    protected ViewGroup mPreviewContainer;
-    protected TextView mTitle;
-    @StringRes
-    protected int mTitleResId;
-    @StringRes
-    protected int mAccessibilityResId;
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-        mHost = (CustomThemeComponentStepHost) context;
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        mHost.setCurrentStep(mPosition);
-    }
-
-    @Override
-    public void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        mPosition = getArguments().getInt(ARG_KEY_POSITION);
-        mTitleResId = getArguments().getInt(ARG_KEY_TITLE_RES_ID);
-        mAccessibilityResId = getArguments().getInt(ARG_KEY_ACCESSIBILITY_RES_ID);
-        mCustomThemeManager = mHost.getCustomThemeManager();
-    }
-
-    @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
-            @Nullable Bundle savedInstanceState) {
-        View view = inflater.inflate(
-                getFragmentLayoutResId(), container, /* attachToRoot */ false);
-        // No original theme means it's a new one, so no toolbar icon for deleting it is needed
-        if (mCustomThemeManager.getOriginalTheme() == null
-                || !mCustomThemeManager.getOriginalTheme().isDefined()) {
-            setUpToolbar(view);
-        } else {
-            setUpToolbar(view, R.menu.custom_theme_editor_menu);
-            mToolbar.getMenu().getItem(0).setIconTintList(
-                    getContext().getColorStateList(R.color.toolbar_icon_tint));
-        }
-        Drawable closeIcon = getResources().getDrawable(R.drawable.ic_close_24px, null).mutate();
-        closeIcon.setTintList(getResources().getColorStateList(R.color.toolbar_icon_tint, null));
-        mToolbar.setNavigationIcon(closeIcon);
-
-        mToolbar.setNavigationContentDescription(R.string.cancel);
-        mToolbar.setNavigationOnClickListener(v -> mHost.cancel());
-
-        mPreviewContainer = view.findViewById(R.id.component_preview_content);
-        return view;
-    }
-
-    @Override
-    protected String getAccessibilityTitle() {
-        return getString(mAccessibilityResId);
-    }
-
-    @Override
-    public boolean onMenuItemClick(MenuItem item) {
-        if (item.getItemId() == R.id.custom_theme_delete) {
-            AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
-            builder.setMessage(R.string.delete_custom_theme_confirmation)
-                    .setPositiveButton(R.string.delete_custom_theme_button,
-                            (dialogInterface, i) -> mHost.delete())
-                    .setNegativeButton(R.string.cancel, null)
-                    .create()
-                    .show();
-            return true;
-        }
-        return super.onMenuItemClick(item);
-    }
-
-    protected abstract int getFragmentLayoutResId();
-
-    public interface CustomThemeComponentStepHost {
-        void delete();
-        void cancel();
-        ThemeComponentOptionProvider<? extends ThemeComponentOption> getComponentOptionProvider(
-                int position);
-
-        CustomThemeManager getCustomThemeManager();
-
-        void setCurrentStep(int step);
-    }
-}
diff --git a/src/com/android/customization/picker/theme/ThemeFragment.java b/src/com/android/customization/picker/theme/ThemeFragment.java
deleted file mode 100644
index 3a9a56f..0000000
--- a/src/com/android/customization/picker/theme/ThemeFragment.java
+++ /dev/null
@@ -1,402 +0,0 @@
-/*
- * Copyright (C) 2018 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.theme;
-
-import static android.app.Activity.RESULT_OK;
-
-import static com.android.wallpaper.widget.BottomActionBar.BottomAction.APPLY;
-import static com.android.wallpaper.widget.BottomActionBar.BottomAction.CUSTOMIZE;
-import static com.android.wallpaper.widget.BottomActionBar.BottomAction.INFORMATION;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.Toast;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.core.widget.ContentLoadingProgressBar;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.customization.model.CustomizationManager.Callback;
-import com.android.customization.model.CustomizationManager.OptionsFetchedListener;
-import com.android.customization.model.CustomizationOption;
-import com.android.customization.model.theme.ThemeBundle;
-import com.android.customization.model.theme.ThemeManager;
-import com.android.customization.model.theme.custom.CustomTheme;
-import com.android.customization.module.ThemesUserEventLogger;
-import com.android.customization.picker.WallpaperPreviewer;
-import com.android.customization.widget.OptionSelectorController;
-import com.android.wallpaper.R;
-import com.android.wallpaper.model.WallpaperInfo;
-import com.android.wallpaper.module.CurrentWallpaperInfoFactory;
-import com.android.wallpaper.module.InjectorProvider;
-import com.android.wallpaper.picker.AppbarFragment;
-import com.android.wallpaper.widget.BottomActionBar;
-import com.android.wallpaper.widget.BottomActionBar.AccessibilityCallback;
-import com.android.wallpaper.widget.BottomActionBar.BottomSheetContent;
-
-import java.util.List;
-
-/**
- * Fragment that contains the main UI for selecting and applying a ThemeBundle.
- */
-public class ThemeFragment extends AppbarFragment {
-
-    private static final String TAG = "ThemeFragment";
-    private static final String KEY_SELECTED_THEME = "ThemeFragment.SelectedThemeBundle";
-    private static final String KEY_STATE_BOTTOM_ACTION_BAR_VISIBLE =
-            "ThemeFragment.bottomActionBarVisible";
-    private static final int FULL_PREVIEW_REQUEST_CODE = 1000;
-
-    /**
-     * Interface to be implemented by an Activity hosting a {@link ThemeFragment}
-     */
-    public interface ThemeFragmentHost {
-        ThemeManager getThemeManager();
-    }
-    public static ThemeFragment newInstance(CharSequence title) {
-        ThemeFragment fragment = new ThemeFragment();
-        fragment.setArguments(AppbarFragment.createArguments(title));
-        return fragment;
-    }
-
-    private RecyclerView mOptionsContainer;
-    private OptionSelectorController<ThemeBundle> mOptionsController;
-    private ThemeManager mThemeManager;
-    private ThemesUserEventLogger mEventLogger;
-    private ThemeBundle mSelectedTheme;
-    private ContentLoadingProgressBar mLoading;
-    private View mContent;
-    private View mError;
-    private WallpaperInfo mCurrentHomeWallpaper;
-    private CurrentWallpaperInfoFactory mCurrentWallpaperFactory;
-    private BottomActionBar mBottomActionBar;
-    private WallpaperPreviewer mWallpaperPreviewer;
-    private ImageView mWallpaperImage;
-    private ThemeOptionPreviewer mThemeOptionPreviewer;
-    private ThemeInfoView mThemeInfoView;
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-        mThemeManager = ((ThemeFragmentHost) context).getThemeManager();
-        mEventLogger = (ThemesUserEventLogger)
-                InjectorProvider.getInjector().getUserEventLogger(context);
-    }
-
-    @Nullable
-    @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
-            @Nullable Bundle savedInstanceState) {
-        View view = inflater.inflate(
-                R.layout.fragment_theme_picker, container, /* attachToRoot */ false);
-        setUpToolbar(view);
-
-        mContent = view.findViewById(R.id.content_section);
-        mLoading = view.findViewById(R.id.loading_indicator);
-        mError = view.findViewById(R.id.error_section);
-        mCurrentWallpaperFactory = InjectorProvider.getInjector()
-                .getCurrentWallpaperInfoFactory(getActivity().getApplicationContext());
-        mOptionsContainer = view.findViewById(R.id.options_container);
-
-        mThemeOptionPreviewer = new ThemeOptionPreviewer(
-                getLifecycle(),
-                getContext(),
-                view.findViewById(R.id.theme_preview_container));
-
-        // Set Wallpaper background.
-        mWallpaperImage = view.findViewById(R.id.wallpaper_preview_image);
-        mWallpaperPreviewer = new WallpaperPreviewer(
-                getLifecycle(),
-                getActivity(),
-                mWallpaperImage,
-                view.findViewById(R.id.wallpaper_preview_surface));
-        mCurrentWallpaperFactory.createCurrentWallpaperInfos(
-                (homeWallpaper, lockWallpaper, presentationMode) -> {
-                    mCurrentHomeWallpaper = homeWallpaper;
-                    mWallpaperPreviewer.setWallpaper(mCurrentHomeWallpaper,
-                            mThemeOptionPreviewer::updateColorForLauncherWidgets);
-                }, false);
-        return view;
-    }
-
-    @Override
-    protected void onBottomActionBarReady(BottomActionBar bottomActionBar) {
-        super.onBottomActionBarReady(bottomActionBar);
-        mBottomActionBar = bottomActionBar;
-        mBottomActionBar.showActionsOnly(INFORMATION, APPLY);
-        mBottomActionBar.setActionClickListener(APPLY, v -> {
-            mBottomActionBar.disableActions();
-            applyTheme();
-        });
-
-        mBottomActionBar.bindBottomSheetContentWithAction(
-                new ThemeInfoContent(getContext()), INFORMATION);
-        mBottomActionBar.setActionClickListener(CUSTOMIZE, this::onCustomizeClicked);
-
-        // Update target view's accessibility param since it will be blocked by the bottom sheet
-        // when expanded.
-        mBottomActionBar.setAccessibilityCallback(new AccessibilityCallback() {
-            @Override
-            public void onBottomSheetCollapsed() {
-                mOptionsContainer.setImportantForAccessibility(
-                        View.IMPORTANT_FOR_ACCESSIBILITY_YES);
-            }
-
-            @Override
-            public void onBottomSheetExpanded() {
-                mOptionsContainer.setImportantForAccessibility(
-                        View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
-            }
-        });
-    }
-
-    @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
-        // Setup options here when all views are ready(including BottomActionBar), since we need to
-        // update views after options are loaded.
-        setUpOptions(savedInstanceState);
-    }
-
-    private void applyTheme() {
-        mThemeManager.apply(mSelectedTheme, new Callback() {
-            @Override
-            public void onSuccess() {
-                Toast.makeText(getContext(), R.string.applied_theme_msg, Toast.LENGTH_LONG).show();
-                getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
-                getActivity().finish();
-            }
-
-            @Override
-            public void onError(@Nullable Throwable throwable) {
-                Log.w(TAG, "Error applying theme", throwable);
-                // Since we disabled it when clicked apply button.
-                mBottomActionBar.enableActions();
-                mBottomActionBar.hide();
-                Toast.makeText(getContext(), R.string.apply_theme_error_msg,
-                        Toast.LENGTH_LONG).show();
-            }
-        });
-    }
-
-    @Override
-    public void onSaveInstanceState(@NonNull Bundle outState) {
-        super.onSaveInstanceState(outState);
-        if (mSelectedTheme != null && !mSelectedTheme.isActive(mThemeManager)) {
-            outState.putString(KEY_SELECTED_THEME, mSelectedTheme.getSerializedPackages());
-        }
-        if (mBottomActionBar != null) {
-            outState.putBoolean(KEY_STATE_BOTTOM_ACTION_BAR_VISIBLE, mBottomActionBar.isVisible());
-        }
-    }
-
-    @Override
-    public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (requestCode == CustomThemeActivity.REQUEST_CODE_CUSTOM_THEME) {
-            if (resultCode == CustomThemeActivity.RESULT_THEME_DELETED) {
-                mSelectedTheme = null;
-                reloadOptions();
-            } else if (resultCode == CustomThemeActivity.RESULT_THEME_APPLIED) {
-                getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
-                getActivity().finish();
-            } else {
-                if (mSelectedTheme != null) {
-                    mOptionsController.setSelectedOption(mSelectedTheme);
-                    // Set selected option above will show BottomActionBar,
-                    // hide BottomActionBar for the mis-trigger.
-                    mBottomActionBar.hide();
-                } else {
-                    reloadOptions();
-                }
-            }
-        } else if (requestCode == FULL_PREVIEW_REQUEST_CODE && resultCode == RESULT_OK) {
-            applyTheme();
-        }
-        super.onActivityResult(requestCode, resultCode, data);
-    }
-
-    private void onCustomizeClicked(View view) {
-        if (mSelectedTheme instanceof CustomTheme) {
-            navigateToCustomTheme((CustomTheme) mSelectedTheme);
-        }
-    }
-
-    private void hideError() {
-        mContent.setVisibility(View.VISIBLE);
-        mError.setVisibility(View.GONE);
-    }
-
-    private void showError() {
-        mLoading.hide();
-        mContent.setVisibility(View.GONE);
-        mError.setVisibility(View.VISIBLE);
-    }
-
-    private void setUpOptions(@Nullable Bundle savedInstanceState) {
-        hideError();
-        mLoading.show();
-        mThemeManager.fetchOptions(new OptionsFetchedListener<ThemeBundle>() {
-            @Override
-            public void onOptionsLoaded(List<ThemeBundle> options) {
-                mOptionsController = new OptionSelectorController<>(mOptionsContainer, options);
-                mOptionsController.initOptions(mThemeManager);
-
-                // Find out the selected theme option.
-                // 1. Find previously selected theme.
-                String previouslySelected = savedInstanceState != null
-                        ? savedInstanceState.getString(KEY_SELECTED_THEME) : null;
-                ThemeBundle previouslySelectedTheme = null;
-                ThemeBundle activeTheme = null;
-                for (ThemeBundle theme : options) {
-                    if (previouslySelected != null
-                            && previouslySelected.equals(theme.getSerializedPackages())) {
-                        previouslySelectedTheme = theme;
-                    }
-                    if (theme.isActive(mThemeManager)) {
-                        activeTheme = theme;
-                    }
-                }
-                // 2. Use active theme if no previously selected theme.
-                mSelectedTheme = previouslySelectedTheme != null
-                        ? previouslySelectedTheme
-                        : activeTheme;
-                // 3. Select the first system theme(default theme currently)
-                //    if there is no matching custom enabled theme.
-                if (mSelectedTheme == null) {
-                    mSelectedTheme = findFirstSystemThemeBundle(options);
-                }
-
-                mOptionsController.setSelectedOption(mSelectedTheme);
-                onOptionSelected(mSelectedTheme);
-                restoreBottomActionBarVisibility(savedInstanceState);
-
-                mOptionsController.addListener(selectedOption -> {
-                    onOptionSelected(selectedOption);
-                    if (!isAddCustomThemeOption(selectedOption)) {
-                        mBottomActionBar.show();
-                    }
-                });
-                mLoading.hide();
-            }
-            @Override
-            public void onError(@Nullable Throwable throwable) {
-                if (throwable != null) {
-                    Log.e(TAG, "Error loading theme bundles", throwable);
-                }
-                showError();
-            }
-        }, false);
-    }
-
-    private void reloadOptions() {
-        mThemeManager.fetchOptions(options -> {
-            mOptionsController.resetOptions(options);
-            for (ThemeBundle theme : options) {
-                if (theme.isActive(mThemeManager)) {
-                    mSelectedTheme = theme;
-                    break;
-                }
-            }
-            if (mSelectedTheme == null) {
-                mSelectedTheme = findFirstSystemThemeBundle(options);
-            }
-            mOptionsController.setSelectedOption(mSelectedTheme);
-            // Set selected option above will show BottomActionBar,
-            // hide BottomActionBar for the mis-trigger.
-            mBottomActionBar.hide();
-        }, true);
-    }
-
-    private ThemeBundle findFirstSystemThemeBundle(List<ThemeBundle> options) {
-        for (ThemeBundle bundle : options) {
-            if (!(bundle instanceof CustomTheme)) {
-                return bundle;
-            }
-        }
-        return null;
-    }
-
-    private void onOptionSelected(CustomizationOption selectedOption) {
-        if (isAddCustomThemeOption(selectedOption)) {
-            navigateToCustomTheme((CustomTheme) selectedOption);
-        } else {
-            mSelectedTheme = (ThemeBundle) selectedOption;
-            mSelectedTheme.setOverrideThemeWallpaper(mCurrentHomeWallpaper);
-            mEventLogger.logThemeSelected(mSelectedTheme,
-                    selectedOption instanceof CustomTheme);
-            mThemeOptionPreviewer.setPreviewInfo(mSelectedTheme.getPreviewInfo());
-            if (mThemeInfoView != null && mSelectedTheme != null) {
-                mThemeInfoView.populateThemeInfo(mSelectedTheme);
-            }
-
-            if (selectedOption instanceof CustomTheme) {
-                mBottomActionBar.showActionsOnly(INFORMATION, CUSTOMIZE, APPLY);
-            } else {
-                mBottomActionBar.showActionsOnly(INFORMATION, APPLY);
-            }
-        }
-    }
-
-    private void restoreBottomActionBarVisibility(@Nullable Bundle savedInstanceState) {
-        boolean isBottomActionBarVisible = savedInstanceState != null
-                && savedInstanceState.getBoolean(KEY_STATE_BOTTOM_ACTION_BAR_VISIBLE);
-        if (isBottomActionBarVisible) {
-            mBottomActionBar.show();
-        } else {
-            mBottomActionBar.hide();
-        }
-    }
-
-    private boolean isAddCustomThemeOption(CustomizationOption option) {
-        return option instanceof CustomTheme && !((CustomTheme) option).isDefined();
-    }
-
-    private void navigateToCustomTheme(CustomTheme themeToEdit) {
-        Intent intent = new Intent(getActivity(), CustomThemeActivity.class);
-        intent.putExtra(CustomThemeActivity.EXTRA_THEME_TITLE, themeToEdit.getTitle());
-        intent.putExtra(CustomThemeActivity.EXTRA_THEME_ID, themeToEdit.getId());
-        intent.putExtra(CustomThemeActivity.EXTRA_THEME_PACKAGES,
-                themeToEdit.getSerializedPackages());
-        startActivityForResult(intent, CustomThemeActivity.REQUEST_CODE_CUSTOM_THEME);
-    }
-
-    private final class ThemeInfoContent extends BottomSheetContent<ThemeInfoView> {
-
-        private ThemeInfoContent(Context context) {
-            super(context);
-        }
-
-        @Override
-        public int getViewId() {
-            return R.layout.theme_info_view;
-        }
-
-        @Override
-        public void onViewCreated(ThemeInfoView view) {
-            mThemeInfoView = view;
-            if (mSelectedTheme != null) {
-                mThemeInfoView.populateThemeInfo(mSelectedTheme);
-            }
-        }
-    }
-}
diff --git a/src/com/android/customization/picker/theme/ThemeFullPreviewFragment.java b/src/com/android/customization/picker/theme/ThemeFullPreviewFragment.java
deleted file mode 100644
index 3ba64ec..0000000
--- a/src/com/android/customization/picker/theme/ThemeFullPreviewFragment.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright (C) 2020 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.theme;
-
-import static android.app.Activity.RESULT_OK;
-
-import static com.android.wallpaper.widget.BottomActionBar.BottomAction.APPLY;
-import static com.android.wallpaper.widget.BottomActionBar.BottomAction.INFORMATION;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.customization.model.theme.DefaultThemeProvider;
-import com.android.customization.model.theme.ThemeBundle;
-import com.android.customization.model.theme.ThemeBundleProvider;
-import com.android.customization.module.CustomizationInjector;
-import com.android.customization.picker.WallpaperPreviewer;
-import com.android.wallpaper.R;
-import com.android.wallpaper.model.WallpaperInfo;
-import com.android.wallpaper.module.InjectorProvider;
-import com.android.wallpaper.picker.AppbarFragment;
-import com.android.wallpaper.widget.BottomActionBar;
-import com.android.wallpaper.widget.BottomActionBar.BottomSheetContent;
-
-import com.bumptech.glide.Glide;
-
-import org.json.JSONException;
-
-/** A Fragment for theme full preview page. */
-public class ThemeFullPreviewFragment extends AppbarFragment {
-    private static final String TAG = "ThemeFullPreviewFragment";
-
-    public static final String EXTRA_THEME_OPTION_TITLE = "theme_option_title";
-    protected static final String EXTRA_THEME_OPTION = "theme_option";
-    protected static final String EXTRA_WALLPAPER_INFO = "wallpaper_info";
-    protected static final String EXTRA_CAN_APPLY_FROM_FULL_PREVIEW = "can_apply";
-
-    private WallpaperInfo mWallpaper;
-    private ThemeBundle mThemeBundle;
-    private boolean mCanApplyFromFullPreview;
-
-    /**
-     * Returns a new {@link ThemeFullPreviewFragment} with the provided title and bundle arguments
-     * set.
-     */
-    public static ThemeFullPreviewFragment newInstance(CharSequence title, Bundle intentBundle) {
-        ThemeFullPreviewFragment fragment = new ThemeFullPreviewFragment();
-        Bundle bundle = new Bundle();
-        bundle.putAll(AppbarFragment.createArguments(title));
-        bundle.putAll(intentBundle);
-        fragment.setArguments(bundle);
-        return fragment;
-    }
-
-    @Override
-    public void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        mWallpaper = getArguments().getParcelable(EXTRA_WALLPAPER_INFO);
-        mCanApplyFromFullPreview = getArguments().getBoolean(EXTRA_CAN_APPLY_FROM_FULL_PREVIEW);
-        CustomizationInjector injector = (CustomizationInjector) InjectorProvider.getInjector();
-        ThemeBundleProvider themeProvider = new DefaultThemeProvider(
-                getContext(), injector.getCustomizationPreferences(getContext()));
-        try {
-            ThemeBundle.Builder builder = themeProvider.parseThemeBundle(
-                    getArguments().getString(EXTRA_THEME_OPTION));
-            if (builder != null) {
-                builder.setTitle(getArguments().getString(EXTRA_THEME_OPTION_TITLE));
-                mThemeBundle = builder.build(getContext());
-            }
-        } catch (JSONException e) {
-            Log.w(TAG, "Couldn't parse provided custom theme, will override it");
-            // TODO(chihhangchuang): Handle the error case.
-        }
-    }
-
-    @Nullable
-    @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
-                             @Nullable Bundle savedInstanceState) {
-        View view = inflater.inflate(
-                R.layout.fragment_theme_full_preview, container, /* attachToRoot */ false);
-        setUpToolbar(view);
-        Glide.get(getContext()).clearMemory();
-
-        // Set theme option.
-        final ThemeOptionPreviewer themeOptionPreviewer = new ThemeOptionPreviewer(
-                getLifecycle(),
-                getContext(),
-                view.findViewById(R.id.theme_preview_container));
-        themeOptionPreviewer.setPreviewInfo(mThemeBundle.getPreviewInfo());
-
-        // Set wallpaper background.
-        ImageView wallpaperImageView = view.findViewById(R.id.wallpaper_preview_image);
-        final WallpaperPreviewer wallpaperPreviewer = new WallpaperPreviewer(
-                getLifecycle(),
-                getActivity(),
-                wallpaperImageView,
-                view.findViewById(R.id.wallpaper_preview_surface));
-        wallpaperPreviewer.setWallpaper(mWallpaper,
-                themeOptionPreviewer::updateColorForLauncherWidgets);
-        return view;
-    }
-
-    @Override
-    protected void onBottomActionBarReady(BottomActionBar bottomActionBar) {
-        super.onBottomActionBarReady(bottomActionBar);
-        if (mCanApplyFromFullPreview) {
-            bottomActionBar.showActionsOnly(INFORMATION, APPLY);
-            bottomActionBar.setActionClickListener(APPLY, v -> finishActivityWithResultOk());
-        } else {
-            bottomActionBar.showActionsOnly(INFORMATION);
-        }
-        bottomActionBar.bindBottomSheetContentWithAction(
-                new ThemeInfoContent(getContext()), INFORMATION);
-        bottomActionBar.show();
-    }
-
-    private void finishActivityWithResultOk() {
-        Activity activity = requireActivity();
-        activity.overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
-        Intent intent = new Intent();
-        activity.setResult(RESULT_OK, intent);
-        activity.finish();
-    }
-
-    private final class ThemeInfoContent extends BottomSheetContent<ThemeInfoView> {
-
-        private ThemeInfoContent(Context context) {
-            super(context);
-        }
-
-        @Override
-        public int getViewId() {
-            return R.layout.theme_info_view;
-        }
-
-        @Override
-        public void onViewCreated(ThemeInfoView view) {
-            view.populateThemeInfo(mThemeBundle);
-        }
-    }
-}
diff --git a/src/com/android/customization/picker/theme/ThemeInfoView.java b/src/com/android/customization/picker/theme/ThemeInfoView.java
deleted file mode 100644
index e929c4d..0000000
--- a/src/com/android/customization/picker/theme/ThemeInfoView.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2020 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.theme;
-
-import android.content.Context;
-import android.content.res.ColorStateList;
-import android.util.AttributeSet;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.customization.model.theme.ThemeBundle;
-import com.android.wallpaper.R;
-
-/** A view for displaying style info. */
-public class ThemeInfoView extends LinearLayout {
-    private static final int WIFI_ICON_PREVIEW_INDEX = 0;
-    private static final int SHAPE_PREVIEW_INDEX = 0;
-
-    private TextView mTitle;
-    private TextView mFontPreviewTextView;
-    private ImageView mIconPreviewImageView;
-    private ImageView mAppPreviewImageView;
-    private ImageView mShapePreviewImageView;
-
-    public ThemeInfoView(Context context, @Nullable AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    @Override
-    protected void onFinishInflate() {
-        super.onFinishInflate();
-        mTitle = findViewById(R.id.style_info_title);
-        mFontPreviewTextView = findViewById(R.id.font_preview);
-        mIconPreviewImageView = findViewById(R.id.qs_preview_icon);
-        mAppPreviewImageView = findViewById(R.id.app_preview_icon);
-        mShapePreviewImageView = findViewById(R.id.shape_preview_icon);
-    }
-
-    /** Populates theme info. */
-    public void populateThemeInfo(@NonNull ThemeBundle selectedTheme) {
-        ThemeBundle.PreviewInfo previewInfo = selectedTheme.getPreviewInfo();
-
-        if (previewInfo != null) {
-            mTitle.setText(getContext().getString(R.string.style_info_description));
-            if (previewInfo.headlineFontFamily != null) {
-                mTitle.setTypeface(previewInfo.headlineFontFamily);
-                mFontPreviewTextView.setTypeface(previewInfo.headlineFontFamily);
-            }
-
-            if (previewInfo.icons.get(WIFI_ICON_PREVIEW_INDEX) != null) {
-                mIconPreviewImageView.setImageDrawable(
-                        previewInfo.icons.get(WIFI_ICON_PREVIEW_INDEX));
-            }
-
-            if (previewInfo.shapeAppIcons.get(SHAPE_PREVIEW_INDEX) != null) {
-                mAppPreviewImageView.setBackground(
-                        previewInfo.shapeAppIcons.get(SHAPE_PREVIEW_INDEX).getDrawableCopy());
-            }
-
-            if (previewInfo.shapeDrawable != null) {
-                mShapePreviewImageView.setImageDrawable(previewInfo.shapeDrawable);
-                mShapePreviewImageView.setImageTintList(
-                        ColorStateList.valueOf(previewInfo.resolveAccentColor(getResources())));
-            }
-        }
-    }
-}
diff --git a/src/com/android/customization/picker/theme/ThemeOptionPreviewer.java b/src/com/android/customization/picker/theme/ThemeOptionPreviewer.java
deleted file mode 100644
index 14b53ec..0000000
--- a/src/com/android/customization/picker/theme/ThemeOptionPreviewer.java
+++ /dev/null
@@ -1,405 +0,0 @@
-/*
- * Copyright (C) 2020 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.theme;
-
-import static android.view.View.MeasureSpec.EXACTLY;
-import static android.view.View.MeasureSpec.makeMeasureSpec;
-
-import android.app.WallpaperColors;
-import android.content.Context;
-import android.content.res.ColorStateList;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.graphics.Typeface;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.GradientDrawable;
-import android.text.format.DateFormat;
-import android.util.DisplayMetrics;
-import android.util.TypedValue;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.animation.AnimationUtils;
-import android.widget.CompoundButton;
-import android.widget.ImageView;
-import android.widget.Switch;
-import android.widget.TextView;
-
-import androidx.annotation.MainThread;
-import androidx.annotation.Nullable;
-import androidx.cardview.widget.CardView;
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.OnLifecycleEvent;
-
-import com.android.customization.model.theme.ThemeBundle;
-import com.android.customization.model.theme.ThemeBundle.PreviewInfo;
-import com.android.customization.model.theme.ThemeBundle.PreviewInfo.ShapeAppIcon;
-import com.android.wallpaper.R;
-import com.android.wallpaper.util.ResourceUtils;
-import com.android.wallpaper.util.ScreenSizeCalculator;
-import com.android.wallpaper.util.TimeUtils;
-import com.android.wallpaper.util.TimeUtils.TimeTicker;
-
-import java.util.Calendar;
-import java.util.List;
-import java.util.Locale;
-import java.util.TimeZone;
-
-/** A class to load the {@link ThemeBundle} preview to the view. */
-class ThemeOptionPreviewer implements LifecycleObserver {
-    private static final String DATE_FORMAT = "EEEE, MMM d";
-
-    // Maps which icon from ResourceConstants#ICONS_FOR_PREVIEW.
-    private static final int ICON_WIFI = 0;
-    private static final int ICON_BLUETOOTH = 1;
-    private static final int ICON_FLASHLIGHT = 3;
-    private static final int ICON_AUTO_ROTATE = 4;
-    private static final int ICON_CELLULAR_SIGNAL = 6;
-    private static final int ICON_BATTERY = 7;
-
-    // Icons in the top bar (fake "status bar") with the particular order.
-    private static final int [] sTopBarIconToPreviewIcon = new int [] {
-            ICON_WIFI, ICON_CELLULAR_SIGNAL, ICON_BATTERY };
-
-    // Ids of app icon shape preview.
-    private int[] mShapeAppIconIds = {
-            R.id.shape_preview_icon_0, R.id.shape_preview_icon_1,
-            R.id.shape_preview_icon_2, R.id.shape_preview_icon_3
-    };
-    private int[] mShapeIconAppNameIds = {
-            R.id.shape_preview_icon_app_name_0, R.id.shape_preview_icon_app_name_1,
-            R.id.shape_preview_icon_app_name_2, R.id.shape_preview_icon_app_name_3
-    };
-
-    // Ids of color/icons section.
-    private int[][] mColorTileIconIds = {
-            new int[] { R.id.preview_color_qs_0_icon, ICON_WIFI},
-            new int[] { R.id.preview_color_qs_1_icon, ICON_BLUETOOTH},
-            new int[] { R.id.preview_color_qs_2_icon, ICON_FLASHLIGHT},
-            new int[] { R.id.preview_color_qs_3_icon, ICON_AUTO_ROTATE},
-    };
-    private int[] mColorTileIds = {
-            R.id.preview_color_qs_0_bg, R.id.preview_color_qs_1_bg,
-            R.id.preview_color_qs_2_bg, R.id.preview_color_qs_3_bg
-    };
-    private int[] mColorButtonIds = {
-            R.id.preview_check_selected, R.id.preview_radio_selected, R.id.preview_toggle_selected
-    };
-
-    private final Context mContext;
-
-    private View mContentView;
-    private TextView mStatusBarClock;
-    private TextView mSmartSpaceDate;
-    private TimeTicker mTicker;
-
-    private boolean mHasPreviewInfoSet;
-    private boolean mHasWallpaperColorSet;
-
-    ThemeOptionPreviewer(Lifecycle lifecycle, Context context, ViewGroup previewContainer) {
-        lifecycle.addObserver(this);
-
-        mContext = context;
-        mContentView = LayoutInflater.from(context).inflate(
-                R.layout.theme_preview_content, /* root= */ null);
-        mContentView.setVisibility(View.INVISIBLE);
-        mStatusBarClock = mContentView.findViewById(R.id.theme_preview_clock);
-        mSmartSpaceDate = mContentView.findViewById(R.id.smart_space_date);
-        updateTime();
-        final float screenAspectRatio =
-                ScreenSizeCalculator.getInstance().getScreenAspectRatio(mContext);
-        Configuration config = mContext.getResources().getConfiguration();
-        final boolean directionLTR = config.getLayoutDirection() == View.LAYOUT_DIRECTION_LTR;
-        previewContainer.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
-            @Override
-            public void onLayoutChange(View view, int left, int top, int right, int bottom,
-                                       int oldLeft, int oldTop, int oldRight, int oldBottom) {
-                // Calculate the full preview card height and width.
-                final int fullPreviewCardHeight = getFullPreviewCardHeight();
-                final int fullPreviewCardWidth = (int) (fullPreviewCardHeight / screenAspectRatio);
-
-                // Relayout the content view to match full preview card size.
-                mContentView.measure(
-                        makeMeasureSpec(fullPreviewCardWidth, EXACTLY),
-                        makeMeasureSpec(fullPreviewCardHeight, EXACTLY));
-                mContentView.layout(0, 0, fullPreviewCardWidth, fullPreviewCardHeight);
-
-                // Scale the content view from full preview size to the container size. For full
-                // preview, the scale value is 1.
-                float scale = (float) previewContainer.getMeasuredHeight() / fullPreviewCardHeight;
-                mContentView.setScaleX(scale);
-                mContentView.setScaleY(scale);
-                // The pivot point is centered by default, set to (0, 0).
-                mContentView.setPivotX(directionLTR ? 0f : mContentView.getMeasuredWidth());
-                mContentView.setPivotY(0f);
-
-                // Ensure there will be only one content view in the container.
-                previewContainer.removeAllViews();
-                // Finally, add the content view to the container.
-                previewContainer.addView(
-                        mContentView,
-                        mContentView.getMeasuredWidth(),
-                        mContentView.getMeasuredHeight());
-
-                previewContainer.removeOnLayoutChangeListener(this);
-            }
-        });
-    }
-
-    /** Loads the Theme option preview into the container view. */
-    public void setPreviewInfo(PreviewInfo previewInfo) {
-        setHeadlineFont(previewInfo.headlineFontFamily);
-        setBodyFont(previewInfo.bodyFontFamily);
-        setTopBarIcons(previewInfo.icons);
-        setAppIconShape(previewInfo.shapeAppIcons);
-        setColorAndIconsSection(previewInfo.icons, previewInfo.shapeDrawable,
-                previewInfo.resolveAccentColor(mContext.getResources()));
-        setColorAndIconsBoxRadius(previewInfo.bottomSheeetCornerRadius);
-        setQsbRadius(previewInfo.bottomSheeetCornerRadius);
-        mHasPreviewInfoSet = true;
-        showPreviewIfHasAllConfigSet();
-    }
-
-    /**
-     * Updates the color of widgets in launcher (like top status bar, smart space, and app name
-     * text) which will change its content color according to different wallpapers.
-     *
-     * @param colors the {@link WallpaperColors} of the wallpaper, or {@code null} to use light
-     *               color as default
-     */
-    public void updateColorForLauncherWidgets(@Nullable WallpaperColors colors) {
-        boolean useLightTextColor = colors == null
-                || (colors.getColorHints() & WallpaperColors.HINT_SUPPORTS_DARK_TEXT) == 0;
-        int textColor = mContext.getColor(useLightTextColor
-                ? android.R.color.white
-                : android.R.color.black);
-        int textShadowColor = mContext.getColor(useLightTextColor
-                ? android.R.color.tertiary_text_dark
-                : android.R.color.transparent);
-        // Update the top status bar clock text color.
-        mStatusBarClock.setTextColor(textColor);
-        // Update the top status bar icon color.
-        ViewGroup iconsContainer = mContentView.findViewById(R.id.theme_preview_top_bar_icons);
-        for (int i = 0; i < iconsContainer.getChildCount(); i++) {
-            ((ImageView) iconsContainer.getChildAt(i))
-                    .setImageTintList(ColorStateList.valueOf(textColor));
-        }
-        // Update smart space date color.
-        mSmartSpaceDate.setTextColor(textColor);
-        mSmartSpaceDate.setShadowLayer(
-                mContext.getResources().getDimension(
-                        R.dimen.smartspace_preview_key_ambient_shadow_blur),
-                /* dx = */ 0,
-                /* dy = */ 0,
-                textShadowColor);
-
-        // Update shape app icon name text color.
-        for (int id : mShapeIconAppNameIds) {
-            TextView appName = mContentView.findViewById(id);
-            appName.setTextColor(textColor);
-            appName.setShadowLayer(
-                    mContext.getResources().getDimension(
-                            R.dimen.preview_theme_app_name_key_ambient_shadow_blur),
-                    /* dx = */ 0,
-                    /* dy = */ 0,
-                    textShadowColor);
-        }
-
-        mHasWallpaperColorSet = true;
-        showPreviewIfHasAllConfigSet();
-    }
-
-    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
-    @MainThread
-    public void onResume() {
-        mTicker = TimeTicker.registerNewReceiver(mContext, this::updateTime);
-        updateTime();
-    }
-
-    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
-    @MainThread
-    public void onPause() {
-        if (mContext != null) {
-            mContext.unregisterReceiver(mTicker);
-        }
-    }
-
-    private void showPreviewIfHasAllConfigSet() {
-        if (mHasPreviewInfoSet && mHasWallpaperColorSet
-                && mContentView.getVisibility() != View.VISIBLE) {
-            mContentView.setAlpha(0f);
-            mContentView.setVisibility(View.VISIBLE);
-            mContentView.animate().alpha(1f)
-                    .setStartDelay(50)
-                    .setDuration(200)
-                    .setInterpolator(AnimationUtils.loadInterpolator(mContext,
-                            android.R.interpolator.fast_out_linear_in))
-                    .start();
-        }
-    }
-
-    private void setHeadlineFont(Typeface headlineFont) {
-        mStatusBarClock.setTypeface(headlineFont);
-        mSmartSpaceDate.setTypeface(headlineFont);
-
-        // Update font of color/icons section title.
-        TextView colorIconsSectionTitle = mContentView.findViewById(R.id.color_icons_section_title);
-        colorIconsSectionTitle.setTypeface(headlineFont);
-    }
-
-    private void setBodyFont(Typeface bodyFont) {
-        // Update font of app names.
-        for (int id : mShapeIconAppNameIds) {
-            TextView appName = mContentView.findViewById(id);
-            appName.setTypeface(bodyFont);
-        }
-    }
-
-    private void setTopBarIcons(List<Drawable> icons) {
-        ViewGroup iconsContainer = mContentView.findViewById(R.id.theme_preview_top_bar_icons);
-        for (int i = 0; i < iconsContainer.getChildCount(); i++) {
-            int iconIndex = sTopBarIconToPreviewIcon[i];
-            if (iconIndex < icons.size()) {
-                ((ImageView) iconsContainer.getChildAt(i))
-                        .setImageDrawable(icons.get(iconIndex).getConstantState()
-                                .newDrawable().mutate());
-            } else {
-                iconsContainer.getChildAt(i).setVisibility(View.GONE);
-            }
-        }
-    }
-
-    private void setAppIconShape(List<ShapeAppIcon> appIcons) {
-        for (int i = 0; i < mShapeAppIconIds.length && i < mShapeIconAppNameIds.length
-                && i < appIcons.size(); i++) {
-            ShapeAppIcon icon = appIcons.get(i);
-            // Set app icon.
-            ImageView iconView = mContentView.findViewById(mShapeAppIconIds[i]);
-            iconView.setBackground(icon.getDrawableCopy());
-            // Set app name.
-            TextView appName = mContentView.findViewById(mShapeIconAppNameIds[i]);
-            appName.setText(icon.getAppName());
-        }
-    }
-
-    private void setColorAndIconsSection(List<Drawable> icons, Drawable shapeDrawable,
-                                         int accentColor) {
-        // Set QS icons and background.
-        for (int i = 0; i < mColorTileIconIds.length && i < icons.size(); i++) {
-            Drawable icon = icons.get(mColorTileIconIds[i][1]).getConstantState()
-                    .newDrawable().mutate();
-            Drawable bgShape = shapeDrawable.getConstantState().newDrawable();
-            bgShape.setTint(accentColor);
-
-            ImageView bg = mContentView.findViewById(mColorTileIds[i]);
-            bg.setImageDrawable(bgShape);
-            ImageView fg = mContentView.findViewById(mColorTileIconIds[i][0]);
-            fg.setImageDrawable(icon);
-        }
-
-        // Set color for Buttons (CheckBox, RadioButton, and Switch).
-        ColorStateList tintList = getColorStateList(accentColor);
-        for (int mColorButtonId : mColorButtonIds) {
-            CompoundButton button = mContentView.findViewById(mColorButtonId);
-            button.setButtonTintList(tintList);
-            if (button instanceof Switch) {
-                ((Switch) button).setThumbTintList(tintList);
-                ((Switch) button).setTrackTintList(tintList);
-            }
-        }
-    }
-
-    private void setColorAndIconsBoxRadius(int cornerRadius) {
-        ((CardView) mContentView.findViewById(R.id.color_icons_section)).setRadius(cornerRadius);
-    }
-
-    private void setQsbRadius(int cornerRadius) {
-        View qsb = mContentView.findViewById(R.id.theme_qsb);
-        if (qsb != null && qsb.getVisibility() == View.VISIBLE) {
-            if (qsb.getBackground() instanceof GradientDrawable) {
-                GradientDrawable bg = (GradientDrawable) qsb.getBackground();
-                float radius = useRoundedQSB(cornerRadius)
-                        ? (float) qsb.getLayoutParams().height / 2 : cornerRadius;
-                bg.setCornerRadii(new float[]{
-                        radius, radius, radius, radius,
-                        radius, radius, radius, radius});
-            }
-        }
-    }
-
-    private void updateTime() {
-        Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
-        if (mStatusBarClock != null) {
-            mStatusBarClock.setText(TimeUtils.getFormattedTime(mContext, calendar));
-        }
-        if (mSmartSpaceDate != null) {
-            String datePattern =
-                    DateFormat.getBestDateTimePattern(Locale.getDefault(), DATE_FORMAT);
-            mSmartSpaceDate.setText(DateFormat.format(datePattern, calendar));
-        }
-    }
-
-    private boolean useRoundedQSB(int cornerRadius) {
-        return cornerRadius >= mContext.getResources().getDimensionPixelSize(
-                R.dimen.roundCornerThreshold);
-    }
-
-    private ColorStateList getColorStateList(int accentColor) {
-        int controlGreyColor =
-                ResourceUtils.getColorAttr(mContext, android.R.attr.textColorTertiary);
-        return new ColorStateList(
-                new int[][]{
-                        new int[]{android.R.attr.state_selected},
-                        new int[]{android.R.attr.state_checked},
-                        new int[]{-android.R.attr.state_enabled},
-                },
-                new int[] {
-                        accentColor,
-                        accentColor,
-                        controlGreyColor
-                }
-        );
-    }
-
-    /**
-     * Gets the screen height which does not include the system status bar and bottom navigation
-     * bar.
-     */
-    private int getDisplayHeight() {
-        final DisplayMetrics dm = mContext.getResources().getDisplayMetrics();
-        return dm.heightPixels;
-    }
-
-    // The height of top tool bar (R.layout.section_header).
-    private int getTopToolBarHeight() {
-        final TypedValue typedValue = new TypedValue();
-        return mContext.getTheme().resolveAttribute(
-                android.R.attr.actionBarSize, typedValue, true)
-                ? TypedValue.complexToDimensionPixelSize(
-                        typedValue.data, mContext.getResources().getDisplayMetrics())
-                : 0;
-    }
-
-    private int getFullPreviewCardHeight() {
-        final Resources res = mContext.getResources();
-        return getDisplayHeight()
-                - getTopToolBarHeight()
-                - res.getDimensionPixelSize(R.dimen.bottom_actions_height)
-                - res.getDimensionPixelSize(R.dimen.full_preview_page_default_padding_top)
-                - res.getDimensionPixelSize(R.dimen.full_preview_page_default_padding_bottom);
-    }
-}
diff --git a/src/com/android/customization/picker/themedicon/ThemedIconSectionView.java b/src/com/android/customization/picker/themedicon/ThemedIconSectionView.java
index 3e03a41..f83da8c 100644
--- a/src/com/android/customization/picker/themedicon/ThemedIconSectionView.java
+++ b/src/com/android/customization/picker/themedicon/ThemedIconSectionView.java
@@ -40,18 +40,16 @@
     protected void onFinishInflate() {
         super.onFinishInflate();
         mSwitchView = findViewById(R.id.themed_icon_toggle);
-        setOnClickListener(v -> mSwitchView.toggle());
-        mSwitchView.setOnCheckedChangeListener((buttonView, isChecked) -> viewActivated(isChecked));
+        setOnClickListener(v -> {
+            mSwitchView.toggle();
+            if (mSectionViewListener != null) {
+                mSectionViewListener.onViewActivated(getContext(), mSwitchView.isChecked());
+            }
+        });
     }
 
     /** Gets the switch view. */
     public Switch getSwitch() {
         return mSwitchView;
     }
-
-    private void viewActivated(boolean isChecked) {
-        if (mSectionViewListener != null) {
-            mSectionViewListener.onViewActivated(getContext(), isChecked);
-        }
-    }
 }
diff --git a/src/com/android/customization/widget/OptionSelectorController.java b/src/com/android/customization/widget/OptionSelectorController.java
deleted file mode 100644
index 8c7af00..0000000
--- a/src/com/android/customization/widget/OptionSelectorController.java
+++ /dev/null
@@ -1,469 +0,0 @@
-/*
- * Copyright (C) 2018 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.widget;
-
-import static com.android.internal.util.Preconditions.checkNotNull;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.LayerDrawable;
-import android.text.TextUtils;
-import android.util.DisplayMetrics;
-import android.util.TypedValue;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.view.accessibility.AccessibilityEvent;
-import android.widget.TextView;
-
-import androidx.annotation.Dimension;
-import androidx.annotation.IntDef;
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.GridLayoutManager;
-import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-import androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate;
-
-import com.android.customization.model.CustomizationManager;
-import com.android.customization.model.CustomizationOption;
-import com.android.wallpaper.R;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Simple controller for a RecyclerView-based widget to hold the options for each customization
- * section (eg, thumbnails for themes, clocks, grid sizes).
- * To use, just pass the RV that will contain the tiles and the list of {@link CustomizationOption}
- * representing each option, and call {@link #initOptions(CustomizationManager)} to populate the
- * widget.
- */
-public class OptionSelectorController<T extends CustomizationOption<T>> {
-
-    /**
-     * Interface to be notified when an option is selected by the user.
-     */
-    public interface OptionSelectedListener {
-
-        /**
-         * Called when an option has been selected (and marked as such in the UI)
-         */
-        void onOptionSelected(CustomizationOption selected);
-    }
-
-    @IntDef({CheckmarkStyle.NONE, CheckmarkStyle.CORNER, CheckmarkStyle.CENTER,
-            CheckmarkStyle.CENTER_CHANGE_COLOR_WHEN_NOT_SELECTED})
-    public @interface CheckmarkStyle {
-        int NONE = 0;
-        int CORNER = 1;
-        int CENTER = 2;
-        int CENTER_CHANGE_COLOR_WHEN_NOT_SELECTED = 3;
-    }
-
-    private final float mLinearLayoutHorizontalDisplayOptionsMax;
-
-    private final RecyclerView mContainer;
-    private final List<T> mOptions;
-    private final boolean mUseGrid;
-    @CheckmarkStyle
-    private final int mCheckmarkStyle;
-
-    private final Set<OptionSelectedListener> mListeners = new HashSet<>();
-    private RecyclerView.Adapter<TileViewHolder> mAdapter;
-    private T mSelectedOption;
-    private T mAppliedOption;
-
-    public OptionSelectorController(RecyclerView container, List<T> options) {
-        this(container, options, true, CheckmarkStyle.CORNER);
-    }
-
-    public OptionSelectorController(RecyclerView container, List<T> options,
-            boolean useGrid, @CheckmarkStyle int checkmarkStyle) {
-        mContainer = container;
-        mOptions = options;
-        mUseGrid = useGrid;
-        mCheckmarkStyle = checkmarkStyle;
-        TypedValue typedValue = new TypedValue();
-        mContainer.getResources().getValue(R.dimen.linear_layout_horizontal_display_options_max,
-                typedValue, true);
-        mLinearLayoutHorizontalDisplayOptionsMax = typedValue.getFloat();
-    }
-
-    public void addListener(OptionSelectedListener listener) {
-        mListeners.add(listener);
-    }
-
-    public void removeListener(OptionSelectedListener listener) {
-        mListeners.remove(listener);
-    }
-
-    /**
-     * Mark the given option as selected
-     */
-    public void setSelectedOption(T option) {
-        if (!mOptions.contains(option)) {
-            throw new IllegalArgumentException("Invalid option");
-        }
-        T lastSelectedOption = mSelectedOption;
-        mSelectedOption = option;
-        mAdapter.notifyItemChanged(mOptions.indexOf(option));
-        if (lastSelectedOption != null) {
-            mAdapter.notifyItemChanged(mOptions.indexOf(lastSelectedOption));
-        }
-        notifyListeners();
-    }
-
-    /**
-     * @return whether this controller contains the given option
-     */
-    public boolean containsOption(T option) {
-        return mOptions.contains(option);
-    }
-
-    /**
-     * Mark an option as the one which is currently applied on the device. This will result in a
-     * check being displayed in the lower-right corner of the corresponding ViewHolder.
-     */
-    public void setAppliedOption(T option) {
-        if (!mOptions.contains(option)) {
-            throw new IllegalArgumentException("Invalid option");
-        }
-        T lastAppliedOption = mAppliedOption;
-        mAppliedOption = option;
-        mAdapter.notifyItemChanged(mOptions.indexOf(option));
-        if (lastAppliedOption != null) {
-            mAdapter.notifyItemChanged(mOptions.indexOf(lastAppliedOption));
-        }
-    }
-
-    /**
-     * Notify that a given option has changed.
-     *
-     * @param option the option that changed
-     */
-    public void optionChanged(T option) {
-        if (!mOptions.contains(option)) {
-            throw new IllegalArgumentException("Invalid option");
-        }
-        mAdapter.notifyItemChanged(mOptions.indexOf(option));
-    }
-
-    /**
-     * Initializes the UI for the options passed in the constructor of this class.
-     */
-    public void initOptions(final CustomizationManager<T> manager) {
-        mContainer.setAccessibilityDelegateCompat(
-                new OptionSelectorAccessibilityDelegate(mContainer));
-
-        mAdapter = new RecyclerView.Adapter<TileViewHolder>() {
-            @Override
-            public int getItemViewType(int position) {
-                return mOptions.get(position).getLayoutResId();
-            }
-
-            @NonNull
-            @Override
-            public TileViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
-                View v = LayoutInflater.from(parent.getContext()).inflate(viewType, parent, false);
-                // Provide width constraint when a grid layout manager is not use and width is set
-                // to match parent
-                if (!mUseGrid
-                        && v.getLayoutParams().width == RecyclerView.LayoutParams.MATCH_PARENT) {
-                    Resources res = mContainer.getContext().getResources();
-                    RecyclerView.LayoutParams layoutParams = new RecyclerView.LayoutParams(
-                            res.getDimensionPixelSize(R.dimen.option_tile_width),
-                            RecyclerView.LayoutParams.WRAP_CONTENT);
-                    v.setLayoutParams(layoutParams);
-                }
-                return new TileViewHolder(v);
-            }
-
-            @Override
-            public void onBindViewHolder(@NonNull TileViewHolder holder, int position) {
-                T option = mOptions.get(position);
-                if (option.isActive(manager)) {
-                    mAppliedOption = option;
-                    if (mSelectedOption == null) {
-                        mSelectedOption = option;
-                    }
-                }
-                if (holder.labelView != null) {
-                    holder.labelView.setText(option.getTitle());
-                }
-                holder.itemView.setActivated(option.equals(mSelectedOption));
-                option.bindThumbnailTile(holder.tileView);
-                holder.itemView.setOnClickListener(view -> setSelectedOption(option));
-
-                Resources res = mContainer.getContext().getResources();
-                if (mCheckmarkStyle == CheckmarkStyle.CORNER && option.equals(mAppliedOption)) {
-                    drawCheckmark(option, holder,
-                            res.getDrawable(R.drawable.check_circle_accent_24dp,
-                                    mContainer.getContext().getTheme()),
-                            Gravity.BOTTOM | Gravity.RIGHT,
-                            res.getDimensionPixelSize(R.dimen.check_size),
-                            res.getDimensionPixelOffset(R.dimen.check_offset), true);
-                } else if (mCheckmarkStyle == CheckmarkStyle.CENTER
-                        && option.equals(mAppliedOption)) {
-                    drawCheckmark(option, holder,
-                            res.getDrawable(R.drawable.check_circle_grey_large,
-                                    mContainer.getContext().getTheme()),
-                            Gravity.CENTER, res.getDimensionPixelSize(R.dimen.center_check_size),
-                            0, true);
-                } else if (mCheckmarkStyle == CheckmarkStyle.CENTER_CHANGE_COLOR_WHEN_NOT_SELECTED
-                        && option.equals(mAppliedOption)) {
-                    int drawableRes = option.equals(mSelectedOption)
-                            ? R.drawable.check_circle_grey_large
-                            : R.drawable.check_circle_grey_large_not_select;
-                    drawCheckmark(option, holder,
-                            res.getDrawable(drawableRes,
-                                    mContainer.getContext().getTheme()),
-                            Gravity.CENTER, res.getDimensionPixelSize(R.dimen.center_check_size),
-                            0, option.equals(mSelectedOption));
-                } else if (option.equals(mAppliedOption)) {
-                    // Initialize with "previewed" description if we don't show checkmark
-                    holder.setContentDescription(mContainer.getContext(), option,
-                            R.string.option_previewed_description);
-                } else if (mCheckmarkStyle != CheckmarkStyle.NONE) {
-                    if (mCheckmarkStyle == CheckmarkStyle.CENTER_CHANGE_COLOR_WHEN_NOT_SELECTED) {
-                        if (option.equals(mSelectedOption)) {
-                            holder.setContentDescription(mContainer.getContext(), option,
-                                    R.string.option_previewed_description);
-                        } else {
-                            holder.setContentDescription(mContainer.getContext(), option,
-                                    R.string.option_change_applied_previewed_description);
-                        }
-                    }
-
-                    holder.tileView.setForeground(null);
-                }
-            }
-
-            @Override
-            public int getItemCount() {
-                return mOptions.size();
-            }
-
-            private void drawCheckmark(CustomizationOption<?> option, TileViewHolder holder,
-                    Drawable checkmark, int gravity, @Dimension int checkSize,
-                    @Dimension int checkOffset, boolean currentlyPreviewed) {
-                Drawable frame = holder.tileView.getForeground();
-                Drawable[] layers = {frame, checkmark};
-                if (frame == null) {
-                    layers = new Drawable[]{checkmark};
-                }
-                LayerDrawable checkedFrame = new LayerDrawable(layers);
-
-                // Position according to the given gravity and offset
-                int idx = layers.length - 1;
-                checkedFrame.setLayerGravity(idx, gravity);
-                checkedFrame.setLayerWidth(idx, checkSize);
-                checkedFrame.setLayerHeight(idx, checkSize);
-                checkedFrame.setLayerInsetBottom(idx, checkOffset);
-                checkedFrame.setLayerInsetRight(idx, checkOffset);
-                holder.tileView.setForeground(checkedFrame);
-
-                // Initialize the currently applied option
-                if (currentlyPreviewed) {
-                    holder.setContentDescription(mContainer.getContext(), option,
-                            R.string.option_applied_previewed_description);
-                } else {
-                    holder.setContentDescription(mContainer.getContext(), option,
-                            R.string.option_applied_description);
-                }
-            }
-        };
-
-        Resources res = mContainer.getContext().getResources();
-        mContainer.setAdapter(mAdapter);
-        final DisplayMetrics metrics = new DisplayMetrics();
-        mContainer.getContext().getSystemService(WindowManager.class)
-                .getDefaultDisplay().getMetrics(metrics);
-        final boolean hasDecoration = mContainer.getItemDecorationCount() != 0;
-
-        if (mUseGrid) {
-            int numColumns = res.getInteger(R.integer.options_grid_num_columns);
-            GridLayoutManager gridLayoutManager = new GridLayoutManager(mContainer.getContext(),
-                    numColumns);
-            mContainer.setLayoutManager(gridLayoutManager);
-        } else {
-            final int padding = res.getDimensionPixelSize(
-                    R.dimen.option_tile_linear_padding_horizontal);
-            final int widthPerItem = res.getDimensionPixelSize(R.dimen.option_tile_width) + (
-                    hasDecoration ? 0 : 2 * padding);
-            mContainer.setLayoutManager(new LinearLayoutManager(mContainer.getContext(),
-                    LinearLayoutManager.HORIZONTAL, false));
-            mContainer.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
-            int availableWidth = metrics.widthPixels;
-            int extraSpace = availableWidth - mContainer.getMeasuredWidth();
-            if (extraSpace >= 0) {
-                mContainer.setOverScrollMode(View.OVER_SCROLL_NEVER);
-            }
-
-            if (mAdapter.getItemCount() >= mLinearLayoutHorizontalDisplayOptionsMax) {
-                int spaceBetweenItems = availableWidth
-                        - Math.round(widthPerItem * mLinearLayoutHorizontalDisplayOptionsMax)
-                        - mContainer.getPaddingLeft();
-                int itemEndMargin =
-                        spaceBetweenItems / (int) mLinearLayoutHorizontalDisplayOptionsMax;
-                itemEndMargin = Math.max(itemEndMargin, res.getDimensionPixelOffset(
-                        R.dimen.option_tile_margin_horizontal));
-                mContainer.addItemDecoration(new ItemEndHorizontalSpaceItemDecoration(
-                        mContainer.getContext(), itemEndMargin));
-                return;
-            }
-
-            int spaceBetweenItems = extraSpace / (mAdapter.getItemCount() + 1);
-            int itemSideMargin = spaceBetweenItems / 2;
-            mContainer.addItemDecoration(new HorizontalSpacerItemDecoration(itemSideMargin));
-        }
-    }
-
-    public void resetOptions(List<T> options) {
-        mOptions.clear();
-        mOptions.addAll(options);
-        mAdapter.notifyDataSetChanged();
-    }
-
-    private void notifyListeners() {
-        if (mListeners.isEmpty()) {
-            return;
-        }
-        T option = mSelectedOption;
-        Set<OptionSelectedListener> iterableListeners = new HashSet<>(mListeners);
-        for (OptionSelectedListener listener : iterableListeners) {
-            listener.onOptionSelected(option);
-        }
-    }
-
-    private static class TileViewHolder extends RecyclerView.ViewHolder {
-        TextView labelView;
-        View tileView;
-        CharSequence title;
-
-        TileViewHolder(@NonNull View itemView) {
-            super(itemView);
-            labelView = itemView.findViewById(R.id.option_label);
-            tileView = itemView.findViewById(R.id.option_tile);
-            title = null;
-        }
-
-        /**
-         * Set the content description for this holder using the given string id.
-         * If the option does not have a label, the description will be set on the tile view.
-         *
-         * @param context The view's context
-         * @param option  The customization option
-         * @param id      Resource ID of the string to use for the content description
-         */
-        public void setContentDescription(Context context, CustomizationOption<?> option, int id) {
-            title = option.getTitle();
-            if (TextUtils.isEmpty(title) && tileView != null) {
-                title = tileView.getContentDescription();
-            }
-
-            CharSequence cd = context.getString(id, title);
-            if (labelView != null && !TextUtils.isEmpty(labelView.getText())) {
-                labelView.setAccessibilityPaneTitle(cd);
-                labelView.setContentDescription(cd);
-            } else if (tileView != null) {
-                tileView.setAccessibilityPaneTitle(cd);
-                tileView.setContentDescription(cd);
-            }
-        }
-
-        public void resetContentDescription() {
-            if (labelView != null && !TextUtils.isEmpty(labelView.getText())) {
-                labelView.setAccessibilityPaneTitle(title);
-                labelView.setContentDescription(title);
-            } else if (tileView != null) {
-                tileView.setAccessibilityPaneTitle(title);
-                tileView.setContentDescription(title);
-            }
-        }
-    }
-
-    private class OptionSelectorAccessibilityDelegate extends RecyclerViewAccessibilityDelegate {
-
-        OptionSelectorAccessibilityDelegate(RecyclerView recyclerView) {
-            super(recyclerView);
-        }
-
-        @Override
-        public boolean onRequestSendAccessibilityEvent(
-                ViewGroup host, View child, AccessibilityEvent event) {
-
-            // Apply this workaround to horizontal recyclerview only,
-            // since the symptom is TalkBack will lose focus when navigating horizontal list items.
-            if (mContainer.getLayoutManager() != null
-                    && mContainer.getLayoutManager().canScrollHorizontally()
-                    && event.getEventType() == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED) {
-                int itemPos = mContainer.getChildLayoutPosition(child);
-                int itemWidth = mContainer.getContext().getResources()
-                        .getDimensionPixelOffset(R.dimen.option_tile_width);
-                int itemMarginHorizontal = mContainer.getContext().getResources()
-                        .getDimensionPixelOffset(R.dimen.option_tile_margin_horizontal) * 2;
-                int scrollOffset = itemWidth + itemMarginHorizontal;
-
-                // Make focusing item's previous/next item totally visible when changing focus,
-                // ensure TalkBack won't lose focus when recyclerview scrolling.
-                if (itemPos >= ((LinearLayoutManager) mContainer.getLayoutManager())
-                        .findLastCompletelyVisibleItemPosition()) {
-                    mContainer.scrollBy(scrollOffset, 0);
-                } else if (itemPos <= ((LinearLayoutManager) mContainer.getLayoutManager())
-                        .findFirstCompletelyVisibleItemPosition() && itemPos != 0) {
-                    mContainer.scrollBy(-scrollOffset, 0);
-                }
-            }
-            return super.onRequestSendAccessibilityEvent(host, child, event);
-        }
-    }
-
-    /** Custom ItemDecorator to add specific spacing between items in the list. */
-    private static final class ItemEndHorizontalSpaceItemDecoration
-            extends RecyclerView.ItemDecoration {
-        private final int mHorizontalSpacePx;
-        private final boolean mDirectionLTR;
-
-        private ItemEndHorizontalSpaceItemDecoration(Context context, int horizontalSpacePx) {
-            mDirectionLTR = context.getResources().getConfiguration().getLayoutDirection()
-                    == View.LAYOUT_DIRECTION_LTR;
-            mHorizontalSpacePx = horizontalSpacePx;
-        }
-
-        @Override
-        public void getItemOffsets(Rect outRect, View view, RecyclerView recyclerView,
-                RecyclerView.State state) {
-            if (recyclerView.getAdapter() == null) {
-                return;
-            }
-
-            if (recyclerView.getChildAdapterPosition(view)
-                    != checkNotNull(recyclerView.getAdapter()).getItemCount() - 1) {
-                // Don't add spacing behind the last item
-                if (mDirectionLTR) {
-                    outRect.right = mHorizontalSpacePx;
-                } else {
-                    outRect.left = mHorizontalSpacePx;
-                }
-            }
-        }
-    }
-}
diff --git a/src_override/com/android/wallpaper/module/AppModule.kt b/src_override/com/android/wallpaper/module/AppModule.kt
index 95da101..0d80e22 100644
--- a/src_override/com/android/wallpaper/module/AppModule.kt
+++ b/src_override/com/android/wallpaper/module/AppModule.kt
@@ -16,9 +16,16 @@
 package com.android.wallpaper.module
 
 import android.content.Context
+import com.android.customization.model.color.ColorCustomizationManager
+import com.android.customization.model.theme.OverlayManagerCompat
 import com.android.customization.module.CustomizationInjector
 import com.android.customization.module.DefaultCustomizationPreferences
 import com.android.customization.module.ThemePickerInjector
+import com.android.customization.module.logging.ThemesUserEventLogger
+import com.android.customization.module.logging.ThemesUserEventLoggerImpl
+import com.android.wallpaper.module.logging.UserEventLogger
+import com.android.wallpaper.util.converter.DefaultWallpaperModelFactory
+import com.android.wallpaper.util.converter.WallpaperModelFactory
 import dagger.Binds
 import dagger.Module
 import dagger.Provides
@@ -32,6 +39,20 @@
 abstract class AppModule {
     @Binds @Singleton abstract fun bindInjector(impl: ThemePickerInjector): CustomizationInjector
 
+    @Binds
+    @Singleton
+    abstract fun bindUserEventLogger(impl: ThemesUserEventLoggerImpl): UserEventLogger
+
+    @Binds
+    @Singleton
+    abstract fun bindThemesUserEventLogger(impl: ThemesUserEventLoggerImpl): ThemesUserEventLogger
+
+    @Binds
+    @Singleton
+    abstract fun bindWallpaperModelFactory(
+        impl: DefaultWallpaperModelFactory
+    ): WallpaperModelFactory
+
     companion object {
         @Provides
         @Singleton
@@ -40,5 +61,13 @@
         ): WallpaperPreferences {
             return DefaultCustomizationPreferences(context)
         }
+
+        @Provides
+        @Singleton
+        fun provideColorCustomizationManager(
+            @ApplicationContext context: Context
+        ): ColorCustomizationManager {
+            return ColorCustomizationManager.getInstance(context, OverlayManagerCompat(context))
+        }
     }
 }
diff --git a/src_override/com/android/wallpaper/picker/di/modules/InteractorModule.kt b/src_override/com/android/wallpaper/picker/di/modules/InteractorModule.kt
new file mode 100644
index 0000000..81edb2f
--- /dev/null
+++ b/src_override/com/android/wallpaper/picker/di/modules/InteractorModule.kt
@@ -0,0 +1,44 @@
+/*
+ * 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.wallpaper.picker.di.modules
+
+import android.text.TextUtils
+import com.android.customization.model.color.ColorCustomizationManager
+import com.android.customization.model.color.ColorOptionsProvider.COLOR_SOURCE_PRESET
+import com.android.wallpaper.picker.customization.data.repository.WallpaperRepository
+import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
+import dagger.Module
+import dagger.Provides
+import dagger.hilt.InstallIn
+import dagger.hilt.components.SingletonComponent
+import javax.inject.Singleton
+
+/** This class provides the singleton scoped interactors for theme picker. */
+@InstallIn(SingletonComponent::class)
+@Module
+internal object InteractorModule {
+
+    @Provides
+    @Singleton
+    fun provideWallpaperInteractor(
+        wallpaperRepository: WallpaperRepository,
+        colorCustomizationManager: ColorCustomizationManager,
+    ): WallpaperInteractor {
+        return WallpaperInteractor(wallpaperRepository) {
+            TextUtils.equals(colorCustomizationManager.currentColorSource, COLOR_SOURCE_PRESET)
+        }
+    }
+}
diff --git a/tests/Android.bp b/tests/Android.bp
index c6b599d..74dc6a1 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -20,17 +20,43 @@
     default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
+filegroup {
+    name: "ThemePickerTests_srcs",
+
+    visibility: [
+        "//visibility:public"
+    ],
+
+    srcs: [
+        "src/**/*.java",
+        "src/**/*.kt",
+    ],
+}
+
 android_test {
     name: "ThemePickerTests",
 
     defaults: ["ThemePicker_defaults"],
     srcs: [
-        "src/**/*.java",
-        "src/**/*.kt",
+        ":ThemePickerTests_srcs",
+        ":WallpaperPicker2Tests_srcs",
+        "module/src/com/android/customization/TestModule.kt",
     ],
+    exclude_srcs: [":ThemePicker_src_prod"],
     static_libs: [
         "WallpaperPicker2TestLib",
+        "WallpaperPicker2TestRunner",
+        "ThemePickerTestLib",
+        "androidx.test.espresso.core",
+        "androidx.test.espresso.contrib",
+        "androidx.test.espresso.intents",
+        "androidx.test.ext.junit",
         "androidx.test.rules",
+        "hamcrest-library",
+        "hamcrest",
+        "hilt_android",
+        "hilt_android_testing",
+        "mockito-target-minus-junit4",
         "junit",
         "kotlinx_coroutines_test",
         "truth",
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 2fd6b3f..f1c0cf2 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -18,9 +18,17 @@
 
     <application>
         <uses-library android:name="android.test.runner" />
+
+        <activity android:name="com.android.wallpaper.picker.PreviewActivity"
+            android:resizeableActivity="false">
+        </activity>
+
+        <activity android:name="com.android.wallpaper.picker.preview.ui.WallpaperPreviewActivity"
+            android:resizeableActivity="false">
+        </activity>
     </application>
 
-    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
+    <instrumentation android:name="com.android.wallpaper.CustomTestRunner"
         android:targetPackage="com.android.wallpaper"
         android:label="Tests for ThemePicker" />
 
diff --git a/tests/AndroidTest.xml b/tests/AndroidTest.xml
index be2119b..18e95ef 100644
--- a/tests/AndroidTest.xml
+++ b/tests/AndroidTest.xml
@@ -22,7 +22,7 @@
     <option name="test-tag" value="ThemePickerTests" />
     <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
         <option name="package" value="com.android.wallpaper" />
-        <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
+        <option name="runner" value="com.android.wallpaper.CustomTestRunner" />
         <option name="hidden-api-checks" value="false"/>
     </test>
 </configuration>
diff --git a/tests/common/Android.bp b/tests/common/Android.bp
index dd23723..9215ba6 100644
--- a/tests/common/Android.bp
+++ b/tests/common/Android.bp
@@ -23,10 +23,10 @@
 android_library {
     name: "ThemePickerTestLib",
 
-    defaults: ["ThemePicker_defaults"],
+    defaults: ["ThemePicker_common_defaults"],
     srcs: [
-        "src/com/android/customization/testing/**/*.java",
-        "src/com/android/customization/testing/**/*.kt",
+        "src/**/*.java",
+        "src/**/*.kt",
     ],
     static_libs: [
         "WallpaperPicker2TestLib",
diff --git a/tests/common/src/com/android/customization/module/logging/TestThemesUserEventLogger.kt b/tests/common/src/com/android/customization/module/logging/TestThemesUserEventLogger.kt
new file mode 100644
index 0000000..8e9dacd
--- /dev/null
+++ b/tests/common/src/com/android/customization/module/logging/TestThemesUserEventLogger.kt
@@ -0,0 +1,67 @@
+/*
+ * 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.module.logging
+
+import android.stats.style.StyleEnums
+import com.android.customization.model.grid.GridOption
+import com.android.customization.module.logging.ThemesUserEventLogger.ClockSize
+import com.android.customization.module.logging.ThemesUserEventLogger.ColorSource
+import com.android.wallpaper.module.logging.TestUserEventLogger
+import javax.inject.Inject
+import javax.inject.Singleton
+
+/** Test implementation of [ThemesUserEventLogger]. */
+@Singleton
+class TestThemesUserEventLogger @Inject constructor() :
+    TestUserEventLogger(), ThemesUserEventLogger {
+    @ClockSize private var clockSize: Int = StyleEnums.CLOCK_SIZE_UNSPECIFIED
+    @ColorSource
+    var themeColorSource: Int = StyleEnums.COLOR_SOURCE_UNSPECIFIED
+        private set
+    var themeColorStyle: Int = -1
+        private set
+    var themeSeedColor: Int = -1
+        private set
+
+    override fun logThemeColorApplied(@ColorSource source: Int, style: Int, seedColor: Int) {
+        this.themeColorSource = source
+        this.themeColorStyle = style
+        this.themeSeedColor = seedColor
+    }
+
+    override fun logGridApplied(grid: GridOption) {}
+
+    override fun logClockApplied(clockId: String) {}
+
+    override fun logClockColorApplied(seedColor: Int) {}
+
+    override fun logClockSizeApplied(@ClockSize clockSize: Int) {
+        this.clockSize = clockSize
+    }
+
+    override fun logThemedIconApplied(useThemeIcon: Boolean) {}
+
+    override fun logLockScreenNotificationApplied(showLockScreenNotifications: Boolean) {}
+
+    override fun logShortcutApplied(shortcut: String, shortcutSlotId: String) {}
+
+    override fun logDarkThemeApplied(useDarkTheme: Boolean) {}
+
+    @ClockSize
+    fun getLoggedClockSize(): Int {
+        return clockSize
+    }
+}
diff --git a/tests/common/src/com/android/customization/testing/TestCustomizationInjector.kt b/tests/common/src/com/android/customization/testing/TestCustomizationInjector.kt
new file mode 100644
index 0000000..b0ffcb6
--- /dev/null
+++ b/tests/common/src/com/android/customization/testing/TestCustomizationInjector.kt
@@ -0,0 +1,104 @@
+package com.android.customization.testing
+
+import android.app.WallpaperColors
+import android.content.Context
+import android.content.res.Resources
+import androidx.activity.ComponentActivity
+import com.android.customization.model.color.ThemedWallpaperColorResources
+import com.android.customization.model.color.WallpaperColorResources
+import com.android.customization.module.CustomizationInjector
+import com.android.customization.module.CustomizationPreferences
+import com.android.customization.module.logging.ThemesUserEventLogger
+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.ClockSettingsViewModel
+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
+import com.android.systemui.shared.clocks.ClockRegistry
+import com.android.wallpaper.module.logging.UserEventLogger
+import com.android.wallpaper.picker.customization.data.repository.WallpaperColorsRepository
+import com.android.wallpaper.testing.TestInjector
+import javax.inject.Inject
+import javax.inject.Singleton
+
+@Singleton
+open class TestCustomizationInjector
+@Inject
+constructor(
+    private val customPrefs: TestDefaultCustomizationPreferences,
+    private val themesUserEventLogger: ThemesUserEventLogger
+) : TestInjector(themesUserEventLogger), CustomizationInjector {
+    /////////////////
+    // CustomizationInjector implementations
+    /////////////////
+
+    override fun getCustomizationPreferences(context: Context): CustomizationPreferences {
+        return customPrefs
+    }
+
+    override fun getKeyguardQuickAffordancePickerInteractor(
+        context: Context
+    ): KeyguardQuickAffordancePickerInteractor {
+        throw UnsupportedOperationException("not implemented")
+    }
+
+    override fun getClockRegistry(context: Context): ClockRegistry? {
+        throw UnsupportedOperationException("not implemented")
+    }
+
+    override fun getClockPickerInteractor(context: Context): ClockPickerInteractor {
+        throw UnsupportedOperationException("not implemented")
+    }
+
+    override fun getWallpaperColorResources(
+        wallpaperColors: WallpaperColors,
+        context: Context
+    ): WallpaperColorResources {
+        return ThemedWallpaperColorResources(wallpaperColors, context)
+    }
+
+    override fun getColorPickerInteractor(
+        context: Context,
+        wallpaperColorsRepository: WallpaperColorsRepository,
+    ): ColorPickerInteractor {
+        throw UnsupportedOperationException("not implemented")
+    }
+
+    override fun getColorPickerViewModelFactory(
+        context: Context,
+        wallpaperColorsRepository: WallpaperColorsRepository,
+    ): ColorPickerViewModel.Factory {
+        throw UnsupportedOperationException("not implemented")
+    }
+
+    override fun getClockCarouselViewModelFactory(
+        interactor: ClockPickerInteractor,
+        clockViewFactory: ClockViewFactory,
+        resources: Resources,
+        logger: ThemesUserEventLogger,
+    ): ClockCarouselViewModel.Factory {
+        throw UnsupportedOperationException("not implemented")
+    }
+
+    override fun getClockViewFactory(activity: ComponentActivity): ClockViewFactory {
+        throw UnsupportedOperationException("not implemented")
+    }
+
+    override fun getClockSettingsViewModelFactory(
+        context: Context,
+        wallpaperColorsRepository: WallpaperColorsRepository,
+        clockViewFactory: ClockViewFactory,
+    ): ClockSettingsViewModel.Factory {
+        throw UnsupportedOperationException("not implemented")
+    }
+
+    /////////////////
+    // TestInjector overrides
+    /////////////////
+
+    override fun getUserEventLogger(context: Context): UserEventLogger {
+        return themesUserEventLogger
+    }
+}
diff --git a/tests/common/src/com/android/customization/testing/TestDefaultCustomizationPreferences.java b/tests/common/src/com/android/customization/testing/TestDefaultCustomizationPreferences.java
deleted file mode 100644
index 81890f0..0000000
--- a/tests/common/src/com/android/customization/testing/TestDefaultCustomizationPreferences.java
+++ /dev/null
@@ -1,56 +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.testing;
-
-import android.content.Context;
-
-import com.android.customization.module.DefaultCustomizationPreferences;
-
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * Test implementation of {@link DefaultCustomizationPreferences}.
- */
-public class TestDefaultCustomizationPreferences extends DefaultCustomizationPreferences {
-
-    private String mCustomThemes;
-    private final Set<String> mTabVisited = new HashSet<>();
-
-    public TestDefaultCustomizationPreferences(Context context) {
-        super(context);
-    }
-
-    @Override
-    public String getSerializedCustomThemes() {
-        return mCustomThemes;
-    }
-
-    @Override
-    public void storeCustomThemes(String serializedCustomThemes) {
-        mCustomThemes = serializedCustomThemes;
-    }
-
-    @Override
-    public boolean getTabVisited(String id) {
-        return mTabVisited.contains(id);
-    }
-
-    @Override
-    public void setTabVisited(String id) {
-        mTabVisited.add(id);
-    }
-}
diff --git a/tests/common/src/com/android/customization/testing/TestDefaultCustomizationPreferences.kt b/tests/common/src/com/android/customization/testing/TestDefaultCustomizationPreferences.kt
new file mode 100644
index 0000000..10fe5ac
--- /dev/null
+++ b/tests/common/src/com/android/customization/testing/TestDefaultCustomizationPreferences.kt
@@ -0,0 +1,55 @@
+/*
+ * 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.testing
+
+import com.android.customization.module.CustomizationPreferences
+import com.android.wallpaper.testing.TestWallpaperPreferences
+import javax.inject.Inject
+import javax.inject.Singleton
+
+/** Test implementation of [CustomizationPreferences]. */
+@Singleton
+open class TestDefaultCustomizationPreferences @Inject constructor() :
+    TestWallpaperPreferences(), CustomizationPreferences {
+
+    private var customThemes: String? = null
+    private val tabVisited: MutableSet<String> = HashSet()
+    private var themedIconEnabled = false
+
+    override fun getSerializedCustomThemes(): String? {
+        return customThemes
+    }
+
+    override fun storeCustomThemes(serializedCustomThemes: String) {
+        customThemes = serializedCustomThemes
+    }
+
+    override fun getTabVisited(id: String): Boolean {
+        return tabVisited.contains(id)
+    }
+
+    override fun setTabVisited(id: String) {
+        tabVisited.add(id)
+    }
+
+    override fun getThemedIconEnabled(): Boolean {
+        return themedIconEnabled
+    }
+
+    override fun setThemedIconEnabled(enabled: Boolean) {
+        themedIconEnabled = enabled
+    }
+}
diff --git a/tests/common/src/com/android/customization/testing/TestDrawableLayerResolver.java b/tests/common/src/com/android/customization/testing/TestDrawableLayerResolver.java
deleted file mode 100644
index 8b16299..0000000
--- a/tests/common/src/com/android/customization/testing/TestDrawableLayerResolver.java
+++ /dev/null
@@ -1,31 +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.testing;
-
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.LayerDrawable;
-
-import com.android.wallpaper.module.DrawableLayerResolver;
-
-/**
- * Test implementation of {@link DrawableLayerResolver}.
- */
-public class TestDrawableLayerResolver implements DrawableLayerResolver {
-    @Override
-    public Drawable resolveLayer(LayerDrawable layerDrawable) {
-        return layerDrawable.getDrawable(0);
-    }
-}
diff --git a/tests/common/src/com/android/customization/testing/TestPackageStatusNotifier.java b/tests/common/src/com/android/customization/testing/TestPackageStatusNotifier.java
deleted file mode 100644
index 2aadae8..0000000
--- a/tests/common/src/com/android/customization/testing/TestPackageStatusNotifier.java
+++ /dev/null
@@ -1,33 +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.testing;
-
-import com.android.wallpaper.module.PackageStatusNotifier;
-
-/**
- * Test implementation of {@link PackageStatusNotifier}.
- */
-public class TestPackageStatusNotifier implements PackageStatusNotifier {
-    @Override
-    public void addListener(Listener listener, String action) {
-        // Do nothing
-    }
-
-    @Override
-    public void removeListener(Listener listener) {
-        // Do nothing
-    }
-}
diff --git a/tests/common/src/com/android/customization/testing/TestThemeManager.java b/tests/common/src/com/android/customization/testing/TestThemeManager.java
deleted file mode 100644
index 5175b24..0000000
--- a/tests/common/src/com/android/customization/testing/TestThemeManager.java
+++ /dev/null
@@ -1,48 +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.testing;
-
-import androidx.fragment.app.FragmentActivity;
-
-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.ThemesUserEventLogger;
-
-/**
- * Test implementation of {@link ThemeManager}.
- */
-public class TestThemeManager extends ThemeManager {
-
-    private static boolean sIsAvailable;
-
-    public TestThemeManager(
-            ThemeBundleProvider provider,
-            FragmentActivity activity,
-            OverlayManagerCompat overlayManagerCompat,
-            ThemesUserEventLogger logger) {
-        super(provider, activity, overlayManagerCompat, logger);
-    }
-
-    @Override
-    public boolean isAvailable() {
-        return sIsAvailable;
-    }
-
-    public static void setAvailable(boolean available) {
-        sIsAvailable = available;
-    }
-}
diff --git a/tests/common/src/com/android/customization/testing/TestThemesUserEventLogger.java b/tests/common/src/com/android/customization/testing/TestThemesUserEventLogger.java
deleted file mode 100644
index 22a5b94..0000000
--- a/tests/common/src/com/android/customization/testing/TestThemesUserEventLogger.java
+++ /dev/null
@@ -1,53 +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.testing;
-
-import com.android.customization.model.color.ColorOption;
-import com.android.customization.model.grid.GridOption;
-import com.android.customization.model.theme.ThemeBundle;
-import com.android.customization.module.ThemesUserEventLogger;
-import com.android.wallpaper.testing.TestUserEventLogger;
-
-/**
- * Test implementation of {@link ThemesUserEventLogger}.
- */
-public class TestThemesUserEventLogger extends TestUserEventLogger
-        implements ThemesUserEventLogger {
-    @Override
-    public void logThemeSelected(ThemeBundle theme, boolean isCustomTheme) {
-        // Do nothing.
-    }
-
-    @Override
-    public void logThemeApplied(ThemeBundle theme, boolean isCustomTheme) {
-        // Do nothing.
-    }
-
-    @Override
-    public void logColorApplied(int action, ColorOption colorOption) {
-        // Do nothing.
-    }
-
-    @Override
-    public void logGridSelected(GridOption grid) {
-        // Do nothing.
-    }
-
-    @Override
-    public void logGridApplied(GridOption grid) {
-        // Do nothing.
-    }
-}
diff --git a/tests/module/src/com/android/customization/TestModule.kt b/tests/module/src/com/android/customization/TestModule.kt
new file mode 100644
index 0000000..1ad63a9
--- /dev/null
+++ b/tests/module/src/com/android/customization/TestModule.kt
@@ -0,0 +1,83 @@
+package com.android.customization
+
+import androidx.test.core.app.ApplicationProvider
+import com.android.customization.model.color.ColorCustomizationManager
+import com.android.customization.model.theme.OverlayManagerCompat
+import com.android.customization.module.CustomizationInjector
+import com.android.customization.module.CustomizationPreferences
+import com.android.customization.module.logging.TestThemesUserEventLogger
+import com.android.customization.module.logging.ThemesUserEventLogger
+import com.android.customization.testing.TestCustomizationInjector
+import com.android.customization.testing.TestDefaultCustomizationPreferences
+import com.android.wallpaper.module.AppModule
+import com.android.wallpaper.module.Injector
+import com.android.wallpaper.module.WallpaperPreferences
+import com.android.wallpaper.module.logging.TestUserEventLogger
+import com.android.wallpaper.module.logging.UserEventLogger
+import com.android.wallpaper.testing.TestInjector
+import com.android.wallpaper.testing.TestWallpaperPreferences
+import com.android.wallpaper.util.converter.DefaultWallpaperModelFactory
+import com.android.wallpaper.util.converter.WallpaperModelFactory
+import dagger.Binds
+import dagger.Module
+import dagger.Provides
+import dagger.hilt.components.SingletonComponent
+import dagger.hilt.testing.TestInstallIn
+import javax.inject.Singleton
+
+@Module
+@TestInstallIn(components = [SingletonComponent::class], replaces = [AppModule::class])
+abstract class TestModule {
+    //// WallpaperPicker2 prod
+
+    @Binds @Singleton abstract fun bindInjector(impl: TestCustomizationInjector): Injector
+
+    @Binds @Singleton abstract fun bindUserEventLogger(impl: TestUserEventLogger): UserEventLogger
+
+    @Binds
+    @Singleton
+    abstract fun bindThemesUserEventLogger(impl: TestThemesUserEventLogger): ThemesUserEventLogger
+
+    @Binds
+    @Singleton
+    abstract fun bindWallpaperPrefs(impl: TestDefaultCustomizationPreferences): WallpaperPreferences
+
+    //// WallpaperPicker2 test
+
+    @Binds @Singleton abstract fun bindTestInjector(impl: TestCustomizationInjector): TestInjector
+
+    @Binds
+    @Singleton
+    abstract fun bindTestWallpaperPrefs(
+        impl: TestDefaultCustomizationPreferences
+    ): TestWallpaperPreferences
+
+    //// ThemePicker prod
+
+    @Binds
+    @Singleton
+    abstract fun bindCustomizationInjector(impl: TestCustomizationInjector): CustomizationInjector
+
+    @Binds
+    @Singleton
+    abstract fun bindCustomizationPrefs(
+        impl: TestDefaultCustomizationPreferences
+    ): CustomizationPreferences
+
+    @Binds
+    @Singleton
+    abstract fun bindWallpaperModelFactory(
+        impl: DefaultWallpaperModelFactory
+    ): WallpaperModelFactory
+
+    companion object {
+        @Provides
+        @Singleton
+        fun provideColorCustomizationManager(): ColorCustomizationManager {
+            return ColorCustomizationManager.getInstance(
+                ApplicationProvider.getApplicationContext(),
+                OverlayManagerCompat(ApplicationProvider.getApplicationContext())
+            )
+        }
+    }
+}
diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp
index c34ed2c..d4dde59 100644
--- a/tests/robotests/Android.bp
+++ b/tests/robotests/Android.bp
@@ -2,22 +2,30 @@
     default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
+android_app {
+    name: "ThemePickerShell",
+    defaults: ["ThemePicker_defaults"],
+    platform_apis: true,
+    static_libs: ["ThemePickerTestLib"],
+}
+
 android_robolectric_test {
     name: "ThemePickerRoboTests",
     srcs: [
         "src/**/*.java",
         "src/**/*.kt",
     ],
-    // TODO(b/291104503) Enable this test
-    exclude_srcs: ["src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt"],
     java_resource_dirs: ["config"],
+
+    // Do not add picker-related dependencies here. Add them to ThemePickerShell
+    // instead.
     static_libs: [
-        "WallpaperPicker2TestLib",
         "androidx.test.rules",
         "junit",
         "kotlinx_coroutines_test",
         "truth",
     ],
+
     libs: [
         "androidx.test.core",
         "androidx.test.runner",
@@ -25,5 +33,5 @@
 
     upstream: true,
 
-    instrumentation_for: "ThemePicker",
+    instrumentation_for: "ThemePickerShell",
 }
diff --git a/tests/robotests/res/values/overlayable_icons_test.xml b/tests/robotests/res/values/overlayable_icons_test.xml
deleted file mode 100644
index 73cffe1..0000000
--- a/tests/robotests/res/values/overlayable_icons_test.xml
+++ /dev/null
@@ -1,34 +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.
--->
-<resources>
-  <!-- overlayable_icons references all of the drawables in this package
-       that are being overlayed by resource overlays. If you remove/rename
-       any of these resources, you must also change the resource overlay icons.-->
-  <array name="overlayable_icons">
-    <item>@drawable/ic_add_24px</item>
-    <item>@drawable/ic_close_24px</item>
-    <item>@drawable/ic_colorize_24px</item>
-    <item>@drawable/ic_delete_24px</item>
-    <item>@drawable/ic_font</item>
-    <item>@drawable/ic_nav_clock</item>
-    <item>@drawable/ic_nav_grid</item>
-    <item>@drawable/ic_nav_theme</item>
-    <item>@drawable/ic_nav_wallpaper</item>
-    <item>@drawable/ic_shapes_24px</item>
-    <item>@drawable/ic_tune</item>
-    <item>@drawable/ic_wifi_24px</item>
-  </array>
-</resources>
diff --git a/tests/robotests/src/com/android/customization/model/color/ColorCustomizationManagerTest.kt b/tests/robotests/src/com/android/customization/model/color/ColorCustomizationManagerTest.kt
index 80d01c6..e9f4683 100644
--- a/tests/robotests/src/com/android/customization/model/color/ColorCustomizationManagerTest.kt
+++ b/tests/robotests/src/com/android/customization/model/color/ColorCustomizationManagerTest.kt
@@ -16,7 +16,9 @@
 package com.android.customization.model.color
 
 import android.app.WallpaperColors
+import android.content.Context
 import android.graphics.Color
+import androidx.test.core.app.ApplicationProvider
 import com.android.customization.model.CustomizationManager
 import com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_COLOR
 import com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SYSTEM_PALETTE
@@ -25,25 +27,23 @@
 import com.android.customization.model.color.ColorOptionsProvider.OVERLAY_COLOR_BOTH
 import com.android.customization.model.color.ColorOptionsProvider.OVERLAY_COLOR_INDEX
 import com.android.customization.model.color.ColorOptionsProvider.OVERLAY_COLOR_SOURCE
+import com.android.customization.model.color.ColorOptionsProvider.OVERLAY_THEME_STYLE
 import com.android.customization.model.theme.OverlayManagerCompat
+import com.android.customization.picker.color.shared.model.ColorType
 import com.android.systemui.monet.Style
 import com.google.common.truth.Truth.assertThat
 import org.json.JSONObject
 import org.junit.Before
-import org.junit.Ignore
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.ArgumentMatchers.anyInt
 import org.mockito.Mock
 import org.mockito.MockitoAnnotations
 import org.mockito.junit.MockitoJUnit
 import org.mockito.junit.MockitoRule
 import org.robolectric.RobolectricTestRunner
-import org.robolectric.RuntimeEnvironment
 
 /** Tests of {@link ColorCustomizationManager}. */
-// TODO(b/222433744): most of these tests are failing due to the manager apk missing in the image
 @RunWith(RobolectricTestRunner::class)
 class ColorCustomizationManagerTest {
 
@@ -57,12 +57,11 @@
     @Before
     fun setUp() {
         MockitoAnnotations.initMocks(this)
-        val application = RuntimeEnvironment.application
+        val application = ApplicationProvider.getApplicationContext<Context>()
         manager = ColorCustomizationManager(provider, application.contentResolver, mockOM)
     }
 
     @Test
-    @Ignore("b/260925899")
     fun testParseSettings() {
         val source = COLOR_SOURCE_HOME
         val style = Style.SPRITZ
@@ -73,6 +72,7 @@
                 OVERLAY_CATEGORY_SYSTEM_PALETTE to someColor,
                 OVERLAY_CATEGORY_COLOR to someOtherColor,
                 OVERLAY_COLOR_SOURCE to source,
+                OVERLAY_THEME_STYLE to style.toString(),
                 ColorOption.TIMESTAMP_FIELD to "12345"
             )
         val json = JSONObject(settings).toString()
@@ -80,114 +80,119 @@
         manager.parseSettings(json)
 
         assertThat(manager.currentColorSource).isEqualTo(source)
-        assertThat(manager.currentStyle).isEqualTo(style)
+        assertThat(manager.currentStyle).isEqualTo(style.toString())
         assertThat(manager.currentOverlays.size).isEqualTo(2)
-        assertThat(manager.currentOverlays.get(OVERLAY_CATEGORY_COLOR)).isEqualTo(someOtherColor)
-        assertThat(manager.currentOverlays.get(OVERLAY_CATEGORY_SYSTEM_PALETTE))
-            .isEqualTo(someColor)
+        assertThat(manager.currentOverlays[OVERLAY_CATEGORY_COLOR]).isEqualTo(someOtherColor)
+        assertThat(manager.currentOverlays[OVERLAY_CATEGORY_SYSTEM_PALETTE]).isEqualTo(someColor)
     }
 
     @Test
-    @Ignore("b/260925899")
-    fun apply_ColorBundle_index() {
-        testApplyColorBundle(1, "1")
-        testApplyColorBundle(2, "2")
-        testApplyColorBundle(3, "3")
-        testApplyColorBundle(4, "4")
+    fun apply_PresetColorOption_index() {
+        testApplyPresetColorOption(1, "1")
+        testApplyPresetColorOption(2, "2")
+        testApplyPresetColorOption(3, "3")
+        testApplyPresetColorOption(4, "4")
     }
 
-    private fun testApplyColorBundle(index: Int, value: String) {
+    private fun testApplyPresetColorOption(index: Int, value: String) {
         manager.apply(
-            getColorBundle(index),
+            getPresetColorOption(index),
             object : CustomizationManager.Callback {
                 override fun onSuccess() {}
                 override fun onError(throwable: Throwable?) {}
             }
         )
 
+        Thread.sleep(100)
+
         val overlaysJson = JSONObject(manager.storedOverlays)
 
         assertThat(overlaysJson.getString(OVERLAY_COLOR_INDEX)).isEqualTo(value)
     }
-
-    private fun getColorBundle(index: Int): ColorBundle {
-        return ColorBundle(
-            "fake color",
-            mapOf("fake_package" to "fake_color"),
-            /* isDefault= */ false,
-            null,
-            /* index= */ index,
-            null
-        )
-    }
-
     @Test
-    @Ignore("b/260925899")
-    fun apply_ColorSeed_index() {
-        testApplyColorSeed(1, "1")
-        testApplyColorSeed(2, "2")
-        testApplyColorSeed(3, "3")
-        testApplyColorSeed(4, "4")
+    fun apply_WallpaperColorOption_index() {
+        testApplyWallpaperColorOption(1, "1")
+        testApplyWallpaperColorOption(2, "2")
+        testApplyWallpaperColorOption(3, "3")
+        testApplyWallpaperColorOption(4, "4")
     }
 
-    private fun testApplyColorSeed(index: Int, value: String) {
+    private fun testApplyWallpaperColorOption(index: Int, value: String) {
         manager.apply(
-            getColorSeed(index),
+            getWallpaperColorOption(index),
             object : CustomizationManager.Callback {
                 override fun onSuccess() {}
                 override fun onError(throwable: Throwable?) {}
             }
         )
 
+        Thread.sleep(100)
+
         val overlaysJson = JSONObject(manager.storedOverlays)
         assertThat(overlaysJson.getString(OVERLAY_COLOR_INDEX)).isEqualTo(value)
     }
 
-    private fun getColorSeed(index: Int): ColorSeedOption {
-        return ColorSeedOption(
+    private fun getPresetColorOption(index: Int): ColorOptionImpl {
+        return ColorOptionImpl(
             "fake color",
             mapOf("fake_package" to "fake_color"),
             /* isDefault= */ false,
             COLOR_SOURCE_PRESET,
-            null,
+            Style.TONAL_SPOT,
             index,
-            null
+            ColorOptionImpl.PreviewInfo(intArrayOf(0), intArrayOf(0)),
+            ColorType.PRESET_COLOR
+        )
+    }
+
+    private fun getWallpaperColorOption(index: Int): ColorOptionImpl {
+        return ColorOptionImpl(
+            "fake color",
+            mapOf("fake_package" to "fake_color"),
+            /* isDefault= */ false,
+            COLOR_SOURCE_HOME,
+            Style.TONAL_SPOT,
+            index,
+            ColorOptionImpl.PreviewInfo(intArrayOf(0), intArrayOf(0)),
+            ColorType.WALLPAPER_COLOR
         )
     }
 
     @Test
-    @Ignore("b/260925899")
     fun testApply_colorSeedFromWallpaperBoth_shouldReturnBothValue() {
         val wallpaperColor = WallpaperColors(Color.valueOf(Color.RED), null, null)
         manager.setWallpaperColors(wallpaperColor, wallpaperColor)
 
         manager.apply(
-            getColorSeed(anyInt()),
+            getWallpaperColorOption(0),
             object : CustomizationManager.Callback {
                 override fun onSuccess() {}
                 override fun onError(throwable: Throwable?) {}
             }
         )
 
+        Thread.sleep(100)
+
         val overlaysJson = JSONObject(manager.storedOverlays)
         assertThat(overlaysJson.getString(OVERLAY_COLOR_BOTH)).isEqualTo("1")
     }
 
     @Test
-    @Ignore("b/260925899")
     fun testApply_colorSeedFromWallpaperDifferent_shouldReturnNonBothValue() {
         val wallpaperColor1 = WallpaperColors(Color.valueOf(Color.RED), null, null)
         val wallpaperColor2 = WallpaperColors(Color.valueOf(Color.BLUE), null, null)
         manager.setWallpaperColors(wallpaperColor1, wallpaperColor2)
 
         manager.apply(
-            getColorSeed(anyInt()),
+            getWallpaperColorOption(0),
             object : CustomizationManager.Callback {
                 override fun onSuccess() {}
                 override fun onError(throwable: Throwable?) {}
             }
         )
 
+        Thread.sleep(100)
+
         val overlaysJson = JSONObject(manager.storedOverlays)
         assertThat(overlaysJson.getString(OVERLAY_COLOR_BOTH)).isEqualTo("0")
     }
diff --git a/tests/robotests/src/com/android/customization/model/color/ColorOptionTest.kt b/tests/robotests/src/com/android/customization/model/color/ColorOptionTest.kt
index 0431c19..b9156d6 100644
--- a/tests/robotests/src/com/android/customization/model/color/ColorOptionTest.kt
+++ b/tests/robotests/src/com/android/customization/model/color/ColorOptionTest.kt
@@ -15,13 +15,14 @@
  */
 package com.android.customization.model.color
 
+import com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SYSTEM_PALETTE
 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.ColorOptionsProvider.COLOR_SOURCE_PRESET
+import com.android.customization.picker.color.shared.model.ColorType
 import com.android.systemui.monet.Style
 import com.google.common.truth.Truth.assertThat
-import org.junit.Assert.assertEquals
-import org.junit.Ignore
+import org.json.JSONObject
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -40,108 +41,77 @@
     @Mock private lateinit var manager: ColorCustomizationManager
 
     @Test
-    fun colorOption_Source_Preset() {
-        val bundleOption: ColorOption =
-            ColorBundle(
-                "fake color",
-                mapOf("fake_package" to "fake_color"),
-                false,
-                null,
-                /* index= */ 0,
-                null
-            )
-        assertEquals(COLOR_SOURCE_PRESET, bundleOption.source)
+    fun colorOption_Source() {
+        testColorOptionSource(COLOR_SOURCE_HOME)
+        testColorOptionSource(COLOR_SOURCE_LOCK)
+        testColorOptionSource(COLOR_SOURCE_PRESET)
     }
 
-    @Test
-    fun colorOption_bundle_index() {
-        testBundleOptionIndex(1)
-        testBundleOptionIndex(2)
-        testBundleOptionIndex(3)
-        testBundleOptionIndex(4)
-    }
-
-    private fun testBundleOptionIndex(index: Int) {
-        val bundleOption: ColorBundle =
-            ColorBundle(
-                "fake color",
-                mapOf("fake_package" to "fake_color"),
-                false,
-                null,
-                /* index= */ index,
-                null
-            )
-        assertThat(bundleOption.index).isEqualTo(index)
-    }
-
-    @Test
-    fun colorOption_Source_Seed() {
-        testSeedOptionSource(COLOR_SOURCE_HOME)
-        testSeedOptionSource(COLOR_SOURCE_LOCK)
-    }
-
-    private fun testSeedOptionSource(source: String) {
-        val seedOption: ColorOption =
-            ColorSeedOption(
+    private fun testColorOptionSource(source: String) {
+        val colorOption: ColorOption =
+            ColorOptionImpl(
                 "fake color",
                 mapOf("fake_package" to "fake_color"),
                 false,
                 source,
-                null,
+                Style.TONAL_SPOT,
                 /* index= */ 0,
-                null
+                ColorOptionImpl.PreviewInfo(intArrayOf(0), intArrayOf(0)),
+                ColorType.WALLPAPER_COLOR
             )
-        assertThat(seedOption.source).isEqualTo(source)
+        assertThat(colorOption.source).isEqualTo(source)
     }
 
     @Test
-    fun colorOption_seed_style() {
-        testSeedOptionStyle(Style.TONAL_SPOT)
-        testSeedOptionStyle(Style.SPRITZ)
-        testSeedOptionStyle(Style.VIBRANT)
-        testSeedOptionStyle(Style.EXPRESSIVE)
+    fun colorOption_style() {
+        testColorOptionStyle(Style.TONAL_SPOT)
+        testColorOptionStyle(Style.SPRITZ)
+        testColorOptionStyle(Style.VIBRANT)
+        testColorOptionStyle(Style.EXPRESSIVE)
     }
 
-    private fun testSeedOptionStyle(style: Style) {
-        val seedOption: ColorOption =
-            ColorSeedOption(
+    private fun testColorOptionStyle(style: Style) {
+        val colorOption: ColorOption =
+            ColorOptionImpl(
                 "fake color",
                 mapOf("fake_package" to "fake_color"),
                 /* isDefault= */ false,
                 "fake_source",
                 style,
                 0,
-                null
+                ColorOptionImpl.PreviewInfo(intArrayOf(0), intArrayOf(0)),
+                ColorType.WALLPAPER_COLOR
             )
-        assertThat(seedOption.style).isEqualTo(style)
+        assertThat(colorOption.style).isEqualTo(style)
     }
 
     @Test
-    fun colorOption_seed_index() {
-        testSeedOptionIndex(1)
-        testSeedOptionIndex(2)
-        testSeedOptionIndex(3)
-        testSeedOptionIndex(4)
+    fun colorOption_index() {
+        testColorOptionIndex(1)
+        testColorOptionIndex(2)
+        testColorOptionIndex(3)
+        testColorOptionIndex(4)
     }
 
-    private fun testSeedOptionIndex(index: Int) {
-        val seedOption: ColorOption =
-            ColorSeedOption(
+    private fun testColorOptionIndex(index: Int) {
+        val colorOption: ColorOption =
+            ColorOptionImpl(
                 "fake color",
                 mapOf("fake_package" to "fake_color"),
                 /* isDefault= */ false,
                 "fake_source",
                 Style.TONAL_SPOT,
                 index,
-                /* previewInfo= */ null
+                ColorOptionImpl.PreviewInfo(intArrayOf(0), intArrayOf(0)),
+                ColorType.WALLPAPER_COLOR
             )
-        assertThat(seedOption.index).isEqualTo(index)
+        assertThat(colorOption.index).isEqualTo(index)
     }
 
-    private fun setUpSeedOption(
+    private fun setUpWallpaperColorOption(
         isDefault: Boolean,
         source: String = "some_source"
-    ): ColorSeedOption {
+    ): ColorOptionImpl {
         val overlays =
             if (isDefault) {
                 HashMap()
@@ -149,67 +119,69 @@
                 mapOf("package" to "value", "otherPackage" to "otherValue")
             }
         `when`(manager.currentOverlays).thenReturn(overlays)
-        return ColorSeedOption(
+        return ColorOptionImpl(
             "seed",
             overlays,
             isDefault,
             source,
             Style.TONAL_SPOT,
             /* index= */ 0,
-            /* previewInfo= */ null
+            ColorOptionImpl.PreviewInfo(intArrayOf(0), intArrayOf(0)),
+            ColorType.WALLPAPER_COLOR
         )
     }
 
     @Test
-    fun seedOption_isActive_notDefault_SourceSet() {
+    fun wallpaperColorOption_isActive_notDefault_SourceSet() {
         val source = "some_source"
-        val seedOption = setUpSeedOption(false, source)
+        val colorOption = setUpWallpaperColorOption(false, source)
         `when`(manager.currentColorSource).thenReturn(source)
 
-        assertThat(seedOption.isActive(manager)).isTrue()
+        assertThat(colorOption.isActive(manager)).isTrue()
     }
 
     @Test
-    fun seedOption_isActive_notDefault_NoSource() {
-        val seedOption = setUpSeedOption(false)
+    fun wallpaperColorOption_isActive_notDefault_NoSource() {
+        val colorOption = setUpWallpaperColorOption(false)
         `when`(manager.currentColorSource).thenReturn(null)
 
-        assertThat(seedOption.isActive(manager)).isTrue()
+        assertThat(colorOption.isActive(manager)).isTrue()
     }
 
     @Test
-    fun seedOption_isActive_notDefault_differentSource() {
-        val seedOption = setUpSeedOption(false)
+    fun wallpaperColorOption_isActive_notDefault_differentSource() {
+        val colorOption = setUpWallpaperColorOption(false)
         `when`(manager.currentColorSource).thenReturn("some_other_source")
 
-        assertThat(seedOption.isActive(manager)).isFalse()
+        assertThat(colorOption.isActive(manager)).isFalse()
     }
 
     @Test
-    fun seedOption_isActive_default_emptyJson() {
-        val seedOption = setUpSeedOption(true)
+    fun wallpaperColorOption_isActive_default_emptyJson() {
+        val colorOption = setUpWallpaperColorOption(true)
         `when`(manager.storedOverlays).thenReturn("")
 
-        assertThat(seedOption.isActive(manager)).isTrue()
+        assertThat(colorOption.isActive(manager)).isTrue()
     }
 
     @Test
-    fun seedOption_isActive_default_nonEmptyJson() {
-        val seedOption = setUpSeedOption(true)
+    fun wallpaperColorOption_isActive_default_nonEmptyJson() {
+        val colorOption = setUpWallpaperColorOption(true)
 
         `when`(manager.storedOverlays).thenReturn("{non-empty-json}")
 
         // Should still be Active because overlays is empty
-        assertThat(seedOption.isActive(manager)).isTrue()
+        assertThat(colorOption.isActive(manager)).isTrue()
     }
 
     @Test
-    @Ignore("b/260925899")
-    fun seedOption_isActive_default_nonEmptyOverlays() {
-        val seedOption = setUpSeedOption(true)
+    fun wallpaperColorOption_isActive_default_nonEmptyOverlays() {
+        val colorOption = setUpWallpaperColorOption(true)
 
-        `when`(manager.currentOverlays).thenReturn(mapOf("a" to "b"))
-        // TODO(b/222433744): failing as it's true
-        assertThat(seedOption.isActive(manager)).isFalse()
+        val settings = mapOf(OVERLAY_CATEGORY_SYSTEM_PALETTE to "fake_color")
+        val json = JSONObject(settings).toString()
+        `when`(manager.storedOverlays).thenReturn(json)
+        `when`(manager.currentOverlays).thenReturn(settings)
+        assertThat(colorOption.isActive(manager)).isFalse()
     }
 }
diff --git a/tests/robotests/src/com/android/customization/model/grid/GridOptionsManagerTest.java b/tests/robotests/src/com/android/customization/model/grid/GridOptionsManagerTest.java
index 04ac024..52c6489 100644
--- a/tests/robotests/src/com/android/customization/model/grid/GridOptionsManagerTest.java
+++ b/tests/robotests/src/com/android/customization/model/grid/GridOptionsManagerTest.java
@@ -24,7 +24,7 @@
 import androidx.annotation.Nullable;
 
 import com.android.customization.model.CustomizationManager.Callback;
-import com.android.customization.module.ThemesUserEventLogger;
+import com.android.customization.module.logging.ThemesUserEventLogger;
 
 import org.junit.Before;
 import org.junit.Ignore;
diff --git a/tests/robotests/src/com/android/customization/model/grid/data/repository/FakeGridRepository.kt b/tests/robotests/src/com/android/customization/model/grid/data/repository/FakeGridRepository.kt
index 317ad3a..de68bf0 100644
--- a/tests/robotests/src/com/android/customization/model/grid/data/repository/FakeGridRepository.kt
+++ b/tests/robotests/src/com/android/customization/model/grid/data/repository/FakeGridRepository.kt
@@ -19,8 +19,9 @@
 
 import com.android.customization.model.CustomizationManager
 import com.android.customization.model.grid.GridOption
-import com.android.customization.model.grid.shared.model.GridOptionItemModel
-import com.android.customization.model.grid.shared.model.GridOptionItemsModel
+import com.android.customization.picker.grid.data.repository.GridRepository
+import com.android.customization.picker.grid.shared.model.GridOptionItemModel
+import com.android.customization.picker.grid.shared.model.GridOptionItemsModel
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.channels.BufferOverflow
 import kotlinx.coroutines.flow.Flow
diff --git a/tests/robotests/src/com/android/customization/model/grid/domain/interactor/GridInteractorTest.kt b/tests/robotests/src/com/android/customization/model/grid/domain/interactor/GridInteractorTest.kt
index f73d5a3..3d6c623 100644
--- a/tests/robotests/src/com/android/customization/model/grid/domain/interactor/GridInteractorTest.kt
+++ b/tests/robotests/src/com/android/customization/model/grid/domain/interactor/GridInteractorTest.kt
@@ -19,7 +19,9 @@
 
 import androidx.test.filters.SmallTest
 import com.android.customization.model.grid.data.repository.FakeGridRepository
-import com.android.customization.model.grid.shared.model.GridOptionItemsModel
+import com.android.customization.picker.grid.domain.interactor.GridInteractor
+import com.android.customization.picker.grid.domain.interactor.GridSnapshotRestorer
+import com.android.customization.picker.grid.shared.model.GridOptionItemsModel
 import com.android.wallpaper.testing.FakeSnapshotStore
 import com.android.wallpaper.testing.collectLastValue
 import com.google.common.truth.Truth.assertThat
diff --git a/tests/robotests/src/com/android/customization/model/grid/domain/interactor/GridSnapshotRestorerTest.kt b/tests/robotests/src/com/android/customization/model/grid/domain/interactor/GridSnapshotRestorerTest.kt
index c2712b1..e3f03b7 100644
--- a/tests/robotests/src/com/android/customization/model/grid/domain/interactor/GridSnapshotRestorerTest.kt
+++ b/tests/robotests/src/com/android/customization/model/grid/domain/interactor/GridSnapshotRestorerTest.kt
@@ -19,7 +19,9 @@
 
 import androidx.test.filters.SmallTest
 import com.android.customization.model.grid.data.repository.FakeGridRepository
-import com.android.customization.model.grid.shared.model.GridOptionItemsModel
+import com.android.customization.picker.grid.domain.interactor.GridInteractor
+import com.android.customization.picker.grid.domain.interactor.GridSnapshotRestorer
+import com.android.customization.picker.grid.shared.model.GridOptionItemsModel
 import com.android.wallpaper.testing.FakeSnapshotStore
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.ExperimentalCoroutinesApi
diff --git a/tests/robotests/src/com/android/customization/model/grid/ui/viewmodel/GridScreenViewModelTest.kt b/tests/robotests/src/com/android/customization/model/grid/ui/viewmodel/GridScreenViewModelTest.kt
index 58c5d99..46e914c 100644
--- a/tests/robotests/src/com/android/customization/model/grid/ui/viewmodel/GridScreenViewModelTest.kt
+++ b/tests/robotests/src/com/android/customization/model/grid/ui/viewmodel/GridScreenViewModelTest.kt
@@ -20,8 +20,10 @@
 import androidx.test.filters.SmallTest
 import androidx.test.platform.app.InstrumentationRegistry
 import com.android.customization.model.grid.data.repository.FakeGridRepository
-import com.android.customization.model.grid.domain.interactor.GridInteractor
-import com.android.customization.model.grid.domain.interactor.GridSnapshotRestorer
+import com.android.customization.picker.grid.domain.interactor.GridInteractor
+import com.android.customization.picker.grid.domain.interactor.GridSnapshotRestorer
+import com.android.customization.picker.grid.ui.viewmodel.GridIconViewModel
+import com.android.customization.picker.grid.ui.viewmodel.GridScreenViewModel
 import com.android.wallpaper.picker.option.ui.viewmodel.OptionItemViewModel
 import com.android.wallpaper.testing.FakeSnapshotStore
 import com.android.wallpaper.testing.collectLastValue
diff --git a/tests/robotests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt b/tests/robotests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
index 9968c5f..889720e 100644
--- a/tests/robotests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
+++ b/tests/robotests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
@@ -17,8 +17,12 @@
 package com.android.customization.model.picker.color.ui.viewmodel
 
 import android.content.Context
+import android.graphics.Color
+import android.stats.style.StyleEnums
 import androidx.test.filters.SmallTest
 import androidx.test.platform.app.InstrumentationRegistry
+import com.android.customization.model.color.ColorOptionsProvider
+import com.android.customization.module.logging.TestThemesUserEventLogger
 import com.android.customization.picker.color.data.repository.FakeColorPickerRepository
 import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
 import com.android.customization.picker.color.domain.interactor.ColorPickerSnapshotRestorer
@@ -26,6 +30,7 @@
 import com.android.customization.picker.color.ui.viewmodel.ColorOptionIconViewModel
 import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
 import com.android.customization.picker.color.ui.viewmodel.ColorTypeTabViewModel
+import com.android.systemui.monet.Style
 import com.android.wallpaper.picker.option.ui.viewmodel.OptionItemViewModel
 import com.android.wallpaper.testing.FakeSnapshotStore
 import com.android.wallpaper.testing.collectLastValue
@@ -36,6 +41,7 @@
 import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.test.StandardTestDispatcher
 import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.advanceUntilIdle
 import kotlinx.coroutines.test.resetMain
 import kotlinx.coroutines.test.runTest
 import kotlinx.coroutines.test.setMain
@@ -49,6 +55,7 @@
 @SmallTest
 @RunWith(RobolectricTestRunner::class)
 class ColorPickerViewModelTest {
+    private val logger = TestThemesUserEventLogger()
     private lateinit var underTest: ColorPickerViewModel
     private lateinit var repository: FakeColorPickerRepository
     private lateinit var interactor: ColorPickerInteractor
@@ -77,7 +84,11 @@
             )
 
         underTest =
-            ColorPickerViewModel.Factory(context = context, interactor = interactor)
+            ColorPickerViewModel.Factory(
+                    context = context,
+                    interactor = interactor,
+                    logger = logger
+                )
                 .create(ColorPickerViewModel::class.java)
 
         repository.setOptions(4, 4, ColorType.WALLPAPER_COLOR, 0)
@@ -112,6 +123,67 @@
         }
 
     @Test
+    fun `Log selected wallpaper color`() =
+        testScope.runTest {
+            repository.setOptions(
+                listOf(
+                    repository.buildWallpaperOption(
+                        ColorOptionsProvider.COLOR_SOURCE_LOCK,
+                        Style.EXPRESSIVE,
+                        "121212"
+                    )
+                ),
+                listOf(repository.buildPresetOption(Style.FRUIT_SALAD, "#ABCDEF")),
+                ColorType.PRESET_COLOR,
+                0
+            )
+
+            val colorTypes = collectLastValue(underTest.colorTypeTabs)
+            val colorOptions = collectLastValue(underTest.colorOptions)
+
+            // Select "Wallpaper colors" tab
+            colorTypes()?.get(ColorType.WALLPAPER_COLOR)?.onClick?.invoke()
+            // Select a color option
+            selectColorOption(colorOptions, 0)
+            advanceUntilIdle()
+
+            assertThat(logger.themeColorSource)
+                .isEqualTo(StyleEnums.COLOR_SOURCE_LOCK_SCREEN_WALLPAPER)
+            assertThat(logger.themeColorStyle).isEqualTo(Style.EXPRESSIVE.toString().hashCode())
+            assertThat(logger.themeSeedColor).isEqualTo(Color.parseColor("#121212"))
+        }
+
+    @Test
+    fun `Log selected preset color`() =
+        testScope.runTest {
+            repository.setOptions(
+                listOf(
+                    repository.buildWallpaperOption(
+                        ColorOptionsProvider.COLOR_SOURCE_LOCK,
+                        Style.EXPRESSIVE,
+                        "121212"
+                    )
+                ),
+                listOf(repository.buildPresetOption(Style.FRUIT_SALAD, "#ABCDEF")),
+                ColorType.WALLPAPER_COLOR,
+                0
+            )
+
+            val colorTypes = collectLastValue(underTest.colorTypeTabs)
+            val colorOptions = collectLastValue(underTest.colorOptions)
+
+            // Select "Wallpaper colors" tab
+            colorTypes()?.get(ColorType.PRESET_COLOR)?.onClick?.invoke()
+            // Select a color option
+            selectColorOption(colorOptions, 0)
+            advanceUntilIdle()
+
+            assertThat(logger.themeColorSource).isEqualTo(StyleEnums.COLOR_SOURCE_PRESET_COLOR)
+            assertThat(logger.themeColorStyle).isEqualTo(Style.FRUIT_SALAD.toString().hashCode())
+            assertThat(logger.themeSeedColor).isEqualTo(Color.parseColor("#ABCDEF"))
+        }
+
+    @Test
     fun `Select a preset color`() =
         testScope.runTest {
             val colorTypes = collectLastValue(underTest.colorTypeTabs)
diff --git a/tests/robotests/src/com/android/customization/model/picker/quickaffordance/data/repository/KeyguardQuickAffordancePickerRepositoryTest.kt b/tests/robotests/src/com/android/customization/model/picker/quickaffordance/data/repository/KeyguardQuickAffordancePickerRepositoryTest.kt
index 35dbadd..8687b30 100644
--- a/tests/robotests/src/com/android/customization/model/picker/quickaffordance/data/repository/KeyguardQuickAffordancePickerRepositoryTest.kt
+++ b/tests/robotests/src/com/android/customization/model/picker/quickaffordance/data/repository/KeyguardQuickAffordancePickerRepositoryTest.kt
@@ -19,17 +19,13 @@
 
 import androidx.test.filters.SmallTest
 import com.android.customization.picker.quickaffordance.data.repository.KeyguardQuickAffordancePickerRepository
-import com.android.systemui.shared.customization.data.content.CustomizationProviderContract
 import com.android.systemui.shared.customization.data.content.FakeCustomizationProviderClient
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.flow.toList
-import kotlinx.coroutines.launch
 import kotlinx.coroutines.test.TestScope
 import kotlinx.coroutines.test.UnconfinedTestDispatcher
 import kotlinx.coroutines.test.resetMain
-import kotlinx.coroutines.test.runTest
 import kotlinx.coroutines.test.setMain
 import org.junit.After
 import org.junit.Before
@@ -57,44 +53,18 @@
         underTest =
             KeyguardQuickAffordancePickerRepository(
                 client = client,
-                backgroundDispatcher = coroutineDispatcher,
+                scope = testScope.backgroundScope,
             )
     }
 
+    // We need at least one test to prevent Studio errors
+    @Test
+    fun creationSucceeds() {
+        assertThat(underTest).isNotNull()
+    }
+
     @After
     fun tearDown() {
         Dispatchers.resetMain()
     }
-
-    @Test
-    fun `isFeatureEnabled - enabled`() =
-        testScope.runTest {
-            client.setFlag(
-                CustomizationProviderContract.FlagsTable
-                    .FLAG_NAME_CUSTOM_LOCK_SCREEN_QUICK_AFFORDANCES_ENABLED,
-                true,
-            )
-            val values = mutableListOf<Boolean>()
-            val job = launch { underTest.isFeatureEnabled.toList(values) }
-
-            assertThat(values.last()).isTrue()
-
-            job.cancel()
-        }
-
-    @Test
-    fun `isFeatureEnabled - not enabled`() =
-        testScope.runTest {
-            client.setFlag(
-                CustomizationProviderContract.FlagsTable
-                    .FLAG_NAME_CUSTOM_LOCK_SCREEN_QUICK_AFFORDANCES_ENABLED,
-                false,
-            )
-            val values = mutableListOf<Boolean>()
-            val job = launch { underTest.isFeatureEnabled.toList(values) }
-
-            assertThat(values.last()).isFalse()
-
-            job.cancel()
-        }
 }
diff --git a/tests/robotests/src/com/android/customization/model/picker/quickaffordance/domain/interactor/KeyguardQuickAffordancePickerInteractorTest.kt b/tests/robotests/src/com/android/customization/model/picker/quickaffordance/domain/interactor/KeyguardQuickAffordancePickerInteractorTest.kt
index efe9f64..4b4790a 100644
--- a/tests/robotests/src/com/android/customization/model/picker/quickaffordance/domain/interactor/KeyguardQuickAffordancePickerInteractorTest.kt
+++ b/tests/robotests/src/com/android/customization/model/picker/quickaffordance/domain/interactor/KeyguardQuickAffordancePickerInteractorTest.kt
@@ -62,7 +62,7 @@
                 repository =
                     KeyguardQuickAffordancePickerRepository(
                         client = client,
-                        backgroundDispatcher = testDispatcher,
+                        scope = testScope.backgroundScope,
                     ),
                 client = client,
                 snapshotRestorer = {
@@ -132,7 +132,7 @@
                 affordanceId = FakeCustomizationProviderClient.AFFORDANCE_3,
             )
 
-            underTest.unselectAll(
+            underTest.unselectAllFromSlot(
                 slotId = KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_END,
             )
 
diff --git a/tests/robotests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt b/tests/robotests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt
index f71bfc7..b572401 100644
--- a/tests/robotests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt
+++ b/tests/robotests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt
@@ -21,6 +21,7 @@
 import android.content.Intent
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.SmallTest
+import com.android.customization.module.logging.TestThemesUserEventLogger
 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
@@ -64,6 +65,8 @@
 @RunWith(RobolectricTestRunner::class)
 class KeyguardQuickAffordancePickerViewModelTest {
 
+    private val logger = TestThemesUserEventLogger()
+
     private lateinit var underTest: KeyguardQuickAffordancePickerViewModel
 
     private lateinit var context: Context
@@ -74,7 +77,7 @@
 
     @Before
     fun setUp() {
-        InjectorProvider.setInjector(TestInjector())
+        InjectorProvider.setInjector(TestInjector(logger))
         context = ApplicationProvider.getApplicationContext()
         val testDispatcher = StandardTestDispatcher()
         testScope = TestScope(testDispatcher)
@@ -86,7 +89,7 @@
                 repository =
                     KeyguardQuickAffordancePickerRepository(
                         client = client,
-                        backgroundDispatcher = testDispatcher,
+                        scope = testScope.backgroundScope,
                     ),
                 client = client,
                 snapshotRestorer = {
@@ -113,6 +116,7 @@
                     quickAffordanceInteractor = quickAffordanceInteractor,
                     wallpaperInteractor = wallpaperInteractor,
                     wallpaperInfoFactory = TestCurrentWallpaperInfoFactory(context),
+                    logger = logger,
                 )
                 .create(KeyguardQuickAffordancePickerViewModel::class.java)
     }
@@ -349,8 +353,16 @@
                                 "${FakeCustomizationProviderClient.AFFORDANCE_1}," +
                                     " ${FakeCustomizationProviderClient.AFFORDANCE_3}"
                             ),
-                        icon1 = Icon.Loaded(FakeCustomizationProviderClient.ICON_1, null),
-                        icon2 = Icon.Loaded(FakeCustomizationProviderClient.ICON_3, null),
+                        icon1 =
+                            Icon.Loaded(
+                                FakeCustomizationProviderClient.ICON_1,
+                                Text.Loaded("Left shortcut")
+                            ),
+                        icon2 =
+                            Icon.Loaded(
+                                FakeCustomizationProviderClient.ICON_3,
+                                Text.Loaded("Right shortcut")
+                            ),
                     )
                 )
         }
@@ -369,7 +381,11 @@
                 .isEqualTo(
                     KeyguardQuickAffordanceSummaryViewModel(
                         description = Text.Loaded(FakeCustomizationProviderClient.AFFORDANCE_1),
-                        icon1 = Icon.Loaded(FakeCustomizationProviderClient.ICON_1, null),
+                        icon1 =
+                            Icon.Loaded(
+                                FakeCustomizationProviderClient.ICON_1,
+                                Text.Loaded("Left shortcut")
+                            ),
                         icon2 = null,
                     )
                 )
@@ -393,7 +409,11 @@
                     KeyguardQuickAffordanceSummaryViewModel(
                         description = Text.Loaded(FakeCustomizationProviderClient.AFFORDANCE_3),
                         icon1 = null,
-                        icon2 = Icon.Loaded(FakeCustomizationProviderClient.ICON_3, null),
+                        icon2 =
+                            Icon.Loaded(
+                                FakeCustomizationProviderClient.ICON_3,
+                                Text.Loaded("Right shortcut")
+                            ),
                     )
                 )
         }
diff --git a/tests/robotests/src/com/android/customization/model/theme/ThemeManagerTest.java b/tests/robotests/src/com/android/customization/model/theme/ThemeManagerTest.java
deleted file mode 100644
index cfb8a33..0000000
--- a/tests/robotests/src/com/android/customization/model/theme/ThemeManagerTest.java
+++ /dev/null
@@ -1,222 +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.theme;
-
-import static com.android.customization.model.ResourceConstants.ANDROID_PACKAGE;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_COLOR;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_FONT;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_ANDROID;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_SETTINGS;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_ICON_SYSUI;
-import static com.android.customization.model.ResourceConstants.OVERLAY_CATEGORY_SHAPE;
-import static com.android.customization.model.ResourceConstants.SETTINGS_PACKAGE;
-import static com.android.customization.model.ResourceConstants.SYSUI_PACKAGE;
-import static com.android.customization.model.ResourceConstants.THEME_SETTING;
-
-import static junit.framework.Assert.assertFalse;
-import static junit.framework.Assert.assertTrue;
-import static junit.framework.TestCase.assertEquals;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.provider.Settings;
-
-import androidx.annotation.Nullable;
-import androidx.fragment.app.FragmentActivity;
-
-import com.android.customization.model.CustomizationManager.Callback;
-import com.android.customization.model.CustomizationManager.OptionsFetchedListener;
-import com.android.customization.model.theme.custom.CustomTheme;
-import com.android.customization.module.ThemesUserEventLogger;
-import com.android.customization.testutils.OverlayManagerMocks;
-
-import org.json.JSONObject;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.Robolectric;
-import org.robolectric.RobolectricTestRunner;
-
-@RunWith(RobolectricTestRunner.class)
-public class ThemeManagerTest {
-
-    @Mock OverlayManagerCompat mMockOm;
-    @Mock ThemesUserEventLogger mThemesUserEventLogger;
-    @Mock ThemeBundleProvider mThemeBundleProvider;
-    private OverlayManagerMocks mMockOmHelper;
-    private ThemeManager mThemeManager;
-    private FragmentActivity mActivity;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        FragmentActivity activity = Robolectric.buildActivity(FragmentActivity.class).get();
-        mActivity = spy(activity);
-        mMockOmHelper = new OverlayManagerMocks();
-        mMockOmHelper.setUpMock(mMockOm);
-        mThemeManager = new ThemeManager(mThemeBundleProvider, activity,
-                mMockOm, mThemesUserEventLogger);
-    }
-
-    @After
-    public void cleanUp() {
-        mMockOmHelper.clearOverlays();
-    }
-
-    @Test
-    public void apply_WithDefaultTheme_StoresEmptyJsonString() {
-        mMockOmHelper.addOverlay("test.package.name_color", ANDROID_PACKAGE,
-                OVERLAY_CATEGORY_COLOR, true, 0);
-        mMockOmHelper.addOverlay("test.package.name_font", ANDROID_PACKAGE,
-                OVERLAY_CATEGORY_FONT, true, 0);
-        mMockOmHelper.addOverlay("test.package.name_shape", ANDROID_PACKAGE,
-                OVERLAY_CATEGORY_SHAPE, true, 0);
-        mMockOmHelper.addOverlay("test.package.name_icon", ANDROID_PACKAGE,
-                OVERLAY_CATEGORY_ICON_ANDROID, true, 0);
-        mMockOmHelper.addOverlay("test.package.name_settings", SETTINGS_PACKAGE,
-                OVERLAY_CATEGORY_ICON_SETTINGS, true, 0);
-        mMockOmHelper.addOverlay("test.package.name_sysui", SYSUI_PACKAGE,
-                OVERLAY_CATEGORY_ICON_SYSUI, true, 0);
-        mMockOmHelper.addOverlay("test.package.name_themepicker", mActivity.getPackageName(),
-                OVERLAY_CATEGORY_ICON_SYSUI, true, 0);
-
-        ThemeBundle defaultTheme = new ThemeBundle.Builder().asDefault().build(mActivity);
-
-        applyTheme(defaultTheme);
-
-        assertEquals("Secure Setting should be empty JSON string after applying default theme",
-                new JSONObject().toString(),
-                Settings.Secure.getString(mActivity.getContentResolver(), THEME_SETTING));
-    }
-
-    @Test
-    public void apply_WithOverlayTheme_StoresSerializedPackagesWithTimestamp() {
-        ThemeBundle theme = getOverlayTheme();
-        final String serializedPackagesWithTimestamp = theme.getSerializedPackagesWithTimestamp();
-
-        theme = spy(theme);
-        // Makes it return the fixed serializedPackagesWithTimestamp to test. Since we will get
-        // fresh time every time, it's hard to compare for testing.
-        when(theme.getSerializedPackagesWithTimestamp())
-                .thenReturn(serializedPackagesWithTimestamp);
-
-        applyTheme(theme);
-
-        assertEquals("Secure Setting should be the overlay packages after applying theme",
-                serializedPackagesWithTimestamp,
-                Settings.Secure.getString(mActivity.getContentResolver(), THEME_SETTING));
-    }
-
-    @Test
-    public void isAvailable_ThemeBundleProviderAndOverlayManagerAreAvailable_ReturnsTrue() {
-        when(mThemeBundleProvider.isAvailable()).thenReturn(true);
-        when(mMockOm.isAvailable()).thenReturn(true);
-
-        assertTrue(mThemeManager.isAvailable());
-    }
-
-    @Test
-    public void isAvailable_ThemeBundleProviderOrOverlayManagerIsAvailable_ReturnsFalse() {
-        when(mThemeBundleProvider.isAvailable()).thenReturn(false);
-        when(mMockOm.isAvailable()).thenReturn(true);
-        assertFalse(mThemeManager.isAvailable());
-
-        when(mThemeBundleProvider.isAvailable()).thenReturn(true);
-        when(mMockOm.isAvailable()).thenReturn(false);
-        assertFalse(mThemeManager.isAvailable());
-    }
-
-    @Test
-    public void fetchOptions_ThemeBundleProviderFetches() {
-        OptionsFetchedListener listener = mock(OptionsFetchedListener.class);
-
-        mThemeManager.fetchOptions(listener, false);
-
-        verify(mThemeBundleProvider).fetch(listener, false);
-    }
-
-    @Test
-    public void removeCustomTheme_ThemeBundleProviderRemovesCustomTheme() {
-        CustomTheme customTheme = mock(CustomTheme.class);
-        mThemeManager.removeCustomTheme(customTheme);
-
-        verify(mThemeBundleProvider).removeCustomTheme(customTheme);
-    }
-
-    @Test
-    public void findThemeByPackages_ThemeBundleProviderFindsEquivalent() {
-        CustomTheme theme = mock(CustomTheme.class);
-        mThemeManager.findThemeByPackages(theme);
-
-        verify(mThemeBundleProvider).findEquivalent(theme);
-    }
-
-    @Test
-    public void storeEmptyTheme_SettingsSecureStoresEmptyTheme() {
-        mThemeManager.storeEmptyTheme();
-
-        assertEquals(
-                new JSONObject().toString(),
-                Settings.Secure.getString(mActivity.getContentResolver(), THEME_SETTING));
-    }
-
-    @Test
-    public void getStoredOverlays_GetsFromSettingsSecureWithExpectedName() {
-        ThemeBundle theme = getOverlayTheme();
-
-        applyTheme(theme);
-
-        assertEquals(
-                Settings.Secure.getString(mActivity.getContentResolver(), THEME_SETTING),
-                mThemeManager.getStoredOverlays());
-    }
-
-    private ThemeBundle getOverlayTheme() {
-        final String bundleColorPackage = "test.package.name_color";
-        final String bundleFontPackage = "test.package.name_font";
-        final String otherPackage = "other.package.name_font";
-
-        mMockOmHelper.addOverlay(bundleColorPackage, ANDROID_PACKAGE,
-                OVERLAY_CATEGORY_COLOR, false, 0);
-        mMockOmHelper.addOverlay(bundleFontPackage, ANDROID_PACKAGE,
-                OVERLAY_CATEGORY_FONT, false, 0);
-        mMockOmHelper.addOverlay(otherPackage, ANDROID_PACKAGE,
-                OVERLAY_CATEGORY_FONT, false, 0);
-
-        return new ThemeBundle.Builder()
-                .addOverlayPackage(OVERLAY_CATEGORY_COLOR, bundleColorPackage)
-                .addOverlayPackage(OVERLAY_CATEGORY_FONT, bundleFontPackage)
-                .build(mActivity);
-    }
-
-    private void applyTheme(ThemeBundle theme) {
-        mThemeManager.apply(theme, new Callback() {
-            @Override
-            public void onSuccess() {
-            }
-
-            @Override
-            public void onError(@Nullable Throwable throwable) {
-            }
-        });
-    }
-}
diff --git a/tests/robotests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt b/tests/robotests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
index 95d7e35..4d8f32e 100644
--- a/tests/robotests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
+++ b/tests/robotests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
@@ -46,7 +46,6 @@
             checkNotNull(selectedClock)
             ClockMetadataModel(
                 clockId = selectedClock.clockId,
-                name = selectedClock.name,
                 isSelected = true,
                 selectedColorId = selectedColor,
                 colorToneProgress = colorTone,
@@ -82,10 +81,10 @@
         const val CLOCK_ID_3 = "clock3"
         val fakeClocks =
             listOf(
-                ClockMetadataModel(CLOCK_ID_0, "clock0", true, null, 50, null),
-                ClockMetadataModel(CLOCK_ID_1, "clock1", false, null, 50, null),
-                ClockMetadataModel(CLOCK_ID_2, "clock2", false, null, 50, null),
-                ClockMetadataModel(CLOCK_ID_3, "clock3", false, null, 50, null),
+                ClockMetadataModel(CLOCK_ID_0, true, null, 50, null),
+                ClockMetadataModel(CLOCK_ID_1, false, null, 50, null),
+                ClockMetadataModel(CLOCK_ID_2, false, null, 50, null),
+                ClockMetadataModel(CLOCK_ID_3, false, null, 50, null),
             )
         const val CLOCK_COLOR_ID = "RED"
         const val CLOCK_COLOR_TONE_PROGRESS = 87
diff --git a/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt b/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt
new file mode 100644
index 0000000..6fe76b9
--- /dev/null
+++ b/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt
@@ -0,0 +1,93 @@
+package com.android.customization.picker.clock.ui
+
+import android.content.res.Resources
+import android.view.View
+import androidx.lifecycle.LifecycleOwner
+import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
+import com.android.customization.picker.clock.ui.FakeClockViewFactory.Companion.fakeClocks
+import com.android.customization.picker.clock.ui.view.ClockViewFactory
+import com.android.systemui.plugins.clocks.ClockConfig
+import com.android.systemui.plugins.clocks.ClockController
+import com.android.systemui.plugins.clocks.ClockEvents
+import com.android.systemui.plugins.clocks.ClockFaceController
+import java.io.PrintWriter
+
+/**
+ * This is a fake [ClockViewFactory]. Only implement the function if it's actually called in a test.
+ */
+class FakeClockViewFactory(
+    val clockControllers: MutableMap<String, ClockController> = fakeClocks.toMutableMap(),
+) : ClockViewFactory {
+
+    class FakeClockController(
+        override var config: ClockConfig,
+    ) : ClockController {
+        override val smallClock: ClockFaceController
+            get() = TODO("Not yet implemented")
+
+        override val largeClock: ClockFaceController
+            get() = TODO("Not yet implemented")
+
+        override val events: ClockEvents
+            get() = TODO("Not yet implemented")
+
+        override fun initialize(resources: Resources, dozeFraction: Float, foldFraction: Float) =
+            TODO("Not yet implemented")
+
+        override fun dump(pw: PrintWriter) = TODO("Not yet implemented")
+    }
+
+    override fun getController(clockId: String): ClockController = clockControllers.get(clockId)!!
+
+    override fun getLargeView(clockId: String): View {
+        TODO("Not yet implemented")
+    }
+
+    override fun getSmallView(clockId: String): View {
+        TODO("Not yet implemented")
+    }
+
+    override fun updateColorForAllClocks(seedColor: Int?) {
+        TODO("Not yet implemented")
+    }
+
+    override fun updateColor(clockId: String, seedColor: Int?) {
+        TODO("Not yet implemented")
+    }
+
+    override fun updateRegionDarkness() {
+        TODO("Not yet implemented")
+    }
+
+    override fun updateTimeFormat(clockId: String) {
+        TODO("Not yet implemented")
+    }
+
+    override fun registerTimeTicker(owner: LifecycleOwner) {
+        TODO("Not yet implemented")
+    }
+
+    override fun onDestroy() {
+        TODO("Not yet implemented")
+    }
+
+    override fun unregisterTimeTicker(owner: LifecycleOwner) {
+        TODO("Not yet implemented")
+    }
+
+    companion object {
+        val fakeClocks =
+            FakeClockPickerRepository.fakeClocks
+                .map { clock ->
+                    clock.clockId to
+                        FakeClockController(
+                            ClockConfig(
+                                id = clock.clockId,
+                                name = "Name: ${clock.clockId}",
+                                description = "Desc: ${clock.clockId}"
+                            )
+                        )
+                }
+                .toMap()
+    }
+}
diff --git a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
index ca6f8c7..46afe35 100644
--- a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
+++ b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
@@ -16,11 +16,15 @@
 package com.android.customization.picker.clock.ui.viewmodel
 
 import androidx.test.filters.SmallTest
+import androidx.test.platform.app.InstrumentationRegistry
+import com.android.customization.module.logging.TestThemesUserEventLogger
 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.customization.picker.clock.ui.FakeClockViewFactory
+import com.android.customization.picker.clock.ui.view.ClockViewFactory
 import com.android.wallpaper.testing.FakeSnapshotStore
 import com.android.wallpaper.testing.collectLastValue
 import com.google.common.truth.Truth.assertThat
@@ -48,8 +52,7 @@
         FakeClockPickerRepository(
             listOf(
                 ClockMetadataModel(
-                    clockId = "clock0",
-                    name = "clock0",
+                    clockId = FakeClockPickerRepository.CLOCK_ID_0,
                     isSelected = true,
                     selectedColorId = null,
                     colorToneProgress = ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
@@ -58,13 +61,16 @@
             )
         )
     }
+
     private lateinit var testDispatcher: CoroutineDispatcher
     private lateinit var underTest: ClockCarouselViewModel
     private lateinit var interactor: ClockPickerInteractor
+    private lateinit var clockViewFactory: ClockViewFactory
 
     @Before
     fun setUp() {
         testDispatcher = StandardTestDispatcher()
+        clockViewFactory = FakeClockViewFactory()
         Dispatchers.setMain(testDispatcher)
     }
 
@@ -78,7 +84,10 @@
         underTest =
             ClockCarouselViewModel(
                 getClockPickerInteractor(repositoryWithMultipleClocks),
-                testDispatcher
+                backgroundDispatcher = testDispatcher,
+                clockViewFactory = clockViewFactory,
+                resources = InstrumentationRegistry.getInstrumentation().targetContext.resources,
+                logger = TestThemesUserEventLogger(),
             )
         val observedSelectedIndex = collectLastValue(underTest.selectedIndex)
         advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
diff --git a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt
deleted file mode 100644
index 19a704c..0000000
--- a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt
+++ /dev/null
@@ -1,95 +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.ui.viewmodel
-
-import androidx.test.filters.SmallTest
-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
-import kotlinx.coroutines.test.setMain
-import org.junit.After
-import org.junit.Before
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.robolectric.RobolectricTestRunner
-
-@OptIn(ExperimentalCoroutinesApi::class)
-@SmallTest
-@RunWith(RobolectricTestRunner::class)
-class ClockSectionViewModelTest {
-
-    private lateinit var clockColorMap: Map<String, ClockColorViewModel>
-    private lateinit var interactor: ClockPickerInteractor
-    private lateinit var underTest: ClockSectionViewModel
-
-    @Before
-    fun setUp() {
-        val testDispatcher = StandardTestDispatcher()
-        Dispatchers.setMain(testDispatcher)
-        val context = InstrumentationRegistry.getInstrumentation().targetContext
-        clockColorMap = ClockColorViewModel.getPresetColorMap(context.resources)
-        interactor =
-            ClockPickerInteractor(
-                repository = FakeClockPickerRepository(),
-                snapshotRestorer = {
-                    ClockPickerSnapshotRestorer(interactor = interactor).apply {
-                        runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) }
-                    }
-                },
-            )
-        underTest =
-            ClockSectionViewModel(
-                context,
-                interactor,
-            )
-    }
-
-    @After
-    fun tearDown() {
-        Dispatchers.resetMain()
-    }
-
-    @Test
-    fun setSelectedClock() = runTest {
-        val colorGrey = clockColorMap.values.first()
-        val observedSelectedClockColorAndSizeText =
-            collectLastValue(underTest.selectedClockColorAndSizeText)
-
-        interactor.setClockColor(
-            colorGrey.colorId,
-            ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
-            ClockSettingsViewModel.blendColorWithTone(
-                colorGrey.color,
-                colorGrey.getColorTone(ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS),
-            )
-        )
-        interactor.setClockSize(ClockSize.DYNAMIC)
-
-        assertThat(observedSelectedClockColorAndSizeText()).isEqualTo("Grey, dynamic")
-    }
-}
diff --git a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt
index f09e977..d3ae9cb 100644
--- a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt
+++ b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt
@@ -1,8 +1,10 @@
 package com.android.customization.picker.clock.ui.viewmodel
 
 import android.content.Context
+import android.stats.style.StyleEnums
 import androidx.test.filters.SmallTest
 import androidx.test.platform.app.InstrumentationRegistry
+import com.android.customization.module.logging.TestThemesUserEventLogger
 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
@@ -35,6 +37,7 @@
 @RunWith(RobolectricTestRunner::class)
 class ClockSettingsViewModelTest {
 
+    private val logger = TestThemesUserEventLogger()
     private lateinit var context: Context
     private lateinit var testScope: TestScope
     private lateinit var colorPickerInteractor: ColorPickerInteractor
@@ -81,6 +84,7 @@
                     context = context,
                     clockPickerInteractor = clockPickerInteractor,
                     colorPickerInteractor = colorPickerInteractor,
+                    logger = logger,
                     getIsReactiveToTone = getIsReactiveToTone,
                 )
                 .create(ClockSettingsViewModel::class.java)
@@ -186,9 +190,11 @@
         val observedClockSize = collectLastValue(underTest.selectedClockSize)
         underTest.setClockSize(ClockSize.DYNAMIC)
         assertThat(observedClockSize()).isEqualTo(ClockSize.DYNAMIC)
+        assertThat(logger.getLoggedClockSize()).isEqualTo(StyleEnums.CLOCK_SIZE_DYNAMIC)
 
         underTest.setClockSize(ClockSize.SMALL)
         assertThat(observedClockSize()).isEqualTo(ClockSize.SMALL)
+        assertThat(logger.getLoggedClockSize()).isEqualTo(StyleEnums.CLOCK_SIZE_SMALL)
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModelTest.kt b/tests/robotests/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModelTest.kt
index 5c3544a..1ff1fc8 100644
--- a/tests/robotests/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModelTest.kt
+++ b/tests/robotests/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModelTest.kt
@@ -18,6 +18,8 @@
 package com.android.customization.picker.notifications.ui.viewmodel
 
 import androidx.test.filters.SmallTest
+import com.android.customization.module.logging.TestThemesUserEventLogger
+import com.android.customization.module.logging.ThemesUserEventLogger
 import com.android.customization.picker.notifications.data.repository.NotificationsRepository
 import com.android.customization.picker.notifications.domain.interactor.NotificationsInteractor
 import com.android.customization.picker.notifications.domain.interactor.NotificationsSnapshotRestorer
@@ -44,6 +46,8 @@
 @RunWith(RobolectricTestRunner::class)
 class NotificationSectionViewModelTest {
 
+    private val logger: ThemesUserEventLogger = TestThemesUserEventLogger()
+
     private lateinit var underTest: NotificationSectionViewModel
 
     private lateinit var testScope: TestScope
@@ -73,6 +77,7 @@
         underTest =
             NotificationSectionViewModel(
                 interactor = interactor,
+                logger = logger,
             )
     }
 
diff --git a/themes/res/values-en-rCA/strings.xml b/themes/res/values-en-rCA/strings.xml
index 780a3c9..ae4e8c5 100644
--- a/themes/res/values-en-rCA/strings.xml
+++ b/themes/res/values-en-rCA/strings.xml
@@ -24,6 +24,5 @@
     <string name="rainbow_color_name_blue" msgid="3473176664458856892">"Blue"</string>
     <string name="rainbow_color_name_purple" msgid="2704722524588084868">"Purple"</string>
     <string name="rainbow_color_name_magenta" msgid="7248703626077785569">"Magenta"</string>
-    <!-- no translation found for monochromatic_name (2554823570460886176) -->
-    <skip />
+    <string name="monochromatic_name" msgid="2554823570460886176">"Monochromatic"</string>
 </resources>
