Merge "Separates home and lock wallpaper metadata" into tm-qpr-dev
diff --git a/ktfmt_includes.txt b/ktfmt_includes.txt
index 112b4a1..0708ab2 100644
--- a/ktfmt_includes.txt
+++ b/ktfmt_includes.txt
@@ -1,3 +1,4 @@
+src/
+src_override/
+tests/
+-src/com/android/customization/module/SysUiStatsLogger.kt
diff --git a/res/layout/clock_carousel.xml b/res/layout/clock_carousel.xml
index cfc7e4e..35defd6 100644
--- a/res/layout/clock_carousel.xml
+++ b/res/layout/clock_carousel.xml
@@ -111,12 +111,12 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
- app:layout_constraintGuide_begin="100dp" />
+ app:layout_constraintGuide_begin="@dimen/clock_carousel_guideline_margin" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
- app:layout_constraintGuide_end="100dp" />
+ app:layout_constraintGuide_end="@dimen/clock_carousel_guideline_margin" />
</androidx.constraintlayout.motion.widget.MotionLayout>
\ No newline at end of file
diff --git a/res/layout/clock_section_view.xml b/res/layout/clock_section_view.xml
index dfd015e..31f08fc 100644
--- a/res/layout/clock_section_view.xml
+++ b/res/layout/clock_section_view.xml
@@ -33,14 +33,13 @@
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@string/clock_settings_title"
+ android:text="@string/clock_color_and_size_title"
style="@style/SectionTitleTextStyle" />
<TextView
- android:id="@+id/selected_clock_text"
+ android:id="@+id/selected_clock_color_and_size"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@string/clock_description"
style="@style/SectionSubtitleTextStyle"/>
</LinearLayout>
diff --git a/res/layout/color_option_with_background.xml b/res/layout/color_option_with_background.xml
index 9d3be58..67079f7 100644
--- a/res/layout/color_option_with_background.xml
+++ b/res/layout/color_option_with_background.xml
@@ -14,65 +14,80 @@
limitations under the License.
-->
<!-- Content description is set programmatically on the parent FrameLayout -->
-<FrameLayout
+<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/icon_container"
- android:layout_width="@dimen/option_tile_width"
- android:layout_height="@dimen/option_tile_width"
- android:importantForAccessibility="yes">
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical" >
+ <FrameLayout
+ android:id="@+id/icon_container"
+ android:layout_width="@dimen/option_tile_width"
+ android:layout_height="@dimen/option_tile_width"
+ android:importantForAccessibility="yes">
- <ImageView
- android:id="@id/selection_border"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@drawable/option_item_border"
- android:alpha="0"
- android:importantForAccessibility="no" />
+ <ImageView
+ android:id="@id/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/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="wrap_content"
+ <ImageView
+ android:id="@+id/color_preview_0"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginRight="@dimen/color_seed_chip_margin"
+ android:layout_marginBottom="@dimen/color_seed_chip_margin"
+ android:src="@drawable/color_chip_seed_filled0"
+ android:importantForAccessibility="no"/>
+
+ <ImageView
+ android:id="@+id/color_preview_1"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginLeft="@dimen/color_seed_chip_margin"
+ android:layout_marginBottom="@dimen/color_seed_chip_margin"
+ android:src="@drawable/color_chip_seed_filled2"
+ android:importantForAccessibility="no"/>
+
+ <ImageView
+ android:id="@+id/color_preview_2"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginRight="@dimen/color_seed_chip_margin"
+ android:layout_marginTop="@dimen/color_seed_chip_margin"
+ android:src="@drawable/color_chip_seed_filled1"
+ android:importantForAccessibility="no"/>
+
+ <ImageView
+ android:id="@+id/color_preview_3"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginLeft="@dimen/color_seed_chip_margin"
+ android:layout_marginTop="@dimen/color_seed_chip_margin"
+ android:src="@drawable/color_chip_seed_filled3"
+ android:importantForAccessibility="no" />
+ </FrameLayout>
+
+ <TextView
+ android:id="@+id/option_title"
+ android:layout_width="@dimen/option_tile_width"
android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_marginRight="@dimen/color_seed_chip_margin"
- android:layout_marginBottom="@dimen/color_seed_chip_margin"
- android:src="@drawable/color_chip_seed_filled0"
- android:importantForAccessibility="no"/>
+ android:layout_marginTop="@dimen/option_bottom_margin"
+ android:textColor="@color/text_color_primary"
+ android:visibility="gone"
+ android:gravity="center" />
+</LinearLayout>
- <ImageView
- android:id="@+id/color_preview_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_marginLeft="@dimen/color_seed_chip_margin"
- android:layout_marginBottom="@dimen/color_seed_chip_margin"
- android:src="@drawable/color_chip_seed_filled2"
- android:importantForAccessibility="no"/>
-
- <ImageView
- android:id="@+id/color_preview_2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_marginRight="@dimen/color_seed_chip_margin"
- android:layout_marginTop="@dimen/color_seed_chip_margin"
- android:src="@drawable/color_chip_seed_filled1"
- android:importantForAccessibility="no"/>
-
- <ImageView
- android:id="@+id/color_preview_3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_marginLeft="@dimen/color_seed_chip_margin"
- android:layout_marginTop="@dimen/color_seed_chip_margin"
- android:src="@drawable/color_chip_seed_filled3"
- android:importantForAccessibility="no"/>
-</FrameLayout>
diff --git a/res/layout/single_clock_view.xml b/res/layout/single_clock_view.xml
new file mode 100644
index 0000000..e7ac518
--- /dev/null
+++ b/res/layout/single_clock_view.xml
@@ -0,0 +1,25 @@
+<?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.
+-->
+<com.android.wallpaper.picker.DisplayAspectRatioFrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/clock_carousel_item_height">
+ <FrameLayout
+ android:id="@+id/single_clock_host_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center" />
+</com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
\ No newline at end of file
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index ece357d..d446aa5 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamies"</string>
<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="apply_theme_btn" msgid="6293081192321303991">"Pas toe"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Tik om te wysig"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Meer opsies"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Teks op sluitskerm, Wat Speel, en meer"</string>
<string name="more_colors" msgid="3191071655353004591">"Nog kleure"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 0877a40..1edf1da 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"ተለዋዋጭ"</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="grid_title" msgid="1688173478777254123">"የመተግበሪያ ፍርግርግ"</string>
<string name="apply_theme_btn" msgid="6293081192321303991">"ተግብር"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ለማርትዕ መታ ያድርጉ"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"በማያ ገጽ ቁልፉ ላይ ማሳወቂያዎችን ደብቅ"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"ተጨማሪ አማራጮች"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"ጽሑፍ በማያ ገጽ ቁልፍ፣ አሁን በመጫወት ላይ እና ሌሎችም"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"ተጨማሪ ቀለማት"</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>
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 3ec1745..ef1a102 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"تطبيق"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"انقُر للتعديل."</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"إخفاء الإشعارات على شاشة القفل"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"خيارات إضافية"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"النص على شاشة القفل و\"التعرف التلقائي على الموسيقى\" والمزيد"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"المزيد من الألوان"</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>
</resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index cfe6d10..82b5139 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"প্ৰয়োগ কৰক"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"সম্পাদনা কৰিবলৈ টিপক"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"বন্ধ স্ক্ৰীনত জাননী লুকুৱাওক"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"অধিক বিকল্প"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"লক স্ক্ৰীন, বৰ্তমান প্লে’ হৈ থকা সমল আৰু অধিকত থকা পাঠ"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"অধিক ৰং"</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>
</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index da07bd6..9bfd5e5 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamik"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Kilid ekranında bildirişləri gizlədin"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Digər seçimlər"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Kilid ekranında mətn, İndi Oxudulur və s."</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Digər rənglər"</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>
</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 2fbb312..72e7104 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -28,6 +28,7 @@
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Još opcija"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Tekst na zaključanom ekranu, Trenutno svira i drugo"</string>
<string name="more_colors" msgid="3191071655353004591">"Još boja"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index b66cddc..c5d82ec 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"Ужыць"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Дакраніцеся, каб рэдагаваць"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Не паказваць апавяшчэнні на экране блакіроўкі"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Іншыя дзеянні"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Тэкст на экране блакіроўкі, функцыя \"Зараз іграе\" і іншае"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Больш колераў"</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>
</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 72a0d6d..54b460c 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"Прилагане"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Докоснете, за да редактирате"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Скриване на известията на заключения екран"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Още опции"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Текст на заключения екран, „Сега слушате“ и др."</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Още цветове"</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>
</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 3533804..3d05072 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"প্রয়োগ করুন"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"এডিট করতে ট্যাপ করুন"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"আরও বিকল্প"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"লক স্ক্রিনে টেক্সট, এখন চলছে এবং আরও অনেক কিছু"</string>
<string name="more_colors" msgid="3191071655353004591">"আরও রঙ"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 31aab91..5136881 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamički"</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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Više opcija"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Tekst na zaključanom ekranu, Trenutno se reproducira i drugo"</string>
<string name="more_colors" msgid="3191071655353004591">"Više boja"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index cf1b766..7b312e0 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinàmica"</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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Amaga les notificacions a la pantalla de bloqueig"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Més opcions"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Text a la pantalla de bloqueig, Està sonant i més"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Més colors"</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>
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index d275c41..9a1dbd2 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dynamická"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skrýt oznámení na obrazovce uzamčení"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Další možnosti"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Text na obrazovce uzamčení, Co to hraje a další funkce"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Další barvy"</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>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index f41cebc..c44e844 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dynamisk"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skjul notifikationer på låseskærmen"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Flere valgmuligheder"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Tekst på låseskærmen, Find sangen og meget mere"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Flere farver"</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>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 5063dfc..18cf15e 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dynamisch"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Benachrichtigungen auf dem Sperrbildschirm ausblenden"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Weitere Optionen"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Text auf dem Sperrbildschirm, Now Playing und mehr"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Weitere Farben"</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>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index fb82503..b7c89f8 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"Εφαρμογή"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Πατήστε για επεξεργασία"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Περισσότερες επιλογές"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Κείμενο στην οθόνη κλειδώματος, λειτουργία \"Ακούγεται τώρα\" κ.ά."</string>
<string name="more_colors" msgid="3191071655353004591">"Περισσότερα χρώματα"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index dfe5777..93dd001 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -28,6 +28,7 @@
<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="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>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 15a4536..43ad75f 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -34,6 +34,8 @@
<skip />
<!-- no translation found for clock_size_large (3143248715744138979) -->
<skip />
+ <!-- no translation found for clock_size_small (2280449912094164133) -->
+ <skip />
<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>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index dfe5777..93dd001 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -28,6 +28,7 @@
<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="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>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index dfe5777..93dd001 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -28,6 +28,7 @@
<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="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>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 3169885..ccce7e2 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -28,6 +28,7 @@
<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="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>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index e186c10..6b7c1be 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -28,6 +28,7 @@
<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_large" msgid="3143248715744138979">"Grande"</string>
+ <string name="clock_size_small" msgid="2280449912094164133">"Pequeño"</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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Esconder las notificaciones en la pantalla de bloqueo"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Más opciones"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Texto en la pantalla de bloqueo, Está sonando y mucho más"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Más colores"</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>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 2ba9c0e..1c80202 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinámico"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ocultar notificaciones en la pantalla de bloqueo"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Más opciones"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Texto en pantalla de bloqueo, Está Sonando y más"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Más colores"</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>
</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index d863d67..9ee2a32 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dünaamiline"</string>
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Rohkem valikuid"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Tekst lukustuskuval, Hetkel mängimas ja muud"</string>
<string name="more_colors" msgid="3191071655353004591">"Rohkem värve"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 03dbdca..4979948 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamikoa"</string>
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Aukera gehiago"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Testua pantaila blokeatuan, Orain erreproduzitzen eta abar"</string>
<string name="more_colors" msgid="3191071655353004591">"Kolore gehiago"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 9b9416c..7a1611a 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"اعمال"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"برای ویرایش ضربه بزنید"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"پنهان کردن اعلانها در صفحه قفل"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"گزینههای بیشتر"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"نوشتار صفحه قفل، درحال پخش، و موارد دیگر"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"رنگهای بیشتر"</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>
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 5c1bb58..2828534 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dynaaminen"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Piilota lukitusnäytön ilmoitukset"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Lisäasetukset"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Lukitusnäytöllä näkyvä teksti, Musiikintunnistus ja muita"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Lisää värejä"</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>
</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 9ed0f83..0c59faa 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dynamique"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Masquez les notifications sur l\'écran de verrouillage"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Plus d\'options"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Texte sur l\'écran de verrouillage, En cours de lecture, etc."</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Plus de couleurs"</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>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 1be405f..f239f98 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dynamique"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Masquer les notifications sur l\'écran de verrouillage"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Autres options"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Texte sur l\'écran de verrouillage, fonction En écoute etc."</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Autres couleurs"</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>
</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 5b9fe1c..70f2809 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinámico"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Oculta as notificacións na pantalla de bloqueo"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Máis opcións"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Texto na pantalla de bloqueo, Está soando e moito máis"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Máis cores"</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>
</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 65afdab..d3f5cfc 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"લાગુ કરો"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ફેરફાર કરવા માટે ટૅપ કરો"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"લૉક સ્ક્રીન પર નોટિફિકેશન છુપાવો"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"વધુ વિકલ્પો"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"લૉક સ્ક્રીન પરની ટેક્સ્ટ, હમણાં વાગી રહ્યું છે અને બીજું ઘણું"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"વધુ રંગો"</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>
</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index f6ba9bd..8ff9f1c 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"लागू करें"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"बदलाव करने के लिए टैप करें"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"ज़्यादा विकल्प"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"लॉक स्क्रीन पर टेक्स्ट जोड़ना, \'अभी चल रहा है\' सुविधा वगैरह"</string>
<string name="more_colors" msgid="3191071655353004591">"ज़्यादा कलर"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 14deedf..5d8fb0c 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -28,6 +28,7 @@
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Više opcija"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Tekst na zaključanom zaslonu, Upravo svira i još mnogo toga"</string>
<string name="more_colors" msgid="3191071655353004591">"Više boja"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 250c00d..f51e20a 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamikus"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Értesítések elrejtése a lezárási képernyőn"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"További beállítások"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Szöveg a lezárási képernyőn, Now Playing és egyebek"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"További színek"</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>
</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 5a9d849..dcd7bae 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"Կիրառել"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Հպեք՝ փոփոխելու համար"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Այլ ընտրանքներ"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Տեքստ կողպէկրանին, Այժմ հնչում է և այլ գործառույթներ"</string>
<string name="more_colors" msgid="3191071655353004591">"Այլ գույներ"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index d15f50b..921274c 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamis"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Sembunyikan notifikasi di layar kunci"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Opsi lainnya"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Teks di layar kunci, Now Playing, dan lainnya"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Warna Lainnya"</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>
</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 9ced822..d5ade3a 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Breytilegt"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Fela tilkynningar á lásskjánum"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Fleiri valkostir"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Texti á lásskjá, „Í spilun“ og fleira"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Fleiri litir"</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>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 9aca950..b7810fa 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -28,6 +28,7 @@
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Altre opzioni"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Testo su schermata di blocco, Now Playing e altro ancora"</string>
<string name="more_colors" msgid="3191071655353004591">"Altri colori"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 2bc3bd9..44e8575 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"אישור"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"יש להקיש כדי לערוך"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"אפשרויות נוספות"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"טקסט שמופיע במסך הנעילה, \'מה שומעים עכשיו?\' ועוד"</string>
<string name="more_colors" msgid="3191071655353004591">"צבעים נוספים"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index d976941..29cd608 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"適用"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"タップして編集"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"その他のオプション"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"ロック画面のテキスト、「この曲なに?」など"</string>
<string name="more_colors" msgid="3191071655353004591">"他の色"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index d8c18e6..faf29ab 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"მისადაგება"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"შეეხეთ რედაქტირებისთვის"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"სხვა ვარიანტები"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"ტექსტი ჩაკეტილ ეკრანზე, ახლა უკრავს და სხვა"</string>
<string name="more_colors" msgid="3191071655353004591">"მეტი ფერი"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 1a10254..c939afa 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -28,6 +28,7 @@
<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">"Кішi"</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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Құлып экранында хабарландыруларды жасыру"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Қосымша опциялар"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Құлыптаулы экранда мәтіндік хабар жазу, Now Playing және т.б."</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Қосымша түстер"</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>
</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 87702b7..5d1d816 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"ប្រើ"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ចុច ដើម្បីកែ"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"លាក់ការជូនដំណឹងនៅលើអេក្រង់ចាក់សោ"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"ជម្រើសច្រើនទៀត"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"អក្សរនៅលើអេក្រង់ចាក់សោ, Now Playing និងអ្វីៗជាច្រើនទៀត"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"ពណ៌ច្រើនទៀត"</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>
</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 17ece04..8a9d75b 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"ಅನ್ವಯಿಸಿ"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ಎಡಿಟ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳು"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"ಲಾಕ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿನ ಪಠ್ಯ, Now Playing ಮತ್ತು ಇನ್ನಷ್ಟು"</string>
<string name="more_colors" msgid="3191071655353004591">"ಇನ್ನಷ್ಟು ಬಣ್ಣಗಳು"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index a1c81c0..f5173e0 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"적용"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"탭하여 수정"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"잠금 화면에서 알림 숨기기"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"옵션 더보기"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"잠금 화면에 표시되는 텍스트, Now Playing, 등"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"색상 더보기"</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>
</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 5a09913..64cead8 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"Колдонуу"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Өзгөртүү үчүн таптап коюңуз"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Билдирмелерди кулпуланган экранда жашыруу"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Башка параметрлер"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Кулпу экранындагы текст, \"Эмне ойноп жатат?\" жана башка нерселер"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Дагы түстөр"</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>
</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 70cb9db..25f03c3 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"ນຳໃຊ້"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ແຕະເພື່ອແກ້ໄຂ"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"ຕົວເລືອກເພີ່ມເຕີມ"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"ຂໍ້ຄວາມຢູ່ໜ້າຈໍລັອກ, Now Playing ແລະ ອື່ນໆ"</string>
<string name="more_colors" msgid="3191071655353004591">"ສີເພີ່ມເຕີມ"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index b0a24e2..4373569 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinaminis"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Slėpti pranešimus užrakinimo ekrane"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Daugiau parinkčių"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Tekstas užrakinimo ekrane, „Dabar leidžiama“ ir kt."</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Daugiau spalvų"</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>
</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index eb81a24..1261749 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamisks"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Paslēpt paziņojumus bloķēšanas ekrānā"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Citas opcijas"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Teksts bloķēšanas ekrānā, funkcija “Tagad atskaņo” u.c."</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Citas krāsas"</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>
</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 4cf223e..fb01850 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -28,6 +28,7 @@
<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="grid_title" msgid="1688173478777254123">"Мрежа"</string>
<string name="apply_theme_btn" msgid="6293081192321303991">"Примени"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Допрете за да измените"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Сокривај известувања на заклучен екран"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Повеќе опции"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Текст на заклучен екран, Now Playing и друго"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Повеќе бои"</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>
</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index a38bb1a..bbd8186 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"പ്രയോഗിക്കുക"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"എഡിറ്റ് ചെയ്യാൻ ടാപ്പ് ചെയ്യുക"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"കൂടുതൽ ഓപ്ഷനുകൾ"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"ലോക്ക് സ്ക്രീനിൽ ടെക്സ്റ്റിംഗ്, \'ഇപ്പോൾ കേൾക്കുന്നത്\' തുടങ്ങിയവ"</string>
<string name="more_colors" msgid="3191071655353004591">"കൂടുതൽ നിറങ്ങൾ"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index d4e9f73..42d33ee 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"Ашиглах"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Засахын тулд товшино уу"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Түгжигдсэн дэлгэц дээрх мэдэгдлүүдийг нуух"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Бусад сонголт"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Түгжигдсэн дэлгэцийн текст, Now Playing болон бусад"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Бусад өнгө"</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>
</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 14a8738..ab666ef 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"लागू करा"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"संपादित करण्यासाठी टॅप करा"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"लॉक स्क्रीनवर सूचना लपवा"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"अधिक पर्याय"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"लॉक स्क्रीन, Now Playing आणि आणखी बरेच काही यासंबंधित मजकूर"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"आणखी रंग"</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>
</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 0c248db..226001a 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamik"</string>
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Lagi pilihan"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Teks pada skrin kunci, Now Playing dan pelbagai lagi"</string>
<string name="more_colors" msgid="3191071655353004591">"Lagi Warna"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 207861d..7ca2bf6 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"အသုံးပြုရန်"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"တည်းဖြတ်ရန် တို့ပါ"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"အကြောင်းကြားချက်များကို လော့ခ်မျက်နှာပြင်တွင် ဖျောက်ထားရန်"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"နောက်ထပ်ရွေးစရာများ"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"လော့ခ်စကရင် စာသား၊ Now Playing နှင့် နောက်ထပ်ဆက်တင်"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"နောက်ထပ်အရောင်များ"</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>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index bed6a98..c32acf8 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dynamisk"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skjul varsler på låseskjermen"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Flere alternativer"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Tekst på låseskjermen, Spilles nå med mer"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Flere farger"</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>
</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 5a6c95b..a8e3190 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"लागू गर्नुहोस्"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"सम्पादन गर्न ट्याप गर्नुहोस्"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"थप विकल्पहरू"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"लक स्क्रिनमा टेक्स्ट देखिने सुविधा, Now Playing र थप सुविधाहरू"</string>
<string name="more_colors" msgid="3191071655353004591">"थप रङहरू"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index ccacb42..90d4c62 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dynamisch"</string>
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Meer opties"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Tekst op vergrendelscherm, Now Playing en meer"</string>
<string name="more_colors" msgid="3191071655353004591">"Meer kleuren"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 54c025b..73ee228 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"ପ୍ରୟୋଗ କରନ୍ତୁ"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ଏଡିଟ କରିବା ପାଇଁ ଟାପ କରନ୍ତୁ"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"ଅଧିକ ବିକଳ୍ପ"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"ଲକ ସ୍କ୍ରିନରେ ଟେକ୍ସଟ, ଏବେ ଚାଲୁଛି ଏବଂ ଆହୁରି ଅନେକ କିଛି"</string>
<string name="more_colors" msgid="3191071655353004591">"ଅଧିକ ରଙ୍ଗ"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index c247e77..9426d30 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"ਲਾਗੂ ਕਰੋ"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ਸੰਪਾਦਨ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਸੂਚਨਾਵਾਂ ਲੁਕਾਓ"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"ਹੋਰ ਵਿਕਲਪ"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਲਿਖਤ ਸ਼ਾਮਲ ਕਰਨਾ, \'ਹੁਣੇ ਚੱਲ ਰਿਹਾ ਹੈ\' ਅਤੇ ਹੋਰ"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"ਹੋਰ ਰੰਗ"</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>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 7ace1d9..882452a 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dynamiczny"</string>
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Więcej opcji"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"SMS-y na ekranie blokady, Co jest grane i inne funkcje"</string>
<string name="more_colors" msgid="3191071655353004591">"Więcej kolorów"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index a8ac3e6..6e71d80 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinâmico"</string>
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Mais opções"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Texto no ecrã de bloqueio, A tocar e muito mais"</string>
<string name="more_colors" msgid="3191071655353004591">"Mais cores"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 21f1a23..8aef312 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinâmico"</string>
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Mais opções"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Texto na tela de bloqueio, Tocando agora e muito mais"</string>
<string name="more_colors" msgid="3191071655353004591">"Mais cores"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 59b4095..2dce76f 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -28,6 +28,7 @@
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Mai multe opțiuni"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Text pe ecranul de blocare, Now Playing și altele"</string>
<string name="more_colors" msgid="3191071655353004591">"Mai multe culori"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index f9a04c7..7a358a9 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"Применить"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Нажмите, чтобы изменить"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Скрывать уведомления на заблокированном экране"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Дополнительные настройки"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Текст на заблок. экране, функция \"Что сейчас играет?\" и др."</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Ещё цвета"</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>
</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 4e01dd5..bbc9174 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"යොදන්න"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"සංස්කරණයට තට්ටු කරන්න"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"අගුළු තිරය මත දැනුම්දීම් සඟවන්න"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"තවත් විකල්ප"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"අගුළු තිරය මත පෙළ, දැන් වාදනය වීම, සහ තවත් දේ"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"තවත් වර්ණ"</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>
</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 072b5d1..3d422be 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dynamické"</string>
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Ďalšie možnosti"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Text na uzamknutej obrazovke, Čo to hrá a ďalšie nastavenia"</string>
<string name="more_colors" msgid="3191071655353004591">"Ďalšie farby"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 9c0839c..bef3e79 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamična"</string>
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Več možnosti"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Besedilo na zaklenjenem zaslonu, Zdaj se predvaja in drugo"</string>
<string name="more_colors" msgid="3191071655353004591">"Več barv"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 340c355..34883e7 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamike"</string>
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Opsione të tjera"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Tekst në ekranin e kyçjes, \"Gjej këngën\" dhe të tjera"</string>
<string name="more_colors" msgid="3191071655353004591">"Më shumë ngjyra"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index ce55d06..a599e45 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"Примени"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Додирните да бисте изменили"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Још опција"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Текст на закључаном екрану, Тренутно свира и друго"</string>
<string name="more_colors" msgid="3191071655353004591">"Још боја"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index ca0dd24..b9ce05e 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dynamisk"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Dölj aviseringar på låsskärmen"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Fler alternativ"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Text på låsskärmen, Nu spelas med mera"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Fler 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>
</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 8a7d9cc..1fc180a 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Nyumbufu"</string>
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ficha arifa kwenye skrini iliyofungwa"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Chaguo zaidi"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Maandishi kwenye skrini iliyofungwa, Kitambua Ngoma na zaidi"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Rangi Nyingi Zaidi"</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>
</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index d313af0..ffe7463 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"பயன்படுத்து"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"\'தீமைத்\' திருத்த தட்டவும்"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"பூட்டுத் திரையில் அறிவிப்புகளைக் காட்டாது"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"மேலும் விருப்பங்கள்"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"பூட்டுத் திரையில் உரை, பாடல் விவரம் மற்றும் பல"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"கூடுதல் வண்ணங்கள்"</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>
</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 593f3bc..2814413 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"వర్తింపజేయి"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ఎడిట్ చేయడానికి నొక్కండి"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"మరిన్ని ఆప్షన్లు"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"లాక్ స్క్రీన్, Now Playing, మరిన్ని కోసం టెక్స్ట్ మెసేజ్ పంపండి"</string>
<string name="more_colors" msgid="3191071655353004591">"మరిన్ని రంగులు"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 324a31b..f4e07d5 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"ใช้"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"แตะเพื่อแก้ไข"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"ตัวเลือกเพิ่มเติม"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"ข้อความบนหน้าจอล็อก \"กำลังเล่น\" และอื่นๆ"</string>
<string name="more_colors" msgid="3191071655353004591">"สีเพิ่มเติม"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 36da9e9..96c088f 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dynamic"</string>
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Higit pang opsyon"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Text sa lock screen, Nagpi-play Ngayon, at higit pa"</string>
<string name="more_colors" msgid="3191071655353004591">"Higit Pang Kulay"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 15a40c1..de506a8 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -28,6 +28,7 @@
<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="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>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Kilit ekranında bildirimleri gizle"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Diğer seçenekler"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Kilit ekranındaki metin, Ne Çalıyor? ve daha fazlası"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Diğer Renkler"</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>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 4d6ba51..7a070cd 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"Застосувати"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"Торкніться, щоб змінити"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Приховувати сповіщення на заблокованому екрані"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"Інші опції"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Текст на заблокованому екрані, функція \"Зараз грає\" тощо"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"Більше кольорів"</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>
</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 283ecb8..0120ec2 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"لاگو کریں"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"ترمیم کرنے کے لیے تھپتھپائيں"</string>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"مزید اختیارات"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"لاک اسکرین پر ٹیکسٹ، ابھی Now Playing اور مزید"</string>
<string name="more_colors" msgid="3191071655353004591">"مزید رنگ"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 3dbd358..cdec083 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamik"</string>
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Boshqa parametrlar"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Ekran qulfidagi matn, Bu qaysi musiqa va boshqalar"</string>
<string name="more_colors" msgid="3191071655353004591">"Boshqa ranglar"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 1c9f1b7..f3f7e14 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Linh hoạt"</string>
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Tuỳ chọn khác"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Văn bản trên màn hình khoá, Phát hiện nhạc, v.v."</string>
<string name="more_colors" msgid="3191071655353004591">"Màu khác"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 9d824bf..798cb7b 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"应用"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"点按即可修改"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"在锁定的屏幕上不显示通知"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"更多选项"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"在锁定屏幕上添加文字、闻曲知音和其他设置"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"更多颜色"</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>
</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 078bf47..3f13af1 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"套用"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"輕按即可編輯"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"在上鎖畫面隱藏通知"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"更多選項"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"在上鎖畫面發短訊、使用「歌曲識別」功能等"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"更多顏色"</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>
</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 9ebfc39..8c05f73 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -28,6 +28,7 @@
<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="apply_theme_btn" msgid="6293081192321303991">"套用"</string>
<string name="edit_custom_theme_lbl" msgid="5211377705710775224">"輕觸這裡即可編輯"</string>
@@ -114,10 +115,7 @@
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"在螢幕鎖定畫面上隱藏通知"</string>
<string name="more_settings_section_title" msgid="8524741850115625404">"更多選項"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"「在螢幕鎖定畫面上顯示特定文字」、「聽聲辨曲」和其他設定"</string>
- <!-- 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="more_colors" msgid="3191071655353004591">"更多顏色"</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>
</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index f877925..7f11575 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -28,6 +28,7 @@
<string name="clock_size_dynamic" msgid="1023930312455061642">"Okuguqukayo"</string>
<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="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>
@@ -115,8 +116,6 @@
<string name="more_settings_section_title" msgid="8524741850115625404">"Okunye ongakhetha kukho"</string>
<string name="more_settings_section_description" msgid="8787768566854880683">"Umbhalo esikrinini sokukhiya, Okudlala Manje, nokuningi"</string>
<string name="more_colors" msgid="3191071655353004591">"Imibala Eyengeziwe"</string>
- <!-- no translation found for content_description_default_color_option (7011899327541080695) -->
- <skip />
- <!-- no translation found for content_description_color_option (4169813692012119578) -->
- <skip />
+ <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>
</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index f79d9b1..30d71e3 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -154,4 +154,5 @@
<dimen name="clock_carousel_item_width">190dp</dimen>
<dimen name="clock_carousel_item_height">380dp</dimen>
<dimen name="clock_carousel_item_margin">16dp</dimen>
+ <dimen name="clock_carousel_guideline_margin">140dp</dimen>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c1bdc54..3bd9e84 100755
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -36,6 +36,12 @@
<!-- Title of a section of the customization picker where the user can configure Clock face. [CHAR LIMIT=19] -->
<string name="clock_settings_title">Clock Settings</string>
+ <!-- Title of a section of the customization picker where the user can configure clock color and size. [CHAR LIMIT=20] -->
+ <string name="clock_color_and_size_title">Clock color & size</string>
+
+ <!-- Description of a section of the customization picker where the user can configure clock color and size, e.g. Violet, small. [CHAR LIMIT=NONE] -->
+ <string name="clock_color_and_size_description"><xliff:g name="color">%1$s</xliff:g>, <xliff:g name="size">%2$s</xliff:g></string>
+
<!-- Title of a tab to change the clock color. [CHAR LIMIT=15] -->
<string name="clock_color">Color</string>
diff --git a/res/xml/carousel_scene.xml b/res/xml/carousel_scene.xml
index 8c6738b..d94f32b 100644
--- a/res/xml/carousel_scene.xml
+++ b/res/xml/carousel_scene.xml
@@ -42,6 +42,8 @@
android:id="@+id/item_view_0"
android:layout_width="@dimen/clock_carousel_item_width"
android:layout_height="@dimen/clock_carousel_item_height"
+ android:scaleX="0.5"
+ android:scaleY="0.5"
motion:layout_constraintEnd_toStartOf="@id/guideline_start"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
@@ -59,6 +61,8 @@
android:id="@+id/item_view_2"
android:layout_width="@dimen/clock_carousel_item_width"
android:layout_height="@dimen/clock_carousel_item_height"
+ android:scaleX="0.5"
+ android:scaleY="0.5"
motion:layout_constraintStart_toStartOf="@id/guideline_end"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
@@ -69,6 +73,8 @@
android:id="@+id/item_view_1"
android:layout_width="@dimen/clock_carousel_item_width"
android:layout_height="@dimen/clock_carousel_item_height"
+ android:scaleX="0.5"
+ android:scaleY="0.5"
motion:layout_constraintEnd_toStartOf="@id/guideline_start"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
@@ -86,6 +92,8 @@
android:id="@+id/item_view_3"
android:layout_width="@dimen/clock_carousel_item_width"
android:layout_height="@dimen/clock_carousel_item_height"
+ android:scaleX="0.5"
+ android:scaleY="0.5"
motion:layout_constraintStart_toStartOf="@id/guideline_end"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
@@ -96,6 +104,8 @@
android:id="@+id/item_view_2"
android:layout_width="@dimen/clock_carousel_item_width"
android:layout_height="@dimen/clock_carousel_item_height"
+ android:scaleX="0.5"
+ android:scaleY="0.5"
motion:layout_constraintEnd_toStartOf="@id/guideline_start"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
@@ -113,6 +123,8 @@
android:id="@+id/item_view_4"
android:layout_width="@dimen/clock_carousel_item_width"
android:layout_height="@dimen/clock_carousel_item_height"
+ android:scaleX="0.5"
+ android:scaleY="0.5"
motion:layout_constraintStart_toStartOf="@id/guideline_end"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
diff --git a/src/com/android/customization/model/color/ColorCustomizationManager.java b/src/com/android/customization/model/color/ColorCustomizationManager.java
index 908480f..29f6ba6 100644
--- a/src/com/android/customization/model/color/ColorCustomizationManager.java
+++ b/src/com/android/customization/model/color/ColorCustomizationManager.java
@@ -210,7 +210,7 @@
* or {@link ColorOptionsProvider#COLOR_SOURCE_PRESET}.
*/
@ColorSource
- public String getCurrentColorSource() {
+ public @Nullable String getCurrentColorSource() {
if (mCurrentSource == null) {
parseSettings(getStoredOverlays());
}
@@ -221,7 +221,7 @@
* @return The style of the currently applied color. One of enum values in
* {@link com.android.systemui.monet.Style}.
*/
- public String getCurrentStyle() {
+ public @Nullable String getCurrentStyle() {
if (mCurrentStyle == null) {
parseSettings(getStoredOverlays());
}
diff --git a/src/com/android/customization/model/color/ColorOption.java b/src/com/android/customization/model/color/ColorOption.java
index 26e025d..66a3a3c 100644
--- a/src/com/android/customization/model/color/ColorOption.java
+++ b/src/com/android/customization/model/color/ColorOption.java
@@ -107,6 +107,9 @@
if (other == null) {
return false;
}
+ if (mStyle != other.getStyle()) {
+ return false;
+ }
if (mIsDefault) {
return other.isDefault() || TextUtils.isEmpty(other.getSerializedPackages())
|| EMPTY_JSON.equals(other.getSerializedPackages());
diff --git a/src/com/android/customization/model/grid/domain/interactor/GridInteractor.kt b/src/com/android/customization/model/grid/domain/interactor/GridInteractor.kt
index 307507b..5ab9e1f 100644
--- a/src/com/android/customization/model/grid/domain/interactor/GridInteractor.kt
+++ b/src/com/android/customization/model/grid/domain/interactor/GridInteractor.kt
@@ -34,8 +34,8 @@
private val snapshotRestorer: Provider<GridSnapshotRestorer>,
) {
val options: Flow<GridOptionItemsModel> =
- // this upstream flow tells us each time the options are changed.
- repository.optionChanges
+ // this upstream flow tells us each time the options are changed.
+ repository.optionChanges
// when we start, we pretend the options _just_ changed. This way, we load something as
// soon as possible into the flow so it's ready by the time the first observer starts to
// observe.
diff --git a/src/com/android/customization/model/grid/domain/interactor/GridSnapshotRestorer.kt b/src/com/android/customization/model/grid/domain/interactor/GridSnapshotRestorer.kt
index 583cbc7..5e0fe7a 100644
--- a/src/com/android/customization/model/grid/domain/interactor/GridSnapshotRestorer.kt
+++ b/src/com/android/customization/model/grid/domain/interactor/GridSnapshotRestorer.kt
@@ -45,7 +45,8 @@
TAG,
"""Original snapshot name was ${optionToRestore.name} but we're being told to
| restore to $optionNameFromSnapshot. The current implementation doesn't
- | support undo, only a reset back to the original grid option.""".trimMargin(),
+ | support undo, only a reset back to the original grid option."""
+ .trimMargin(),
)
}
diff --git a/src/com/android/customization/module/CustomizationInjector.kt b/src/com/android/customization/module/CustomizationInjector.kt
index c5f0b76..306ef04 100644
--- a/src/com/android/customization/module/CustomizationInjector.kt
+++ b/src/com/android/customization/module/CustomizationInjector.kt
@@ -67,5 +67,8 @@
fun getClockViewFactory(activity: Activity): ClockViewFactory
- fun getClockSettingsViewModelFactory(context: Context): ClockSettingsViewModel.Factory
+ fun getClockSettingsViewModelFactory(
+ context: Context,
+ wallpaperColorsViewModel: WallpaperColorsViewModel,
+ ): ClockSettingsViewModel.Factory
}
diff --git a/src/com/android/customization/module/ThemePickerInjector.kt b/src/com/android/customization/module/ThemePickerInjector.kt
index 09466e3..e06a1b5 100644
--- a/src/com/android/customization/module/ThemePickerInjector.kt
+++ b/src/com/android/customization/module/ThemePickerInjector.kt
@@ -47,6 +47,7 @@
import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
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.notifications.data.repository.NotificationsRepository
import com.android.customization.picker.notifications.domain.interactor.NotificationsInteractor
@@ -100,6 +101,7 @@
private var notificationSectionViewModelFactory: NotificationSectionViewModel.Factory? = null
private var colorPickerInteractor: ColorPickerInteractor? = null
private var colorPickerViewModelFactory: ColorPickerViewModel.Factory? = null
+ private var colorPickerSnapshotRestorer: ColorPickerSnapshotRestorer? = null
private var darkModeSnapshotRestorer: DarkModeSnapshotRestorer? = null
private var themedIconSnapshotRestorer: ThemedIconSnapshotRestorer? = null
private var themedIconInteractor: ThemedIconInteractor? = null
@@ -113,8 +115,7 @@
?: DefaultCustomizationSections(
getColorPickerViewModelFactory(
context = activity,
- wallpaperColorsViewModel =
- ViewModelProvider(activity)[WallpaperColorsViewModel::class.java],
+ wallpaperColorsViewModel = getWallpaperColorsViewModel(),
),
getKeyguardQuickAffordancePickerInteractor(activity),
getKeyguardQuickAffordancePickerViewModelFactory(activity),
@@ -190,6 +191,8 @@
this[KEY_DARK_MODE_SNAPSHOT_RESTORER] = getDarkModeSnapshotRestorer(context)
this[KEY_THEMED_ICON_SNAPSHOT_RESTORER] = getThemedIconSnapshotRestorer(context)
this[KEY_APP_GRID_SNAPSHOT_RESTORER] = getGridSnapshotRestorer(context)
+ this[KEY_COLOR_PICKER_SNAPSHOT_RESTORER] =
+ getColorPickerSnapshotRestorer(context, getWallpaperColorsViewModel())
}
}
@@ -246,7 +249,9 @@
return KeyguardQuickAffordancePickerInteractor(
KeyguardQuickAffordancePickerRepository(client, Dispatchers.IO),
client
- ) { getKeyguardQuickAffordanceSnapshotRestorer(context) }
+ ) {
+ getKeyguardQuickAffordanceSnapshotRestorer(context)
+ }
}
protected fun getKeyguardQuickAffordancePickerProviderClient(
@@ -308,7 +313,7 @@
override fun getClockSectionViewModel(context: Context): ClockSectionViewModel {
return clockSectionViewModel
- ?: ClockSectionViewModel(getClockPickerInteractor(context)).also {
+ ?: ClockSectionViewModel(context, getClockPickerInteractor(context)).also {
clockSectionViewModel = it
}
}
@@ -346,7 +351,12 @@
wallpaperColorsViewModel: WallpaperColorsViewModel,
): ColorPickerInteractor {
return colorPickerInteractor
- ?: ColorPickerInteractor(ColorPickerRepositoryImpl(context, wallpaperColorsViewModel))
+ ?: ColorPickerInteractor(
+ repository = ColorPickerRepositoryImpl(context, wallpaperColorsViewModel),
+ snapshotRestorer = {
+ getColorPickerSnapshotRestorer(context, wallpaperColorsViewModel)
+ }
+ )
.also { colorPickerInteractor = it }
}
@@ -362,6 +372,17 @@
.also { colorPickerViewModelFactory = it }
}
+ private fun getColorPickerSnapshotRestorer(
+ context: Context,
+ wallpaperColorsViewModel: WallpaperColorsViewModel,
+ ): ColorPickerSnapshotRestorer {
+ return colorPickerSnapshotRestorer
+ ?: ColorPickerSnapshotRestorer(
+ getColorPickerInteractor(context, wallpaperColorsViewModel)
+ )
+ .also { colorPickerSnapshotRestorer = it }
+ }
+
fun getDarkModeSnapshotRestorer(
context: Context,
): DarkModeSnapshotRestorer {
@@ -399,11 +420,16 @@
override fun getClockSettingsViewModelFactory(
context: Context,
+ wallpaperColorsViewModel: WallpaperColorsViewModel,
): ClockSettingsViewModel.Factory {
return clockSettingsViewModelFactory
?: ClockSettingsViewModel.Factory(
context,
getClockPickerInteractor(context),
+ getColorPickerInteractor(
+ context,
+ wallpaperColorsViewModel,
+ ),
)
.also { clockSettingsViewModelFactory = it }
}
@@ -460,6 +486,8 @@
private val KEY_THEMED_ICON_SNAPSHOT_RESTORER = KEY_DARK_MODE_SNAPSHOT_RESTORER + 1
@JvmStatic
private val KEY_APP_GRID_SNAPSHOT_RESTORER = KEY_THEMED_ICON_SNAPSHOT_RESTORER + 1
+ @JvmStatic
+ private val KEY_COLOR_PICKER_SNAPSHOT_RESTORER = KEY_APP_GRID_SNAPSHOT_RESTORER + 1
/**
* When this injector is overridden, this is the minimal value that should be used by
@@ -467,6 +495,6 @@
*
* It should always be greater than the biggest restorer key.
*/
- @JvmStatic protected val MIN_SNAPSHOT_RESTORER_KEY = KEY_APP_GRID_SNAPSHOT_RESTORER + 1
+ @JvmStatic protected val MIN_SNAPSHOT_RESTORER_KEY = KEY_COLOR_PICKER_SNAPSHOT_RESTORER + 1
}
}
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 35a78cb..6c72a5b 100644
--- a/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
+++ b/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
@@ -16,6 +16,8 @@
package com.android.customization.picker.clock.ui.binder
import android.view.View
+import android.view.ViewGroup
+import android.widget.FrameLayout
import androidx.core.view.isVisible
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
@@ -23,7 +25,7 @@
import androidx.lifecycle.repeatOnLifecycle
import com.android.customization.picker.clock.ui.view.ClockCarouselView
import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
-import kotlinx.coroutines.flow.collect
+import com.android.wallpaper.R
import kotlinx.coroutines.launch
object ClockCarouselViewBinder {
@@ -38,36 +40,57 @@
@JvmStatic
fun bind(
- view: ClockCarouselView,
+ carouselView: ClockCarouselView,
+ singleClockView: ViewGroup,
viewModel: ClockCarouselViewModel,
clockViewFactory: (clockId: String) -> View,
lifecycleOwner: LifecycleOwner,
): Binding {
+ val singleClockHostView =
+ singleClockView.requireViewById<FrameLayout>(R.id.single_clock_host_view)
lifecycleOwner.lifecycleScope.launch {
lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
+ launch { viewModel.isCarouselVisible.collect { carouselView.isVisible = it } }
+
launch {
viewModel.allClockIds.collect { allClockIds ->
- view.setUpClockCarouselView(
+ carouselView.setUpClockCarouselView(
clockIds = allClockIds,
onGetClockPreview = clockViewFactory,
onClockSelected = { clockId -> viewModel.setSelectedClock(clockId) },
)
}
}
+
launch {
viewModel.selectedIndex.collect { selectedIndex ->
- view.setSelectedClockIndex(selectedIndex)
+ carouselView.setSelectedClockIndex(selectedIndex)
+ }
+ }
+
+ launch {
+ viewModel.isSingleClockViewVisible.collect { singleClockView.isVisible = it }
+ }
+
+ launch {
+ viewModel.clockId.collect { clockId ->
+ singleClockHostView.removeAllViews()
+ val clockView = clockViewFactory(clockId)
+ // The clock view might still be attached to an existing parent. Detach
+ // before adding to another parent.
+ (clockView.parent as? ViewGroup)?.removeView(clockView)
+ singleClockHostView.addView(clockView)
}
}
}
}
return object : Binding {
override fun show() {
- view.isVisible = true
+ viewModel.showClockCarousel(true)
}
override fun hide() {
- view.isVisible = false
+ viewModel.showClockCarousel(false)
}
}
}
diff --git a/src/com/android/customization/picker/clock/ui/binder/ClockSectionViewBinder.kt b/src/com/android/customization/picker/clock/ui/binder/ClockSectionViewBinder.kt
index 5a3286d..7dc0d0c 100644
--- a/src/com/android/customization/picker/clock/ui/binder/ClockSectionViewBinder.kt
+++ b/src/com/android/customization/picker/clock/ui/binder/ClockSectionViewBinder.kt
@@ -21,8 +21,8 @@
import android.widget.TextView
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
-import androidx.lifecycle.flowWithLifecycle
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
@@ -37,14 +37,17 @@
) {
view.setOnClickListener { onClicked() }
- val selectedClockTextView: TextView = view.requireViewById(R.id.selected_clock_text)
+ val selectedClockColorAndSize: TextView =
+ view.requireViewById(R.id.selected_clock_color_and_size)
lifecycleOwner.lifecycleScope.launch {
- viewModel.selectedClockName
- .flowWithLifecycle(lifecycleOwner.lifecycle, Lifecycle.State.STARTED)
- .collectLatest { selectedClockName ->
- selectedClockTextView.text = selectedClockName
+ 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 ecbb901..7ea0210 100644
--- a/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt
+++ b/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt
@@ -83,7 +83,7 @@
launch { viewModel.tabs.collect { tabAdapter.setItems(it) } }
launch {
- viewModel.selectedTabPosition.collect { tab ->
+ viewModel.selectedTab.collect { tab ->
when (tab) {
ClockSettingsViewModel.Tab.COLOR -> {
colorOptionContainer.isVisible = true
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 976907b..9b6d737 100644
--- a/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
+++ b/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
@@ -25,7 +25,6 @@
import com.android.customization.module.ThemePickerInjector
import com.android.customization.picker.clock.ui.binder.ClockSettingsBinder
import com.android.wallpaper.R
-import com.android.wallpaper.model.WallpaperColorsViewModel
import com.android.wallpaper.module.InjectorProvider
import com.android.wallpaper.picker.AppbarFragment
import com.android.wallpaper.picker.customization.ui.binder.ScreenPreviewBinder
@@ -63,7 +62,7 @@
val injector = InjectorProvider.getInjector() as ThemePickerInjector
val lockScreenView: CardView = view.requireViewById(R.id.lock_preview)
- val colorViewModel = ViewModelProvider(activity)[WallpaperColorsViewModel::class.java]
+ val colorViewModel = injector.getWallpaperColorsViewModel()
val displayUtils = injector.getDisplayUtils(context)
ScreenPreviewBinder.bind(
activity = activity,
@@ -106,7 +105,10 @@
view,
ViewModelProvider(
requireActivity(),
- injector.getClockSettingsViewModelFactory(context),
+ injector.getClockSettingsViewModelFactory(
+ context,
+ injector.getWallpaperColorsViewModel(),
+ ),
)
.get(),
this@ClockSettingsFragment,
diff --git a/src/com/android/customization/picker/clock/ui/section/ClockSectionController.kt b/src/com/android/customization/picker/clock/ui/section/ClockSectionController.kt
index c50fe98..b47c243 100644
--- a/src/com/android/customization/picker/clock/ui/section/ClockSectionController.kt
+++ b/src/com/android/customization/picker/clock/ui/section/ClockSectionController.kt
@@ -53,7 +53,9 @@
view = view,
viewModel = viewModel,
lifecycleOwner = lifecycleOwner
- ) { navigationController.navigateTo(ClockSettingsFragment()) }
+ ) {
+ navigationController.navigateTo(ClockSettingsFragment())
+ }
}
return view
}
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 751661f..8d614e4 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModel.kt
@@ -19,23 +19,38 @@
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.flatMapLatest
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.mapLatest
import kotlinx.coroutines.flow.mapNotNull
+/**
+ * Clock carousel view model that provides data for the carousel of clock previews. When there is
+ * only one item, we should show a single clock preview instead of a carousel.
+ */
class ClockCarouselViewModel(
private val interactor: ClockPickerInteractor,
) {
-
@OptIn(ExperimentalCoroutinesApi::class)
val allClockIds: Flow<List<String>> =
- interactor.allClocks.mapLatest { clockArray ->
+ interactor.allClocks.mapLatest { allClocks ->
// Delay to avoid the case that the full list of clocks is not initiated.
delay(CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
- clockArray.map { it.clockId }
+ allClocks.map { it.clockId }
}
+ private val shouldShowCarousel = MutableStateFlow(false)
+ val isCarouselVisible: Flow<Boolean> =
+ combine(allClockIds.map { it.size > 1 }.distinctUntilChanged(), shouldShowCarousel) {
+ hasMoreThanOneClock,
+ shouldShowCarousel ->
+ hasMoreThanOneClock && shouldShowCarousel
+ }
+ .distinctUntilChanged()
+
@OptIn(ExperimentalCoroutinesApi::class)
val selectedIndex: Flow<Int> =
allClockIds
@@ -51,10 +66,30 @@
}
.mapNotNull { it }
+ // Handle the case when there is only one clock in the carousel
+ private val shouldShowSingleClock = MutableStateFlow(false)
+ val isSingleClockViewVisible: Flow<Boolean> =
+ combine(allClockIds.map { it.size == 1 }.distinctUntilChanged(), shouldShowSingleClock) {
+ hasOneClock,
+ shouldShowSingleClock ->
+ hasOneClock && shouldShowSingleClock
+ }
+ .distinctUntilChanged()
+
+ val clockId: Flow<String> =
+ allClockIds
+ .map { allClockIds -> if (allClockIds.size == 1) allClockIds[0] else null }
+ .mapNotNull { it }
+
fun setSelectedClock(clockId: String) {
interactor.setSelectedClock(clockId)
}
+ fun showClockCarousel(shouldShow: Boolean) {
+ shouldShowCarousel.value = shouldShow
+ shouldShowSingleClock.value = shouldShow
+ }
+
companion object {
const val CLOCKS_EVENT_UPDATE_DELAY_MILLIS: Long = 100
}
diff --git a/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt b/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt
index 26fbf63..9239c0a 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt
@@ -16,12 +16,31 @@
*/
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.map
/** View model for the clock section view on the lockscreen customization surface. */
-class ClockSectionViewModel(interactor: ClockPickerInteractor) {
-
- val selectedClockName: Flow<String> = interactor.selectedClock.map { it.name }
+class ClockSectionViewModel(context: Context, interactor: ClockPickerInteractor) {
+ val appContext: Context = context.applicationContext
+ val selectedClockColorAndSizeText: Flow<String> =
+ interactor.selectedClockSize.map { selectedClockSize ->
+ // TODO (b/241966062) Finalize the colors and their names
+ val colorText = "Violet"
+ 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 c15bc67..b36c8eb 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModel.kt
@@ -16,13 +16,16 @@
package com.android.customization.picker.clock.ui.viewmodel
import android.content.Context
-import android.graphics.Color
import androidx.core.graphics.ColorUtils
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
+import com.android.customization.model.color.ColorBundle
+import com.android.customization.model.color.ColorSeedOption
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
import com.android.customization.picker.clock.shared.ClockSize
+import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
+import com.android.customization.picker.color.shared.model.ColorType
import com.android.customization.picker.color.ui.viewmodel.ColorOptionViewModel
import com.android.wallpaper.R
import kotlin.math.abs
@@ -34,6 +37,7 @@
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.mapLatest
import kotlinx.coroutines.flow.shareIn
@@ -42,7 +46,11 @@
/** View model for the clock settings screen. */
class ClockSettingsViewModel
-private constructor(context: Context, private val interactor: ClockPickerInteractor) : ViewModel() {
+private constructor(
+ context: Context,
+ private val clockPickerInteractor: ClockPickerInteractor,
+ private val colorPickerInteractor: ColorPickerInteractor,
+) : ViewModel() {
enum class Tab {
COLOR,
@@ -58,7 +66,7 @@
* level of the system theme color.
*/
private val saturationLevel: Flow<Float?> =
- interactor.selectedClockColor
+ clockPickerInteractor.selectedClockColor
.map { selectedColor ->
if (selectedColor == null) {
null
@@ -95,38 +103,40 @@
selectedOption?.let { option ->
ColorUtils.colorToHSL(option.color0, helperColorHsl)
helperColorHsl[1] = saturation
- interactor.setClockColor(ColorUtils.HSLToColor(helperColorHsl))
+ clockPickerInteractor.setClockColor(ColorUtils.HSLToColor(helperColorHsl))
}
}
@OptIn(ExperimentalCoroutinesApi::class)
val colorOptions: StateFlow<List<ColorOptionViewModel>> =
- interactor.selectedClockColor
- .mapLatest { selectedColor ->
+ combine(
+ colorPickerInteractor.colorOptions,
+ clockPickerInteractor.selectedClockColor,
+ ::Pair,
+ )
+ .mapLatest { (colorOptions, selectedColor) ->
// Use mapLatest and delay(100) here to prevent too many selectedClockColor update
// events from ClockRegistry upstream, caused by sliding the saturation level bar.
delay(COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
buildList {
- // TODO (b/241966062) Change design of the placeholder for default theme color
- add(
- ColorOptionViewModel(
- color0 = Color.TRANSPARENT,
- color1 = Color.TRANSPARENT,
- color2 = Color.TRANSPARENT,
- color3 = Color.TRANSPARENT,
- contentDescription =
- context.getString(
- R.string.content_description_color_option,
- ),
- isSelected = selectedColor == null,
- onClick =
- if (selectedColor == null) {
- null
- } else {
- { interactor.setClockColor(null) }
- },
- )
- )
+ val defaultThemeColorOptionViewModel =
+ (colorOptions[ColorType.WALLPAPER_COLOR]
+ ?.find { it.isSelected }
+ ?.colorOption as? ColorSeedOption)
+ ?.toColorOptionViewModel(
+ context,
+ selectedColor,
+ )
+ ?: (colorOptions[ColorType.BASIC_COLOR]
+ ?.find { it.isSelected }
+ ?.colorOption as? ColorBundle)
+ ?.toColorOptionViewModel(
+ context,
+ selectedColor,
+ )
+ if (defaultThemeColorOptionViewModel != null) {
+ add(defaultThemeColorOptionViewModel)
+ }
if (selectedColor != null) {
ColorUtils.colorToHSL(selectedColor, helperColorHsl)
@@ -174,7 +184,7 @@
if (isSelected) {
null
} else {
- { interactor.setClockColor(colorToSet) }
+ { clockPickerInteractor.setClockColor(colorToSet) }
},
)
)
@@ -187,16 +197,61 @@
initialValue = emptyList(),
)
- val selectedClockSize: Flow<ClockSize> = interactor.selectedClockSize
+ private fun ColorSeedOption.toColorOptionViewModel(
+ context: Context,
+ selectedColor: Int?,
+ ): ColorOptionViewModel {
+ val colors = previewInfo.resolveColors(context.resources)
+ return ColorOptionViewModel(
+ color0 = colors[0],
+ color1 = colors[1],
+ color2 = colors[2],
+ color3 = colors[3],
+ contentDescription = getContentDescription(context).toString(),
+ title = context.getString(R.string.default_theme_title),
+ isSelected = selectedColor == null,
+ onClick =
+ if (selectedColor == null) {
+ null
+ } else {
+ { clockPickerInteractor.setClockColor(null) }
+ },
+ )
+ }
+
+ private fun ColorBundle.toColorOptionViewModel(
+ context: Context,
+ selectedColor: Int?
+ ): ColorOptionViewModel {
+ val primaryColor = previewInfo.resolvePrimaryColor(context.resources)
+ val secondaryColor = previewInfo.resolveSecondaryColor(context.resources)
+ return ColorOptionViewModel(
+ color0 = primaryColor,
+ color1 = secondaryColor,
+ color2 = primaryColor,
+ color3 = secondaryColor,
+ contentDescription = getContentDescription(context).toString(),
+ title = context.getString(R.string.default_theme_title),
+ isSelected = selectedColor == null,
+ onClick =
+ if (selectedColor == null) {
+ null
+ } else {
+ { clockPickerInteractor.setClockColor(null) }
+ },
+ )
+ }
+
+ val selectedClockSize: Flow<ClockSize> = clockPickerInteractor.selectedClockSize
fun setClockSize(size: ClockSize) {
- viewModelScope.launch { interactor.setClockSize(size) }
+ viewModelScope.launch { clockPickerInteractor.setClockSize(size) }
}
private val _selectedTabPosition = MutableStateFlow(Tab.COLOR)
- val selectedTabPosition: StateFlow<Tab> = _selectedTabPosition.asStateFlow()
+ val selectedTab: StateFlow<Tab> = _selectedTabPosition.asStateFlow()
val tabs: Flow<List<ClockSettingsTabViewModel>> =
- selectedTabPosition.map {
+ selectedTab.map {
listOf(
ClockSettingsTabViewModel(
name = context.resources.getString(R.string.clock_color),
@@ -241,13 +296,15 @@
class Factory(
private val context: Context,
- private val interactor: ClockPickerInteractor,
+ private val clockPickerInteractor: ClockPickerInteractor,
+ private val colorPickerInteractor: ColorPickerInteractor,
) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
@Suppress("UNCHECKED_CAST")
return ClockSettingsViewModel(
context = context,
- interactor = interactor,
+ clockPickerInteractor = clockPickerInteractor,
+ colorPickerInteractor = colorPickerInteractor,
)
as T
}
diff --git a/src/com/android/customization/picker/color/data/repository/ColorPickerRepository.kt b/src/com/android/customization/picker/color/data/repository/ColorPickerRepository.kt
index 0e65577..1a0f5a9 100644
--- a/src/com/android/customization/picker/color/data/repository/ColorPickerRepository.kt
+++ b/src/com/android/customization/picker/color/data/repository/ColorPickerRepository.kt
@@ -25,15 +25,13 @@
* system color.
*/
interface ColorPickerRepository {
- /**
- * The newly selected color option for overwriting the current active option during an
- * optimistic update, the value is null when no overwriting is needed
- */
- val activeColorOption: Flow<ColorOptionModel?>
/** List of wallpaper and preset color options on the device, categorized by Color Type */
val colorOptions: Flow<Map<ColorType, List<ColorOptionModel>>>
/** Selects a color option with optimistic update */
- fun select(colorOptionModel: ColorOptionModel)
+ suspend fun select(colorOptionModel: ColorOptionModel)
+
+ /** Returns the current selected color option based on system settings */
+ fun getCurrentColorOption(): ColorOptionModel
}
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 d6d5060..4c43d78 100644
--- a/src/com/android/customization/picker/color/data/repository/ColorPickerRepositoryImpl.kt
+++ b/src/com/android/customization/picker/color/data/repository/ColorPickerRepositoryImpl.kt
@@ -27,11 +27,10 @@
import com.android.customization.model.theme.OverlayManagerCompat
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.WallpaperColorsViewModel
import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
-import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.suspendCancellableCoroutine
@@ -50,17 +49,11 @@
private val colorManager: ColorCustomizationManager =
ColorCustomizationManager.getInstance(context, OverlayManagerCompat(context))
- private val _activeColorOption = MutableStateFlow<ColorOptionModel?>(null)
- override val activeColorOption: StateFlow<ColorOptionModel?> = _activeColorOption.asStateFlow()
-
override val colorOptions: Flow<Map<ColorType, List<ColorOptionModel>>> =
- combine(activeColorOption, homeWallpaperColors, lockWallpaperColors) {
- activeOption,
- homeColors,
- lockColors ->
- Triple(activeOption, homeColors, lockColors)
+ combine(homeWallpaperColors, lockWallpaperColors) { homeColors, lockColors ->
+ homeColors to lockColors
}
- .map { (activeOption, homeColors, lockColors) ->
+ .map { (homeColors, lockColors) ->
suspendCancellableCoroutine { continuation ->
colorManager.setWallpaperColors(homeColors, lockColors)
colorManager.fetchOptions(
@@ -73,9 +66,8 @@
options?.forEach { option ->
when (option) {
is ColorSeedOption ->
- wallpaperColorOptions.add(option.toModel(activeOption))
- is ColorBundle ->
- presetColorOptions.add(option.toModel(activeOption))
+ wallpaperColorOptions.add(option.toModel())
+ is ColorBundle -> presetColorOptions.add(option.toModel())
}
}
continuation.resumeWith(
@@ -102,33 +94,46 @@
}
}
- override fun select(colorOptionModel: ColorOptionModel) {
- _activeColorOption.value = colorOptionModel
- val colorOption: ColorOption = colorOptionModel.colorOption
- colorManager.apply(
- colorOption,
- object : CustomizationManager.Callback {
- override fun onSuccess() {
- _activeColorOption.value = null
- }
+ override suspend fun select(colorOptionModel: ColorOptionModel) =
+ suspendCancellableCoroutine { continuation ->
+ colorManager.apply(
+ colorOptionModel.colorOption,
+ object : CustomizationManager.Callback {
+ override fun onSuccess() {
+ continuation.resumeWith(Result.success(Unit))
+ }
- override fun onError(throwable: Throwable?) {
- _activeColorOption.value = null
- Log.w(TAG, "Apply theme with error", throwable)
+ override fun onError(throwable: Throwable?) {
+ Log.w(TAG, "Apply theme with error", throwable)
+ continuation.resumeWith(
+ Result.failure(throwable ?: Throwable("Error loading theme bundles"))
+ )
+ }
}
- }
+ )
+ }
+
+ override fun getCurrentColorOption(): ColorOptionModel {
+ val overlays = colorManager.currentOverlays
+ val styleOrNull = colorManager.currentStyle
+ val style = styleOrNull?.let { Style.valueOf(it) } ?: Style.TONAL_SPOT
+ val colorOptionBuilder =
+ // Does not matter whether ColorSeedOption or ColorBundle builder is used here
+ // because to apply the color, one just needs a generic ColorOption
+ ColorSeedOption.Builder().setSource(colorManager.currentColorSource).setStyle(style)
+ for (overlay in overlays) {
+ colorOptionBuilder.addOverlayPackage(overlay.key, overlay.value)
+ }
+ return ColorOptionModel(
+ colorOption = colorOptionBuilder.build(),
+ isSelected = false,
)
}
- private fun ColorOption.toModel(activeColorOption: ColorOptionModel?): ColorOptionModel {
+ private fun ColorOption.toModel(): ColorOptionModel {
return ColorOptionModel(
colorOption = this,
- isSelected =
- if (activeColorOption != null) {
- isEquivalent(activeColorOption.colorOption)
- } else {
- isActive(colorManager)
- },
+ isSelected = isActive(colorManager),
)
}
diff --git a/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt b/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt
index d2a25bc..7dab2d8 100644
--- a/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt
+++ b/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt
@@ -26,118 +26,104 @@
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
-class FakeColorPickerRepository(context: Context) : ColorPickerRepository {
- override val activeColorOption: StateFlow<ColorOptionModel?> =
- MutableStateFlow<ColorOptionModel?>(null)
+class FakeColorPickerRepository(private val context: Context) : ColorPickerRepository {
- private val colorSeedOption0: ColorSeedOption =
- ColorSeedOption.Builder()
- .setLightColors(
- intArrayOf(
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT
- )
- )
- .setDarkColors(
- intArrayOf(
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT
- )
- )
- .setIndex(0)
- .build()
- private val colorSeedOption1: ColorSeedOption =
- ColorSeedOption.Builder()
- .setLightColors(
- intArrayOf(
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT
- )
- )
- .setDarkColors(
- intArrayOf(
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT
- )
- )
- .setIndex(1)
- .build()
- private val colorSeedOption2: ColorSeedOption =
- ColorSeedOption.Builder()
- .setLightColors(
- intArrayOf(
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT
- )
- )
- .setDarkColors(
- intArrayOf(
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT
- )
- )
- .setIndex(2)
- .build()
- private val colorSeedOption3: ColorSeedOption =
- ColorSeedOption.Builder()
- .setLightColors(
- intArrayOf(
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT
- )
- )
- .setDarkColors(
- intArrayOf(
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT
- )
- )
- .setIndex(3)
- .build()
- private val colorBundle0: ColorBundle = ColorBundle.Builder().setIndex(0).build(context)
- private val colorBundle1: ColorBundle = ColorBundle.Builder().setIndex(1).build(context)
- private val colorBundle2: ColorBundle = ColorBundle.Builder().setIndex(2).build(context)
- private val colorBundle3: ColorBundle = ColorBundle.Builder().setIndex(3).build(context)
+ private lateinit var selectedColorOption: ColorOptionModel
private val _colorOptions =
MutableStateFlow(
- mapOf(
- ColorType.WALLPAPER_COLOR to
- listOf(
- ColorOptionModel(colorOption = colorSeedOption0, isSelected = true),
- ColorOptionModel(colorOption = colorSeedOption1, isSelected = false),
- ColorOptionModel(colorOption = colorSeedOption2, isSelected = false),
- ColorOptionModel(colorOption = colorSeedOption3, isSelected = false)
- ),
- ColorType.BASIC_COLOR to
- listOf(
- ColorOptionModel(colorOption = colorBundle0, isSelected = false),
- ColorOptionModel(colorOption = colorBundle1, isSelected = false),
- ColorOptionModel(colorOption = colorBundle2, isSelected = false),
- ColorOptionModel(colorOption = colorBundle3, isSelected = false)
- )
+ mapOf<ColorType, List<ColorOptionModel>>(
+ ColorType.WALLPAPER_COLOR to listOf(),
+ ColorType.BASIC_COLOR to listOf()
)
)
override val colorOptions: StateFlow<Map<ColorType, List<ColorOptionModel>>> =
_colorOptions.asStateFlow()
- override fun select(colorOptionModel: ColorOptionModel) {
+ init {
+ setOptions(4, 4, ColorType.WALLPAPER_COLOR, 0)
+ }
+
+ fun setOptions(
+ numWallpaperOptions: Int,
+ numPresetOptions: Int,
+ selectedColorOptionType: ColorType,
+ selectedColorOptionIndex: Int
+ ) {
+ _colorOptions.value =
+ mapOf(
+ ColorType.WALLPAPER_COLOR to
+ buildList {
+ repeat(times = numWallpaperOptions) { index ->
+ val isSelected =
+ selectedColorOptionType == ColorType.WALLPAPER_COLOR &&
+ selectedColorOptionIndex == index
+ val colorOption =
+ ColorOptionModel(
+ colorOption = buildWallpaperOption(index),
+ isSelected = isSelected,
+ )
+ if (isSelected) {
+ selectedColorOption = colorOption
+ }
+ add(colorOption)
+ }
+ },
+ ColorType.BASIC_COLOR to
+ buildList {
+ repeat(times = numPresetOptions) { index ->
+ val isSelected =
+ selectedColorOptionType == ColorType.BASIC_COLOR &&
+ selectedColorOptionIndex == index
+ val colorOption =
+ ColorOptionModel(
+ colorOption = buildPresetOption(index),
+ isSelected =
+ selectedColorOptionType == ColorType.BASIC_COLOR &&
+ selectedColorOptionIndex == index,
+ )
+ if (isSelected) {
+ selectedColorOption = colorOption
+ }
+ add(colorOption)
+ }
+ }
+ )
+ }
+
+ private fun buildPresetOption(index: Int): ColorBundle {
+ return ColorBundle.Builder()
+ .addOverlayPackage("TEST_PACKAGE_TYPE", "preset_color")
+ .addOverlayPackage("TEST_PACKAGE_INDEX", "$index")
+ .setIndex(index)
+ .build(context)
+ }
+
+ private fun buildWallpaperOption(index: Int): ColorSeedOption {
+ return ColorSeedOption.Builder()
+ .setLightColors(
+ intArrayOf(
+ Color.TRANSPARENT,
+ Color.TRANSPARENT,
+ Color.TRANSPARENT,
+ Color.TRANSPARENT
+ )
+ )
+ .setDarkColors(
+ intArrayOf(
+ Color.TRANSPARENT,
+ Color.TRANSPARENT,
+ Color.TRANSPARENT,
+ Color.TRANSPARENT
+ )
+ )
+ .addOverlayPackage("TEST_PACKAGE_TYPE", "wallpaper_color")
+ .addOverlayPackage("TEST_PACKAGE_INDEX", "$index")
+ .setIndex(index)
+ .build()
+ }
+
+ override suspend fun select(colorOptionModel: ColorOptionModel) {
val colorOptions = _colorOptions.value
val wallpaperColorOptions = colorOptions[ColorType.WALLPAPER_COLOR]!!
val newWallpaperColorOptions = buildList {
@@ -168,6 +154,8 @@
)
}
+ override fun getCurrentColorOption(): ColorOptionModel = selectedColorOption
+
private fun ColorOptionModel.testEquals(other: Any?): Boolean {
if (other == null) {
return false
diff --git a/src/com/android/customization/picker/color/domain/interactor/ColorPickerInteractor.kt b/src/com/android/customization/picker/color/domain/interactor/ColorPickerInteractor.kt
index ce453c3..a932067 100644
--- a/src/com/android/customization/picker/color/domain/interactor/ColorPickerInteractor.kt
+++ b/src/com/android/customization/picker/color/domain/interactor/ColorPickerInteractor.kt
@@ -16,17 +16,57 @@
*/
package com.android.customization.picker.color.domain.interactor
+import androidx.annotation.VisibleForTesting
import com.android.customization.picker.color.data.repository.ColorPickerRepository
import com.android.customization.picker.color.shared.model.ColorOptionModel
+import javax.inject.Provider
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.combine
/** Single entry-point for all application state and business logic related to system color. */
class ColorPickerInteractor(
private val repository: ColorPickerRepository,
+ private val snapshotRestorer: Provider<ColorPickerSnapshotRestorer>,
) {
- /** List of wallpaper and preset color options on the device, categorized by Color Type */
- val colorOptions = repository.colorOptions
+ /**
+ * The newly selected color option for overwriting the current active option during an
+ * optimistic update, the value is set to null when update fails
+ */
+ @VisibleForTesting private val activeColorOption = MutableStateFlow<ColorOptionModel?>(null)
- fun select(colorOptionModel: ColorOptionModel) {
- repository.select(colorOptionModel)
+ /** List of wallpaper and preset color options on the device, categorized by Color Type */
+ val colorOptions =
+ combine(repository.colorOptions, activeColorOption) { colorOptions, activeOption ->
+ colorOptions
+ .map { colorTypeEntry ->
+ colorTypeEntry.key to
+ colorTypeEntry.value.map { colorOptionModel ->
+ val isSelected =
+ if (activeOption != null) {
+ colorOptionModel.colorOption.isEquivalent(
+ activeOption.colorOption
+ )
+ } else {
+ colorOptionModel.isSelected
+ }
+ ColorOptionModel(
+ colorOption = colorOptionModel.colorOption,
+ isSelected = isSelected
+ )
+ }
+ }
+ .toMap()
+ }
+
+ suspend fun select(colorOptionModel: ColorOptionModel) {
+ activeColorOption.value = colorOptionModel
+ try {
+ repository.select(colorOptionModel)
+ snapshotRestorer.get().storeSnapshot(colorOptionModel)
+ } catch (e: Exception) {
+ activeColorOption.value = null
+ }
}
+
+ fun getCurrentColorOption(): ColorOptionModel = repository.getCurrentColorOption()
}
diff --git a/src/com/android/customization/picker/color/domain/interactor/ColorPickerSnapshotRestorer.kt b/src/com/android/customization/picker/color/domain/interactor/ColorPickerSnapshotRestorer.kt
new file mode 100644
index 0000000..d952b4c
--- /dev/null
+++ b/src/com/android/customization/picker/color/domain/interactor/ColorPickerSnapshotRestorer.kt
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package com.android.customization.picker.color.domain.interactor
+
+import android.util.Log
+import com.android.customization.picker.color.shared.model.ColorOptionModel
+import com.android.wallpaper.picker.undo.domain.interactor.SnapshotRestorer
+import com.android.wallpaper.picker.undo.domain.interactor.SnapshotStore
+import com.android.wallpaper.picker.undo.shared.model.RestorableSnapshot
+
+/** Handles state restoration for the color picker system. */
+class ColorPickerSnapshotRestorer(
+ private val interactor: ColorPickerInteractor,
+) : SnapshotRestorer {
+
+ private lateinit var snapshotStore: SnapshotStore
+ private var originalOption: ColorOptionModel? = null
+
+ fun storeSnapshot(colorOptionModel: ColorOptionModel) {
+ snapshotStore.store(snapshot(colorOptionModel))
+ }
+
+ override suspend fun setUpSnapshotRestorer(
+ store: SnapshotStore,
+ ): RestorableSnapshot {
+ snapshotStore = store
+ originalOption = interactor.getCurrentColorOption()
+ return snapshot(originalOption)
+ }
+
+ override suspend fun restoreToSnapshot(snapshot: RestorableSnapshot) {
+ val optionPackagesFromSnapshot: String? = snapshot.args[KEY_COLOR_OPTION_PACKAGES]
+ originalOption?.let { optionToRestore ->
+ if (
+ optionToRestore.colorOption.serializedPackages != optionPackagesFromSnapshot ||
+ optionToRestore.colorOption.style.toString() !=
+ snapshot.args[KEY_COLOR_OPTION_STYLE]
+ ) {
+ Log.wtf(
+ TAG,
+ """ Original packages does not match snapshot packages to restore to. The
+ | current implementation doesn't support undo, only a reset back to the
+ | original color option."""
+ .trimMargin(),
+ )
+ }
+
+ interactor.select(optionToRestore)
+ }
+ }
+
+ private fun snapshot(colorOptionModel: ColorOptionModel? = null): RestorableSnapshot {
+ val snapshotMap = mutableMapOf<String, String>()
+ colorOptionModel?.let {
+ snapshotMap[KEY_COLOR_OPTION_PACKAGES] = colorOptionModel.colorOption.serializedPackages
+ snapshotMap[KEY_COLOR_OPTION_STYLE] = colorOptionModel.colorOption.style.toString()
+ }
+ return RestorableSnapshot(snapshotMap)
+ }
+
+ companion object {
+ private const val TAG = "ColorPickerSnapshotRestorer"
+ private const val KEY_COLOR_OPTION_PACKAGES = "color_packages"
+ private const val KEY_COLOR_OPTION_STYLE = "color_style"
+ }
+}
diff --git a/src/com/android/customization/picker/color/ui/adapter/ColorOptionAdapter.kt b/src/com/android/customization/picker/color/ui/adapter/ColorOptionAdapter.kt
index 791811d..0e53766 100644
--- a/src/com/android/customization/picker/color/ui/adapter/ColorOptionAdapter.kt
+++ b/src/com/android/customization/picker/color/ui/adapter/ColorOptionAdapter.kt
@@ -23,6 +23,8 @@
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
+import android.widget.TextView
+import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView
import com.android.customization.picker.color.ui.viewmodel.ColorOptionViewModel
import com.android.wallpaper.R
@@ -35,10 +37,12 @@
class ColorOptionAdapter : RecyclerView.Adapter<ColorOptionAdapter.ViewHolder>() {
private val items = mutableListOf<ColorOptionViewModel>()
+ private var isTitleVisible = false
fun setItems(items: List<ColorOptionViewModel>) {
this.items.clear()
this.items.addAll(items)
+ isTitleVisible = items.any { item -> item.title != null }
notifyDataSetChanged()
}
@@ -49,6 +53,7 @@
val color1View: ImageView = itemView.requireViewById(R.id.color_preview_1)
val color2View: ImageView = itemView.requireViewById(R.id.color_preview_2)
val color3View: ImageView = itemView.requireViewById(R.id.color_preview_3)
+ val optionTitleView: TextView = itemView.requireViewById(R.id.option_title)
}
override fun getItemCount(): Int {
@@ -92,5 +97,7 @@
holder.color2View.drawable.colorFilter = BlendModeColorFilter(item.color2, BlendMode.SRC)
holder.color3View.drawable.colorFilter = BlendModeColorFilter(item.color3, BlendMode.SRC)
holder.itemView.contentDescription = item.contentDescription
+ holder.optionTitleView.isVisible = isTitleVisible
+ holder.optionTitleView.text = item.title
}
}
diff --git a/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt b/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt
index 416faa6..fa7a344 100644
--- a/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt
+++ b/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt
@@ -27,7 +27,6 @@
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.WallpaperColorsViewModel
import com.android.wallpaper.module.InjectorProvider
import com.android.wallpaper.picker.AppbarFragment
import com.android.wallpaper.picker.customization.ui.binder.ScreenPreviewBinder
@@ -63,7 +62,7 @@
val homeScreenView: CardView = view.requireViewById(R.id.home_preview)
val wallpaperInfoFactory = injector.getCurrentWallpaperInfoFactory(requireContext())
val displayUtils: DisplayUtils = injector.getDisplayUtils(requireContext())
- val wcViewModel = ViewModelProvider(requireActivity())[WallpaperColorsViewModel::class.java]
+ val wcViewModel = injector.getWallpaperColorsViewModel()
ColorPickerBinder.bind(
view = view,
viewModel =
diff --git a/src/com/android/customization/picker/color/ui/viewmodel/ColorOptionViewModel.kt b/src/com/android/customization/picker/color/ui/viewmodel/ColorOptionViewModel.kt
index 0ebc74b..784ec2e 100644
--- a/src/com/android/customization/picker/color/ui/viewmodel/ColorOptionViewModel.kt
+++ b/src/com/android/customization/picker/color/ui/viewmodel/ColorOptionViewModel.kt
@@ -30,6 +30,9 @@
/** A content description for the color. */
val contentDescription: String,
+ /** Nullable option title. Null by default. */
+ val title: String? = null,
+
/** Whether this color is selected. */
val isSelected: Boolean,
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 7eb5488..5e1e542 100644
--- a/src/com/android/customization/picker/color/ui/viewmodel/ColorPickerViewModel.kt
+++ b/src/com/android/customization/picker/color/ui/viewmodel/ColorPickerViewModel.kt
@@ -19,6 +19,7 @@
import android.content.Context
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
import com.android.customization.model.color.ColorBundle
import com.android.customization.model.color.ColorSeedOption
import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
@@ -30,6 +31,7 @@
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.launch
/** Models UI state for a color picker experience. */
class ColorPickerViewModel
@@ -90,7 +92,7 @@
if (colorOptionModel.isSelected) {
null
} else {
- { interactor.select(colorOptionModel) }
+ { viewModelScope.launch { interactor.select(colorOptionModel) } }
}
)
}
@@ -115,7 +117,7 @@
if (colorOptionModel.isSelected) {
null
} else {
- { interactor.select(colorOptionModel) }
+ { viewModelScope.launch { interactor.select(colorOptionModel) } }
},
)
}
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 f7fa9a5..0b197b4 100644
--- a/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt
+++ b/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt
@@ -19,8 +19,8 @@
import android.app.Activity
import android.content.Context
+import android.view.ViewGroup
import android.view.ViewStub
-import androidx.core.view.isGone
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
import com.android.customization.picker.clock.ui.binder.ClockCarouselViewBinder
@@ -67,12 +67,17 @@
val view = super.createView(context)
val carouselViewStub: ViewStub = view.requireViewById(R.id.clock_carousel_view_stub)
carouselViewStub.layoutResource = R.layout.clock_carousel_view
- val carouselView: ClockCarouselView = carouselViewStub.inflate() as ClockCarouselView
- carouselView.isGone = true
+ val carouselView = carouselViewStub.inflate() as ClockCarouselView
+
+ // TODO (b/270716937) We should handle the single clock case in the clock carousel itself
+ val singleClockViewStub: ViewStub = view.requireViewById(R.id.single_clock_view_stub)
+ singleClockViewStub.layoutResource = R.layout.single_clock_view
+ val singleClockView = singleClockViewStub.inflate() as ViewGroup
lifecycleOwner.lifecycleScope.launch {
clockCarouselBinding =
ClockCarouselViewBinder.bind(
- view = carouselView,
+ carouselView = carouselView,
+ singleClockView = singleClockView,
viewModel = clockCarouselViewModel,
clockViewFactory = { clockId -> clockViewFactory.getView(clockId) },
lifecycleOwner = lifecycleOwner,
diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp
index e0a37c2..4416e1c 100644
--- a/tests/robotests/Android.bp
+++ b/tests/robotests/Android.bp
@@ -13,5 +13,8 @@
"androidx.test.core",
"androidx.test.runner",
],
+
+ upstream: true,
+
instrumentation_for: "ThemePicker",
}
diff --git a/tests/robotests/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragmentTest.kt b/tests/robotests/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragmentTest.kt
index f7e9ecf..0a54312 100644
--- a/tests/robotests/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragmentTest.kt
+++ b/tests/robotests/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragmentTest.kt
@@ -10,6 +10,7 @@
import com.android.systemui.shared.clocks.ClockRegistry
import org.junit.Assert
import org.junit.Before
+import org.junit.Ignore
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
@@ -23,6 +24,7 @@
/** Tests of [ClockCustomDemoFragment]. */
@RunWith(RobolectricTestRunner::class)
@Config(manifest = Config.NONE)
+@Ignore("b/270606895")
class ClockCustomDemoFragmentTest {
private lateinit var mActivity: AppCompatActivity
private var mClockCustomDemoFragment: ClockCustomDemoFragment? = null
diff --git a/tests/src/com/android/customization/model/grid/ui/viewmodel/GridScreenViewModelTest.kt b/tests/src/com/android/customization/model/grid/ui/viewmodel/GridScreenViewModelTest.kt
index 951638a..7d0a527 100644
--- a/tests/src/com/android/customization/model/grid/ui/viewmodel/GridScreenViewModelTest.kt
+++ b/tests/src/com/android/customization/model/grid/ui/viewmodel/GridScreenViewModelTest.kt
@@ -31,6 +31,7 @@
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.runTest
import org.junit.Before
+import org.junit.Ignore
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.JUnit4
@@ -73,6 +74,7 @@
}
@Test
+ @Ignore("b/270371382")
fun clickOnItem_itGetsSelected() =
testScope.runTest {
val optionItemsValueProvider = collectLastValue(underTest.optionItems)
diff --git a/tests/src/com/android/customization/model/picker/color/domain/interactor/ColorPickerInteractorTest.kt b/tests/src/com/android/customization/model/picker/color/domain/interactor/ColorPickerInteractorTest.kt
index 81ef55f..885d5a9 100644
--- a/tests/src/com/android/customization/model/picker/color/domain/interactor/ColorPickerInteractorTest.kt
+++ b/tests/src/com/android/customization/model/picker/color/domain/interactor/ColorPickerInteractorTest.kt
@@ -21,10 +21,13 @@
import androidx.test.platform.app.InstrumentationRegistry
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
import com.android.customization.picker.color.shared.model.ColorType
+import com.android.wallpaper.testing.FakeSnapshotStore
import com.android.wallpaper.testing.collectLastValue
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
@@ -36,16 +39,26 @@
@RunWith(JUnit4::class)
class ColorPickerInteractorTest {
private lateinit var underTest: ColorPickerInteractor
+ private lateinit var repository: FakeColorPickerRepository
+ private lateinit var store: FakeSnapshotStore
private lateinit var context: Context
@Before
fun setUp() {
context = InstrumentationRegistry.getInstrumentation().targetContext
+ repository = FakeColorPickerRepository(context = context)
+ store = FakeSnapshotStore()
underTest =
ColorPickerInteractor(
- repository = FakeColorPickerRepository(context = context),
+ repository = repository,
+ snapshotRestorer = {
+ ColorPickerSnapshotRestorer(interactor = underTest).apply {
+ runBlocking { setUpSnapshotRestorer(store = store) }
+ }
+ },
)
+ repository.setOptions(4, 4, ColorType.WALLPAPER_COLOR, 0)
}
@Test
@@ -66,4 +79,40 @@
val presetColorOptionModelAfter = colorOptions()?.get(ColorType.BASIC_COLOR)?.get(1)
assertThat(presetColorOptionModelAfter?.isSelected).isTrue()
}
+
+ @Test
+ fun snapshotRestorer_updatesSnapshot() = runTest {
+ val colorOptions = collectLastValue(underTest.colorOptions)
+ val wallpaperColorOptionModel0 = colorOptions()?.get(ColorType.WALLPAPER_COLOR)?.get(0)
+ val wallpaperColorOptionModel1 = colorOptions()?.get(ColorType.WALLPAPER_COLOR)?.get(1)
+ assertThat(wallpaperColorOptionModel0?.isSelected).isTrue()
+ assertThat(wallpaperColorOptionModel1?.isSelected).isFalse()
+
+ val storedSnapshot = store.retrieve()
+ wallpaperColorOptionModel1?.let { underTest.select(it) }
+ val wallpaperColorOptionModel0After = colorOptions()?.get(ColorType.WALLPAPER_COLOR)?.get(0)
+ val wallpaperColorOptionModel1After = colorOptions()?.get(ColorType.WALLPAPER_COLOR)?.get(1)
+ assertThat(wallpaperColorOptionModel0After?.isSelected).isFalse()
+ assertThat(wallpaperColorOptionModel1After?.isSelected).isTrue()
+
+ assertThat(store.retrieve()).isNotEqualTo(storedSnapshot)
+ }
+
+ @Test
+ fun snapshotRestorer_doesNotUpdateSnapshotOnExternalUpdates() = runTest {
+ val colorOptions = collectLastValue(underTest.colorOptions)
+ val wallpaperColorOptionModel0 = colorOptions()?.get(ColorType.WALLPAPER_COLOR)?.get(0)
+ val wallpaperColorOptionModel1 = colorOptions()?.get(ColorType.WALLPAPER_COLOR)?.get(1)
+ assertThat(wallpaperColorOptionModel0?.isSelected).isTrue()
+ assertThat(wallpaperColorOptionModel1?.isSelected).isFalse()
+
+ val storedSnapshot = store.retrieve()
+ repository.setOptions(4, 4, ColorType.WALLPAPER_COLOR, 1)
+ val wallpaperColorOptionModel0After = colorOptions()?.get(ColorType.WALLPAPER_COLOR)?.get(0)
+ val wallpaperColorOptionModel1After = colorOptions()?.get(ColorType.WALLPAPER_COLOR)?.get(1)
+ assertThat(wallpaperColorOptionModel0After?.isSelected).isFalse()
+ assertThat(wallpaperColorOptionModel1After?.isSelected).isTrue()
+
+ assertThat(store.retrieve()).isEqualTo(storedSnapshot)
+ }
}
diff --git a/tests/src/com/android/customization/model/picker/color/domain/interactor/ColorPickerSnapshotRestorerTest.kt b/tests/src/com/android/customization/model/picker/color/domain/interactor/ColorPickerSnapshotRestorerTest.kt
new file mode 100644
index 0000000..27b8550
--- /dev/null
+++ b/tests/src/com/android/customization/model/picker/color/domain/interactor/ColorPickerSnapshotRestorerTest.kt
@@ -0,0 +1,138 @@
+/*
+ * 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.picker.color.domain.interactor
+
+import android.content.Context
+import androidx.test.filters.SmallTest
+import androidx.test.platform.app.InstrumentationRegistry
+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
+import com.android.customization.picker.color.shared.model.ColorOptionModel
+import com.android.customization.picker.color.shared.model.ColorType
+import com.android.wallpaper.testing.FakeSnapshotStore
+import com.android.wallpaper.testing.collectLastValue
+import com.google.common.truth.Truth
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+@OptIn(ExperimentalCoroutinesApi::class)
+@SmallTest
+@RunWith(JUnit4::class)
+class ColorPickerSnapshotRestorerTest {
+
+ private lateinit var underTest: ColorPickerSnapshotRestorer
+ private lateinit var repository: FakeColorPickerRepository
+ private lateinit var store: FakeSnapshotStore
+
+ private lateinit var context: Context
+
+ @Before
+ fun setUp() {
+ context = InstrumentationRegistry.getInstrumentation().targetContext
+ repository = FakeColorPickerRepository(context = context)
+ underTest =
+ ColorPickerSnapshotRestorer(
+ interactor =
+ ColorPickerInteractor(
+ repository = repository,
+ snapshotRestorer = { underTest },
+ )
+ )
+ store = FakeSnapshotStore()
+ }
+
+ @Test
+ fun restoreToSnapshot_noCallsToStore_restoresToInitialSnapshot() = runTest {
+ val colorOptions = collectLastValue(repository.colorOptions)
+
+ repository.setOptions(4, 4, ColorType.WALLPAPER_COLOR, 2)
+ val initialSnapshot = underTest.setUpSnapshotRestorer(store = store)
+ assertThat(initialSnapshot.args).isNotEmpty()
+
+ val colorOptionToSelect = colorOptions()?.get(ColorType.BASIC_COLOR)?.get(3)
+ colorOptionToSelect?.let { repository.select(it) }
+ assertState(colorOptions(), ColorType.BASIC_COLOR, 3)
+
+ underTest.restoreToSnapshot(initialSnapshot)
+ assertState(colorOptions(), ColorType.WALLPAPER_COLOR, 2)
+ }
+
+ @Test
+ fun restoreToSnapshot_withCallToStore_restoresToInitialSnapshot() = runTest {
+ val colorOptions = collectLastValue(repository.colorOptions)
+
+ repository.setOptions(4, 4, ColorType.WALLPAPER_COLOR, 2)
+ val initialSnapshot = underTest.setUpSnapshotRestorer(store = store)
+ assertThat(initialSnapshot.args).isNotEmpty()
+
+ val colorOptionToSelect = colorOptions()?.get(ColorType.BASIC_COLOR)?.get(3)
+ colorOptionToSelect?.let { repository.select(it) }
+ assertState(colorOptions(), ColorType.BASIC_COLOR, 3)
+
+ val colorOptionToStore = colorOptions()?.get(ColorType.BASIC_COLOR)?.get(1)
+ colorOptionToStore?.let { underTest.storeSnapshot(colorOptionToStore) }
+
+ underTest.restoreToSnapshot(initialSnapshot)
+ assertState(colorOptions(), ColorType.WALLPAPER_COLOR, 2)
+ }
+
+ private fun assertState(
+ colorOptions: Map<ColorType, List<ColorOptionModel>>?,
+ selectedColorType: ColorType,
+ selectedColorIndex: Int
+ ) {
+ var foundSelectedColorOption = false
+ assertThat(colorOptions).isNotNull()
+ val optionsOfSelectedColorType = colorOptions?.get(selectedColorType)
+ assertThat(optionsOfSelectedColorType).isNotNull()
+ if (optionsOfSelectedColorType != null) {
+ for (i in optionsOfSelectedColorType.indices) {
+ val colorOptionHasSelectedIndex = i == selectedColorIndex
+ Truth.assertWithMessage(
+ "Expected color option with index \"${i}\" to have" +
+ " isSelected=$colorOptionHasSelectedIndex but it was" +
+ " ${optionsOfSelectedColorType[i].isSelected}, num options: ${colorOptions.size}"
+ )
+ .that(optionsOfSelectedColorType[i].isSelected)
+ .isEqualTo(colorOptionHasSelectedIndex)
+ foundSelectedColorOption = foundSelectedColorOption || colorOptionHasSelectedIndex
+ }
+ if (selectedColorIndex == -1) {
+ Truth.assertWithMessage(
+ "Expected no color options to be selected, but a color option is" +
+ " selected"
+ )
+ .that(foundSelectedColorOption)
+ .isFalse()
+ } else {
+ Truth.assertWithMessage(
+ "Expected a color option to be selected, but no color option is" +
+ " selected"
+ )
+ .that(foundSelectedColorOption)
+ .isTrue()
+ }
+ }
+ }
+}
diff --git a/tests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt b/tests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
index 6e5f776..7d87a55 100644
--- a/tests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
+++ b/tests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
@@ -21,15 +21,24 @@
import androidx.test.platform.app.InstrumentationRegistry
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
import com.android.customization.picker.color.shared.model.ColorType
import com.android.customization.picker.color.ui.viewmodel.ColorOptionViewModel
import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
import com.android.customization.picker.color.ui.viewmodel.ColorTypeViewModel
+import com.android.wallpaper.testing.FakeSnapshotStore
import com.android.wallpaper.testing.collectLastValue
import com.google.common.truth.Truth.assertThat
import com.google.common.truth.Truth.assertWithMessage
+import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.runBlocking
+import kotlinx.coroutines.test.StandardTestDispatcher
+import kotlinx.coroutines.test.TestScope
+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
@@ -40,80 +49,111 @@
@RunWith(JUnit4::class)
class ColorPickerViewModelTest {
private lateinit var underTest: ColorPickerViewModel
+ private lateinit var repository: FakeColorPickerRepository
+ private lateinit var interactor: ColorPickerInteractor
+ private lateinit var store: FakeSnapshotStore
private lateinit var context: Context
+ private lateinit var testScope: TestScope
@Before
fun setUp() {
context = InstrumentationRegistry.getInstrumentation().targetContext
+ val testDispatcher = StandardTestDispatcher()
+ testScope = TestScope(testDispatcher)
+ Dispatchers.setMain(testDispatcher)
+ repository = FakeColorPickerRepository(context = context)
+ store = FakeSnapshotStore()
+
+ interactor =
+ ColorPickerInteractor(
+ repository = repository,
+ snapshotRestorer = {
+ ColorPickerSnapshotRestorer(interactor = interactor).apply {
+ runBlocking { setUpSnapshotRestorer(store = store) }
+ }
+ },
+ )
underTest =
- ColorPickerViewModel.Factory(
- context = context,
- interactor =
- ColorPickerInteractor(
- repository = FakeColorPickerRepository(context = context),
- ),
- )
+ ColorPickerViewModel.Factory(context = context, interactor = interactor)
.create(ColorPickerViewModel::class.java)
+
+ repository.setOptions(4, 4, ColorType.WALLPAPER_COLOR, 0)
+ }
+
+ @After
+ fun tearDown() {
+ Dispatchers.resetMain()
}
@Test
- fun `Select a color section color`() = runTest {
- val colorSectionOptions = collectLastValue(underTest.colorSectionOptions)
+ fun `Select a color section color`() =
+ testScope.runTest {
+ val colorSectionOptions = collectLastValue(underTest.colorSectionOptions)
- assertColorOptionUiState(colorOptions = colorSectionOptions(), selectedColorOptionIndex = 0)
+ assertColorOptionUiState(
+ colorOptions = colorSectionOptions(),
+ selectedColorOptionIndex = 0
+ )
- colorSectionOptions()?.get(2)?.onClick?.invoke()
- assertColorOptionUiState(colorOptions = colorSectionOptions(), selectedColorOptionIndex = 2)
+ colorSectionOptions()?.get(2)?.onClick?.invoke()
+ assertColorOptionUiState(
+ colorOptions = colorSectionOptions(),
+ selectedColorOptionIndex = 2
+ )
- colorSectionOptions()?.get(4)?.onClick?.invoke()
- assertColorOptionUiState(colorOptions = colorSectionOptions(), selectedColorOptionIndex = 4)
- }
+ colorSectionOptions()?.get(4)?.onClick?.invoke()
+ assertColorOptionUiState(
+ colorOptions = colorSectionOptions(),
+ selectedColorOptionIndex = 4
+ )
+ }
@Test
- fun `Select a preset color`() = runTest {
- val colorTypes = collectLastValue(underTest.colorTypes)
- val colorOptions = collectLastValue(underTest.colorOptions)
+ fun `Select a preset color`() =
+ testScope.runTest {
+ val colorTypes = collectLastValue(underTest.colorTypes)
+ val colorOptions = collectLastValue(underTest.colorOptions)
- // Initially, the wallpaper color tab should be selected
- assertPickerUiState(
- colorTypes = colorTypes(),
- colorOptions = colorOptions(),
- selectedColorTypeText = "Wallpaper colors",
- selectedColorOptionIndex = 0
- )
+ // Initially, the wallpaper color tab should be selected
+ assertPickerUiState(
+ colorTypes = colorTypes(),
+ colorOptions = colorOptions(),
+ selectedColorTypeText = "Wallpaper colors",
+ selectedColorOptionIndex = 0
+ )
- // Select "Basic colors" tab
- colorTypes()?.get(ColorType.BASIC_COLOR)?.onClick?.invoke()
- assertPickerUiState(
- colorTypes = colorTypes(),
- colorOptions = colorOptions(),
- selectedColorTypeText = "Basic colors",
- selectedColorOptionIndex = -1
- )
+ // Select "Basic colors" tab
+ colorTypes()?.get(ColorType.BASIC_COLOR)?.onClick?.invoke()
+ assertPickerUiState(
+ colorTypes = colorTypes(),
+ colorOptions = colorOptions(),
+ selectedColorTypeText = "Basic colors",
+ selectedColorOptionIndex = -1
+ )
- // Select a color option
- colorOptions()?.get(2)?.onClick?.invoke()
+ // Select a color option
+ colorOptions()?.get(2)?.onClick?.invoke()
- // Check original option is no longer selected
- colorTypes()?.get(ColorType.WALLPAPER_COLOR)?.onClick?.invoke()
- assertPickerUiState(
- colorTypes = colorTypes(),
- colorOptions = colorOptions(),
- selectedColorTypeText = "Wallpaper colors",
- selectedColorOptionIndex = -1
- )
+ // Check original option is no longer selected
+ colorTypes()?.get(ColorType.WALLPAPER_COLOR)?.onClick?.invoke()
+ assertPickerUiState(
+ colorTypes = colorTypes(),
+ colorOptions = colorOptions(),
+ selectedColorTypeText = "Wallpaper colors",
+ selectedColorOptionIndex = -1
+ )
- // Check new option is selected
- colorTypes()?.get(ColorType.BASIC_COLOR)?.onClick?.invoke()
- assertPickerUiState(
- colorTypes = colorTypes(),
- colorOptions = colorOptions(),
- selectedColorTypeText = "Basic colors",
- selectedColorOptionIndex = 2
- )
- }
+ // Check new option is selected
+ colorTypes()?.get(ColorType.BASIC_COLOR)?.onClick?.invoke()
+ assertPickerUiState(
+ colorTypes = colorTypes(),
+ colorOptions = colorOptions(),
+ selectedColorTypeText = "Basic colors",
+ selectedColorOptionIndex = 2
+ )
+ }
/**
* Asserts the entire picker UI state is what is expected. This includes the color type tabs and
@@ -123,7 +163,7 @@
* @param colorOptions The observed color options
* @param selectedColorTypeText The text of the color type that's expected to be selected
* @param selectedColorOptionIndex The index of the color option that's expected to be selected,
- * -1 stands for no color option should be selected
+ * -1 stands for no color option should be selected
*/
private fun assertPickerUiState(
colorTypes: Map<ColorType, ColorTypeViewModel>?,
@@ -149,7 +189,7 @@
*
* @param colorOptions The observed color options
* @param selectedColorOptionIndex The index of the color option that's expected to be selected,
- * -1 stands for no color option should be selected
+ * -1 stands for no color option should be selected
*/
private fun assertColorOptionUiState(
colorOptions: List<ColorOptionViewModel>?,
diff --git a/tests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt b/tests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt
index 6044724..5c99585 100644
--- a/tests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt
+++ b/tests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt
@@ -462,7 +462,8 @@
*
* @param slots The observed slot view-models, keyed by slot ID
* @param expectedAffordanceNameBySlotId The expected name of the selected affordance for each
- * slot ID or `null` if it's expected for there to be no affordance for that slot in the preview
+ * slot ID or `null` if it's expected for there to be no affordance for that slot in the
+ * preview
*/
private fun assertPreviewUiState(
slots: Map<String, KeyguardQuickAffordanceSlotViewModel>?,
diff --git a/tests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt b/tests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
index d2a9efc..b2cb452 100644
--- a/tests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
+++ b/tests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
@@ -15,6 +15,7 @@
*/
package com.android.customization.picker.clock.data.repository
+import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository.Companion.fakeClocks
import com.android.customization.picker.clock.shared.ClockSize
import com.android.customization.picker.clock.shared.model.ClockMetadataModel
import kotlinx.coroutines.flow.Flow
@@ -22,9 +23,10 @@
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.combine
-class FakeClockPickerRepository : ClockPickerRepository {
- override val allClocks: Flow<List<ClockMetadataModel>> =
- MutableStateFlow(fakeClocks).asStateFlow()
+/** By default [FakeClockPickerRepository] uses [fakeClocks]. */
+open class FakeClockPickerRepository(private val clocks: List<ClockMetadataModel> = fakeClocks) :
+ ClockPickerRepository {
+ override val allClocks: Flow<List<ClockMetadataModel>> = MutableStateFlow(clocks).asStateFlow()
private val selectedClockId = MutableStateFlow(fakeClocks[0].clockId)
private val clockColor = MutableStateFlow<Int?>(null)
diff --git a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
index 8d7ec30..35c3518 100644
--- a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
+++ b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
@@ -18,6 +18,7 @@
import androidx.test.filters.SmallTest
import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
+import com.android.customization.picker.clock.shared.model.ClockMetadataModel
import com.android.wallpaper.testing.collectLastValue
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.Dispatchers
@@ -37,14 +38,20 @@
@SmallTest
@RunWith(JUnit4::class)
class ClockCarouselViewModelTest {
-
+ private val repositoryWithMultipleClocks by lazy { FakeClockPickerRepository() }
+ private val repositoryWithSingleClock by lazy {
+ FakeClockPickerRepository(
+ listOf(
+ ClockMetadataModel("clock0", "clock0", null),
+ )
+ )
+ }
private lateinit var underTest: ClockCarouselViewModel
@Before
fun setUp() {
val testDispatcher = StandardTestDispatcher()
Dispatchers.setMain(testDispatcher)
- underTest = ClockCarouselViewModel(ClockPickerInteractor(FakeClockPickerRepository()))
}
@After
@@ -54,9 +61,54 @@
@Test
fun setSelectedClock() = runTest {
+ underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithMultipleClocks))
val observedSelectedIndex = collectLastValue(underTest.selectedIndex)
advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
underTest.setSelectedClock(FakeClockPickerRepository.fakeClocks[2].clockId)
assertThat(observedSelectedIndex()).isEqualTo(2)
}
+
+ @Test
+ fun setShouldShowCarousel() = runTest {
+ underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithMultipleClocks))
+ val observedIsCarouselVisible = collectLastValue(underTest.isCarouselVisible)
+ advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
+ underTest.showClockCarousel(false)
+ assertThat(observedIsCarouselVisible()).isFalse()
+ underTest.showClockCarousel(true)
+ assertThat(observedIsCarouselVisible()).isTrue()
+ }
+
+ @Test
+ fun shouldNotShowCarouselWhenSingleClock() = runTest {
+ underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithSingleClock))
+ val observedIsCarouselVisible = collectLastValue(underTest.isCarouselVisible)
+ advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
+ underTest.showClockCarousel(false)
+ assertThat(observedIsCarouselVisible()).isFalse()
+ underTest.showClockCarousel(true)
+ assertThat(observedIsCarouselVisible()).isFalse()
+ }
+
+ @Test
+ fun setShouldShowSingleClock() = runTest {
+ underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithSingleClock))
+ val observedIsSingleClockViewVisible = collectLastValue(underTest.isSingleClockViewVisible)
+ advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
+ underTest.showClockCarousel(false)
+ assertThat(observedIsSingleClockViewVisible()).isFalse()
+ underTest.showClockCarousel(true)
+ assertThat(observedIsSingleClockViewVisible()).isTrue()
+ }
+
+ @Test
+ fun shouldNotShowSingleClockWhenMultipleClocks() = runTest {
+ underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithMultipleClocks))
+ val observedIsSingleClockViewVisible = collectLastValue(underTest.isSingleClockViewVisible)
+ advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
+ underTest.showClockCarousel(false)
+ assertThat(observedIsSingleClockViewVisible()).isFalse()
+ underTest.showClockCarousel(true)
+ assertThat(observedIsSingleClockViewVisible()).isFalse()
+ }
}
diff --git a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsTabViewModelTest.kt b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsTabViewModelTest.kt
index 215e178..8f61d8b 100644
--- a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsTabViewModelTest.kt
+++ b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsTabViewModelTest.kt
@@ -6,11 +6,16 @@
import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
import com.android.customization.picker.clock.shared.ClockSize
+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
+import com.android.wallpaper.testing.FakeSnapshotStore
import com.android.wallpaper.testing.collectLastValue
import com.google.common.collect.Range
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.advanceTimeBy
import kotlinx.coroutines.test.resetMain
@@ -28,7 +33,8 @@
class ClockSettingsViewModelTest {
private lateinit var underTest: ClockSettingsViewModel
-
+ private lateinit var colorPickerInteractor: ColorPickerInteractor
+ private lateinit var store: FakeSnapshotStore
private lateinit var context: Context
@Before
@@ -36,10 +42,20 @@
val testDispatcher = StandardTestDispatcher()
Dispatchers.setMain(testDispatcher)
context = InstrumentationRegistry.getInstrumentation().targetContext
+ colorPickerInteractor =
+ ColorPickerInteractor(
+ repository = FakeColorPickerRepository(context = context),
+ snapshotRestorer = {
+ ColorPickerSnapshotRestorer(interactor = colorPickerInteractor).apply {
+ runBlocking { setUpSnapshotRestorer(store = store) }
+ }
+ },
+ )
underTest =
ClockSettingsViewModel.Factory(
context = context,
- interactor = ClockPickerInteractor(FakeClockPickerRepository()),
+ clockPickerInteractor = ClockPickerInteractor(FakeClockPickerRepository()),
+ colorPickerInteractor = colorPickerInteractor,
)
.create(ClockSettingsViewModel::class.java)
}
diff --git a/tests/src/com/android/customization/testing/TestCustomizationInjector.kt b/tests/src/com/android/customization/testing/TestCustomizationInjector.kt
index 3ab7c84..5b0ecae 100644
--- a/tests/src/com/android/customization/testing/TestCustomizationInjector.kt
+++ b/tests/src/com/android/customization/testing/TestCustomizationInjector.kt
@@ -18,6 +18,7 @@
import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
import com.android.customization.picker.color.data.repository.ColorPickerRepositoryImpl
import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
+import com.android.customization.picker.color.domain.interactor.ColorPickerSnapshotRestorer
import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
import com.android.customization.picker.quickaffordance.data.repository.KeyguardQuickAffordancePickerRepository
import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor
@@ -54,6 +55,7 @@
private var clockViewFactory: ClockViewFactory? = null
private var colorPickerInteractor: ColorPickerInteractor? = null
private var colorPickerViewModelFactory: ColorPickerViewModel.Factory? = null
+ private var colorPickerSnapshotRestorer: ColorPickerSnapshotRestorer? = null
private var clockCarouselViewModel: ClockCarouselViewModel? = null
private var clockSettingsViewModelFactory: ClockSettingsViewModel.Factory? = null
@@ -107,7 +109,9 @@
return KeyguardQuickAffordancePickerInteractor(
KeyguardQuickAffordancePickerRepository(client, Dispatchers.IO),
client
- ) { getKeyguardQuickAffordanceSnapshotRestorer(context) }
+ ) {
+ getKeyguardQuickAffordanceSnapshotRestorer(context)
+ }
}
override fun getFlags(): BaseFlags {
@@ -118,6 +122,8 @@
val restorers: MutableMap<Int, SnapshotRestorer> = HashMap()
restorers[KEY_QUICK_AFFORDANCE_SNAPSHOT_RESTORER] =
getKeyguardQuickAffordanceSnapshotRestorer(context)
+ restorers[KEY_COLOR_PICKER_SNAPSHOT_RESTORER] =
+ getColorPickerSnapshotRestorer(context, getWallpaperColorsViewModel())
return restorers
}
@@ -158,7 +164,7 @@
override fun getClockSectionViewModel(context: Context): ClockSectionViewModel {
return clockSectionViewModel
- ?: ClockSectionViewModel(getClockPickerInteractor(context)).also {
+ ?: ClockSectionViewModel(context, getClockPickerInteractor(context)).also {
clockSectionViewModel = it
}
}
@@ -168,7 +174,12 @@
wallpaperColorsViewModel: WallpaperColorsViewModel,
): ColorPickerInteractor {
return colorPickerInteractor
- ?: ColorPickerInteractor(ColorPickerRepositoryImpl(context, wallpaperColorsViewModel))
+ ?: ColorPickerInteractor(
+ repository = ColorPickerRepositoryImpl(context, wallpaperColorsViewModel),
+ snapshotRestorer = {
+ getColorPickerSnapshotRestorer(context, wallpaperColorsViewModel)
+ },
+ )
.also { colorPickerInteractor = it }
}
@@ -184,6 +195,17 @@
.also { colorPickerViewModelFactory = it }
}
+ private fun getColorPickerSnapshotRestorer(
+ context: Context,
+ wallpaperColorsViewModel: WallpaperColorsViewModel
+ ): ColorPickerSnapshotRestorer {
+ return colorPickerSnapshotRestorer
+ ?: ColorPickerSnapshotRestorer(
+ getColorPickerInteractor(context, wallpaperColorsViewModel)
+ )
+ .also { colorPickerSnapshotRestorer = it }
+ }
+
override fun getClockCarouselViewModel(context: Context): ClockCarouselViewModel {
return clockCarouselViewModel
?: ClockCarouselViewModel(getClockPickerInteractor(context)).also {
@@ -198,16 +220,23 @@
override fun getClockSettingsViewModelFactory(
context: Context,
+ wallpaperColorsViewModel: WallpaperColorsViewModel,
): ClockSettingsViewModel.Factory {
return clockSettingsViewModelFactory
?: ClockSettingsViewModel.Factory(
context,
getClockPickerInteractor(context),
+ getColorPickerInteractor(
+ context,
+ wallpaperColorsViewModel,
+ ),
)
.also { clockSettingsViewModelFactory = it }
}
companion object {
private const val KEY_QUICK_AFFORDANCE_SNAPSHOT_RESTORER = 1
+ private const val KEY_COLOR_PICKER_SNAPSHOT_RESTORER =
+ KEY_QUICK_AFFORDANCE_SNAPSHOT_RESTORER + 1
}
}