Merge "Move effect controller injection (2/3)" into main
diff --git a/res/layout/clock_color_option_noop_item.xml b/res/layout/clock_color_list_placeholder.xml
similarity index 77%
rename from res/layout/clock_color_option_noop_item.xml
rename to res/layout/clock_color_list_placeholder.xml
index a4ea877..d7912c1 100644
--- a/res/layout/clock_color_option_noop_item.xml
+++ b/res/layout/clock_color_list_placeholder.xml
@@ -13,23 +13,25 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<!-- Content description is set programmatically on the parent FrameLayout -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:orientation="vertical">
+
<include
layout="@layout/color_option"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
+ android:layout_width="@dimen/option_item_size"
+ android:layout_height="@dimen/option_item_size" />
+
<View
android:layout_width="match_parent"
- android:layout_height="4dp"/>
+ android:layout_height="@dimen/floating_sheet_list_item_vertical_space"/>
+
<include
layout="@layout/color_option"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
+ android:layout_width="@dimen/option_item_size"
+ android:layout_height="@dimen/option_item_size" />
</LinearLayout>
diff --git a/res/layout/clock_color_option_noop_item.xml b/res/layout/clock_style_list_placeholder.xml
similarity index 63%
copy from res/layout/clock_color_option_noop_item.xml
copy to res/layout/clock_style_list_placeholder.xml
index a4ea877..48ef9a8 100644
--- a/res/layout/clock_color_option_noop_item.xml
+++ b/res/layout/clock_style_list_placeholder.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?><!--
- Copyright (C) 2023 The Android Open Source Project
+ Copyright (C) 2024 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -13,23 +13,25 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<!-- Content description is set programmatically on the parent FrameLayout -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:orientation="vertical">
+
<include
- layout="@layout/color_option"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
+ layout="@layout/clock_style_option"
+ android:layout_width="@dimen/floating_sheet_clock_style_option_size"
+ android:layout_height="@dimen/floating_sheet_clock_style_option_size" />
+
<View
android:layout_width="match_parent"
- android:layout_height="4dp"/>
+ android:layout_height="@dimen/floating_sheet_list_item_vertical_space"/>
+
<include
- layout="@layout/color_option"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
+ layout="@layout/clock_style_option"
+ android:layout_width="@dimen/floating_sheet_clock_style_option_size"
+ android:layout_height="@dimen/floating_sheet_clock_style_option_size" />
</LinearLayout>
diff --git a/res/layout/clock_style_option.xml b/res/layout/clock_style_option.xml
new file mode 100644
index 0000000..fd72e85
--- /dev/null
+++ b/res/layout/clock_style_option.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- Content description is set programmatically on the parent FrameLayout -->
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="@dimen/floating_sheet_clock_style_option_size"
+ android:layout_height="@dimen/floating_sheet_clock_style_option_size">
+
+ <ImageView
+ android:id="@id/selection_border"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/option_item_border"
+ android:alpha="0"
+ android:importantForAccessibility="no" />
+
+ <ImageView
+ android:id="@id/background"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/option_item_background"
+ android:importantForAccessibility="no" />
+
+ <ImageView
+ android:id="@+id/foreground"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_margin="@dimen/floating_sheet_clock_style_thumbnail_margin" />
+</FrameLayout>
+
diff --git a/res/layout/floating_sheet_clock.xml b/res/layout/floating_sheet_clock.xml
index 4f114a6..bc77300 100644
--- a/res/layout/floating_sheet_clock.xml
+++ b/res/layout/floating_sheet_clock.xml
@@ -29,12 +29,35 @@
android:clipToPadding="false"
android:clipChildren="false">
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/clock_list"
+ <FrameLayout
+ android:id="@+id/clock_floating_sheet_style_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:clipChildren="false"
- android:clipToPadding="false"/>
+ android:clipToPadding="false"
+ android:clipChildren="false">
+
+ <!--
+ This is an invisible placeholder put in place so that the parent keeps its height
+ stable as the RecyclerView updates from 0 items to N items. Keeping it stable allows
+ the layout logic to keep the size of the preview container stable as well, which
+ bodes well for setting up the SurfaceView for remote rendering without changing its
+ size after the content is loaded into the RecyclerView.
+
+ It's critical for any TextViews inside the included layout to have text.
+ -->
+ <include
+ layout="@layout/clock_style_list_placeholder"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="invisible" />
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/clock_style_list"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clipChildren="false"
+ android:clipToPadding="false"/>
+ </FrameLayout>
<LinearLayout
@@ -46,7 +69,6 @@
android:clipChildren="false">
<FrameLayout
- android:id="@+id/clock_color_list_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
@@ -54,16 +76,16 @@
android:layout_marginBottom="12dp">
<!--
- This is an invisible placeholder put in place so that the parent keeps its height
- stable as the RecyclerView updates from 0 items to N items. Keeping it stable allows
- the layout logic to keep the size of the preview container stable as well, which
- bodes well for setting up the SurfaceView for remote rendering without changing its
- size after the content is loaded into the RecyclerView.
+ This is an invisible placeholder put in place so that the parent keeps its height
+ stable as the RecyclerView updates from 0 items to N items. Keeping it stable allows
+ the layout logic to keep the size of the preview container stable as well, which
+ bodes well for setting up the SurfaceView for remote rendering without changing its
+ size after the content is loaded into the RecyclerView.
- It's critical for any TextViews inside the included layout to have text.
- -->
+ It's critical for any TextViews inside the included layout to have text.
+ -->
<include
- layout="@layout/clock_color_option_noop_item"
+ layout="@layout/clock_color_list_placeholder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible" />
@@ -74,8 +96,6 @@
android:layout_height="wrap_content"
android:clipChildren="false"
android:clipToPadding="false" />
-
-
</FrameLayout>
@@ -162,4 +182,4 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginVertical="@dimen/floating_sheet_tab_toolbar_vertical_margin" />
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index adaa3b9..0f14a04 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Horlosiekleur en -grootte"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Horlosiekleur en -grootte"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Styl"</string>
<string name="clock_color" msgid="8081608867289156163">"Kleur"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Rooi"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Oranje"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index a33a13e..2eaab87 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"የClock ቀለም እና መጠን"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"የClock ቀለም እና መጠን"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>፣ <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"ቅጥ"</string>
<string name="clock_color" msgid="8081608867289156163">"ቀለም"</string>
<string name="clock_color_red" msgid="3843504214807597810">"ቀይ"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"ብርቱካናማ"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 536dc3b..6056def 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"لون الساعة وحجمها"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"لون الساعة وحجمها"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g> و<xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"النمط"</string>
<string name="clock_color" msgid="8081608867289156163">"اللون"</string>
<string name="clock_color_red" msgid="3843504214807597810">"أحمر"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"برتقالي"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 2d8b529..e4418d5 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"ঘড়ীৰ ৰং আৰু আকাৰ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ঘড়ীৰ ৰং আৰু আকাৰ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"শৈলী"</string>
<string name="clock_color" msgid="8081608867289156163">"ৰং"</string>
<string name="clock_color_red" msgid="3843504214807597810">"ৰঙা"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"কমলা"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index b6d1f55..76c2725 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Saat rəngi və ölçü"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Saat rəngi və ölçüsü"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Üslub"</string>
<string name="clock_color" msgid="8081608867289156163">"Rəng"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Qırmızı"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Narıncı"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 6b6293e..59ef259 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Boja i veličina sata"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Boja i veličina sata"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stil"</string>
<string name="clock_color" msgid="8081608867289156163">"Boja"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Crvena"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Narandžasta"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 6b2b474..1005abf 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Колер/памер гадз-ка"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Колер і памер гадзінніка"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Стыль"</string>
<string name="clock_color" msgid="8081608867289156163">"Колер"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Чырвоны"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Аранжавы"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 051cd35..f64a018 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Часовн.: Цвят и размер"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Часовн.: Цвят и размер"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Стил"</string>
<string name="clock_color" msgid="8081608867289156163">"Цвят"</string>
<string name="clock_color_red" msgid="3843504214807597810">"червено"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"оранжево"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index e419aac..8ef1f37 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"ঘড়ির রঙ & সাইজ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ঘড়ির রঙ ও সাইজ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"স্টাইল"</string>
<string name="clock_color" msgid="8081608867289156163">"রঙ"</string>
<string name="clock_color_red" msgid="3843504214807597810">"লাল"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"কমলা"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index e25a69a..9bd52e2 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Boja i veličina sata"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Boja i veličina sata"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stil"</string>
<string name="clock_color" msgid="8081608867289156163">"Boja"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Crvena"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Narandžasta"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index b37ddd8..94ec758 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Color i mida rellotge"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Color i mida del rellotge"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Estil"</string>
<string name="clock_color" msgid="8081608867289156163">"Color"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Vermell"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Taronja"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index ffe69a4..aa17400 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Barva a velikost"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Barva a velikost"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Styl"</string>
<string name="clock_color" msgid="8081608867289156163">"Barva"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Červená"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Oranžová"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index d99847b..42a8760 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Urets farve og str."</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Urets farve og størrelse"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stil"</string>
<string name="clock_color" msgid="8081608867289156163">"Farve"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Rød"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Orange"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index be98c62..07f05dc 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Uhr-Farbe & -Größe"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Uhr-Farbe und -Größe"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stil"</string>
<string name="clock_color" msgid="8081608867289156163">"Farbe"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Rot"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Orange"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index d9ce549..a4eb1b9 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Χρώμα/μέγεθ. ρολογ."</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Χρώμα και μέγεθος"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Στιλ"</string>
<string name="clock_color" msgid="8081608867289156163">"Χρώμα"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Κόκκινο"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Πορτοκαλί"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 33de28b..d280efd 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Clock colour & size"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Clock colour and size"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Style"</string>
<string name="clock_color" msgid="8081608867289156163">"Colour"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Red"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Orange"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index b256398..dbfbe94 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Clock color & size"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Clock color & size"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Style"</string>
<string name="clock_color" msgid="8081608867289156163">"Color"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Red"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Orange"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 33de28b..d280efd 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Clock colour & size"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Clock colour and size"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Style"</string>
<string name="clock_color" msgid="8081608867289156163">"Colour"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Red"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Orange"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 33de28b..d280efd 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Clock colour & size"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Clock colour and size"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Style"</string>
<string name="clock_color" msgid="8081608867289156163">"Colour"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Red"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Orange"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index b6f48d3..07b3146 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Clock color & size"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Clock color & size"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Style"</string>
<string name="clock_color" msgid="8081608867289156163">"Color"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Red"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Orange"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 318e844..2554601 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Color, tamaño de reloj"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Reloj: color, tamaño"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Estilo"</string>
<string name="clock_color" msgid="8081608867289156163">"Color"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Rojo"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Naranja"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index ecb4e04..753d3a7 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Color/tamaño (reloj)"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Color y tamaño del reloj"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Estilo"</string>
<string name="clock_color" msgid="8081608867289156163">"Color"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Rojo"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Naranja"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 28fefd4..3275eed 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Kella värv/suurus"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Kella värv ja suurus"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stiil"</string>
<string name="clock_color" msgid="8081608867289156163">"Värv"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Punane"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Oranž"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 8c2b406..1599ae1 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Erlojuaren kolorea eta tamaina"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Erlojuaren kolorea eta tamaina"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Estiloa"</string>
<string name="clock_color" msgid="8081608867289156163">"Kolorea"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Gorria"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Laranja"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index fa81da6..de42d86 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"اندازه و رنگ ساعت"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"اندازه و رنگ ساعت"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>، <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"سبک"</string>
<string name="clock_color" msgid="8081608867289156163">"رنگ"</string>
<string name="clock_color_red" msgid="3843504214807597810">"قرمز"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"نارنجی"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index feaadd3..fb50649 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Kellon väri ja koko"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Kellon väri ja koko"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Tyyli"</string>
<string name="clock_color" msgid="8081608867289156163">"Väri"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Punainen"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Oranssi"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 1d2e3e5..250eba4 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Couleur/taille"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Couleur/taille (horloge)"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Style"</string>
<string name="clock_color" msgid="8081608867289156163">"Couleur"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Rouge"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Orange"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 66eaa2e..b191e3b 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Taille et couleur de l\'Horloge"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Taille et couleur de l\'horloge"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Style"</string>
<string name="clock_color" msgid="8081608867289156163">"Couleur"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Rouge"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Orange"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index beeface..f35bc56 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Tamaño/cor (Reloxo)"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Tamaño/cor do reloxo"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Estilo"</string>
<string name="clock_color" msgid="8081608867289156163">"Cor"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Vermello"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Laranxa"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index e396e91..2102a73 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"ઘડિયાળનો રંગ અને કદ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ઘડિયાળનો રંગ અને કદ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"શૈલી"</string>
<string name="clock_color" msgid="8081608867289156163">"રંગ"</string>
<string name="clock_color_red" msgid="3843504214807597810">"લાલ"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"નારંગી"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 059eabb..1457fc5 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"वॉच का रंग और साइज़"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"घड़ी का रंग और साइज़"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"स्टाइल"</string>
<string name="clock_color" msgid="8081608867289156163">"रंग"</string>
<string name="clock_color_red" msgid="3843504214807597810">"लाल"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"नारंगी"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 69591f7..4a7b0bd 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Boja i veličina sata"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Boja i veličina sata"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stil"</string>
<string name="clock_color" msgid="8081608867289156163">"Boja"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Crvena"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Narančasta"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index ed4e10c..84e2d80 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Óra színe és mérete"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Óra színe és mérete"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stílus"</string>
<string name="clock_color" msgid="8081608867289156163">"Szín"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Piros"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Narancssárga"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 0d75ee7..86cbf9d 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Գույնը և չափսը"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Գույնը և չափսը"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Ոճ"</string>
<string name="clock_color" msgid="8081608867289156163">"Գույն"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Կարմիր"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Նարնջագույն"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 04ab409..60672e5 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Warna & ukuran jam"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Warna & ukuran jam"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Gaya"</string>
<string name="clock_color" msgid="8081608867289156163">"Warna"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Merah"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Oranye"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index abad9ec..b4fc13e 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Klukkustærð og litur"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Klukkustærð og litur"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stíll"</string>
<string name="clock_color" msgid="8081608867289156163">"Litur"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Rauður"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Appelsínugulur"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 6dffc0b..37e8b75 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Colore/dim. orologio"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Colore e dimensioni orologio"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stile"</string>
<string name="clock_color" msgid="8081608867289156163">"Colore"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Rosso"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Arancione"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 8c5ad6e..b8e1c5f 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"הצבע והגודל של השעון"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"הצבע והגודל של השעון"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"סגנון"</string>
<string name="clock_color" msgid="8081608867289156163">"צבע"</string>
<string name="clock_color_red" msgid="3843504214807597810">"אדום"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"כתום"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 4b079b8..6f6e045 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"時計の色とサイズ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"時計の色とサイズ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>、<xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"スタイル"</string>
<string name="clock_color" msgid="8081608867289156163">"色"</string>
<string name="clock_color_red" msgid="3843504214807597810">"赤"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"オレンジ"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index c52a944..4a82186 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"საათის ფერი და ზომა"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"საათის ფერი & amp; ზომა"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"სტილი"</string>
<string name="clock_color" msgid="8081608867289156163">"ფერი"</string>
<string name="clock_color_red" msgid="3843504214807597810">"წითელი"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"ნარინჯისფერი"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 9389d03..b57b8da 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Сағат түсі, көлемі"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Сағаттың түсі, өлшемі"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Стиль"</string>
<string name="clock_color" msgid="8081608867289156163">"Түс"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Қызыл"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Қызғылт сары"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 19762ef..c708289 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"ពណ៌ និងទំហំនាឡិកា"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ពណ៌ និងទំហំនាឡិកា"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"រចនាបថ"</string>
<string name="clock_color" msgid="8081608867289156163">"ពណ៌"</string>
<string name="clock_color_red" msgid="3843504214807597810">"ក្រហម"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"ទឹកក្រូច"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 70e229f..32d0e48 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"ಗಡಿಯಾರದ ಬಣ್ಣ, ಗಾತ್ರ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ಗಡಿಯಾರದ ಬಣ್ಣ, ಗಾತ್ರ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"ಶೈಲಿ"</string>
<string name="clock_color" msgid="8081608867289156163">"ಬಣ್ಣ"</string>
<string name="clock_color_red" msgid="3843504214807597810">"ಕೆಂಪು"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"ಕಿತ್ತಳೆ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 3582ae6..8e869d0 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"시계 색상 및 크기"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"시계 색상 및 크기"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"스타일"</string>
<string name="clock_color" msgid="8081608867289156163">"색상"</string>
<string name="clock_color_red" msgid="3843504214807597810">"빨간색"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"주황색"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index cf57425..fd070ff 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Сааттын түсү, өлчөмү"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Сааттын түсү, өлчөмү"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Стиль"</string>
<string name="clock_color" msgid="8081608867289156163">"Түс"</string>
<string name="clock_color_red" msgid="3843504214807597810">"КЫЗЫЛ"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"КЫЗГЫЛТ САРЫ"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index b33cebc..8e44623 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"ສີ ແລະ ຂະໜາດໂມງ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ສີ ແລະ ຂະໜາດໂມງ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"ຮູບແບບ"</string>
<string name="clock_color" msgid="8081608867289156163">"ສີ"</string>
<string name="clock_color_red" msgid="3843504214807597810">"ສີແດງ"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"ສີສົ້ມ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index d2a21d7..e0c8ffd 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Laikr. spalva, dyd."</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Laikr. spalva ir dydis"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stilius"</string>
<string name="clock_color" msgid="8081608867289156163">"Spalva"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Raudona"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Oranžinė"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index bc8f155..68a6d4b 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Pulksteņa krāsa/lielums"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Pulksteņa krāsa/lielums"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stils"</string>
<string name="clock_color" msgid="8081608867289156163">"Krāsa"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Sarkana"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Oranža"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index b3b8ab2..cd9690b 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Боја и големина"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Боја и големина"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Стил"</string>
<string name="clock_color" msgid="8081608867289156163">"Боја"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Црвена"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Портокалова"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 685f8f6..191c066 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"ക്ലോക്കിന്റെ നിറം, വലുപ്പം"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ക്ലോക്കിന്റെ നിറം, വലുപ്പം"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"സ്റ്റൈൽ"</string>
<string name="clock_color" msgid="8081608867289156163">"നിറം"</string>
<string name="clock_color_red" msgid="3843504214807597810">"ചുവപ്പ്"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"ഓറഞ്ച്"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 003a69d..2353a9d 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Цагны өнгө, хэмжээ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Цагны өнгө, хэмжээ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Загвар"</string>
<string name="clock_color" msgid="8081608867289156163">"Өнгө"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Улаан"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Улбар шар"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 8419783..c531514 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Clock चा रंग व आकार"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"घड्याळाचा रंग व आकार"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"शैली"</string>
<string name="clock_color" msgid="8081608867289156163">"रंग"</string>
<string name="clock_color_red" msgid="3843504214807597810">"लाल"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"नारिंगी"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 2757dc8..fb6a237 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Warna & saiz jam"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Warna & saiz jam"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Gaya"</string>
<string name="clock_color" msgid="8081608867289156163">"Warna"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Merah"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Jingga"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index bc71e17..3be7e0b 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"နာရီအရောင်၊ အရွယ်"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"နာရီအရောင်နှင့်အရွယ်"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>၊ <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"ပုံစံ"</string>
<string name="clock_color" msgid="8081608867289156163">"အရောင်"</string>
<string name="clock_color_red" msgid="3843504214807597810">"အနီရောင်"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"လိမ္မော်ရောင်"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 20023dd..f4cd48d 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Farge og størrelse"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Farge og størrelse"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stil"</string>
<string name="clock_color" msgid="8081608867289156163">"Farge"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Rød"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Oransje"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 9a941cc..9669e01 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"घडीको रङ र आकार"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"घडीको रङ र आकार"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"शैली"</string>
<string name="clock_color" msgid="8081608867289156163">"रङ"</string>
<string name="clock_color_red" msgid="3843504214807597810">"रातो"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"सुन्तले"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 8c22a35..f8962ba 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Kleur en grootte van klok"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Kleur en formaat van klok"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stijl"</string>
<string name="clock_color" msgid="8081608867289156163">"Kleur"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Rood"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Oranje"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index c9f5ea6..d66efee 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"ଘଣ୍ଟାର ରଙ୍ଗ ଓ ସାଇଜ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ଘଣ୍ଟାର ରଙ୍ଗ ଓ ଆକାର"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"ଷ୍ଟାଇଲ"</string>
<string name="clock_color" msgid="8081608867289156163">"ରଙ୍ଗ"</string>
<string name="clock_color_red" msgid="3843504214807597810">"ଲାଲ"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"କମଳା"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 926dce1..66d127b 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"ਘੜੀ ਦਾ ਰੰਗ ਅਤੇ ਆਕਾਰ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ਘੜੀ ਦਾ ਰੰਗ ਅਤੇ ਆਕਾਰ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"ਸਟਾਈਲ"</string>
<string name="clock_color" msgid="8081608867289156163">"ਰੰਗ"</string>
<string name="clock_color_red" msgid="3843504214807597810">"ਲਾਲ"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"ਸੰਤਰੀ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index d91f026..ea5e489 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Kolor i rozmiar zegara"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Kolor i rozmiar zegara"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Styl"</string>
<string name="clock_color" msgid="8081608867289156163">"Kolor"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Czerwony"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Pomarańczowy"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index c912c07..57c397c 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Cor e tamanho do relógio"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Cor e tamanho do relógio"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Estilo"</string>
<string name="clock_color" msgid="8081608867289156163">"Cor"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Vermelho"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Laranja"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index ed833d5..4f4dc1e 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Cor/tam. do relógio"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Cor e tamanho do relógio"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Estilo"</string>
<string name="clock_color" msgid="8081608867289156163">"Cor"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Vermelho"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Laranja"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 44bd489..9e87322 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Culoare / mărime"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Culoare / dimensiune"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stil"</string>
<string name="clock_color" msgid="8081608867289156163">"Culoare"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Roșu"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Portocaliu"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index bc17db7..0654434 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Цвет и размер часов"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Цвет и размер часов"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>."</string>
+ <string name="clock_style" msgid="6847711178193804308">"Стиль"</string>
<string name="clock_color" msgid="8081608867289156163">"Цвет"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Красный"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Оранжевый"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 35cec6a..84ad1f8 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"ඔරලෝසු වර්ණය සහ තරම"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ඔරලෝසු වර්ණය සහ තරම"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"විලාසය"</string>
<string name="clock_color" msgid="8081608867289156163">"වර්ණය"</string>
<string name="clock_color_red" msgid="3843504214807597810">"රතු"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"තැඹිලි"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 5f26d2f..adc0323 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Farba a veľkosť"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Farba a veľkosť"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Štýl"</string>
<string name="clock_color" msgid="8081608867289156163">"Farba"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Červená"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Oranžová"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index c8fb3ce..b53b742 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Barva, velikost ure"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Barva, velikost ure"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Slog"</string>
<string name="clock_color" msgid="8081608867289156163">"Barva"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Rdeča"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Oranžna"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 19677fa..95db090 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -26,6 +26,8 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Ora: Ngjyrë/madhësi"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Ora: Ngjyra/madhësia"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <!-- no translation found for clock_style (6847711178193804308) -->
+ <skip />
<string name="clock_color" msgid="8081608867289156163">"Ngjyra"</string>
<string name="clock_color_red" msgid="3843504214807597810">"E kuqe"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Portokalli"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 4040536..6824fd9 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Боја и величина сата"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Боја и величина сата"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Стил"</string>
<string name="clock_color" msgid="8081608867289156163">"Боја"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Црвена"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Наранџаста"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 8749e96..4326de9 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Klockstorlek/färg"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Klockstorlek/färg"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stil"</string>
<string name="clock_color" msgid="8081608867289156163">"Färg"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Röd"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Orange"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 55f75fc..40a426b 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Rangi na ukubwa wa saa"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Rangi na ukubwa wa saa"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Muundo"</string>
<string name="clock_color" msgid="8081608867289156163">"Rangi"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Nyekundu"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Rangi ya chungwa"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 75609c7..a342784 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"கடிகார நிறம் & அளவு"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"கடிகார நிறம் & அளவு"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"ஸ்டைல்"</string>
<string name="clock_color" msgid="8081608867289156163">"நிறம்"</string>
<string name="clock_color_red" msgid="3843504214807597810">"சிவப்பு"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"ஆரஞ்சு"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index c318952..232220f 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"గడియారం రంగు & సైజు"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"గడియారం రంగు & సైజు"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"స్టయిల్"</string>
<string name="clock_color" msgid="8081608867289156163">"రంగు"</string>
<string name="clock_color_red" msgid="3843504214807597810">"ఎరుపు రంగు"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"నారింజ రంగు"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index b92fb2d..b0e7046 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"สีและขนาดนาฬิกา"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"สีและขนาดนาฬิกา"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"รูปแบบ"</string>
<string name="clock_color" msgid="8081608867289156163">"สี"</string>
<string name="clock_color_red" msgid="3843504214807597810">"แดง"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"ส้ม"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 3daa94a..00778e5 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Kulay, laki ng clock"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Kulay, laki ng clock"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Istilo"</string>
<string name="clock_color" msgid="8081608867289156163">"Kulay"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Pula"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Orange"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 3cfce23..7852cdd 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Saat rengi ve boyutu"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Saat rengi ve boyutu"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Stil"</string>
<string name="clock_color" msgid="8081608867289156163">"Renk"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Kırmızı"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Turuncu"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index f44ff5b..486a51d 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Колір і розмір год."</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Колір і розмір годинника"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Стиль"</string>
<string name="clock_color" msgid="8081608867289156163">"Колір"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Червоний"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Оранжевий"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 18eb802..019de1f 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"گھڑی کا رنگ و سائز"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"گھڑی کا رنگ اور سائز"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>، <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"اسٹائل"</string>
<string name="clock_color" msgid="8081608867289156163">"رنگ"</string>
<string name="clock_color_red" msgid="3843504214807597810">"سرخ"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"نارنجی"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 1295959..4f3cb77 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Soat rangi va hajmi"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Soat rangi va hajmi"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Uslub"</string>
<string name="clock_color" msgid="8081608867289156163">"Rang"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Qizil"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Toʻq sariq"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 9c4bba6..f775f3d 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Màu và kích thước đồng hồ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Màu và kích thước đồng hồ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Kiểu"</string>
<string name="clock_color" msgid="8081608867289156163">"Màu"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Đỏ"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Cam"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 3bf17dd..9502cef 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"时钟颜色和尺寸"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"时钟颜色和尺寸"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>、<xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"样式"</string>
<string name="clock_color" msgid="8081608867289156163">"颜色"</string>
<string name="clock_color_red" msgid="3843504214807597810">"红色"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"橙色"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 59cbd74..6ebc6da 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"時鐘顏色及大小"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"時鐘顏色及大小"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>,<xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"樣式"</string>
<string name="clock_color" msgid="8081608867289156163">"顏色"</string>
<string name="clock_color_red" msgid="3843504214807597810">"紅色"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"橙色"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 3143f29..cf0a4ed 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"時鐘顏色與大小"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"時鐘顏色與大小"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_2">%2$s</xliff:g>,<xliff:g id="ID_1">%1$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"樣式"</string>
<string name="clock_color" msgid="8081608867289156163">"顏色"</string>
<string name="clock_color_red" msgid="3843504214807597810">"紅色"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"橘色"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index d1569db..4056a71 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -26,6 +26,7 @@
<string name="clock_settings_title" msgid="2050906379377120431">"Umbala wewashi nosayizi"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Umbala wewashi nosayizi"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="clock_style" msgid="6847711178193804308">"Isitayela"</string>
<string name="clock_color" msgid="8081608867289156163">"Umbala"</string>
<string name="clock_color_red" msgid="3843504214807597810">"Okubomvu"</string>
<string name="clock_color_orange" msgid="4175805201144275804">"Okuwolintshi"</string>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 7d24e3f..ed9b816 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -184,4 +184,6 @@
<dimen name="floating_sheet_list_item_vertical_space">4dp</dimen>
<dimen name="floating_sheet_clock_size_icon_size">80dp</dimen>
<dimen name="floating_sheet_clock_size_icon_margin_bottom">8dp</dimen>
+ <dimen name="floating_sheet_clock_style_option_size">82dp</dimen>
+ <dimen name="floating_sheet_clock_style_thumbnail_margin">12dp</dimen>
</resources>
diff --git a/src/com/android/customization/module/DefaultCustomizationSections.java b/src/com/android/customization/module/DefaultCustomizationSections.java
index 33cb620..e9b7b2d 100644
--- a/src/com/android/customization/module/DefaultCustomizationSections.java
+++ b/src/com/android/customization/module/DefaultCustomizationSections.java
@@ -19,6 +19,7 @@
import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor;
import com.android.customization.picker.color.ui.section.ColorSectionController;
import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel;
+import com.android.customization.picker.grid.domain.interactor.GridInteractor;
import com.android.customization.picker.grid.ui.section.GridSectionController;
import com.android.customization.picker.notifications.ui.section.NotificationSectionController;
import com.android.customization.picker.notifications.ui.viewmodel.NotificationSectionViewModel;
@@ -61,6 +62,7 @@
private final ClockViewFactory mClockViewFactory;
private final ThemedIconSnapshotRestorer mThemedIconSnapshotRestorer;
private final ThemedIconInteractor mThemedIconInteractor;
+ private final GridInteractor mGridInteractor;
private final ColorPickerInteractor mColorPickerInteractor;
private final ThemesUserEventLogger mThemesUserEventLogger;
@@ -75,6 +77,7 @@
ClockViewFactory clockViewFactory,
ThemedIconSnapshotRestorer themedIconSnapshotRestorer,
ThemedIconInteractor themedIconInteractor,
+ GridInteractor gridInteractor,
ColorPickerInteractor colorPickerInteractor,
ThemesUserEventLogger themesUserEventLogger) {
mColorPickerViewModelFactory = colorPickerViewModelFactory;
@@ -86,6 +89,7 @@
mClockViewFactory = clockViewFactory;
mThemedIconSnapshotRestorer = themedIconSnapshotRestorer;
mThemedIconInteractor = themedIconInteractor;
+ mGridInteractor = gridInteractor;
mColorPickerInteractor = colorPickerInteractor;
mThemesUserEventLogger = themesUserEventLogger;
mColorContrastSectionViewModelFactory = colorContrastSectionViewModelFactory;
@@ -125,6 +129,7 @@
sectionNavigationController,
wallpaperInteractor,
mThemedIconInteractor,
+ mGridInteractor,
mColorPickerInteractor,
wallpaperManager,
isTwoPaneAndSmallWidth,
@@ -139,6 +144,7 @@
wallpaperPreviewNavigator,
wallpaperInteractor,
mThemedIconInteractor,
+ mGridInteractor,
mColorPickerInteractor,
wallpaperManager,
isTwoPaneAndSmallWidth,
@@ -210,8 +216,7 @@
new GridSectionController(
GridOptionsManager.getInstance(activity),
sectionNavigationController,
- lifecycleOwner,
- /* isRevampedUiEnabled= */ true));
+ lifecycleOwner));
break;
}
diff --git a/src/com/android/customization/module/ThemePickerInjector.kt b/src/com/android/customization/module/ThemePickerInjector.kt
index d26141b..4c0f216 100644
--- a/src/com/android/customization/module/ThemePickerInjector.kt
+++ b/src/com/android/customization/module/ThemePickerInjector.kt
@@ -142,6 +142,7 @@
clockViewFactory,
getThemedIconSnapshotRestorer(appContext),
getThemedIconInteractor(),
+ getGridInteractor(appContext),
colorPickerInteractor.get(),
getUserEventLogger(),
)
diff --git a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt
index 6bb6596..c0a1446 100644
--- a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt
+++ b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt
@@ -16,6 +16,7 @@
*/
package com.android.customization.picker.clock.data.repository
+import android.graphics.drawable.Drawable
import android.provider.Settings
import androidx.annotation.ColorInt
import androidx.annotation.IntRange
@@ -61,8 +62,18 @@
fun send() {
val activeClockId = registry.activeClockId
val allClocks =
- registry.getClocks().map {
- it.toModel(isSelected = it.clockId == activeClockId)
+ registry.getClocks().mapNotNull {
+ val clockConfig = registry.getClockPickerConfig(it.clockId)
+ if (clockConfig != null) {
+ it.toModel(
+ isSelected = it.clockId == activeClockId,
+ description = clockConfig.description,
+ thumbnail = clockConfig.thumbnail,
+ isReactiveToTone = clockConfig.isReactiveToTone,
+ )
+ } else {
+ null
+ }
}
trySend(allClocks)
@@ -93,18 +104,24 @@
fun send() {
val activeClockId = registry.activeClockId
val metadata = registry.settings?.metadata
+ val clockConfig = registry.getClockPickerConfig(activeClockId)
val model =
- registry
- .getClocks()
- .find { clockMetadata -> clockMetadata.clockId == activeClockId }
- ?.toModel(
- isSelected = true,
- selectedColorId = metadata?.getSelectedColorId(),
- colorTone =
- metadata?.getColorTone()
- ?: ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
- seedColor = registry.seedColor
- )
+ clockConfig?.let {
+ registry
+ .getClocks()
+ .find { clockMetadata -> clockMetadata.clockId == activeClockId }
+ ?.toModel(
+ isSelected = true,
+ description = it.description,
+ thumbnail = it.thumbnail,
+ isReactiveToTone = it.isReactiveToTone,
+ selectedColorId = metadata?.getSelectedColorId(),
+ colorTone =
+ metadata?.getColorTone()
+ ?: ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
+ seedColor = registry.seedColor,
+ )
+ }
trySend(model)
}
@@ -188,6 +205,9 @@
/** By default, [ClockMetadataModel] has no color information unless specified. */
private fun ClockMetadata.toModel(
isSelected: Boolean,
+ description: String,
+ thumbnail: Drawable,
+ isReactiveToTone: Boolean,
selectedColorId: String? = null,
@IntRange(from = 0, to = 100) colorTone: Int = 0,
@ColorInt seedColor: Int? = null,
@@ -195,6 +215,9 @@
return ClockMetadataModel(
clockId = clockId,
isSelected = isSelected,
+ description = description,
+ thumbnail = thumbnail,
+ isReactiveToTone = isReactiveToTone,
selectedColorId = selectedColorId,
colorToneProgress = colorTone,
seedColor = seedColor,
diff --git a/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt
index b1f41c5..49227ee 100644
--- a/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt
+++ b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt
@@ -47,6 +47,8 @@
val selectedClockId: Flow<String> =
repository.selectedClock.map { clock -> clock.clockId }.distinctUntilChanged()
+ val selectedClock: Flow<ClockMetadataModel> = repository.selectedClock
+
val selectedColorId: Flow<String?> =
repository.selectedClock.map { clock -> clock.selectedColorId }.distinctUntilChanged()
diff --git a/src/com/android/customization/picker/clock/shared/model/ClockMetadataModel.kt b/src/com/android/customization/picker/clock/shared/model/ClockMetadataModel.kt
index 6e2bfb3..3c8e725 100644
--- a/src/com/android/customization/picker/clock/shared/model/ClockMetadataModel.kt
+++ b/src/com/android/customization/picker/clock/shared/model/ClockMetadataModel.kt
@@ -17,6 +17,7 @@
package com.android.customization.picker.clock.shared.model
+import android.graphics.drawable.Drawable
import androidx.annotation.ColorInt
import androidx.annotation.IntRange
@@ -24,6 +25,9 @@
data class ClockMetadataModel(
val clockId: String,
val isSelected: Boolean,
+ val description: String,
+ val thumbnail: Drawable,
+ val isReactiveToTone: Boolean,
val selectedColorId: String?,
@IntRange(from = 0, to = 100) val colorToneProgress: Int,
@ColorInt val seedColor: Int?,
diff --git a/src/com/android/customization/picker/grid/data/repository/GridRepository.kt b/src/com/android/customization/picker/grid/data/repository/GridRepository.kt
index f384429..dc308db 100644
--- a/src/com/android/customization/picker/grid/data/repository/GridRepository.kt
+++ b/src/com/android/customization/picker/grid/data/repository/GridRepository.kt
@@ -30,6 +30,8 @@
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.suspendCancellableCoroutine
@@ -37,11 +39,17 @@
interface GridRepository {
suspend fun isAvailable(): Boolean
+
fun getOptionChanges(): Flow<Unit>
+
suspend fun getOptions(): GridOptionItemsModel
- fun getSelectedOption(): GridOption?
+
+ fun getSelectedOption(): StateFlow<GridOption?>
+
fun applySelectedOption(callback: Callback)
+
fun clearSelectedOption()
+
fun isSelectedOptionApplied(): Boolean
}
@@ -63,7 +71,7 @@
private var appliedOption: GridOption? = null
- override fun getSelectedOption() = selectedOption.value
+ override fun getSelectedOption() = selectedOption.asStateFlow()
override suspend fun getOptions(): GridOptionItemsModel {
return withContext(backgroundDispatcher) {
@@ -133,6 +141,7 @@
option,
object : CustomizationManager.Callback {
override fun onSuccess() {
+ selectedOption.value = option
continuation.resume(true)
}
@@ -147,7 +156,7 @@
}
override fun applySelectedOption(callback: Callback) {
- val option = getSelectedOption()
+ val option = getSelectedOption().value
manager.apply(
option,
if (isGridApplyButtonEnabled) {
diff --git a/src/com/android/customization/picker/grid/domain/interactor/GridInteractor.kt b/src/com/android/customization/picker/grid/domain/interactor/GridInteractor.kt
index 02e16dd..015bcdf 100644
--- a/src/com/android/customization/picker/grid/domain/interactor/GridInteractor.kt
+++ b/src/com/android/customization/picker/grid/domain/interactor/GridInteractor.kt
@@ -18,7 +18,6 @@
package com.android.customization.picker.grid.domain.interactor
import com.android.customization.model.CustomizationManager
-import com.android.customization.model.grid.GridOption
import com.android.customization.picker.grid.data.repository.GridRepository
import com.android.customization.picker.grid.shared.model.GridOptionItemModel
import com.android.customization.picker.grid.shared.model.GridOptionItemsModel
@@ -75,7 +74,7 @@
}
}
- fun getSelectOptionNonSuspend(): GridOption? = repository.getSelectedOption()
+ fun getSelectOptionStateFlow() = repository.getSelectedOption()
fun clearSelectedOption() = repository.clearSelectedOption()
diff --git a/src/com/android/customization/picker/grid/ui/fragment/GridFragment.kt b/src/com/android/customization/picker/grid/ui/fragment/GridFragment.kt
index b48f41a..7e2341c 100644
--- a/src/com/android/customization/picker/grid/ui/fragment/GridFragment.kt
+++ b/src/com/android/customization/picker/grid/ui/fragment/GridFragment.kt
@@ -115,7 +115,7 @@
context,
getString(
R.string.toast_of_changing_grid,
- gridInteractor.getSelectOptionNonSuspend()?.title
+ gridInteractor.getSelectOptionStateFlow().value?.title
),
Toast.LENGTH_SHORT
)
@@ -128,7 +128,7 @@
val errorMsg =
getString(
R.string.toast_of_failure_to_change_grid,
- gridInteractor.getSelectOptionNonSuspend()?.title
+ gridInteractor.getSelectOptionStateFlow().value?.title
)
Toast.makeText(context, errorMsg, Toast.LENGTH_SHORT).show()
Log.e(TAG, errorMsg, throwable)
@@ -178,7 +178,10 @@
),
initialExtrasProvider = {
val bundle = Bundle()
- bundle.putString("name", gridInteractor.getSelectOptionNonSuspend()?.name)
+ bundle.putString(
+ "name",
+ gridInteractor.getSelectOptionStateFlow().value?.name
+ )
bundle
},
wallpaperInfoProvider = {
diff --git a/src/com/android/customization/picker/grid/ui/section/GridSectionController.java b/src/com/android/customization/picker/grid/ui/section/GridSectionController.java
index 0e15609..bc66812 100644
--- a/src/com/android/customization/picker/grid/ui/section/GridSectionController.java
+++ b/src/com/android/customization/picker/grid/ui/section/GridSectionController.java
@@ -51,8 +51,7 @@
public GridSectionController(
GridOptionsManager gridOptionsManager,
CustomizationSectionNavigationController sectionNavigationController,
- LifecycleOwner lifecycleOwner,
- boolean isRevampedUiEnabled) {
+ LifecycleOwner lifecycleOwner) {
mGridOptionsManager = gridOptionsManager;
mSectionNavigationController = sectionNavigationController;
mLifecycleOwner = lifecycleOwner;
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 e1f8df2..db43f4b 100644
--- a/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt
+++ b/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt
@@ -39,6 +39,7 @@
import com.android.customization.picker.clock.ui.view.ClockViewFactory
import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
+import com.android.customization.picker.grid.domain.interactor.GridInteractor
import com.android.themepicker.R
import com.android.wallpaper.model.CustomizationSectionController
import com.android.wallpaper.model.CustomizationSectionController.CustomizationSectionNavigationController
@@ -72,6 +73,7 @@
private val navigationController: CustomizationSectionNavigationController,
wallpaperInteractor: WallpaperInteractor,
themedIconInteractor: ThemedIconInteractor,
+ gridInteractor: GridInteractor,
colorPickerInteractor: ColorPickerInteractor,
wallpaperManager: WallpaperManager,
private val isTwoPaneAndSmallWidth: Boolean,
@@ -87,6 +89,7 @@
wallpaperPreviewNavigator,
wallpaperInteractor,
themedIconInteractor,
+ gridInteractor,
colorPickerInteractor,
wallpaperManager,
isTwoPaneAndSmallWidth,
diff --git a/src/com/android/customization/picker/preview/ui/section/PreviewWithThemeSectionController.kt b/src/com/android/customization/picker/preview/ui/section/PreviewWithThemeSectionController.kt
index 78e3745..cd3e702 100644
--- a/src/com/android/customization/picker/preview/ui/section/PreviewWithThemeSectionController.kt
+++ b/src/com/android/customization/picker/preview/ui/section/PreviewWithThemeSectionController.kt
@@ -23,6 +23,7 @@
import androidx.lifecycle.LifecycleOwner
import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor
import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
+import com.android.customization.picker.grid.domain.interactor.GridInteractor
import com.android.customization.picker.preview.ui.viewmodel.PreviewWithThemeViewModel
import com.android.wallpaper.R
import com.android.wallpaper.model.Screen
@@ -52,6 +53,7 @@
wallpaperPreviewNavigator: WallpaperPreviewNavigator,
private val wallpaperInteractor: WallpaperInteractor,
private val themedIconInteractor: ThemedIconInteractor,
+ private val gridInteractor: GridInteractor,
private val colorPickerInteractor: ColorPickerInteractor,
wallpaperManager: WallpaperManager,
isTwoPaneAndSmallWidth: Boolean,
@@ -121,6 +123,7 @@
initialExtrasProvider = { getInitialExtras(isOnLockScreen) },
wallpaperInteractor = wallpaperInteractor,
themedIconInteractor = themedIconInteractor,
+ gridInteractor = gridInteractor,
colorPickerInteractor = colorPickerInteractor,
screen = screen,
)
diff --git a/src/com/android/customization/picker/preview/ui/viewmodel/PreviewWithThemeViewModel.kt b/src/com/android/customization/picker/preview/ui/viewmodel/PreviewWithThemeViewModel.kt
index 7877f11..331ec2e 100644
--- a/src/com/android/customization/picker/preview/ui/viewmodel/PreviewWithThemeViewModel.kt
+++ b/src/com/android/customization/picker/preview/ui/viewmodel/PreviewWithThemeViewModel.kt
@@ -21,6 +21,7 @@
import android.os.Bundle
import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor
import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
+import com.android.customization.picker.grid.domain.interactor.GridInteractor
import com.android.wallpaper.model.Screen
import com.android.wallpaper.model.WallpaperInfo
import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
@@ -28,6 +29,8 @@
import com.android.wallpaper.util.PreviewUtils
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.merge
/** A ThemePicker version of the [ScreenPreviewViewModel] */
class PreviewWithThemeViewModel(
@@ -36,7 +39,8 @@
wallpaperInfoProvider: suspend (forceReload: Boolean) -> WallpaperInfo?,
onWallpaperColorChanged: (WallpaperColors?) -> Unit = {},
wallpaperInteractor: WallpaperInteractor,
- private val themedIconInteractor: ThemedIconInteractor? = null,
+ private val themedIconInteractor: ThemedIconInteractor,
+ private val gridInteractor: GridInteractor,
colorPickerInteractor: ColorPickerInteractor? = null,
screen: Screen,
) :
@@ -48,7 +52,11 @@
wallpaperInteractor,
screen,
) {
- override fun workspaceUpdateEvents(): Flow<Boolean>? = themedIconInteractor?.isActivated
+ override fun workspaceUpdateEvents(): Flow<Unit> =
+ merge(
+ themedIconInteractor.isActivated.map {},
+ gridInteractor.getSelectOptionStateFlow().map {}
+ )
private val wallpaperIsLoading = super.isLoading
diff --git a/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt b/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt
index 335d4fe..91deed8 100644
--- a/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt
+++ b/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt
@@ -23,6 +23,7 @@
import android.graphics.drawable.Drawable
import android.view.View
import android.view.ViewGroup
+import android.widget.ImageView
import android.widget.SeekBar
import androidx.core.content.res.ResourcesCompat
import androidx.core.view.doOnLayout
@@ -32,7 +33,6 @@
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import androidx.recyclerview.widget.GridLayoutManager
-import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.android.customization.picker.color.ui.binder.ColorOptionIconBinder
import com.android.customization.picker.color.ui.view.ColorOptionIconView
@@ -92,23 +92,27 @@
setOnTabClick(TERTIARY) { viewModel.setTab(SIZE) }
}
- val container = view.requireViewById<ViewGroup>(R.id.clock_floating_sheet_content_container)
+ val floatingSheetContainer =
+ view.requireViewById<ViewGroup>(R.id.clock_floating_sheet_content_container)
// Clock style
- val clockList = view.requireViewById<View>(R.id.clock_list)
+ val clockStyleContent = view.requireViewById<View>(R.id.clock_floating_sheet_style_content)
+ val clockStyleAdapter = createClockStyleOptionItemAdapter(lifecycleOwner)
+ val clockStyleList =
+ view.requireViewById<RecyclerView>(R.id.clock_style_list).apply {
+ initStyleList(appContext, clockStyleAdapter)
+ }
// Cloc color
- val clockColorSheetContent =
- view.requireViewById<View>(R.id.clock_floating_sheet_color_content)
- val clockColorListContainer = view.requireViewById<View>(R.id.clock_color_list_container)
+ val clockColorContent = view.requireViewById<View>(R.id.clock_floating_sheet_color_content)
val clockColorAdapter =
- createOptionItemAdapter(
+ createClockColorOptionItemAdapter(
view.resources.configuration.uiMode,
lifecycleOwner,
)
val clockColorList =
- view.requireViewById<RecyclerView>(R.id.clock_color_list).also {
- it.initColorsList(appContext, clockColorAdapter)
+ view.requireViewById<RecyclerView>(R.id.clock_color_list).apply {
+ initColorList(appContext, clockColorAdapter)
}
val clockColorSlider: SeekBar = view.requireViewById(R.id.clock_color_slider)
clockColorSlider.setOnSeekBarChangeListener(
@@ -130,16 +134,15 @@
)
// Clock size
- val clockSizeContainer = view.requireViewById<View>(R.id.clock_floating_sheet_size_content)
+ val clockSizeContent = view.requireViewById<View>(R.id.clock_floating_sheet_size_content)
view.doOnLayout {
if (_clockFloatingSheetHeights.value == null) {
_clockFloatingSheetHeights.value =
ClockFloatingSheetHeightsViewModel(
- clockStyleContentHeight = clockList.height,
- clockColorContentHeight = clockColorSheetContent.height,
- clockColorListHeight = clockColorListContainer.height,
- clockSizeContentHeight = clockSizeContainer.height,
+ clockStyleContentHeight = clockStyleContent.height,
+ clockColorContentHeight = clockColorContent.height,
+ clockSizeContentHeight = clockSizeContent.height,
)
}
}
@@ -169,36 +172,38 @@
) * 2
val animationFloatingSheet =
- ValueAnimator.ofInt(container.height, targetHeight)
+ ValueAnimator.ofInt(floatingSheetContainer.height, targetHeight)
animationFloatingSheet.addUpdateListener { valueAnimator ->
val value = valueAnimator.animatedValue as Int
- container.layoutParams =
- container.layoutParams.apply { height = value }
+ floatingSheetContainer.layoutParams =
+ floatingSheetContainer.layoutParams.apply { height = value }
}
animationFloatingSheet.setDuration(ANIMATION_DURATION)
animationFloatingSheet.start()
- // For some reason the color list layout collapses when we animate the
- // parent's height. This is to make sure the height stays as it is
- // firstly
- // inflated.
- clockColorList.layoutParams =
- clockColorList.layoutParams.apply {
- height = heights.clockColorListHeight
- }
-
- clockList.isVisible = selectedTab == STYLE
- clockColorSheetContent.isVisible = selectedTab == COLOR
- clockSizeContainer.isVisible = selectedTab == SIZE
+ clockStyleContent.isVisible = selectedTab == STYLE
+ clockColorContent.isVisible = selectedTab == COLOR
+ clockSizeContent.isVisible = selectedTab == SIZE
}
}
launch {
+ viewModel.clockStyleOptions.collect { styleOptions ->
+ clockStyleAdapter.setItems(styleOptions) {
+ var indexToFocus = styleOptions.indexOfFirst { it.isSelected.value }
+ indexToFocus = if (indexToFocus < 0) 0 else indexToFocus
+ (clockStyleList.layoutManager as GridLayoutManager)
+ .scrollToPositionWithOffset(indexToFocus, 0)
+ }
+ }
+ }
+
+ launch {
viewModel.clockColorOptions.collect { colorOptions ->
clockColorAdapter.setItems(colorOptions) {
var indexToFocus = colorOptions.indexOfFirst { it.isSelected.value }
indexToFocus = if (indexToFocus < 0) 0 else indexToFocus
- (clockColorList.layoutManager as LinearLayoutManager)
+ (clockColorList.layoutManager as GridLayoutManager)
.scrollToPositionWithOffset(indexToFocus, 0)
}
}
@@ -221,7 +226,47 @@
}
}
- private fun createOptionItemAdapter(
+ private fun createClockStyleOptionItemAdapter(
+ lifecycleOwner: LifecycleOwner
+ ): OptionItemAdapter<Drawable> =
+ OptionItemAdapter(
+ layoutResourceId = R.layout.clock_style_option,
+ lifecycleOwner = lifecycleOwner,
+ bindIcon = { foregroundView: View, drawable: Drawable ->
+ (foregroundView as ImageView).setImageDrawable(drawable)
+ }
+ )
+
+ private fun RecyclerView.initStyleList(
+ context: Context,
+ adapter: OptionItemAdapter<Drawable>,
+ ) {
+ apply {
+ this.adapter = adapter
+ layoutManager =
+ GridLayoutManager(
+ context,
+ 2,
+ GridLayoutManager.HORIZONTAL,
+ false,
+ )
+ addItemDecoration(
+ DoubleRowListItemSpacing(
+ context.resources.getDimensionPixelSize(
+ R.dimen.floating_sheet_content_horizontal_padding
+ ),
+ context.resources.getDimensionPixelSize(
+ R.dimen.floating_sheet_list_item_horizontal_space
+ ),
+ context.resources.getDimensionPixelSize(
+ R.dimen.floating_sheet_list_item_vertical_space
+ ),
+ )
+ )
+ }
+ }
+
+ private fun createClockColorOptionItemAdapter(
uiMode: Int,
lifecycleOwner: LifecycleOwner
): OptionItemAdapter<ColorOptionIconViewModel> =
@@ -236,7 +281,7 @@
}
)
- private fun RecyclerView.initColorsList(
+ private fun RecyclerView.initColorList(
context: Context,
adapter: OptionItemAdapter<ColorOptionIconViewModel>,
) {
diff --git a/src/com/android/wallpaper/customization/ui/viewmodel/ClockFloatingSheetHeightsViewModel.kt b/src/com/android/wallpaper/customization/ui/viewmodel/ClockFloatingSheetHeightsViewModel.kt
index 37845cd..37752af 100644
--- a/src/com/android/wallpaper/customization/ui/viewmodel/ClockFloatingSheetHeightsViewModel.kt
+++ b/src/com/android/wallpaper/customization/ui/viewmodel/ClockFloatingSheetHeightsViewModel.kt
@@ -19,6 +19,5 @@
data class ClockFloatingSheetHeightsViewModel(
val clockStyleContentHeight: Int,
val clockColorContentHeight: Int,
- val clockColorListHeight: Int,
val clockSizeContentHeight: Int,
)
diff --git a/src/com/android/wallpaper/customization/ui/viewmodel/ClockOptionItemViewModel.kt b/src/com/android/wallpaper/customization/ui/viewmodel/ClockOptionItemViewModel.kt
index dd8f5b2..cd223a0 100644
--- a/src/com/android/wallpaper/customization/ui/viewmodel/ClockOptionItemViewModel.kt
+++ b/src/com/android/wallpaper/customization/ui/viewmodel/ClockOptionItemViewModel.kt
@@ -22,5 +22,5 @@
val clockId: String,
val isSelected: Boolean,
val contentDescription: String,
- val thumbnail: Drawable? = null,
+ val thumbnail: Drawable,
)
diff --git a/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModel.kt b/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModel.kt
index 3da3252..fc2b297 100644
--- a/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModel.kt
+++ b/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModel.kt
@@ -17,6 +17,7 @@
import android.content.Context
import android.content.res.Resources
+import android.graphics.drawable.Drawable
import androidx.core.graphics.ColorUtils
import com.android.customization.model.color.ColorOptionImpl
import com.android.customization.module.logging.ThemesUserEventLogger
@@ -87,22 +88,41 @@
}
@OptIn(ExperimentalCoroutinesApi::class)
- val allClocks: StateFlow<List<ClockOptionItemViewModel>> =
+ val clockStyleOptions: StateFlow<List<OptionItemViewModel<Drawable>>> =
clockPickerInteractor.allClocks
.mapLatest { allClocks ->
// Delay to avoid the case that the full list of clocks is not initiated.
delay(CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
- allClocks.map {
+ allClocks.map { clockModel ->
+ val isSelectedFlow =
+ clockPickerInteractor.selectedClock
+ .map { clockModel.clockId == it.clockId }
+ .stateIn(viewModelScope)
val contentDescription =
resources.getString(
R.string.select_clock_action_description,
- // TODO (b/350718184): Get ClockConfig.description from ClockRegistry
- "description"
+ clockModel.description,
)
- ClockOptionItemViewModel(
- clockId = it.clockId,
- isSelected = it.isSelected,
- contentDescription = contentDescription,
+ OptionItemViewModel<Drawable>(
+ key = MutableStateFlow(clockModel.clockId) as StateFlow<String>,
+ payload = clockModel.thumbnail,
+ text = Text.Loaded(contentDescription),
+ isTextUserVisible = false,
+ isSelected = isSelectedFlow,
+ onClicked =
+ isSelectedFlow.map { isSelected ->
+ if (isSelected) {
+ null
+ } else {
+ {
+ viewModelScope.launch {
+ clockPickerInteractor.setSelectedClock(
+ clockModel.clockId
+ )
+ }
+ }
+ }
+ },
)
}
}
@@ -112,11 +132,6 @@
.flowOn(backgroundDispatcher.limitedParallelism(1))
.stateIn(viewModelScope, SharingStarted.Eagerly, emptyList())
- val selectedClockId: StateFlow<String?> =
- clockPickerInteractor.selectedClockId
- .distinctUntilChanged()
- .stateIn(viewModelScope, SharingStarted.Eagerly, null)
-
private var setSelectedClockJob: Job? = null
fun setSelectedClock(clockId: String) {
@@ -134,12 +149,13 @@
private val sliderColorToneProgress =
MutableStateFlow(ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS)
val isSliderEnabled: Flow<Boolean> =
- combine(selectedClockId, clockPickerInteractor.selectedColorId) { clockId, colorId ->
- if (colorId == null || clockId == null) {
+ combine(clockPickerInteractor.selectedClock, clockPickerInteractor.selectedColorId) {
+ clock,
+ colorId ->
+ if (colorId == null) {
false
} else {
- // TODO (b/350718184): Get ClockConfig.isReactiveToTone from ClockRegistry
- false
+ clock.isReactiveToTone
}
}
.distinctUntilChanged()
diff --git a/tests/robotests/src/com/android/customization/model/grid/data/repository/FakeGridRepository.kt b/tests/robotests/src/com/android/customization/model/grid/data/repository/FakeGridRepository.kt
index de68bf0..391e270 100644
--- a/tests/robotests/src/com/android/customization/model/grid/data/repository/FakeGridRepository.kt
+++ b/tests/robotests/src/com/android/customization/model/grid/data/repository/FakeGridRepository.kt
@@ -18,7 +18,6 @@
package com.android.customization.model.grid.data.repository
import com.android.customization.model.CustomizationManager
-import com.android.customization.model.grid.GridOption
import com.android.customization.picker.grid.data.repository.GridRepository
import com.android.customization.picker.grid.shared.model.GridOptionItemModel
import com.android.customization.picker.grid.shared.model.GridOptionItemsModel
@@ -54,7 +53,7 @@
return options
}
- override fun getSelectedOption(): GridOption? = null
+ override fun getSelectedOption() = MutableStateFlow(null)
override fun applySelectedOption(callback: CustomizationManager.Callback) {}
diff --git a/tests/robotests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt b/tests/robotests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
index 4d8f32e..0b66357 100644
--- a/tests/robotests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
+++ b/tests/robotests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
@@ -16,6 +16,7 @@
package com.android.customization.picker.clock.data.repository
import android.graphics.Color
+import android.graphics.drawable.ColorDrawable
import androidx.annotation.ColorInt
import androidx.annotation.IntRange
import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository.Companion.fakeClocks
@@ -47,6 +48,9 @@
ClockMetadataModel(
clockId = selectedClock.clockId,
isSelected = true,
+ description = "description",
+ thumbnail = ColorDrawable(0),
+ isReactiveToTone = selectedClock.isReactiveToTone,
selectedColorId = selectedColor,
colorToneProgress = colorTone,
seedColor = seedColor,
@@ -81,10 +85,46 @@
const val CLOCK_ID_3 = "clock3"
val fakeClocks =
listOf(
- ClockMetadataModel(CLOCK_ID_0, true, null, 50, null),
- ClockMetadataModel(CLOCK_ID_1, false, null, 50, null),
- ClockMetadataModel(CLOCK_ID_2, false, null, 50, null),
- ClockMetadataModel(CLOCK_ID_3, false, null, 50, null),
+ ClockMetadataModel(
+ CLOCK_ID_0,
+ true,
+ "description0",
+ ColorDrawable(0),
+ true,
+ null,
+ 50,
+ null
+ ),
+ ClockMetadataModel(
+ CLOCK_ID_1,
+ false,
+ "description1",
+ ColorDrawable(0),
+ true,
+ null,
+ 50,
+ null
+ ),
+ ClockMetadataModel(
+ CLOCK_ID_2,
+ false,
+ "description2",
+ ColorDrawable(0),
+ true,
+ null,
+ 50,
+ null
+ ),
+ ClockMetadataModel(
+ CLOCK_ID_3,
+ false,
+ "description3",
+ ColorDrawable(0),
+ false,
+ null,
+ 50,
+ null
+ ),
)
const val CLOCK_COLOR_ID = "RED"
const val CLOCK_COLOR_TONE_PROGRESS = 87
diff --git a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
index 44a1fbe..be852ac 100644
--- a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
+++ b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
@@ -15,6 +15,7 @@
*/
package com.android.customization.picker.clock.ui.viewmodel
+import android.graphics.drawable.ColorDrawable
import androidx.test.filters.SmallTest
import androidx.test.platform.app.InstrumentationRegistry
import com.android.customization.module.logging.TestThemesUserEventLogger
@@ -54,6 +55,9 @@
ClockMetadataModel(
clockId = FakeClockPickerRepository.CLOCK_ID_0,
isSelected = true,
+ description = "description",
+ thumbnail = ColorDrawable(0),
+ isReactiveToTone = true,
selectedColorId = null,
colorToneProgress = ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
seedColor = null,
diff --git a/tests/robotests/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModelTest.kt b/tests/robotests/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModelTest.kt
new file mode 100644
index 0000000..677bafe
--- /dev/null
+++ b/tests/robotests/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModelTest.kt
@@ -0,0 +1,250 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wallpaper.customization.ui.viewmodel
+
+import android.content.Context
+import android.stats.style.StyleEnums
+import androidx.test.filters.SmallTest
+import com.android.customization.module.logging.TestThemesUserEventLogger
+import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
+import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
+import com.android.customization.picker.clock.domain.interactor.ClockPickerSnapshotRestorer
+import com.android.customization.picker.clock.shared.ClockSize
+import com.android.customization.picker.clock.shared.model.ClockMetadataModel
+import com.android.customization.picker.clock.ui.viewmodel.ClockColorViewModel
+import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
+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.truth.Truth.assertThat
+import dagger.hilt.android.qualifiers.ApplicationContext
+import dagger.hilt.android.testing.HiltAndroidRule
+import dagger.hilt.android.testing.HiltAndroidTest
+import javax.inject.Inject
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.runBlocking
+import kotlinx.coroutines.test.TestDispatcher
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.advanceTimeBy
+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.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.robolectric.RobolectricTestRunner
+
+@HiltAndroidTest
+@OptIn(ExperimentalCoroutinesApi::class)
+@SmallTest
+@RunWith(RobolectricTestRunner::class)
+class ClockPickerViewModelTest {
+
+ private val logger = TestThemesUserEventLogger()
+
+ @get:Rule var hiltRule = HiltAndroidRule(this)
+ @Inject @ApplicationContext lateinit var context: Context
+ @Inject lateinit var testDispatcher: TestDispatcher
+ @Inject lateinit var testScope: TestScope
+
+ private lateinit var colorMap: Map<String, ClockColorViewModel>
+ private lateinit var underTest: ClockPickerViewModel
+
+ @Before
+ fun setUp() {
+ hiltRule.inject()
+ Dispatchers.setMain(testDispatcher)
+ val repository = FakeClockPickerRepository()
+ val clockPickerInteractor =
+ ClockPickerInteractor(
+ repository = repository,
+ snapshotRestorer =
+ ClockPickerSnapshotRestorer(repository = repository).apply {
+ runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) }
+ },
+ )
+ val colorPickerRepository = FakeColorPickerRepository(context = context)
+ val colorPickerInteractor =
+ ColorPickerInteractor(
+ repository = colorPickerRepository,
+ snapshotRestorer =
+ ColorPickerSnapshotRestorer(repository = colorPickerRepository).apply {
+ runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) }
+ },
+ )
+ colorMap = ClockColorViewModel.getPresetColorMap(context.resources)
+ underTest =
+ ClockPickerViewModel(
+ context = context,
+ resources = context.resources,
+ clockPickerInteractor = clockPickerInteractor,
+ colorPickerInteractor = colorPickerInteractor,
+ logger = logger,
+ backgroundDispatcher = testDispatcher,
+ viewModelScope = testScope,
+ )
+
+ testScope.launch {
+ clockPickerInteractor.setSelectedClock(FakeClockPickerRepository.CLOCK_ID_0)
+ }
+ }
+
+ @After
+ fun tearDown() {
+ Dispatchers.resetMain()
+ }
+
+ @Test
+ fun setTab() = runTest {
+ val tab = collectLastValue(underTest.selectedTab)
+ underTest.setTab(ClockPickerViewModel.Tab.STYLE)
+ assertThat(tab()).isEqualTo(ClockPickerViewModel.Tab.STYLE)
+ underTest.setTab(ClockPickerViewModel.Tab.COLOR)
+ assertThat(tab()).isEqualTo(ClockPickerViewModel.Tab.COLOR)
+ underTest.setTab(ClockPickerViewModel.Tab.SIZE)
+ assertThat(tab()).isEqualTo(ClockPickerViewModel.Tab.SIZE)
+ }
+
+ @Test
+ fun setClockStyle() = runTest {
+ val clockStyleOptions = collectLastValue(underTest.clockStyleOptions)
+ // Advance CLOCKS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from clockStyleOptions
+ advanceTimeBy(ClockPickerViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
+ val option0IsSelected = collectLastValue(clockStyleOptions()!![0].isSelected)
+ val option0OnClicked = collectLastValue(clockStyleOptions()!![0].onClicked)
+ assertThat(option0IsSelected()).isTrue()
+ assertThat(option0OnClicked()).isNull()
+
+ val option1OnClickedBefore = collectLastValue(clockStyleOptions()!![1].onClicked)
+ option1OnClickedBefore()?.invoke()
+ // Advance CLOCKS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from clockColorOptions
+ advanceTimeBy(ClockPickerViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
+ val option1IsSelected = collectLastValue(clockStyleOptions()!![1].isSelected)
+ val option1OnClickedAfter = collectLastValue(clockStyleOptions()!![1].onClicked)
+ assertThat(option0IsSelected()).isFalse()
+ assertThat(option1IsSelected()).isTrue()
+ assertThat(option1OnClickedAfter()).isNull()
+ }
+
+ @Test
+ fun setSelectedColor() = runTest {
+ val clockColorOptions = collectLastValue(underTest.clockColorOptions)
+ val observedSliderProgress = collectLastValue(underTest.sliderProgress)
+ val observedSeedColor = collectLastValue(underTest.seedColor)
+ // Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from
+ // clockColorOptions
+ advanceTimeBy(ClockPickerViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
+ val option0IsSelected = collectLastValue(clockColorOptions()!![0].isSelected)
+ val option0OnClicked = collectLastValue(clockColorOptions()!![0].onClicked)
+ assertThat(option0IsSelected()).isTrue()
+ assertThat(option0OnClicked()).isNull()
+
+ val option1OnClickedBefore = collectLastValue(clockColorOptions()!![1].onClicked)
+ option1OnClickedBefore()?.invoke()
+ // Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from
+ // clockColorOptions
+ advanceTimeBy(ClockPickerViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
+ val option1IsSelected = collectLastValue(clockColorOptions()!![1].isSelected)
+ val option1OnClickedAfter = collectLastValue(clockColorOptions()!![1].onClicked)
+ assertThat(option0IsSelected()).isFalse()
+ assertThat(option1IsSelected()).isTrue()
+ assertThat(option1OnClickedAfter()).isNull()
+ assertThat(observedSliderProgress())
+ .isEqualTo(ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS)
+ val expectedSelectedColorModel = colorMap.values.first() // RED
+ assertThat(observedSeedColor())
+ .isEqualTo(
+ ClockSettingsViewModel.blendColorWithTone(
+ expectedSelectedColorModel.color,
+ expectedSelectedColorModel.getColorTone(
+ ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS
+ ),
+ )
+ )
+ }
+
+ @Test
+ fun setColorTone() = runTest {
+ val clockColorOptions = collectLastValue(underTest.clockColorOptions)
+ val observedIsSliderEnabled = collectLastValue(underTest.isSliderEnabled)
+ val observedSliderProgress = collectLastValue(underTest.sliderProgress)
+ val observedSeedColor = collectLastValue(underTest.seedColor)
+ // Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from
+ // clockColorOptions
+ advanceTimeBy(ClockPickerViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
+ val option0IsSelected = collectLastValue(clockColorOptions()!![0].isSelected)
+ assertThat(option0IsSelected()).isTrue()
+ assertThat(observedIsSliderEnabled()).isFalse()
+
+ val option1OnClicked = collectLastValue(clockColorOptions()!![1].onClicked)
+ option1OnClicked()?.invoke()
+
+ // Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from
+ // clockColorOptions
+ advanceTimeBy(ClockPickerViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
+ assertThat(observedIsSliderEnabled()).isTrue()
+ val targetProgress1 = 99
+ underTest.onSliderProgressChanged(targetProgress1)
+ assertThat(observedSliderProgress()).isEqualTo(targetProgress1)
+ val targetProgress2 = 55
+ testScope.launch { underTest.onSliderProgressStop(targetProgress2) }
+ assertThat(observedSliderProgress()).isEqualTo(targetProgress2)
+ val expectedSelectedColorModel = colorMap.values.first() // RED
+ assertThat(observedSeedColor())
+ .isEqualTo(
+ ClockSettingsViewModel.blendColorWithTone(
+ expectedSelectedColorModel.color,
+ expectedSelectedColorModel.getColorTone(targetProgress2),
+ )
+ )
+ }
+
+ @Test
+ fun getIsReactiveToTone() = runTest {
+ val clockColorOptions = collectLastValue(underTest.clockColorOptions)
+ val isSliderEnabled = collectLastValue(underTest.isSliderEnabled)
+ // Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from
+ // clockColorOptions
+ advanceTimeBy(ClockPickerViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
+ val option1OnClicked = collectLastValue(clockColorOptions()!![1].onClicked)
+ option1OnClicked()?.invoke()
+
+ underTest.setSelectedClock(FakeClockPickerRepository.CLOCK_ID_0)
+ assertThat(isSliderEnabled()).isTrue()
+
+ underTest.setSelectedClock(FakeClockPickerRepository.CLOCK_ID_3)
+ assertThat(isSliderEnabled()).isFalse()
+ }
+
+ @Test
+ fun setClockSize() = runTest {
+ val selectedClockSize = collectLastValue(underTest.selectedClockSize)
+ underTest.setClockSize(ClockSize.DYNAMIC)
+ assertThat(selectedClockSize()).isEqualTo(ClockSize.DYNAMIC)
+ assertThat(logger.getLoggedClockSize()).isEqualTo(StyleEnums.CLOCK_SIZE_DYNAMIC)
+
+ underTest.setClockSize(ClockSize.SMALL)
+ assertThat(selectedClockSize()).isEqualTo(ClockSize.SMALL)
+ assertThat(logger.getLoggedClockSize()).isEqualTo(StyleEnums.CLOCK_SIZE_SMALL)
+ }
+}