[automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: d7a7da976e -s ours
am skip reason: subject contains skip directive
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/ThemePicker/+/23787826
Change-Id: Icc30760fb010ad3ebb47f117dfbe8760e1592eb6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/TEST_MAPPING b/TEST_MAPPING
index 0bde595..72b9f3a 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -1,12 +1,28 @@
{
"presubmit": [
{
+ "name": "WallpaperPicker2Tests",
+ "options": [
+ {
+ "exclude-annotation": "org.junit.Ignore"
+ }
+ ]
+ },
+ {
"name": "ThemePickerTests",
"options": [
{
"exclude-annotation": "org.junit.Ignore"
}
]
+ },
+ {
+ "name": "WallpaperPickerGoogleTests",
+ "options": [
+ {
+ "exclude-annotation": "org.junit.Ignore"
+ }
+ ]
}
]
}
diff --git a/res/color/keyguard_quick_affordance_slot_tab_background_color.xml b/res/color/picker_fragment_tab_background_color.xml
similarity index 90%
rename from res/color/keyguard_quick_affordance_slot_tab_background_color.xml
rename to res/color/picker_fragment_tab_background_color.xml
index 4708cef..6edf5f8 100644
--- a/res/color/keyguard_quick_affordance_slot_tab_background_color.xml
+++ b/res/color/picker_fragment_tab_background_color.xml
@@ -16,6 +16,6 @@
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_selected="true" android:color="@color/color_accent_primary" />
+ <item android:state_selected="true" android:color="@color/system_primary" />
<item android:color="@android:color/transparent" />
</selector>
diff --git a/res/color/picker_fragment_tab_text_color.xml b/res/color/picker_fragment_tab_text_color.xml
index 84502d4..438e4fc 100644
--- a/res/color/picker_fragment_tab_text_color.xml
+++ b/res/color/picker_fragment_tab_text_color.xml
@@ -16,6 +16,6 @@
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_selected="true" android:color="@color/text_color_on_accent" />
- <item android:color="@color/text_color_primary" />
+ <item android:state_selected="true" android:color="@color/system_on_primary" />
+ <item android:color="@color/system_on_surface" />
</selector>
diff --git a/res/drawable/carousel_item_card_background.xml b/res/drawable/carousel_item_card_background.xml
new file mode 100644
index 0000000..946d279
--- /dev/null
+++ b/res/drawable/carousel_item_card_background.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/color_surface" />
+ <corners android:radius="16dp" />
+</shape>
\ No newline at end of file
diff --git a/res/drawable/clock_color_size_button_background.xml b/res/drawable/clock_color_size_button_background.xml
new file mode 100644
index 0000000..08d1c45
--- /dev/null
+++ b/res/drawable/clock_color_size_button_background.xml
@@ -0,0 +1,27 @@
+<!--
+ Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="?android:colorControlHighlight">
+
+ <item android:id="@android:id/mask">
+ <shape android:shape="rectangle">
+ <corners android:radius="@dimen/clock_color_size_button_corner_radius" />
+ <solid android:color="?android:colorControlHighlight" />
+ </shape>
+ </item>
+
+ <item android:drawable="@drawable/clock_color_size_button_background_base" />
+</ripple>
diff --git a/res/drawable/clock_color_size_button_background_base.xml b/res/drawable/clock_color_size_button_background_base.xml
new file mode 100644
index 0000000..2e6f2be
--- /dev/null
+++ b/res/drawable/clock_color_size_button_background_base.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <corners android:radius="@dimen/clock_color_size_button_corner_radius" />
+ <solid android:color="@color/color_surface" />
+</shape>
\ No newline at end of file
diff --git a/res/drawable/color_option_selected_no_background.xml b/res/drawable/color_option_selected_no_background.xml
index 13451a5..365d70a 100644
--- a/res/drawable/color_option_selected_no_background.xml
+++ b/res/drawable/color_option_selected_no_background.xml
@@ -25,7 +25,7 @@
android:innerRadius="@dimen/component_color_overflow_small_radius_default"
android:thickness="2dp"
android:useLevel="false">
- <solid android:color="@color/text_color_primary"/>
+ <solid android:color="@color/system_secondary"/>
</shape>
</item>
<item
diff --git a/res/drawable/ic_contrast.xml b/res/drawable/ic_contrast.xml
index 6e9f3bd..c95220c 100644
--- a/res/drawable/ic_contrast.xml
+++ b/res/drawable/ic_contrast.xml
@@ -2,7 +2,7 @@
android:width="24dp"
android:height="24dp"
android:autoMirrored="true"
- android:tint="@color/text_color_primary_inverse"
+ android:tint="@color/system_on_secondary"
android:viewportHeight="24"
android:viewportWidth="24">
<path
diff --git a/res/drawable/ic_settings.xml b/res/drawable/ic_settings.xml
new file mode 100644
index 0000000..1a5b281
--- /dev/null
+++ b/res/drawable/ic_settings.xml
@@ -0,0 +1,24 @@
+<!--
+ Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="960"
+ android:viewportHeight="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M370,880L354,752Q341,747 329.5,740Q318,733 307,725L188,775L78,585L181,507Q180,500 180,493.5Q180,487 180,480Q180,473 180,466.5Q180,460 181,453L78,375L188,185L307,235Q318,227 330,220Q342,213 354,208L370,80L590,80L606,208Q619,213 630.5,220Q642,227 653,235L772,185L882,375L779,453Q780,460 780,466.5Q780,473 780,480Q780,487 780,493.5Q780,500 778,507L881,585L771,775L653,725Q642,733 630,740Q618,747 606,752L590,880L370,880ZM440,800L519,800L533,694Q564,686 590.5,670.5Q617,655 639,633L738,674L777,606L691,541Q696,527 698,511.5Q700,496 700,480Q700,464 698,448.5Q696,433 691,419L777,354L738,286L639,328Q617,305 590.5,289.5Q564,274 533,266L520,160L441,160L427,266Q396,274 369.5,289.5Q343,305 321,327L222,286L183,354L269,418Q264,433 262,448Q260,463 260,480Q260,496 262,511Q264,526 269,541L183,606L222,674L321,632Q343,655 369.5,670.5Q396,686 427,694L440,800ZM482,620Q540,620 581,579Q622,538 622,480Q622,422 581,381Q540,340 482,340Q423,340 382.5,381Q342,422 342,480Q342,538 382.5,579Q423,620 482,620ZM480,480L480,480Q480,480 480,480Q480,480 480,480L480,480L480,480L480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480L480,480L480,480L480,480Q480,480 480,480Q480,480 480,480L480,480L480,480L480,480Q480,480 480,480Q480,480 480,480L480,480L480,480L480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480L480,480L480,480L480,480Q480,480 480,480Q480,480 480,480L480,480L480,480Z"/>
+</vector>
diff --git a/res/drawable/picker_fragment_background.xml b/res/drawable/picker_fragment_background.xml
index 3a49d7a..49fa48b 100644
--- a/res/drawable/picker_fragment_background.xml
+++ b/res/drawable/picker_fragment_background.xml
@@ -16,5 +16,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="28dp" />
- <solid android:color="@color/color_surface" />
+ <solid android:color="@color/picker_fragment_background" />
</shape>
diff --git a/res/drawable/picker_fragment_tab_background.xml b/res/drawable/picker_fragment_tab_background.xml
index 3dad344..2742c72 100644
--- a/res/drawable/picker_fragment_tab_background.xml
+++ b/res/drawable/picker_fragment_tab_background.xml
@@ -16,5 +16,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="12dp" />
- <solid android:color="@color/keyguard_quick_affordance_slot_tab_background_color" />
+ <solid android:color="@color/picker_fragment_tab_background_color" />
</shape>
diff --git a/res/drawable/saturation_progress_drawable.xml b/res/drawable/saturation_progress_drawable.xml
index 6ba7e81..1461abe 100644
--- a/res/drawable/saturation_progress_drawable.xml
+++ b/res/drawable/saturation_progress_drawable.xml
@@ -24,7 +24,7 @@
<shape>
<size android:height="4dp" />
<corners android:radius="2dp" />
- <solid android:color="@color/color_surface_variant" />
+ <solid android:color="@color/system_outline_variant" />
</shape>
</inset>
</item>
diff --git a/res/drawable/saturation_progress_full_drawable.xml b/res/drawable/saturation_progress_full_drawable.xml
index 9d14bcd..02be02a 100644
--- a/res/drawable/saturation_progress_full_drawable.xml
+++ b/res/drawable/saturation_progress_full_drawable.xml
@@ -21,7 +21,7 @@
android:height="48dp">
<shape>
<size android:height="48dp" />
- <solid android:color="@color/color_accent_primary" />
+ <solid android:color="@color/system_secondary" />
<corners android:radius="24dp"/>
</shape>
</item>
diff --git a/res/layout/clock_carousel.xml b/res/layout/clock_carousel.xml
index 35defd6..e93a697 100644
--- a/res/layout/clock_carousel.xml
+++ b/res/layout/clock_carousel.xml
@@ -22,76 +22,167 @@
android:layout_height="match_parent"
app:layoutDescription="@xml/carousel_scene">
- <com.android.wallpaper.picker.DisplayAspectRatioFrameLayout
+ <FrameLayout
android:id="@+id/item_view_0"
- android:layout_width="@dimen/clock_carousel_item_width"
- android:layout_height="@dimen/clock_carousel_item_height"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/clock_carousel_item_margin"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/item_view_1"
app:layout_constraintTop_toTopOf="parent">
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="center" />
- </com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
- <com.android.wallpaper.picker.DisplayAspectRatioFrameLayout
+ <View
+ android:id="@+id/item_card_0"
+ android:layout_width="@dimen/clock_carousel_item_card_width"
+ android:layout_height="@dimen/clock_carousel_item_card_height"
+ android:layout_gravity="center"
+ android:background="@drawable/carousel_item_card_background"/>
+
+ <com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
+ android:id="@+id/clock_scale_view_0"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:clipChildren="false"
+ android:importantForAccessibility="noHideDescendants">
+ <com.android.customization.picker.clock.ui.view.ClockHostView
+ android:id="@+id/clock_host_view_0"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center"
+ android:clipChildren="false" />
+ </com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout>
+ </FrameLayout>
+
+ <FrameLayout
android:id="@+id/item_view_1"
- android:layout_width="@dimen/clock_carousel_item_width"
- android:layout_height="@dimen/clock_carousel_item_height"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/clock_carousel_item_margin"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/item_view_2"
- app:layout_constraintTop_toTopOf="parent" >
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="center" />
- </com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
+ app:layout_constraintTop_toTopOf="parent">
- <com.android.wallpaper.picker.DisplayAspectRatioFrameLayout
+ <View
+ android:id="@+id/item_card_1"
+ android:layout_width="@dimen/clock_carousel_item_card_width"
+ android:layout_height="@dimen/clock_carousel_item_card_height"
+ android:layout_gravity="center"
+ android:background="@drawable/carousel_item_card_background"/>
+
+ <com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
+ android:id="@+id/clock_scale_view_1"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:clipChildren="false"
+ android:importantForAccessibility="noHideDescendants">
+ <com.android.customization.picker.clock.ui.view.ClockHostView
+ android:id="@+id/clock_host_view_1"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center"
+ android:clipChildren="false"/>
+ </com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout>
+ </FrameLayout>
+
+ <FrameLayout
android:id="@+id/item_view_2"
- android:layout_width="@dimen/clock_carousel_item_width"
- android:layout_height="@dimen/clock_carousel_item_height"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="center" />
- </com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
- <com.android.wallpaper.picker.DisplayAspectRatioFrameLayout
+ <View
+ android:id="@+id/item_card_2"
+ android:layout_width="@dimen/clock_carousel_item_card_width"
+ android:layout_height="@dimen/clock_carousel_item_card_height"
+ android:alpha="0.0"
+ android:layout_gravity="center"
+ android:background="@drawable/carousel_item_card_background"/>
+
+ <com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
+ android:id="@+id/clock_scale_view_2"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:clipChildren="false"
+ android:importantForAccessibility="noHideDescendants">
+ <com.android.customization.picker.clock.ui.view.ClockHostView
+ android:id="@+id/clock_host_view_2"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center"
+ android:clipChildren="false"/>
+ </com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout>
+ </FrameLayout>
+
+ <FrameLayout
android:id="@+id/item_view_3"
- android:layout_width="@dimen/clock_carousel_item_width"
- android:layout_height="@dimen/clock_carousel_item_height"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
android:layout_marginStart="@dimen/clock_carousel_item_margin"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/item_view_2"
- app:layout_constraintTop_toTopOf="parent" >
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="center" />
- </com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
+ app:layout_constraintTop_toTopOf="parent">
- <com.android.wallpaper.picker.DisplayAspectRatioFrameLayout
+ <View
+ android:id="@+id/item_card_3"
+ android:layout_width="@dimen/clock_carousel_item_card_width"
+ android:layout_height="@dimen/clock_carousel_item_card_height"
+ android:layout_gravity="center"
+ android:background="@drawable/carousel_item_card_background"/>
+
+ <com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
+ android:id="@+id/clock_scale_view_3"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:clipChildren="false"
+ android:importantForAccessibility="noHideDescendants">
+ <com.android.customization.picker.clock.ui.view.ClockHostView
+ android:id="@+id/clock_host_view_3"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center"
+ android:clipChildren="false"/>
+ </com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout>
+ </FrameLayout>
+
+ <FrameLayout
android:id="@+id/item_view_4"
- android:layout_width="@dimen/clock_carousel_item_width"
- android:layout_height="@dimen/clock_carousel_item_height"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
android:layout_marginStart="@dimen/clock_carousel_item_margin"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/item_view_3"
- app:layout_constraintTop_toTopOf="parent" >
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="center" />
- </com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
+ app:layout_constraintTop_toTopOf="parent">
+
+ <View
+ android:id="@+id/item_card_4"
+ android:layout_width="@dimen/clock_carousel_item_card_width"
+ android:layout_height="@dimen/clock_carousel_item_card_height"
+ android:layout_gravity="center"
+ android:background="@drawable/carousel_item_card_background"/>
+
+ <com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
+ android:id="@+id/clock_scale_view_4"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:clipChildren="false"
+ android:importantForAccessibility="noHideDescendants">
+ <com.android.customization.picker.clock.ui.view.ClockHostView
+ android:id="@+id/clock_host_view_4"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center"
+ android:clipChildren="false" />
+ </com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout>
+ </FrameLayout>
<androidx.constraintlayout.helper.widget.Carousel
android:id="@+id/carousel"
diff --git a/res/layout/clock_carousel_view.xml b/res/layout/clock_carousel_view.xml
index f1c959c..9add933 100644
--- a/res/layout/clock_carousel_view.xml
+++ b/res/layout/clock_carousel_view.xml
@@ -17,4 +17,4 @@
<com.android.customization.picker.clock.ui.view.ClockCarouselView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="@dimen/screen_preview_height" />
\ No newline at end of file
+ android:layout_height="match_parent" />
\ No newline at end of file
diff --git a/res/layout/clock_color_and_size_button.xml b/res/layout/clock_color_and_size_button.xml
new file mode 100644
index 0000000..bb2b77d
--- /dev/null
+++ b/res/layout/clock_color_and_size_button.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:minHeight="@dimen/clock_color_size_button_min_height"
+ android:background="@drawable/clock_color_size_button_background"
+ android:orientation="horizontal"
+ android:gravity="center_vertical"
+ android:paddingVertical="@dimen/clock_color_size_button_vertical_padding"
+ android:paddingHorizontal="@dimen/clock_color_size_button_horizontal_padding">
+
+ <ImageView
+ android:layout_width="@dimen/clock_color_size_button_icon_size"
+ android:layout_height="@dimen/clock_color_size_button_icon_size"
+ android:src="@drawable/ic_settings"
+ android:importantForAccessibility="no"
+ android:tint="@color/system_primary"
+ android:layout_marginEnd="@dimen/clock_color_size_button_icon_margin_end"
+ tools:ignore="UseAppTint" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="@color/system_primary"
+ android:text="@string/clock_color_and_size_title" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/clock_color_option.xml b/res/layout/clock_color_option.xml
new file mode 100644
index 0000000..786d633
--- /dev/null
+++ b/res/layout/clock_color_option.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- Content description is set programmatically on the parent FrameLayout -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="@dimen/option_item_size"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:clipChildren="false">
+
+ <include layout="@layout/color_option_2"/>
+
+ <TextView
+ android:id="@+id/text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/option_bottom_margin"
+ android:textColor="@color/text_color_primary"
+ android:maxLines="2"
+ android:hyphenationFrequency="normal"
+ android:ellipsize="end"
+ android:visibility="invisible"
+ android:gravity="center_horizontal"
+ android:text="Placeholder for stable size calculation, please do not remove."
+ tools:ignore="HardcodedText" />
+</LinearLayout>
+
diff --git a/res/layout/clock_option.xml b/res/layout/clock_option.xml
deleted file mode 100644
index e65cb65..0000000
--- a/res/layout/clock_option.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2019 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:paddingRight="2dp"
- android:paddingBottom="@dimen/option_bottom_margin"
- android:clipChildren="false"
- android:clipToPadding="false"
- android:orientation="vertical">
-
- <TextView
- android:id="@+id/option_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
- android:layout_marginBottom="@dimen/theme_option_label_margin"
- android:textAppearance="@style/OptionTitleTextAppearance"/>
- <FrameLayout
- android:id="@+id/option_tile"
- android:layout_width="@dimen/option_tile_width"
- android:layout_height="@dimen/option_tile_width"
- android:layout_gravity="center_horizontal"
- android:paddingHorizontal="@dimen/option_tile_padding_horizontal"
- android:paddingVertical="@dimen/option_tile_padding_vertical"
- android:background="@drawable/option_border">
- <ImageView
- android:id="@+id/clock_option_thumbnail"
- android:layout_width="match_parent"
- android:layout_height="match_parent"/>
- </FrameLayout>
-</LinearLayout>
diff --git a/res/layout/clock_section_view.xml b/res/layout/clock_section_view.xml
index 31f08fc..0632601 100644
--- a/res/layout/clock_section_view.xml
+++ b/res/layout/clock_section_view.xml
@@ -20,7 +20,7 @@
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:clickable="true"
- android:paddingVertical="@dimen/section_top_padding"
+ android:paddingVertical="@dimen/section_padding"
android:paddingHorizontal="@dimen/section_horizontal_padding"
android:orientation="horizontal">
diff --git a/res/layout/clock_size_radio_button_group.xml b/res/layout/clock_size_radio_button_group.xml
index 4264007..2aa78d2 100644
--- a/res/layout/clock_size_radio_button_group.xml
+++ b/res/layout/clock_size_radio_button_group.xml
@@ -57,6 +57,7 @@
android:id="@+id/button_container_small"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:minHeight="@dimen/touch_target_min_height"
android:orientation="horizontal">
<RadioButton
diff --git a/res/layout/color_option_2.xml b/res/layout/color_option_2.xml
index 2ac0fe6..dff03d0 100644
--- a/res/layout/color_option_2.xml
+++ b/res/layout/color_option_2.xml
@@ -16,14 +16,14 @@
<!-- Content description is set programmatically on the parent FrameLayout -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
+ android:layout_width="@dimen/option_item_size"
android:layout_height="wrap_content"
android:orientation="vertical"
android:clipChildren="false">
<FrameLayout
android:id="@+id/icon_container"
- android:layout_width="@dimen/option_tile_width"
- android:layout_height="@dimen/option_tile_width"
+ android:layout_width="@dimen/option_item_size"
+ android:layout_height="@dimen/option_item_size"
android:clipChildren="false">
<ImageView
@@ -41,50 +41,11 @@
android:background="@drawable/option_item_background"
android:importantForAccessibility="no" />
- <FrameLayout
- android:id="@id/foreground"
+ <com.android.customization.picker.color.ui.view.ColorOptionIconView
+ android:id="@+id/foreground"
android:layout_width="match_parent"
- android:layout_height="match_parent">
- <ImageView
- android:id="@+id/color_preview_0"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_marginRight="@dimen/color_seed_chip_margin"
- android:layout_marginBottom="@dimen/color_seed_chip_margin"
- android:src="@drawable/color_chip_seed_filled0"
- android:importantForAccessibility="no"/>
-
- <ImageView
- android:id="@+id/color_preview_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_marginLeft="@dimen/color_seed_chip_margin"
- android:layout_marginBottom="@dimen/color_seed_chip_margin"
- android:src="@drawable/color_chip_seed_filled2"
- android:importantForAccessibility="no"/>
-
- <ImageView
- android:id="@+id/color_preview_2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_marginRight="@dimen/color_seed_chip_margin"
- android:layout_marginTop="@dimen/color_seed_chip_margin"
- android:src="@drawable/color_chip_seed_filled1"
- android:importantForAccessibility="no"/>
-
- <ImageView
- android:id="@+id/color_preview_3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_marginLeft="@dimen/color_seed_chip_margin"
- android:layout_marginTop="@dimen/color_seed_chip_margin"
- android:src="@drawable/color_chip_seed_filled3"
- android:importantForAccessibility="no" />
- </FrameLayout>
+ android:layout_height="match_parent"
+ android:layout_margin="@dimen/color_seed_chip_margin2"/>
</FrameLayout>
</LinearLayout>
diff --git a/res/layout/color_option_no_background.xml b/res/layout/color_option_no_background.xml
index b90b480..3b8e2dc 100644
--- a/res/layout/color_option_no_background.xml
+++ b/res/layout/color_option_no_background.xml
@@ -34,63 +34,17 @@
constraint percentage is sized to leave a padding for the outer selection outline,
proportionate to 2dp for a 40dp color wheel
-->
- <androidx.constraintlayout.widget.ConstraintLayout
+ <com.android.customization.picker.color.ui.view.ColorOptionIconView
android:id="@+id/option_tile"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_gravity="center"
- android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintWidth_percent="0.909">
-
- <ImageView
- android:id="@+id/color_preview_0"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:adjustViewBounds="true"
- android:src="@drawable/color_chip_seed_filled0"
- app:layout_constraintHeight_percent=".50"
- app:layout_constraintLeft_toLeftOf="parent"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintWidth_percent=".50" />
-
- <ImageView
- android:id="@+id/color_preview_1"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:adjustViewBounds="true"
- android:src="@drawable/color_chip_seed_filled2"
- app:layout_constraintHeight_percent=".50"
- app:layout_constraintLeft_toRightOf="@id/color_preview_0"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintWidth_percent=".50" />
-
- <ImageView
- android:id="@+id/color_preview_2"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:adjustViewBounds="true"
- android:src="@drawable/color_chip_seed_filled1"
- app:layout_constraintHeight_percent=".50"
- app:layout_constraintLeft_toLeftOf="parent"
- app:layout_constraintTop_toBottomOf="@id/color_preview_0"
- app:layout_constraintWidth_percent=".50" />
-
- <ImageView
- android:id="@+id/color_preview_3"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:adjustViewBounds="true"
- android:src="@drawable/color_chip_seed_filled3"
- app:layout_constraintHeight_percent=".50"
- app:layout_constraintLeft_toRightOf="@id/color_preview_2"
- app:layout_constraintTop_toBottomOf="@id/color_preview_1"
- app:layout_constraintWidth_percent=".50" />
- </androidx.constraintlayout.widget.ConstraintLayout>
+ app:layout_constraintWidth_percent="0.909" />
<ImageView
android:id="@+id/option_selected"
@@ -98,5 +52,6 @@
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:src="@drawable/color_option_selected_no_background"
- android:visibility="gone"/>
+ android:visibility="gone"
+ android:importantForAccessibility="no" />
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/color_option_overflow_no_background.xml b/res/layout/color_option_overflow_no_background.xml
index fb25c35..abb9c6b 100644
--- a/res/layout/color_option_overflow_no_background.xml
+++ b/res/layout/color_option_overflow_no_background.xml
@@ -51,6 +51,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
- android:src="@drawable/color_overflow" />
+ android:src="@drawable/color_overflow"
+ android:contentDescription="@string/more_colors"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/color_option_with_background.xml b/res/layout/color_option_with_background.xml
deleted file mode 100644
index 36990b5..0000000
--- a/res/layout/color_option_with_background.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!-- Content description is set programmatically on the parent FrameLayout -->
-<!-- TODO (b/272109171): Remove after clock settings is refactored to use OptionItemAdapter -->
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="vertical" >
- <FrameLayout
- android:id="@+id/icon_container"
- android:layout_width="@dimen/option_item_size"
- android:layout_height="@dimen/option_item_size"
- android:importantForAccessibility="yes">
-
- <ImageView
- android:id="@id/selection_border"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@drawable/option_item_border"
- android:alpha="0"
- android:importantForAccessibility="no" />
-
- <ImageView
- android:id="@id/background"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@drawable/option_item_background"
- android:importantForAccessibility="no" />
-
- <ImageView
- android:id="@+id/color_preview_0"
- android:layout_width="@dimen/component_color_chip_small_radius_default2"
- android:layout_height="@dimen/component_color_chip_small_radius_default2"
- android:layout_gravity="center"
- android:layout_marginRight="@dimen/color_seed_chip_margin2"
- android:layout_marginBottom="@dimen/color_seed_chip_margin2"
- android:src="@drawable/color_chip_seed_filled0"
- android:importantForAccessibility="no"/>
-
- <ImageView
- android:id="@+id/color_preview_1"
- android:layout_width="@dimen/component_color_chip_small_radius_default2"
- android:layout_height="@dimen/component_color_chip_small_radius_default2"
- android:layout_gravity="center"
- android:layout_marginLeft="@dimen/color_seed_chip_margin2"
- android:layout_marginBottom="@dimen/color_seed_chip_margin2"
- android:src="@drawable/color_chip_seed_filled2"
- android:importantForAccessibility="no"/>
-
- <ImageView
- android:id="@+id/color_preview_2"
- android:layout_width="@dimen/component_color_chip_small_radius_default2"
- android:layout_height="@dimen/component_color_chip_small_radius_default2"
- android:layout_gravity="center"
- android:layout_marginRight="@dimen/color_seed_chip_margin2"
- android:layout_marginTop="@dimen/color_seed_chip_margin2"
- android:src="@drawable/color_chip_seed_filled1"
- android:importantForAccessibility="no"/>
-
- <ImageView
- android:id="@+id/color_preview_3"
- android:layout_width="@dimen/component_color_chip_small_radius_default2"
- android:layout_height="@dimen/component_color_chip_small_radius_default2"
- android:layout_gravity="center"
- android:layout_marginLeft="@dimen/color_seed_chip_margin2"
- android:layout_marginTop="@dimen/color_seed_chip_margin2"
- android:src="@drawable/color_chip_seed_filled3"
- android:importantForAccessibility="no"/>
- </FrameLayout>
-
- <TextView
- android:id="@+id/option_title"
- android:layout_width="@dimen/option_tile_width"
- android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/option_bottom_margin"
- android:textColor="@color/text_color_primary"
- android:visibility="gone"
- android:gravity="center" />
-</LinearLayout>
diff --git a/res/layout/color_section_view2.xml b/res/layout/color_section_view2.xml
index 687bcef..9dbdf15 100644
--- a/res/layout/color_section_view2.xml
+++ b/res/layout/color_section_view2.xml
@@ -37,7 +37,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:paddingVertical="24dp"
+ android:paddingVertical="20dp"
android:paddingHorizontal="24dp"
android:weightSum="@integer/color_section_num_columns">
<include
@@ -58,10 +58,10 @@
android:gravity="center"
android:drawablePadding="12dp"
android:drawableStart="@drawable/ic_nav_color"
- android:drawableTint="@color/text_color_primary"
+ android:drawableTint="@color/system_primary"
android:text="@string/more_colors"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"
- android:textColor="@color/text_color_primary"
+ android:textColor="@color/system_primary"
android:visibility="gone"
tools:ignore="UseCompatTextViewDrawableXml" />
</com.android.customization.picker.color.ui.view.ColorSectionView2>
diff --git a/res/layout/dark_mode_section_view.xml b/res/layout/dark_mode_section_view.xml
index e1b4b81..27550e2 100644
--- a/res/layout/dark_mode_section_view.xml
+++ b/res/layout/dark_mode_section_view.xml
@@ -22,7 +22,7 @@
android:clickable="true"
android:gravity="center_vertical"
android:orientation="horizontal"
- android:paddingVertical="@dimen/section_vertical_padding"
+ android:paddingVertical="@dimen/section_padding"
android:paddingHorizontal="@dimen/section_horizontal_padding">
<TextView
diff --git a/res/layout/fragment_clock_settings.xml b/res/layout/fragment_clock_settings.xml
index 5208222..bb4a0c2 100644
--- a/res/layout/fragment_clock_settings.xml
+++ b/res/layout/fragment_clock_settings.xml
@@ -18,7 +18,9 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:orientation="vertical">
+ android:orientation="vertical"
+ android:clipChildren="false">
+
<FrameLayout
android:id="@+id/section_header_container"
android:layout_width="match_parent"
@@ -31,24 +33,25 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
- android:paddingTop="36dp"
- android:paddingBottom="40dp">
+ android:paddingTop="20dp"
+ android:paddingBottom="40dp"
+ android:clipChildren="false">
<include
android:id="@+id/lock_preview"
layout="@layout/wallpaper_preview_card"
- android:layout_width="match_parent"
+ android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center" />
- <FrameLayout
+ <com.android.customization.picker.clock.ui.view.ClockHostView
android:id="@+id/clock_host_view"
+ android:importantForAccessibility="noHideDescendants"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center" />
</com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
-
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -57,11 +60,14 @@
android:layout_marginBottom="28dp"
android:background="@drawable/picker_fragment_background"
android:paddingTop="22dp"
- android:paddingBottom="62dp">
+ android:paddingBottom="36dp"
+ android:clipChildren="false">
<FrameLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="22dp"
+ android:layout_gravity="center_horizontal">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/tabs"
@@ -90,35 +96,50 @@
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingTop="16dp">
+ android:clipChildren="false">
<LinearLayout
android:id="@+id/color_picker_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="vertical">
+ android:orientation="vertical"
+ android:clipChildren="false">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginBottom="16dp">
+ android:clipChildren="false">
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/color_options"
+ <HorizontalScrollView
+ android:id="@+id/color_options_scroll_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:clipToPadding="false"
- android:paddingHorizontal="16dp" />
+ android:clipChildren="false"
+ android:scrollbars="none">
+
+ <LinearLayout
+ android:id="@+id/color_options"
+ android:clipToPadding="false"
+ android:clipChildren="false"
+ android:paddingHorizontal="16dp"
+ android:layout_marginBottom="16dp"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:divider="@drawable/horizontal_divider_8dp"
+ android:showDividers="middle" />
+ </HorizontalScrollView>
<!--
- This is just an invisible placeholder put in place so that the parent keeps its
- height stable as the RecyclerView updates from 0 items to N items. Keeping it
- stable allows the layout logic to keep the size of the preview container stable
- as well, which bodes well for setting up the SurfaceView for remote rendering
- without changing its size after the content is loaded into the RecyclerView.
- -->
+ This is just an invisible placeholder put in place so that the parent keeps
+ its height stable as the RecyclerView updates from 0 items to N items.
+ Keeping it stable allows the layout logic to keep the size of the preview
+ container stable as well, which bodes well for setting up the SurfaceView
+ for remote rendering without changing its size after the content is loaded
+ into the RecyclerView.
+ -->
<include
- layout="@layout/color_option_with_background"
+ layout="@layout/clock_color_option"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible" />
diff --git a/res/layout/grid_section_view.xml b/res/layout/grid_section_view.xml
index ee7b76f..a90ee64 100644
--- a/res/layout/grid_section_view.xml
+++ b/res/layout/grid_section_view.xml
@@ -20,7 +20,7 @@
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:clickable="true"
- android:paddingVertical="@dimen/section_top_padding"
+ android:paddingVertical="@dimen/section_padding"
android:paddingHorizontal="@dimen/section_horizontal_padding"
android:orientation="horizontal">
diff --git a/res/layout/keyguard_quick_affordance.xml b/res/layout/keyguard_quick_affordance.xml
index 1e5c339..a86489a 100644
--- a/res/layout/keyguard_quick_affordance.xml
+++ b/res/layout/keyguard_quick_affordance.xml
@@ -62,8 +62,10 @@
android:id="@id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
android:textColor="@color/text_color_primary"
- android:singleLine="true"
+ android:maxLines="2"
+ android:hyphenationFrequency="normal"
android:ellipsize="end"
android:text="Placeholder for stable size calculation, please do not remove."
tools:ignore="HardcodedText" />
diff --git a/res/layout/keyguard_quick_affordance_section_view.xml b/res/layout/keyguard_quick_affordance_section_view.xml
index 458f659..7c5babb 100644
--- a/res/layout/keyguard_quick_affordance_section_view.xml
+++ b/res/layout/keyguard_quick_affordance_section_view.xml
@@ -16,11 +16,11 @@
-->
<com.android.customization.picker.quickaffordance.ui.view.KeyguardQuickAffordanceSectionView
xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_width="match_parent"
android:background="?selectableItemBackground"
android:clickable="true"
- android:paddingVertical="@dimen/section_top_padding"
+ android:paddingVertical="@dimen/option_section_vertical_padding"
android:paddingHorizontal="@dimen/section_horizontal_padding"
android:orientation="horizontal">
@@ -28,7 +28,8 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:orientation="vertical">
+ android:orientation="vertical"
+ android:layout_gravity="center">
<TextView
android:layout_width="match_parent"
@@ -51,6 +52,7 @@
android:importantForAccessibility="noHideDescendants"
android:gravity="center"
android:divider="@drawable/horizontal_divider_14dp"
+ android:layout_gravity="center"
android:showDividers="middle">
<ImageView
diff --git a/res/layout/more_settings_section_view.xml b/res/layout/more_settings_section_view.xml
index b60bb45..5745a27 100644
--- a/res/layout/more_settings_section_view.xml
+++ b/res/layout/more_settings_section_view.xml
@@ -20,7 +20,7 @@
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:clickable="true"
- android:paddingVertical="@dimen/section_top_padding"
+ android:paddingVertical="@dimen/section_padding"
android:paddingHorizontal="@dimen/section_horizontal_padding"
android:orientation="vertical">
diff --git a/res/layout/notification_section.xml b/res/layout/notification_section.xml
index 713624e..f490e00 100644
--- a/res/layout/notification_section.xml
+++ b/res/layout/notification_section.xml
@@ -22,35 +22,25 @@
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:clickable="true"
- android:paddingVertical="@dimen/section_top_padding"
+ android:paddingVertical="@dimen/section_padding"
android:paddingHorizontal="@dimen/section_horizontal_padding"
android:orientation="horizontal"
android:gravity="center_vertical">
- <LinearLayout
+ <TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:orientation="vertical">
-
- <TextView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="@string/notifications_section_title"
- style="@style/SectionTitleTextStyle" />
-
- <TextView
- android:id="@+id/subtitle"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- style="@style/SectionSubtitleTextStyle"/>
- </LinearLayout>
+ android:layout_gravity="center"
+ android:text="@string/show_notifications_on_lock_screen"
+ style="@style/SectionTitleTextStyle"/>
<Switch
android:id="@+id/switcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
+ android:layout_gravity="center"
style="@style/Switch.SettingsLib"
tools:ignore="UseSwitchCompatOrMaterialXml" />
diff --git a/res/layout/picker_fragment_tab.xml b/res/layout/picker_fragment_tab.xml
index 2e6e8fa..7aaa776 100644
--- a/res/layout/picker_fragment_tab.xml
+++ b/res/layout/picker_fragment_tab.xml
@@ -14,21 +14,26 @@
~ limitations under the License.
~
-->
-
-<TextView
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/text"
+<FrameLayout
+ android:id="@+id/text_wrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textColor="@color/picker_fragment_tab_text_color"
- android:paddingVertical="8dp"
- android:paddingHorizontal="16dp"
- android:minWidth="48dp"
- android:minHeight="36dp"
- android:gravity="center"
- android:background="@drawable/picker_fragment_tab_background"
- android:text="Placeholder for stable size calculation, please do not remove."
- android:maxLines="1"
- android:ellipsize="end"
- tools:ignore="HardcodedText" />
+ android:minWidth="@dimen/touch_target_min_width"
+ android:minHeight="@dimen/touch_target_min_height"
+ xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <TextView
+ android:id="@+id/text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="@color/picker_fragment_tab_text_color"
+ android:paddingVertical="8dp"
+ android:paddingHorizontal="16dp"
+ android:minWidth="48dp"
+ android:minHeight="36dp"
+ android:gravity="center"
+ android:background="@drawable/picker_fragment_tab_background"
+ android:maxLines="1"
+ android:ellipsize="end" />
+
+</FrameLayout>
diff --git a/res/layout/single_clock_view.xml b/res/layout/single_clock_view.xml
index e7ac518..ffc6039 100644
--- a/res/layout/single_clock_view.xml
+++ b/res/layout/single_clock_view.xml
@@ -13,13 +13,15 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<com.android.wallpaper.picker.DisplayAspectRatioFrameLayout
+<com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="@dimen/clock_carousel_item_height">
- <FrameLayout
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:clipChildren="false">
+ <com.android.customization.picker.clock.ui.view.ClockHostView
android:id="@+id/single_clock_host_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center" />
-</com.android.wallpaper.picker.DisplayAspectRatioFrameLayout>
\ No newline at end of file
+</com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout>
\ No newline at end of file
diff --git a/res/layout/themed_icon_section_view.xml b/res/layout/themed_icon_section_view.xml
index 95be207..84ef3e8 100644
--- a/res/layout/themed_icon_section_view.xml
+++ b/res/layout/themed_icon_section_view.xml
@@ -22,7 +22,7 @@
android:clickable="true"
android:orientation="vertical"
android:paddingHorizontal="@dimen/section_horizontal_padding"
- android:paddingVertical="@dimen/section_vertical_padding">
+ android:paddingVertical="@dimen/section_padding">
<LinearLayout
android:layout_width="match_parent"
diff --git a/res/values-af/clock_colors.xml b/res/values-af/clock_colors.xml
deleted file mode 100644
index f4e0fef..0000000
--- a/res/values-af/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ROOI"</item>
- <item msgid="6882970855289978213">"ORANJE"</item>
- <item msgid="5560732545714984533">"GEEL"</item>
- <item msgid="7246284817845434226">"GROEN"</item>
- <item msgid="6762906417604676001">"BLOU"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOOLTJIEPERS"</item>
- <item msgid="6835537356703747621">"GRYS"</item>
- <item msgid="2470141365136884119">"BLOUGROEN"</item>
- </string-array>
-</resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 4da90a9..dd552b0 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Gepasmaakte horlosie"</string>
<string name="clock_description" msgid="3563839327378948">"Kies gepasmaakte horlosie"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Verander ’n gepasmaakte horlosie"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Horlosie-instellings"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Horlosiekleur en grootte"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Horlosiekleur en grootte"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Kleur"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Links-kortpad"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Regs-kortpad"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Geen"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Merk die volgende as jy “<xliff:g id="APPNAME">%1$s</xliff:g>” wil kies"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Kan nie kortpad byvoeg nie"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Maak <xliff:g id="APPNAME">%1$s</xliff:g> oop"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Om die <xliff:g id="APPNAME">%1$s</xliff:g>-app as ’n kortpad by te voeg, moet jy seker maak dat"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Klaar"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Kortpaaie"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Geen"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Kennisgewings"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Wys kennisgewings op die sluitskerm"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Versteek kennisgewings op die sluitskerm"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Meer opsies"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Teks op sluitskerm, Wat Speel, en meer"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Meer sluitskermopsies"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privaatheid, Wat Speel, en meer"</string>
<string name="more_colors" msgid="3191071655353004591">"Nog kleure"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primêre omvattende tema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primêre neutrale tema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primêre intense tema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primêre ekspressiewe tema"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Verstekkleuropsie"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Kleuropsie <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-am/clock_colors.xml b/res/values-am/clock_colors.xml
deleted file mode 100644
index 3da51af..0000000
--- a/res/values-am/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ቀይ"</item>
- <item msgid="6882970855289978213">"ብርቱካናማ"</item>
- <item msgid="5560732545714984533">"ቢጫ"</item>
- <item msgid="7246284817845434226">"አረንጓዴ"</item>
- <item msgid="6762906417604676001">"ሰማያዊ"</item>
- <item msgid="8974135109557664892">"ሐምራዊ"</item>
- <item msgid="786643557830463422">"ወይን ጠጅ"</item>
- <item msgid="6835537356703747621">"ግራጫ"</item>
- <item msgid="2470141365136884119">"ደማቅ አረንጓዴ-ሰማያዊ"</item>
- </string-array>
-</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index c33c7e0..01b7fd1 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"ብጁ ሰዓት"</string>
<string name="clock_description" msgid="3563839327378948">"ብጁ ሰዓት ይምረጡ"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"ብጁ ሰዓትን ይለውጡ"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"የClock ቅንብሮች"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"የClock ቀለም እና መጠን"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"የClock ቀለም እና መጠን"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>፣ <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"ቀለም"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"የግራ አቋራጭ"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"የቀኝ አቋራጭ"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"ምንም"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"«<xliff:g id="APPNAME">%1$s</xliff:g>»ን ለመምረጥ የሚከተሉትን ይፈትሹ"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"አቋራጭን ማከል አልተቻለም"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ይክፈቱ"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"የ<xliff:g id="APPNAME">%1$s</xliff:g> መተግበሪያን እንደ አቋራጭ ለማከል የሚከተሉትን ማድረግዎን እርግጠኛ ይሁኑ"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ተከናውኗል"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"አቋራጮች"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>፣ <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ምንም"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"ማሳወቂያዎች"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"በማያ ገፅ ቁልፉ ላይ ማሳወቂያዎችን አሳይ"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"በማያ ገፅ ቁልፉ ላይ ማሳወቂያዎችን ደብቅ"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"ተጨማሪ አማራጮች"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"ጽሑፍ በማያ ገፅ ቁልፍ፣ አሁን በመጫወት ላይ እና ሌሎችም"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"ተጨማሪ የማያ ገፅ ቁልፍ አማራጮች"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"ግላዊነት፣ አሁን በመጫወት ላይ እና ሌሎችም"</string>
<string name="more_colors" msgid="3191071655353004591">"ተጨማሪ ቀለማት"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"የመጀመሪያ ተለዋዋጭ ገጽታ"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"የመጀመሪያ ገለልተኛ ገጽታ"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"የመጀመሪያ ንቁ ገጽታ"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"የመጀመሪያ ገላጭ ገጽታ"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"ነባሪ የቀለም አማራጭ"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"የቀለም አማራጭ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-ar/clock_colors.xml b/res/values-ar/clock_colors.xml
deleted file mode 100644
index 51bc5fe..0000000
--- a/res/values-ar/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"أحمر"</item>
- <item msgid="6882970855289978213">"برتقالي"</item>
- <item msgid="5560732545714984533">"أصفر"</item>
- <item msgid="7246284817845434226">"أخضر"</item>
- <item msgid="6762906417604676001">"أزرق"</item>
- <item msgid="8974135109557664892">"نيلي"</item>
- <item msgid="786643557830463422">"بنفسجي"</item>
- <item msgid="6835537356703747621">"رمادي"</item>
- <item msgid="2470141365136884119">"أزرق مخضرّ"</item>
- </string-array>
-</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index f0a2b64..3815f69 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"خلفية شاشة ساعة مخصّصة"</string>
<string name="clock_description" msgid="3563839327378948">"اختيار خلفية شاشة ساعة مخصّصة"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"تغيير خلفية شاشة ساعة مخصّصة"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"إعدادات الساعة"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"لون الساعة وحجمها"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"لون الساعة وحجمها"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g> و<xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"اللون"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"اختصار اليمين"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"اختصار اليسار"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"بدون أزرار"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"لاختيار \"<xliff:g id="APPNAME">%1$s</xliff:g>\"، تأكّد مما يلي:"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"تعذُّر إضافة الاختصار"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"فتح <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"لإضافة تطبيق \"<xliff:g id="APPNAME">%1$s</xliff:g>\" كاختصار، تأكَّد من"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"تم"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"الاختصارات"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"\"<xliff:g id="FIRST">%1$s</xliff:g>\" و\"<xliff:g id="SECOND">%2$s</xliff:g>\""</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"بدون اختصارات"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"الإشعارات"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"إظهار الإشعارات على شاشة القفل"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"إخفاء الإشعارات على شاشة القفل"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"خيارات إضافية"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"النص على شاشة القفل و\"التعرف التلقائي على الموسيقى\" والمزيد"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"المزيد من خيارات شاشة القفل"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"الخصوصية وميزة \"التعرّف التلقائي على الموسيقى\" وغير ذلك"</string>
<string name="more_colors" msgid="3191071655353004591">"المزيد من الألوان"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"مظهر ديناميكي أساسي"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"مظهر أساسي محايد"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"مظهر أساسي نابض بالحياة"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"مظهر أساسي معبِّر"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"خيار اللون التلقائي"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"خيار اللون <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-as/clock_colors.xml b/res/values-as/clock_colors.xml
deleted file mode 100644
index 74e0aaf..0000000
--- a/res/values-as/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ৰঙা"</item>
- <item msgid="6882970855289978213">"কমলা"</item>
- <item msgid="5560732545714984533">"হালধীয়া"</item>
- <item msgid="7246284817845434226">"সেউজীয়া"</item>
- <item msgid="6762906417604676001">"নীলা"</item>
- <item msgid="8974135109557664892">"ইণ্ডিগ’"</item>
- <item msgid="786643557830463422">"বেঙুনীয়া"</item>
- <item msgid="6835537356703747621">"ধোঁৱাবৰণীয়া"</item>
- <item msgid="2470141365136884119">"গাঢ় সেউজ-নীলা"</item>
- </string-array>
-</resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 083d1db..544e7d2 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"কাষ্টম ঘড়ী"</string>
<string name="clock_description" msgid="3563839327378948">"কাষ্টম ঘড়ী বাছক"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"কাষ্টম ঘড়ী সলনি কৰক"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"ঘড়ীৰ ছেটিং"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"ঘড়ীৰ ৰং আৰু আকাৰ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ঘড়ীৰ ৰং আৰু আকাৰ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"ৰং"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"বাওঁ শ্বৰ্টকাট"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"সোঁ শ্বৰ্টকাট"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"নাই"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` বাছনি কৰিবলৈ এয়া পৰীক্ষা কৰক"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"শ্বৰ্টকাট যোগ কৰিব নোৱাৰি"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> খোলক"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> এপ্টোক এটা শ্বৰ্টকাট হিচাপে যোগ দিবলৈ, এইকেইটা কথা নিশ্চিত কৰক"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"কৰা হ’ল"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"শ্বৰ্টকাট"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"নাই"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"জাননী"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"লক স্ক্ৰীনত জাননী দেখুৱাওক"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"বন্ধ স্ক্ৰীনত জাননী লুকুৱাওক"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"অধিক বিকল্প"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"লক স্ক্ৰীন, বৰ্তমান প্লে’ হৈ থকা সমল আৰু অধিকত থকা পাঠ"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"লক স্ক্ৰীনৰ অধিক বিকল্প"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"গোপনীয়তা, সদ্য পৰিৱেশিত গীত আৰু অধিক"</string>
<string name="more_colors" msgid="3191071655353004591">"অধিক ৰং"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"প্ৰাথমিক ডাইনামিক থীম"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"প্ৰাথমিক নিৰপেক্ষ থীম"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"প্ৰাথমিক জীৱন্ত থীম"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"প্ৰাথমিক অভিব্যক্তিপূৰ্ণ থীম"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"ডিফ’ল্ট ৰঙৰ বিকল্প"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"ৰঙৰ বিকল্প <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-az/clock_colors.xml b/res/values-az/clock_colors.xml
deleted file mode 100644
index 6cea40b..0000000
--- a/res/values-az/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"QIRMIZI"</item>
- <item msgid="6882970855289978213">"NARINCI"</item>
- <item msgid="5560732545714984533">"SARI"</item>
- <item msgid="7246284817845434226">"YAŞIL"</item>
- <item msgid="6762906417604676001">"MAVİ"</item>
- <item msgid="8974135109557664892">"TÜND-GÖY"</item>
- <item msgid="786643557830463422">"BƏNÖVŞƏYİ"</item>
- <item msgid="6835537356703747621">"BOZ"</item>
- <item msgid="2470141365136884119">"YAŞILIMTIL MAVİ"</item>
- </string-array>
-</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 0b674ca..5746848 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Fərdi Saat"</string>
<string name="clock_description" msgid="3563839327378948">"Fərdi saat seç"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Fərdi saatı dəyişdir"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Saat Ayarları"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Saat rəngi və ölçü"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Saat rəngi və ölçüsü"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Rəng"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Sol qısayol"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Sağ qısayol"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Heç biri"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"\"<xliff:g id="APPNAME">%1$s</xliff:g>\" seçmək üçün aşağıdakıları yoxlayın"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Qısayol əlavə etmək olmur"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> linkini açın"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> tətbiqini qısayol kimi əlavə etmək üçün bunları təmin edin:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Hazırdır"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Qısayollar"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Heç biri"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Bildirişlər"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Kilid ekranında bildirişləri göstərin"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Kilid ekranında bildirişləri gizlədin"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Digər seçimlər"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Kilid ekranında mətn, İndi Oxudulur və s."</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Digər kilid ekranı seçimləri"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Məxfilik, İndi Efirdə və s."</string>
<string name="more_colors" msgid="3191071655353004591">"Digər rənglər"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Əsas dinamik tema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Əsas neytral tema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Əsas canlı tema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Əsas ekspressiv tema"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Defolt rəng seçimi"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Rəng seçimi <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-b+sr+Latn/clock_colors.xml b/res/values-b+sr+Latn/clock_colors.xml
deleted file mode 100644
index c30c8c2..0000000
--- a/res/values-b+sr+Latn/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"CRVENA"</item>
- <item msgid="6882970855289978213">"NARANDŽASTA"</item>
- <item msgid="5560732545714984533">"ŽUTA"</item>
- <item msgid="7246284817845434226">"ZELENA"</item>
- <item msgid="6762906417604676001">"PLAVA"</item>
- <item msgid="8974135109557664892">"TAMNOPLAVA"</item>
- <item msgid="786643557830463422">"LJUBIČASTA"</item>
- <item msgid="6835537356703747621">"SIVA"</item>
- <item msgid="2470141365136884119">"TIRKIZNA"</item>
- </string-array>
-</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 57a7e12..b67a3c7 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Prilagođeni sat"</string>
<string name="clock_description" msgid="3563839327378948">"Prilagođeni sat"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Promenite prilagođeni sat"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Podešavanja sata"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Boja i veličina sata"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Boja i veličina sata"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Boja"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Leva prečica"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Desna prečica"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Ništa"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Da biste izabrali „<xliff:g id="APPNAME">%1$s</xliff:g>“, proverite sledeće"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Dodavanje prečice nije uspelo"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Otvorite: <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Da biste dodali aplikaciju <xliff:g id="APPNAME">%1$s</xliff:g> kao prečicu, uverite se"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Gotovo"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Prečice"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ništa"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Obaveštenja"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Prikazuj obaveštenja na zaključanom ekranu"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Sakrij obaveštenja na zaključanom ekranu"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Još opcija"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst na zaključanom ekranu, Trenutno svira i drugo"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Još opcija za zaključani ekran"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privatnost, Trenutno svira i drugo"</string>
<string name="more_colors" msgid="3191071655353004591">"Još boja"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primarna dinamična tema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primarna neutralna tema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primarna intenzivna tema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primarna ekspresivna tema"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Podrazumevana opcija boje"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opcija boje <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-be/clock_colors.xml b/res/values-be/clock_colors.xml
deleted file mode 100644
index d9a4bcc..0000000
--- a/res/values-be/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ЧЫРВОНЫ"</item>
- <item msgid="6882970855289978213">"АРАНЖАВЫ"</item>
- <item msgid="5560732545714984533">"ЖОЎТЫ"</item>
- <item msgid="7246284817845434226">"ЗЯЛЁНЫ"</item>
- <item msgid="6762906417604676001">"СІНІ"</item>
- <item msgid="8974135109557664892">"ІНДЫГА"</item>
- <item msgid="786643557830463422">"ФІЯЛЕТАВЫ"</item>
- <item msgid="6835537356703747621">"ШЭРЫ"</item>
- <item msgid="2470141365136884119">"СІНЕ-ЗЯЛЁНЫ"</item>
- </string-array>
-</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 4facba9..994f2f8 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Гадзіннік"</string>
<string name="clock_description" msgid="3563839327378948">"Выбар цыферблата"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Змяненне цыферблата"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Гадзіннік"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Колер/памер гадз-ка"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Колер і памер гадзінніка"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Колер"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Ярлык \"улева\""</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Ярлык \"управа\""</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Няма"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Каб выбраць праграму \"<xliff:g id="APPNAME">%1$s</xliff:g>\", зрабіце наступнае"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Не ўдалося дадаць ярлык."</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Адкрыць \"<xliff:g id="APPNAME">%1$s</xliff:g>\""</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Каб дадаць ярлык для праграмы \"<xliff:g id="APPNAME">%1$s</xliff:g>\", патрабуюцца наступныя ўмовы:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Гатова"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Ярлыкі"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Няма"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Апавяшчэнні"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Паказваць апавяшчэнні на экране блакіроўкі"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Не паказваць апавяшчэнні на экране блакіроўкі"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Іншыя дзеянні"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Тэкст на экране блакіроўкі, функцыя \"Зараз іграе\" і іншае"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Больш параметраў экрана блакіроўкі"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Прыватнасць, Зараз іграе і іншае"</string>
<string name="more_colors" msgid="3191071655353004591">"Больш колераў"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Дынамічная асноўная тэма"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Нейтральная асноўная тэма"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Яскравая асноўная тэма"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Выразная асноўная тэма"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Стандартны варыянт колеру"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Варыянт колеру <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-bg/clock_colors.xml b/res/values-bg/clock_colors.xml
deleted file mode 100644
index 058b54d..0000000
--- a/res/values-bg/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ЧЕРВЕНО"</item>
- <item msgid="6882970855289978213">"ОРАНЖЕВО"</item>
- <item msgid="5560732545714984533">"ЖЪЛТО"</item>
- <item msgid="7246284817845434226">"ЗЕЛЕНО"</item>
- <item msgid="6762906417604676001">"СИНЬО"</item>
- <item msgid="8974135109557664892">"ИНДИГО"</item>
- <item msgid="786643557830463422">"ВИОЛЕТОВО"</item>
- <item msgid="6835537356703747621">"СИВО"</item>
- <item msgid="2470141365136884119">"СИНЬО-ЗЕЛЕНО"</item>
- </string-array>
-</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 018b241..e1a52b8 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Персонал. циферблат"</string>
<string name="clock_description" msgid="3563839327378948">"Персон. циферблат: Избор"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Промяна на персонализиран циферблат"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Часовник: Настройки"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Часовн.: Цвят и размер"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Часовн.: Цвят и размер"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Цвят"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Ляв пряк път"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Десен пряк път"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Без"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"За да изберете <xliff:g id="APPNAME">%1$s</xliff:g>, проверете следното:"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Прекият път не може да се добави"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Отваряне на <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"За да добавите пряк път към приложението <xliff:g id="APPNAME">%1$s</xliff:g>, трябва да се уверите в следното:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Готово"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Преки пътища"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Няма"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Известия"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Показване на известията на заключения екран"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Скриване на известията на заключения екран"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Още опции"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Текст на заключения екран, „Сега слушате“ и др."</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Още опции за заключения екран"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Поверителност, „Сега слушате“ и др."</string>
<string name="more_colors" msgid="3191071655353004591">"Още цветове"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Динамичен цвят от основната тема"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Неутрален цвят от основната тема"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Ярък цвят от основната тема"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Експресивен цвят от основната тема"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Опция за цвета по подразбиране"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Опция за цвета: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-bn/clock_colors.xml b/res/values-bn/clock_colors.xml
deleted file mode 100644
index cd433fa..0000000
--- a/res/values-bn/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"লাল"</item>
- <item msgid="6882970855289978213">"কমলা"</item>
- <item msgid="5560732545714984533">"হলুদ"</item>
- <item msgid="7246284817845434226">"সবুজ"</item>
- <item msgid="6762906417604676001">"নীল"</item>
- <item msgid="8974135109557664892">"নীলচে বেগুনি"</item>
- <item msgid="786643557830463422">"বেগুনি"</item>
- <item msgid="6835537356703747621">"ধূসর"</item>
- <item msgid="2470141365136884119">"নীলচে সবুজ"</item>
- </string-array>
-</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 514ae2e..d98262c 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"কাস্টম ঘড়ি"</string>
<string name="clock_description" msgid="3563839327378948">"কাস্টম ঘড়ি বেছে নিন"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"কাস্টম ঘড়ি পরিবর্তন করুন"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"ঘড়ির সেটিংস"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"ঘড়ির রঙ & সাইজ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ঘড়ির রঙ ও সাইজ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"রঙ"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"বাঁদিকের শর্টকাট"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ডানদিকের শর্টকাট"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"কোনওটিই নয়"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` বেছে নিতে, এগুলি চেক করুন"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"শর্টকার্ট যোগ করা যাচ্ছে না"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> খুলুন"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"শর্টকাট হিসেবে <xliff:g id="APPNAME">%1$s</xliff:g> অ্যাপ যোগ করতে, এইসব বিষয় নিশ্চিত করতে হবে"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"হয়ে গেছে"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"শর্টকাট"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"কোনও শর্টকাট নেই"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"বিজ্ঞপ্তি"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"লক স্ক্রিনে বিজ্ঞপ্তি দেখুন"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"লক স্ক্রিনে বিজ্ঞপ্তি লুকান"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"আরও বিকল্প"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"লক স্ক্রিনে টেক্সট, এখন চলছে এবং আরও অনেক কিছু"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"লক স্ক্রিনের আরও বিকল্প"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"গোপনীয়তা, এখন চলছে এবং আরও অনেক কিছু"</string>
<string name="more_colors" msgid="3191071655353004591">"আরও রঙ"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"প্রাইমারি ডায়নামিক থিম"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"প্রাইমারি নিউট্রাল থিম"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"প্রাইমারি ভাইব্রেন্ট থিম"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"প্রাইমারি এক্সপ্রেসিভ থিম"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"রঙের ডিফল্ট বিকল্প"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"রঙের বিকল্প <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-bs/clock_colors.xml b/res/values-bs/clock_colors.xml
deleted file mode 100644
index 0e7f923..0000000
--- a/res/values-bs/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"CRVENA"</item>
- <item msgid="6882970855289978213">"NARANDŽASTA"</item>
- <item msgid="5560732545714984533">"ŽUTA"</item>
- <item msgid="7246284817845434226">"ZELENA"</item>
- <item msgid="6762906417604676001">"PLAVA"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"LJUBIČASTA"</item>
- <item msgid="6835537356703747621">"SIVA"</item>
- <item msgid="2470141365136884119">"TIRKIZNA"</item>
- </string-array>
-</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 4563c66..9fa03c8 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Prilagođeni sat"</string>
<string name="clock_description" msgid="3563839327378948">"Odabir prilagođ. sata"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Promijenite prilagođeni sat"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Postavke Sata"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Boja i veličina sata"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Boja i veličina sata"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Boja"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Lijeva prečica"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Desna prečica"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Ništa"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Da odaberete aplikaciju \"<xliff:g id="APPNAME">%1$s</xliff:g>\" provjerite sljedeće"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Nije moguće dodati prečicu"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Otvori aplikaciju <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Da dodate aplikaciju <xliff:g id="APPNAME">%1$s</xliff:g> kao prečicu, pobrinite se za sljedeće"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Gotovo"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Prečice"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ništa"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Obavještenja"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Prikaz obavještenja na zaključanom ekranu"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Sakrivanje obavještenja na zaključanom ekranu"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Više opcija"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst na zaključanom ekranu, Trenutno se reproducira i drugo"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Više opcija zaključavanja ekrana"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privatnost, Trenutno se reproducira i drugo"</string>
<string name="more_colors" msgid="3191071655353004591">"Više boja"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primarna dinamična tema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primarna neutralna tema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primarna živahna tema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primarna ekspresivna tema"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Zadana opcija boje"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opcija boje <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-ca/clock_colors.xml b/res/values-ca/clock_colors.xml
deleted file mode 100644
index c44a460..0000000
--- a/res/values-ca/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"VERMELL"</item>
- <item msgid="6882970855289978213">"TARONJA"</item>
- <item msgid="5560732545714984533">"GROC"</item>
- <item msgid="7246284817845434226">"VERD"</item>
- <item msgid="6762906417604676001">"BLAU"</item>
- <item msgid="8974135109557664892">"ANYIL"</item>
- <item msgid="786643557830463422">"VIOLETA"</item>
- <item msgid="6835537356703747621">"GRIS"</item>
- <item msgid="2470141365136884119">"VERD BLAVÓS"</item>
- </string-array>
-</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 62a5d6f..e79ee88 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Rellotge pers."</string>
<string name="clock_description" msgid="3563839327378948">"Tria rellotge pers."</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Canvia un rellotge personalitzat"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Configuració del rellotge"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Color i mida rellotge"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Color i mida del rellotge"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Color"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Drecera de l\'esquerra"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Drecera de la dreta"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Cap"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Per seleccionar <xliff:g id="APPNAME">%1$s</xliff:g>, comprova el següent"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"La drecera no es pot afegir"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Obre <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Per afegir l\'aplicació <xliff:g id="APPNAME">%1$s</xliff:g> com a drecera, assegura\'t que:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Fet"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Dreceres"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Cap"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notificacions"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostra les notificacions a la pantalla de bloqueig"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Amaga les notificacions a la pantalla de bloqueig"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Més opcions"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Text a la pantalla de bloqueig, Està sonant i més"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Opcions de pantalla de bloqueig"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privadesa, Està sonant i més"</string>
<string name="more_colors" msgid="3191071655353004591">"Més colors"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinàmic principal"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema neutral principal"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema intens principal"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema expressiu principal"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Opció de color predeterminada"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opció de color <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-cs/clock_colors.xml b/res/values-cs/clock_colors.xml
deleted file mode 100644
index 9406e46..0000000
--- a/res/values-cs/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ČERVENÁ"</item>
- <item msgid="6882970855289978213">"ORANŽOVÁ"</item>
- <item msgid="5560732545714984533">"ŽLUTÁ"</item>
- <item msgid="7246284817845434226">"ZELENÁ"</item>
- <item msgid="6762906417604676001">"MODRÁ"</item>
- <item msgid="8974135109557664892">"INDIGOVÁ"</item>
- <item msgid="786643557830463422">"FIALOVÁ"</item>
- <item msgid="6835537356703747621">"ŠEDÁ"</item>
- <item msgid="2470141365136884119">"ŠEDOZELENÁ"</item>
- </string-array>
-</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 72a3c63..c3d45d4 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Vlastní hodiny"</string>
<string name="clock_description" msgid="3563839327378948">"Výběr vlastních hodin"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Změna vlastních hodin"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Nastavení hodin"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Barva a velikost"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Barva a velikost"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Barva"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Zkratka vlevo"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Zkratka vpravo"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Žádné"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Aby bylo možné vybrat aplikaci <xliff:g id="APPNAME">%1$s</xliff:g>, zkontrolujte následující"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Zástupce nelze přidat"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Otevřít aplikaci <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Podmínky pro to, aby aplikaci <xliff:g id="APPNAME">%1$s</xliff:g> bylo možné přidat jako zkratku:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Hotovo"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Zkratky"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Žádné"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Oznámení"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Zobrazovat oznámení na obrazovce uzamčení"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skrýt oznámení na obrazovce uzamčení"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Další možnosti"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Text na obrazovce uzamčení, Co to hraje a další funkce"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Další možnosti obrazovky uzamčení"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Soukromí, Co to hraje a další"</string>
<string name="more_colors" msgid="3191071655353004591">"Další barvy"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primární dynamický motiv"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primární neutrální motiv"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primární živý motiv"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primární expresivní motiv"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Výchozí barevná varianta"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Barevná varianta <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-da/clock_colors.xml b/res/values-da/clock_colors.xml
deleted file mode 100644
index 6dcbb4d..0000000
--- a/res/values-da/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"RØD"</item>
- <item msgid="6882970855289978213">"ORANGE"</item>
- <item msgid="5560732545714984533">"GUL"</item>
- <item msgid="7246284817845434226">"GRØN"</item>
- <item msgid="6762906417604676001">"BLÅ"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOLET"</item>
- <item msgid="6835537356703747621">"GRÅ"</item>
- <item msgid="2470141365136884119">"GRØNBLÅ"</item>
- </string-array>
-</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index d8ed823..0a7ab72 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Tilpasset ur"</string>
<string name="clock_description" msgid="3563839327378948">"Vælg tilpasset ur"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Juster et tilpasset ur"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Indstillinger for Ur"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Urets farve og str."</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Urets farve og størrelse"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Farve"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Venstre genvej"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Højre genvej"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Ingen"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Hvis du vil vælge \"<xliff:g id="APPNAME">%1$s</xliff:g>\", skal du tjekke følgende"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Genvejen kan ikke tilføjes"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Åbn <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Før du tilføjer <xliff:g id="APPNAME">%1$s</xliff:g>-appen som en genvej, skal du sørge for følgende:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Udfør"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Genveje"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ingen"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notifikationer"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Vis notifikationer på låseskærmen"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skjul notifikationer på låseskærmen"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Flere valgmuligheder"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst på låseskærmen, Find sangen og meget mere"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Flere muligheder for låseskærm"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privatliv, Find sangen m.m."</string>
<string name="more_colors" msgid="3191071655353004591">"Flere farver"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primært dynamisk tema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primært neutralt tema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primært farverigt tema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primært varieret tema"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Standardfarve"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Farvevalg <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-de/clock_colors.xml b/res/values-de/clock_colors.xml
deleted file mode 100644
index 170bf96..0000000
--- a/res/values-de/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ROT"</item>
- <item msgid="6882970855289978213">"ORANGE"</item>
- <item msgid="5560732545714984533">"GELB"</item>
- <item msgid="7246284817845434226">"GRÜN"</item>
- <item msgid="6762906417604676001">"BLAU"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOLETT"</item>
- <item msgid="6835537356703747621">"GRAU"</item>
- <item msgid="2470141365136884119">"BLAUGRÜN"</item>
- </string-array>
-</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index fa17dab..5a08207 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Benutzerdefinierte Uhr"</string>
<string name="clock_description" msgid="3563839327378948">"Benutzerdefinierte Uhr wählen"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Benutzerdefinierte Uhr ändern"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Uhr-Einstellungen"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Uhr-Farbe & -Größe"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Uhr-Farbe & -Größe"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Farbe"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Linke Verknüpf."</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Rechte Verknüpf."</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Keine"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Prüfe Folgendes, um <xliff:g id="APPNAME">%1$s</xliff:g>` auszuwählen"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Verknüpfung kann nicht hinzugefügt werden"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> öffnen"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Wenn du die <xliff:g id="APPNAME">%1$s</xliff:g> App als eine Verknüpfung hinzufügen möchtest, müssen folgende Bedingungen erfüllt sein"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Fertig"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Verknüpfungen"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Keine"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Benachrichtigungen"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Benachrichtigungen auf dem Sperrbildschirm einblenden"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Benachrichtigungen auf dem Sperrbildschirm ausblenden"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Weitere Optionen"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Text auf dem Sperrbildschirm, Now Playing und mehr"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Weitere Sperrbildschirmoptionen"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Datenschutz, Now Playing und mehr"</string>
<string name="more_colors" msgid="3191071655353004591">"Weitere Farben"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primäres dynamisches Design"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primäres neutrales Design"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primäres lebhaftes Design"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primäres ausdrucksstarkes Design"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Standardfarboption"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Farboption <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-el/clock_colors.xml b/res/values-el/clock_colors.xml
deleted file mode 100644
index 9c0394f..0000000
--- a/res/values-el/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ΚΟΚΚΙΝΟ"</item>
- <item msgid="6882970855289978213">"ΠΟΡΤΟΚΑΛΙ"</item>
- <item msgid="5560732545714984533">"ΚΙΤΡΙΝΟ"</item>
- <item msgid="7246284817845434226">"ΠΡΑΣΙΝΟ"</item>
- <item msgid="6762906417604676001">"ΜΠΛΕ"</item>
- <item msgid="8974135109557664892">"ΛΟΥΛΑΚΙ"</item>
- <item msgid="786643557830463422">"ΒΙΟΛΕΤΙ"</item>
- <item msgid="6835537356703747621">"ΓΚΡΙ"</item>
- <item msgid="2470141365136884119">"ΓΑΛΑΖΟΠΡΑΣΙΝΟ"</item>
- </string-array>
-</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index c9f12f8..4868b32 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Προσαρ. ρολόι"</string>
<string name="clock_description" msgid="3563839327378948">"Επιλογή προσαρ. ρολογιού"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Αλλαγή προσαρ. ρολογιού"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Ρυθμ. ρολογιού"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Χρώμα/μέγεθ. ρολογ."</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Χρώμα και μέγεθος"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Χρώμα"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Αριστερή συντόμ."</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Δεξιά συντόμευση"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Καμία"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Για να επιλέξετε \"<xliff:g id="APPNAME">%1$s</xliff:g>\", ελέγξτε τα εξής"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Δεν είναι δυνατή η προσθήκη συντόμευσης"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Άνοιγμα <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Για να προσθέσετε την εφαρμογή <xliff:g id="APPNAME">%1$s</xliff:g> ως συντόμευση, βεβαιωθείτε ότι"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Τέλος"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Συντομεύσεις"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Καμία"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Ειδοποιήσεις"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Εμφάνιση ειδοποιήσεων στην οθόνη κλειδώματος"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Απόκρυψη ειδοποιήσεων στην οθόνη κλειδώματος"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Περισσότερες επιλογές"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Κείμενο στην οθόνη κλειδώματος, λειτουργία \"Ακούγεται τώρα\" κ.ά."</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Περισσότ. επιλογές οθόνης κλειδ."</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Απόρρητο, Ακούγεται τώρα κ.ά."</string>
<string name="more_colors" msgid="3191071655353004591">"Περισσότερα χρώματα"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Κύριο δυναμικό θέμα"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Κύριο ουδέτερο θέμα"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Κύριο ζωηρό θέμα"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Κύριο εκφραστικό θέμα"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Επιλογή προεπιλεγμένου χρώματος"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Επιλογή χρώματος <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-en-rAU/clock_colors.xml b/res/values-en-rAU/clock_colors.xml
deleted file mode 100644
index 31e40f5..0000000
--- a/res/values-en-rAU/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"RED"</item>
- <item msgid="6882970855289978213">"ORANGE"</item>
- <item msgid="5560732545714984533">"YELLOW"</item>
- <item msgid="7246284817845434226">"GREEN"</item>
- <item msgid="6762906417604676001">"BLUE"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOLET"</item>
- <item msgid="6835537356703747621">"GREY"</item>
- <item msgid="2470141365136884119">"TEAL"</item>
- </string-array>
-</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 89150c9..ec6d42c 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Custom clock"</string>
<string name="clock_description" msgid="3563839327378948">"Pick a custom clock"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Change a custom clock"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Clock settings"</string>
+ <string name="clock_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_color" msgid="8081608867289156163">"Colour"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Left shortcut"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Right shortcut"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"None"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"To select \'<xliff:g id="APPNAME">%1$s</xliff:g>\' check the following"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Can\'t add shortcut"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Open <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"To add the <xliff:g id="APPNAME">%1$s</xliff:g> app as a shortcut, make sure"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Done"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Shortcuts"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"None"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notifications"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Show notifications on the lock screen"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Hide notifications on the lock screen"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"More options"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Text on lock screen, Now Playing and more"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"More lock screen options"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Now Playing and more"</string>
<string name="more_colors" msgid="3191071655353004591">"More colours"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primary dynamic theme"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primary neutral theme"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primary vibrant theme"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primary expressive theme"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Default colour option"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Colour option <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-en-rCA/clock_colors.xml b/res/values-en-rCA/clock_colors.xml
deleted file mode 100644
index da2322f..0000000
--- a/res/values-en-rCA/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"RED"</item>
- <item msgid="6882970855289978213">"ORANGE"</item>
- <item msgid="5560732545714984533">"YELLOW"</item>
- <item msgid="7246284817845434226">"GREEN"</item>
- <item msgid="6762906417604676001">"BLUE"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOLET"</item>
- <item msgid="6835537356703747621">"GRAY"</item>
- <item msgid="2470141365136884119">"TEAL"</item>
- </string-array>
-</resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 5cbf5b4..dedd508 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Custom Clock"</string>
<string name="clock_description" msgid="3563839327378948">"Pick a custom clock"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Change a custom clock"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Clock Settings"</string>
+ <string name="clock_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_color" msgid="8081608867289156163">"Color"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Left shortcut"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Right shortcut"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"None"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"To select `<xliff:g id="APPNAME">%1$s</xliff:g>` check the following"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Can\'t add shortcut"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Open <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"To add the <xliff:g id="APPNAME">%1$s</xliff:g> app as a shortcut, make sure"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Done"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Shortcuts"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"None"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notifications"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Show notifications on the lock screen"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Hide notifications on the lock screen"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"More options"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Text on lock screen, Now Playing, and more"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"More lock screen options"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Now Playing, and more"</string>
<string name="more_colors" msgid="3191071655353004591">"More Colors"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primary dynamic theme"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primary neutral theme"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primary vibrant theme"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primary expressive theme"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Default color option"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Color option <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-en-rGB/clock_colors.xml b/res/values-en-rGB/clock_colors.xml
deleted file mode 100644
index 31e40f5..0000000
--- a/res/values-en-rGB/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"RED"</item>
- <item msgid="6882970855289978213">"ORANGE"</item>
- <item msgid="5560732545714984533">"YELLOW"</item>
- <item msgid="7246284817845434226">"GREEN"</item>
- <item msgid="6762906417604676001">"BLUE"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOLET"</item>
- <item msgid="6835537356703747621">"GREY"</item>
- <item msgid="2470141365136884119">"TEAL"</item>
- </string-array>
-</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 89150c9..ec6d42c 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Custom clock"</string>
<string name="clock_description" msgid="3563839327378948">"Pick a custom clock"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Change a custom clock"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Clock settings"</string>
+ <string name="clock_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_color" msgid="8081608867289156163">"Colour"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Left shortcut"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Right shortcut"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"None"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"To select \'<xliff:g id="APPNAME">%1$s</xliff:g>\' check the following"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Can\'t add shortcut"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Open <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"To add the <xliff:g id="APPNAME">%1$s</xliff:g> app as a shortcut, make sure"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Done"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Shortcuts"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"None"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notifications"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Show notifications on the lock screen"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Hide notifications on the lock screen"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"More options"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Text on lock screen, Now Playing and more"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"More lock screen options"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Now Playing and more"</string>
<string name="more_colors" msgid="3191071655353004591">"More colours"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primary dynamic theme"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primary neutral theme"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primary vibrant theme"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primary expressive theme"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Default colour option"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Colour option <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-en-rIN/clock_colors.xml b/res/values-en-rIN/clock_colors.xml
deleted file mode 100644
index 31e40f5..0000000
--- a/res/values-en-rIN/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"RED"</item>
- <item msgid="6882970855289978213">"ORANGE"</item>
- <item msgid="5560732545714984533">"YELLOW"</item>
- <item msgid="7246284817845434226">"GREEN"</item>
- <item msgid="6762906417604676001">"BLUE"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOLET"</item>
- <item msgid="6835537356703747621">"GREY"</item>
- <item msgid="2470141365136884119">"TEAL"</item>
- </string-array>
-</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 89150c9..ec6d42c 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Custom clock"</string>
<string name="clock_description" msgid="3563839327378948">"Pick a custom clock"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Change a custom clock"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Clock settings"</string>
+ <string name="clock_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_color" msgid="8081608867289156163">"Colour"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Left shortcut"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Right shortcut"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"None"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"To select \'<xliff:g id="APPNAME">%1$s</xliff:g>\' check the following"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Can\'t add shortcut"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Open <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"To add the <xliff:g id="APPNAME">%1$s</xliff:g> app as a shortcut, make sure"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Done"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Shortcuts"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"None"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notifications"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Show notifications on the lock screen"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Hide notifications on the lock screen"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"More options"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Text on lock screen, Now Playing and more"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"More lock screen options"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Now Playing and more"</string>
<string name="more_colors" msgid="3191071655353004591">"More colours"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primary dynamic theme"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primary neutral theme"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primary vibrant theme"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primary expressive theme"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Default colour option"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Colour option <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-en-rXC/clock_colors.xml b/res/values-en-rXC/clock_colors.xml
deleted file mode 100644
index a06793b..0000000
--- a/res/values-en-rXC/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"RED"</item>
- <item msgid="6882970855289978213">"ORANGE"</item>
- <item msgid="5560732545714984533">"YELLOW"</item>
- <item msgid="7246284817845434226">"GREEN"</item>
- <item msgid="6762906417604676001">"BLUE"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOLET"</item>
- <item msgid="6835537356703747621">"GRAY"</item>
- <item msgid="2470141365136884119">"TEAL"</item>
- </string-array>
-</resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 4bbe879..b6f9bdb 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Custom Clock"</string>
<string name="clock_description" msgid="3563839327378948">"Pick a custom clock"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Change a custom clock"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Clock Settings"</string>
+ <string name="clock_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_color" msgid="8081608867289156163">"Color"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Left shortcut"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Right shortcut"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"None"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"To select `<xliff:g id="APPNAME">%1$s</xliff:g>` check the following"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Can\'t add shortcut"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Open <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"To add the <xliff:g id="APPNAME">%1$s</xliff:g> app as a shortcut, make sure"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Done"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Shortcuts"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"None"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notifications"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Show notifications on the lock screen"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Hide notifications on the lock screen"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"More options"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Text on lock screen, Now Playing, and more"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"More lock screen options"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Now Playing, and more"</string>
<string name="more_colors" msgid="3191071655353004591">"More Colors"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primary dynamic theme"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primary neutral theme"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primary vibrant theme"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primary expressive theme"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Default color option"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Color option <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-es-rUS/clock_colors.xml b/res/values-es-rUS/clock_colors.xml
deleted file mode 100644
index 6caf3b8..0000000
--- a/res/values-es-rUS/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ROJO"</item>
- <item msgid="6882970855289978213">"NARANJA"</item>
- <item msgid="5560732545714984533">"AMARILLO"</item>
- <item msgid="7246284817845434226">"VERDE"</item>
- <item msgid="6762906417604676001">"AZUL"</item>
- <item msgid="8974135109557664892">"ÍNDIGO"</item>
- <item msgid="786643557830463422">"VIOLETA"</item>
- <item msgid="6835537356703747621">"GRIS"</item>
- <item msgid="2470141365136884119">"VERDE AZULADO"</item>
- </string-array>
-</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index ade277f..96b10f4 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Reloj person."</string>
<string name="clock_description" msgid="3563839327378948">"Elige un reloj"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Cambia el reloj personalizado"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Config. del reloj"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Color, tamaño de reloj"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Reloj: color, tamaño"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Color"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Acceso izquierdo"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Acceso derecho"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Ninguno"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Para seleccionar \"<xliff:g id="APPNAME">%1$s</xliff:g>\", verifica lo siguiente"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"No se puede agregar el acceso directo"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Abrir <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Para agregar la app <xliff:g id="APPNAME">%1$s</xliff:g> como acceso directo, asegúrate que se cumplan los siguientes requisitos:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Listo"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Accesos directos"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ninguno"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notificaciones"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostrar las notificaciones en la pantalla de bloqueo"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Esconder las notificaciones en la pantalla de bloqueo"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Más opciones"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Texto en la pantalla de bloqueo, Está sonando y mucho más"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Opciones de pantalla de bloqueo"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privacidad, Está sonando y más"</string>
<string name="more_colors" msgid="3191071655353004591">"Más colores"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinámico principal"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema neutro principal"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema intenso principal"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema expresivo principal"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Opción de color predeterminada"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opción en color <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-es/clock_colors.xml b/res/values-es/clock_colors.xml
deleted file mode 100644
index b8607fb..0000000
--- a/res/values-es/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ROJO"</item>
- <item msgid="6882970855289978213">"NARANJA"</item>
- <item msgid="5560732545714984533">"AMARILLO"</item>
- <item msgid="7246284817845434226">"VERDE"</item>
- <item msgid="6762906417604676001">"AZUL"</item>
- <item msgid="8974135109557664892">"ÍNDIGO"</item>
- <item msgid="786643557830463422">"VIOLETA"</item>
- <item msgid="6835537356703747621">"GRIS"</item>
- <item msgid="2470141365136884119">"TURQUESA"</item>
- </string-array>
-</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 25c2b86..142fd86 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Reloj personalizado"</string>
<string name="clock_description" msgid="3563839327378948">"Elige un reloj personalizado"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Cambiar reloj personalizado"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Ajustes del reloj"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Color/tamaño (reloj)"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Color y tamaño del reloj"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Color"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Acceso izquierdo"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Acceso derecho"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Ninguno"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Para seleccionar <xliff:g id="APPNAME">%1$s</xliff:g>, comprueba lo siguiente"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"No puede añadir el acceso directo"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Abrir <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Para añadir la aplicación <xliff:g id="APPNAME">%1$s</xliff:g> como acceso directo:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Hecho"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Accesos directos"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ninguno"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notificaciones"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostrar notificaciones en la pantalla de bloqueo"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ocultar notificaciones en la pantalla de bloqueo"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Más opciones"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Texto en pantalla de bloqueo, Está Sonando y más"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Más opciones de pantalla de bloqueo"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privacidad, Está Sonando y más"</string>
<string name="more_colors" msgid="3191071655353004591">"Más colores"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinámico principal"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema neutro principal"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema intenso principal"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema expresivo principal"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Opción de color predeterminada"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opción de color <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-et/clock_colors.xml b/res/values-et/clock_colors.xml
deleted file mode 100644
index 7d73aa2..0000000
--- a/res/values-et/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"PUNANE"</item>
- <item msgid="6882970855289978213">"ORANŽ"</item>
- <item msgid="5560732545714984533">"KOLLANE"</item>
- <item msgid="7246284817845434226">"ROHELINE"</item>
- <item msgid="6762906417604676001">"SININE"</item>
- <item msgid="8974135109557664892">"INDIGOSININE"</item>
- <item msgid="786643557830463422">"VIOLETNE"</item>
- <item msgid="6835537356703747621">"HALL"</item>
- <item msgid="2470141365136884119">"SINAKASROHELINE"</item>
- </string-array>
-</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 4be5a22..091b714 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Kohandatud kell"</string>
<string name="clock_description" msgid="3563839327378948">"Kohandatud kell"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Kohandatud kella muutmine"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Kella seaded"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Kella värv/suurus"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Kella värv ja suurus"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Värv"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Vasak otsetee"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Parem otsetee"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Puudub"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Rakenduse „<xliff:g id="APPNAME">%1$s</xliff:g>“ valimiseks veenduge järgmises"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Otseteed ei saa lisada"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Ava <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Rakenduse <xliff:g id="APPNAME">%1$s</xliff:g> otsetee lisamiseks veenduge järgmises."</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Valmis"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Otseteed"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Pole"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Märguanded"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Kuva märguanded lukustuskuval"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Peida märguanded lukustuskuval"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Rohkem valikuid"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst lukustuskuval, Hetkel mängimas ja muud"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Rohkem lukustuskuva valikuid"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privaatsus, Hetkel mängimas ja muu"</string>
<string name="more_colors" msgid="3191071655353004591">"Rohkem värve"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Peamine dünaamiline teema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Peamine neutraalne teema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Peamine elav teema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Peamine ekspressiivne teema"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Vaikevärvi valik"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Värvivalik <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-eu/clock_colors.xml b/res/values-eu/clock_colors.xml
deleted file mode 100644
index 453cb8e..0000000
--- a/res/values-eu/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"GORRIA"</item>
- <item msgid="6882970855289978213">"LARANJA"</item>
- <item msgid="5560732545714984533">"HORIA"</item>
- <item msgid="7246284817845434226">"BERDEA"</item>
- <item msgid="6762906417604676001">"URDINA"</item>
- <item msgid="8974135109557664892">"INDIGOA"</item>
- <item msgid="786643557830463422">"BIOLETA"</item>
- <item msgid="6835537356703747621">"GRISA"</item>
- <item msgid="2470141365136884119">"ANILA"</item>
- </string-array>
-</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 90e3559..a6653f0 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Esfera pertsonalizatuak"</string>
<string name="clock_description" msgid="3563839327378948">"Hautatu esfera pertsonalizatu bat"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Aldatu esfera pertsonalizatua"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Erlojuaren ezarpenak"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Erlojuaren kolorea eta tamaina"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Erlojuaren kolorea eta tamaina"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Kolorea"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Ezkerreko lasterbidea"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Eskuineko lasterbidea"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Bat ere ez"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"<xliff:g id="APPNAME">%1$s</xliff:g> hautatzeko, egin hauek:"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Ezin da gehitu lasterbidea"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Ireki <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> aplikazioa lasterbide gisa gehitzeko, ziurtatu hauek betetzen direla:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Eginda"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Lasterbideak"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g> eta <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Bat ere ez"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Jakinarazpenak"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Erakutsi jakinarazpenak pantaila blokeatuan"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ezkutatu jakinarazpenak pantaila blokeatuan"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Aukera gehiago"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Testua pantaila blokeatuan, Orain erreproduzitzen eta abar"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Pantaila blokeatzeko aukera gehiago"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Pribatutasuna, Orain erreproduzitzen eta abar"</string>
<string name="more_colors" msgid="3191071655353004591">"Kolore gehiago"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Gai nagusi dinamikoa"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Gai nagusi neutroa"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Gai nagusi bizia"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Gai nagusi adierazgarria"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Kolore-aukera lehenetsia"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Kolore-aukera <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-fa/clock_colors.xml b/res/values-fa/clock_colors.xml
deleted file mode 100644
index e890d08..0000000
--- a/res/values-fa/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"قرمز"</item>
- <item msgid="6882970855289978213">"نارنجی"</item>
- <item msgid="5560732545714984533">"زرد"</item>
- <item msgid="7246284817845434226">"سبز"</item>
- <item msgid="6762906417604676001">"آبی"</item>
- <item msgid="8974135109557664892">"نیلی"</item>
- <item msgid="786643557830463422">"یاسی"</item>
- <item msgid="6835537356703747621">"خاکستری"</item>
- <item msgid="2470141365136884119">"سبز دودی"</item>
- </string-array>
-</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 94f3546..9674fe3 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"ساعت سفارشی"</string>
<string name="clock_description" msgid="3563839327378948">"انتخاب ساعت سفارشی"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"تغییر ساعت سفارشی"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"تنظیمات ساعت"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"اندازه و رنگ ساعت"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"اندازه و رنگ ساعت"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>، <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"رنگ"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"میانبر چپ"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"میانبر راست"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"هیچکدام"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"برای انتخاب «<xliff:g id="APPNAME">%1$s</xliff:g>»، مورد زیر را بررسی کنید"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"میانبر اضافه نشد"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"باز کردن <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"برای افزودن برنامه <xliff:g id="APPNAME">%1$s</xliff:g> بهعنوان میانبر، مطمئن شوید"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"تمام"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"میانبرها"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>، <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"هیچکدام"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"اعلانها"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"نمایش اعلانها در صفحه قفل"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"پنهان کردن اعلانها در صفحه قفل"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"گزینههای بیشتر"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"نوشتار صفحه قفل، درحال پخش، و موارد دیگر"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"گزینههای بیشتر برای صفحه قفل"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"«حریم خصوصی»، «درحال پخش»، و موارد دیگر"</string>
<string name="more_colors" msgid="3191071655353004591">"رنگهای بیشتر"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"زمینه پویای اصلی"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"زمینه خنثی اصلی"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"زمینه زنده اصلی"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"زمینه تأثیرگذار اصلی"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"گزینه رنگ پیشفرض"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"گزینه رنگ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-fi/clock_colors.xml b/res/values-fi/clock_colors.xml
deleted file mode 100644
index 4da60ae..0000000
--- a/res/values-fi/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"PUNAINEN"</item>
- <item msgid="6882970855289978213">"ORANSSI"</item>
- <item msgid="5560732545714984533">"KELTAINEN"</item>
- <item msgid="7246284817845434226">"VIHREÄ"</item>
- <item msgid="6762906417604676001">"SININEN"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOLETTI"</item>
- <item msgid="6835537356703747621">"HARMAA"</item>
- <item msgid="2470141365136884119">"TURKOOSI"</item>
- </string-array>
-</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 2d315cc..8f0d79d 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Oma kello"</string>
<string name="clock_description" msgid="3563839327378948">"Valitse kello"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Muuta omaa kelloa"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Kelloasetukset"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Kellon väri ja koko"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Kellon väri ja koko"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Väri"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Vasen pikakuvake"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Oikea pikakuvake"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"–"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Tarkista seuraavat, jotta \"<xliff:g id="APPNAME">%1$s</xliff:g>\" on valittavissa"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Pikanäppäintä ei voi lisätä"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Avaa <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Jos haluat, että <xliff:g id="APPNAME">%1$s</xliff:g> lisätään pikakuvakkeeksi, varmista nämä:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Valmis"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Pikakuvakkeet"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"–"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Ilmoitukset"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Näytä ilmoitukset lukitusnäytöllä"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Piilota lukitusnäytön ilmoitukset"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Lisäasetukset"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Lukitusnäytöllä näkyvä teksti, Musiikintunnistus ja muita"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Lisää valintoja lukitusnäytölle"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Yksityisyys, Musiikintunnistus ja muita"</string>
<string name="more_colors" msgid="3191071655353004591">"Lisää värejä"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Ensisijainen dynaaminen teema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Ensisijainen neutraali teema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Ensisijainen voimakas teema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Ensisijainen ekspressiivinen teema"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Oletusväri"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Värivaihtoehto: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-fr-rCA/clock_colors.xml b/res/values-fr-rCA/clock_colors.xml
deleted file mode 100644
index a02729a..0000000
--- a/res/values-fr-rCA/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ROUGE"</item>
- <item msgid="6882970855289978213">"ORANGE"</item>
- <item msgid="5560732545714984533">"JAUNE"</item>
- <item msgid="7246284817845434226">"VERT"</item>
- <item msgid="6762906417604676001">"BLEU"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOLET"</item>
- <item msgid="6835537356703747621">"GRIS"</item>
- <item msgid="2470141365136884119">"BLEU SARCELLE"</item>
- </string-array>
-</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 47a40a2..9805333 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Horloge personnalisée"</string>
<string name="clock_description" msgid="3563839327378948">"Choisissez une horloge personnalisée"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Modifiez une horloge personnalisée"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Param. horloge"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Couleur/taille"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Couleur/taille (horloge)"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Couleur"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Raccourci gauche"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Raccourci droit"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Aucun"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Pour sélectionner « <xliff:g id="APPNAME">%1$s</xliff:g> » vérifiez ce qui suit"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Impossible d\'ajouter le raccourci"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Ouvrir <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Pour ajouter l\'application <xliff:g id="APPNAME">%1$s</xliff:g> en tant que raccourci, assurez-vous"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"OK"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Raccourcis"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Aucun"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notifications"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Afficher les notifications sur l\'écran de verrouillage"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Masquez les notifications sur l\'écran de verrouillage"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Plus d\'options"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Texte sur l\'écran de verrouillage, En cours de lecture, etc."</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Options : écran de verrouillage"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Confidentialité, En cours de lecture, etc."</string>
<string name="more_colors" msgid="3191071655353004591">"Plus de couleurs"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Thème dynamique principal"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Thème neutre principal"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Thème vif principal"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Thème expressif principal"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Option de couleur par défaut"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Option de couleur <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-fr/clock_colors.xml b/res/values-fr/clock_colors.xml
deleted file mode 100644
index 6daf394..0000000
--- a/res/values-fr/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ROUGE"</item>
- <item msgid="6882970855289978213">"ORANGE"</item>
- <item msgid="5560732545714984533">"JAUNE"</item>
- <item msgid="7246284817845434226">"VERT"</item>
- <item msgid="6762906417604676001">"BLEU"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"MAUVE"</item>
- <item msgid="6835537356703747621">"GRIS"</item>
- <item msgid="2470141365136884119">"TURQUOISE"</item>
- </string-array>
-</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index cf97637..fc5f28e 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Cadran perso."</string>
<string name="clock_description" msgid="3563839327378948">"Choisir cadran"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Modifier un cadran personnalisé"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Paramètres Horloge"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Taille et couleur de l\'Horloge"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Taille et couleur de l\'horloge"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Couleur"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Raccourci gauche"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Raccourci droit"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Aucun"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Pour sélectionner <xliff:g id="APPNAME">%1$s</xliff:g>, vérifiez ce qui suit"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Impossible d\'ajouter un raccourci"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Ouvrir <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Pour ajouter l\'appli <xliff:g id="APPNAME">%1$s</xliff:g> comme raccourci, procédez aux vérifications suivantes"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"OK"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Raccourcis"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Aucun"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notifications"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Afficher les notifications sur l\'écran de verrouillage"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Masquer les notifications sur l\'écran de verrouillage"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Autres options"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Texte sur l\'écran de verrouillage, fonction En écoute etc."</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Plus d\'options écran verrouillage"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Confidentialité, En écoute et plus"</string>
<string name="more_colors" msgid="3191071655353004591">"Autres couleurs"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Thème dynamique primaire"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Thème neutre primaire"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Thème intense primaire"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Thème expressif direct"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Option de couleur par défaut"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Option de couleur <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-gl/clock_colors.xml b/res/values-gl/clock_colors.xml
deleted file mode 100644
index 5d9da17..0000000
--- a/res/values-gl/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"VERMELLO"</item>
- <item msgid="6882970855289978213">"LARANXA"</item>
- <item msgid="5560732545714984533">"AMARELO"</item>
- <item msgid="7246284817845434226">"VERDE"</item>
- <item msgid="6762906417604676001">"AZUL"</item>
- <item msgid="8974135109557664892">"ÍNDIGO"</item>
- <item msgid="786643557830463422">"VIOLETA"</item>
- <item msgid="6835537356703747621">"GRIS"</item>
- <item msgid="2470141365136884119">"VERDE AZULADO"</item>
- </string-array>
-</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 19b94fc..047fa31 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Reloxo person."</string>
<string name="clock_description" msgid="3563839327378948">"Elixe reloxo pers."</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Cambiar reloxo personalizado"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Configuración do reloxo"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Tamaño/cor (Reloxo)"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Tamaño/cor do reloxo"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Cor"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Atallo: Esquerda"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Atallo: Dereita"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Ningunha"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Para seleccionar <xliff:g id="APPNAME">%1$s</xliff:g>, comproba o seguinte"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Non se puido engadir o atallo"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Abrir <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Para engadir a aplicación <xliff:g id="APPNAME">%1$s</xliff:g> como atallo, asegúrate de que se cumpra o seguinte:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Feito"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Atallos"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ningún"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notificacións"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostrar notificacións na pantalla de bloqueo"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ocultar notificacións na pantalla de bloqueo"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Máis opcións"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Texto na pantalla de bloqueo, Está soando e moito máis"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Máis opcións da pantalla de bloqueo"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privacidade, Está soando e moito máis"</string>
<string name="more_colors" msgid="3191071655353004591">"Máis cores"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinámico con cores primarias"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema neutro con cores primarias"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema intenso con cores primarias"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema expresivo con cores primarias"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Opción de cor predeterminada"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opción de cor: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-gu/clock_colors.xml b/res/values-gu/clock_colors.xml
deleted file mode 100644
index 0818083..0000000
--- a/res/values-gu/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"લાલ"</item>
- <item msgid="6882970855289978213">"નારંગી"</item>
- <item msgid="5560732545714984533">"પીળો"</item>
- <item msgid="7246284817845434226">"લીલો"</item>
- <item msgid="6762906417604676001">"વાદળી"</item>
- <item msgid="8974135109557664892">"ઘેરો વાદળી રંગ"</item>
- <item msgid="786643557830463422">"જાંબલી"</item>
- <item msgid="6835537356703747621">"રાખોડી"</item>
- <item msgid="2470141365136884119">"ટીલ"</item>
- </string-array>
-</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 4f6db11..3dbb106 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"કસ્ટમ ઘડિયાળ"</string>
<string name="clock_description" msgid="3563839327378948">"કસ્ટમ ઘડિયાળ ચૂંટો"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"કસ્ટમ ઘડિયાળ બદલો"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"ઘડિયાળના સેટિંગ"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"ઘડિયાળનો રંગ અને કદ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ઘડિયાળનો રંગ અને કદ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"રંગ"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ડાબો શૉર્ટકટ"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"જમણો શૉર્ટકટ"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"એકપણ નહીં"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>`ને પસંદ કરવા માટે, નીચેની બાબત ચેક કરો"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"શૉર્ટકટ ઉમેરી શકતા નથી."</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ખોલો"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> ઍપને શૉર્ટકટ તરીકે ઉમેરવા માટે, આ બાબતોની ખાતરી કરો"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"થઈ ગયું"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"શૉર્ટકટ"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"એકપણ નહીં"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"નોટિફિકેશન"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"લૉક સ્ક્રીન પર નોટિફિકેશન બતાવો"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"લૉક સ્ક્રીન પર નોટિફિકેશન છુપાવો"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"વધુ વિકલ્પો"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"લૉક સ્ક્રીન પરની ટેક્સ્ટ, હમણાં વાગી રહ્યું છે અને બીજું ઘણું"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"લૉક સ્ક્રીનના વધુ વિકલ્પો"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"પ્રાઇવસી, હમણાં વાગી રહ્યું છે અને બીજું ઘણું"</string>
<string name="more_colors" msgid="3191071655353004591">"વધુ રંગો"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"પ્રાથિમક ડાયનૅમિક થીમ"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"પ્રાથમિક કુદરતી થીમ"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"પ્રાથિમક વાઇબ્રન્ટ થીમ"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"પ્રાથિમક અભિવ્યક્તપૂર્ણ થીમ"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"ડિફૉલ્ટ રંગનો વિકલ્પ"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"રંગનો વિકલ્પ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-h800dp/dimens.xml b/res/values-h800dp/dimens.xml
new file mode 100644
index 0000000..36d0d62
--- /dev/null
+++ b/res/values-h800dp/dimens.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<resources>
+ <!--
+ Dimension for clock translationY when swiping clock carousel in picker,
+ copied from sysui resources
+ -->
+ <dimen name="keyguard_large_clock_top_margin">-112dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/res/values-hi/clock_colors.xml b/res/values-hi/clock_colors.xml
deleted file mode 100644
index e613f33..0000000
--- a/res/values-hi/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"लाल"</item>
- <item msgid="6882970855289978213">"नारंगी"</item>
- <item msgid="5560732545714984533">"पीला"</item>
- <item msgid="7246284817845434226">"हरा"</item>
- <item msgid="6762906417604676001">"नीला"</item>
- <item msgid="8974135109557664892">"इंडिगो"</item>
- <item msgid="786643557830463422">"बैंगनी"</item>
- <item msgid="6835537356703747621">"स्लेटी"</item>
- <item msgid="2470141365136884119">"टील"</item>
- </string-array>
-</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 84df6ff..7d20aa0 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"घड़ी का आइकॉन"</string>
<string name="clock_description" msgid="3563839327378948">"घड़ी आइकॉन चुनें"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"पसंद के मुताबिक घड़ी का आइकॉन बदलें"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"घड़ी की सेटिंग"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"घड़ी का रंग और साइज़"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"घड़ी का रंग और साइज़"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"रंग"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"बायां शॉर्टकट"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"दायां शॉर्टकट"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"कोई नहीं"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` को चुनने के लिए, दिए गए निर्देशों का पालन करें"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"शॉर्टकट नहीं जोड़ा जा सकता"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> खोलें"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> ऐप्लिकेशन को शॉर्टकट के तौर पर जोड़ने के लिए, इन बातों का ध्यान रखें"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"हो गया"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"शॉर्टकट"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"कोई नहीं"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"सूचनाएं"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"लॉक स्क्रीन पर सूचनाएं दिखाएं"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"लॉक स्क्रीन पर सूचनाएं छिपाएं"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"ज़्यादा विकल्प"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"लॉक स्क्रीन पर टेक्स्ट जोड़ना, \'अभी चल रहा है\' सुविधा वगैरह"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"लॉक स्क्रीन के और विकल्प"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"निजता, \'अभी चल रहा है\' सुविधा, और अन्य सुविधा"</string>
<string name="more_colors" msgid="3191071655353004591">"कुछ और रंग"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"प्राइमरी डाइनैमिक थीम"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"प्राइमरी न्यूट्रल थीम"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"प्राइमरी वाइब्रेंट थीम"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"प्राइमरी एक्सप्रेसिव थीम"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"रंग का डिफ़ॉल्ट विकल्प"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"रंग का विकल्प <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-hr/clock_colors.xml b/res/values-hr/clock_colors.xml
deleted file mode 100644
index de6b751..0000000
--- a/res/values-hr/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"CRVENA"</item>
- <item msgid="6882970855289978213">"NARANČASTA"</item>
- <item msgid="5560732545714984533">"ŽUTA"</item>
- <item msgid="7246284817845434226">"ZELENA"</item>
- <item msgid="6762906417604676001">"PLAVA"</item>
- <item msgid="8974135109557664892">"MODROLJUBIČASTA"</item>
- <item msgid="786643557830463422">"LJUBIČASTA"</item>
- <item msgid="6835537356703747621">"SIVA"</item>
- <item msgid="2470141365136884119">"TIRKIZNOPLAVA"</item>
- </string-array>
-</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 4c1a27e..20e5d0b 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Prilagođeni sat"</string>
<string name="clock_description" msgid="3563839327378948">"Odaberite prilagođeni sat"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Promijenite prilagođeni sat"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Postavke sata"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Boja i veličina sata"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Boja i veličina sata"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Boja"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Lijevi prečac"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Desni prečac"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Ništa"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Da biste odabrali <xliff:g id="APPNAME">%1$s</xliff:g>, označite sljedeće"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Nije moguće dodati prečac"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Otvori <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Da biste aplikaciju <xliff:g id="APPNAME">%1$s</xliff:g> dodali kao prečac, učinite sljedeće"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Gotovo"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Prečaci"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ništa"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Obavijesti"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Prikaz obavijesti na zaključanom zaslonu"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skrivanje obavijesti na zaključanom zaslonu"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Više opcija"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst na zaključanom zaslonu, Upravo svira i još mnogo toga"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Više opcija zaključanog zaslona"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privatnost, Upravo svira i drugo"</string>
<string name="more_colors" msgid="3191071655353004591">"Više boja"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primarna dinamična tema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primarna neutralna tema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primarna vibrantna tema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primarna ekspresivna tema"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Zadana opcija boje"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opcija boje <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-hu/clock_colors.xml b/res/values-hu/clock_colors.xml
deleted file mode 100644
index cc869be..0000000
--- a/res/values-hu/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"PIROS"</item>
- <item msgid="6882970855289978213">"NARANCSSÁRGA"</item>
- <item msgid="5560732545714984533">"SÁRGA"</item>
- <item msgid="7246284817845434226">"ZÖLD"</item>
- <item msgid="6762906417604676001">"KÉK"</item>
- <item msgid="8974135109557664892">"INDIGÓKÉK"</item>
- <item msgid="786643557830463422">"IBOLYAKÉK"</item>
- <item msgid="6835537356703747621">"SZÜRKE"</item>
- <item msgid="2470141365136884119">"PÁVAKÉK"</item>
- </string-array>
-</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 55607b8..bf425e5 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Egyedi óra"</string>
<string name="clock_description" msgid="3563839327378948">"Egyedi óra választása"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Egyedi óra módosítása"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Óra beállításai"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Óra színe és mérete"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Óra színe & mérete"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Szín"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Bal parancsikon"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Jobb parancsikon"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Nincs"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"A(z) „<xliff:g id="APPNAME">%1$s</xliff:g>” kiválasztásához el kell végeznie a következőket"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Nem sikerült hozzáadni a gyorsparancsot."</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"A(z) <xliff:g id="APPNAME">%1$s</xliff:g> megnyitása"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Ha szeretné felvenni a(z) <xliff:g id="APPNAME">%1$s</xliff:g> alkalmazást parancsikonként, gondoskodjon a következőkről:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Kész"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Gyorsparancsok"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Nincs"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Értesítések"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Értesítések megjelenítése a lezárási képernyőn"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Értesítések elrejtése a lezárási képernyőn"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"További beállítások"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Szöveg a lezárási képernyőn, Now Playing és egyebek"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Más lezárásiképernyő-beállítások"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Adatvédelem, Now Playing és egyebek"</string>
<string name="more_colors" msgid="3191071655353004591">"További színek"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Elsődleges dinamikus téma"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Elsődleges semleges téma"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Elsődleges élénk téma"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Elsődleges kifejező téma"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Alapértelmezettként beállított szín"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Választható szín: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-hy/clock_colors.xml b/res/values-hy/clock_colors.xml
deleted file mode 100644
index 15366a7..0000000
--- a/res/values-hy/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ԿԱՐՄԻՐ"</item>
- <item msgid="6882970855289978213">"ՆԱՐՆՋԱԳՈՒՅՆ"</item>
- <item msgid="5560732545714984533">"ԴԵՂԻՆ"</item>
- <item msgid="7246284817845434226">"ԿԱՆԱՉ"</item>
- <item msgid="6762906417604676001">"ԿԱՊՈՒՅՏ"</item>
- <item msgid="8974135109557664892">"ԻՆԴԻԳՈ"</item>
- <item msgid="786643557830463422">"ՄԱՆՈՒՇԱԿԱԳՈՒՅՆ"</item>
- <item msgid="6835537356703747621">"ՄՈԽՐԱԳՈՒՅՆ"</item>
- <item msgid="2470141365136884119">"ՓԻՐՈՒԶԱԳՈՒՅՆ"</item>
- </string-array>
-</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 0523dff..809b828 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Հատուկ թվատախտակ"</string>
<string name="clock_description" msgid="3563839327378948">"Ընտրեք թվատախտակ"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Փոխեք հատուկ թվատախտակը"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Կարգավորումներ"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Գույնը և չափսը"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Գույնը և չափսը"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Գույն"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Ձախ դյուրանցում"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Աջ դյուրանցում"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Ոչ մեկը"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"«<xliff:g id="APPNAME">%1$s</xliff:g>» հավելվածն ընտրելու համար կատարեք հետևյալը"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Չհաջողվեց ավելացնել դյուրանցում"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Բացել <xliff:g id="APPNAME">%1$s</xliff:g> հավելվածը"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> հավելվածի դյուրանցումն ավելացնելու համար համոզվեք, որ՝"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Պատրաստ է"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Դյուրանցումներ"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ընտրված չէ"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Ծանուցումներ"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Ցուցադրել ծանուցումները կողպէկրանին"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Թաքցնել ծանուցումները կողպէկրանին"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Այլ ընտրանքներ"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Տեքստ կողպէկրանին, Այժմ հնչում է և այլ գործառույթներ"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Կողպէկրանի այլ կարգավորումներ"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Գաղտնիություն, «Այժմ հնչում է» և ավելին"</string>
<string name="more_colors" msgid="3191071655353004591">"Այլ գույներ"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Հիմնական դինամիկ թեմա"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Հիմնական չեզոք թեմա"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Հիմնական գունեղ թեմա"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Հիմնական արտահայտիչ թեմա"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Գույնի կանխադրված տարբերակ"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Գույնի տարբերակ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-in/clock_colors.xml b/res/values-in/clock_colors.xml
deleted file mode 100644
index f3b4693..0000000
--- a/res/values-in/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"MERAH"</item>
- <item msgid="6882970855289978213">"ORANYE"</item>
- <item msgid="5560732545714984533">"KUNING"</item>
- <item msgid="7246284817845434226">"HIJAU"</item>
- <item msgid="6762906417604676001">"BIRU"</item>
- <item msgid="8974135109557664892">"NILA"</item>
- <item msgid="786643557830463422">"VIOLET"</item>
- <item msgid="6835537356703747621">"ABU-ABU"</item>
- <item msgid="2470141365136884119">"HIJAU KEBIRUAN"</item>
- </string-array>
-</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 7205ccc..61040e4 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Jam Kustom"</string>
<string name="clock_description" msgid="3563839327378948">"Pilih jam kustom"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Ubah jam kustom"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Setelan Jam"</string>
+ <string name="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_color" msgid="8081608867289156163">"Warna"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Pintasan kiri"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Pintasan kanan"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Tidak ada"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Untuk memilih `<xliff:g id="APPNAME">%1$s</xliff:g>`, periksa hal berikut"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Tidak dapat menambahkan pintasan"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Buka <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Untuk menambahkan aplikasi <xliff:g id="APPNAME">%1$s</xliff:g> sebagai pintasan, pastikan"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Selesai"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Pintasan"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Tidak ada"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notifikasi"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Tampilkan notifikasi di layar kunci"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Sembunyikan notifikasi di layar kunci"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Opsi lainnya"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Teks di layar kunci, Now Playing, dan lainnya"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Opsi layar kunci lainnya"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privasi, Now Playing, dan lainnya"</string>
<string name="more_colors" msgid="3191071655353004591">"Warna Lainnya"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinamis utama"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema netral utama"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema cerah utama"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema ekspresif utama"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Opsi warna default"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opsi warna <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-is/clock_colors.xml b/res/values-is/clock_colors.xml
deleted file mode 100644
index c7f0a59..0000000
--- a/res/values-is/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"RAUÐUR"</item>
- <item msgid="6882970855289978213">"APPELSÍNUGULUR"</item>
- <item msgid="5560732545714984533">"GULUR"</item>
- <item msgid="7246284817845434226">"GRÆNN"</item>
- <item msgid="6762906417604676001">"BLÁR"</item>
- <item msgid="8974135109557664892">"DIMMFJÓLUBLÁR"</item>
- <item msgid="786643557830463422">"FJÓLUBLÁR"</item>
- <item msgid="6835537356703747621">"GRÁR"</item>
- <item msgid="2470141365136884119">"GRÆNBLÁR"</item>
- </string-array>
-</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 1c6c951..0647ae8 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Sérsniðin klukka"</string>
<string name="clock_description" msgid="3563839327378948">"Veldu sérsniðna klukku"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Breyta sérsniðinni klukku"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Klukkustillingar"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Klukkustærð og litur"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Klukkustærð og litur"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Litur"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Vinstri flýtilykill"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Hægri flýtilykill"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Ekkert"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Til að velja „<xliff:g id="APPNAME">%1$s</xliff:g>“ skaltu athuga eftirfarandi"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Ekki tókst að bæta flýtileið við"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Opna <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Til að bæta forritinu <xliff:g id="APPNAME">%1$s</xliff:g> við sem flýtileið skaltu ganga úr skugga um að"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Lokið"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Flýtileiðir"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ekkert"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Tilkynningar"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Sýna tilkynningar á lásskjánum"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Fela tilkynningar á lásskjánum"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Fleiri valkostir"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Texti á lásskjá, „Í spilun“ og fleira"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Fleiri valkostir fyrir lásskjá"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Persónuvernd, í spilun og fleira"</string>
<string name="more_colors" msgid="3191071655353004591">"Fleiri litir"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Kvikt aðalþema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Hlutlaust aðalþema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Líflegt aðalþema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tjáningarríkt aðalþema"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Sjálfgefinn litavalkostur"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Litavalkostur <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-it/clock_colors.xml b/res/values-it/clock_colors.xml
deleted file mode 100644
index 6e9505c..0000000
--- a/res/values-it/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ROSSO"</item>
- <item msgid="6882970855289978213">"ARANCIONE"</item>
- <item msgid="5560732545714984533">"GIALLO"</item>
- <item msgid="7246284817845434226">"VERDE"</item>
- <item msgid="6762906417604676001">"BLU"</item>
- <item msgid="8974135109557664892">"INDACO"</item>
- <item msgid="786643557830463422">"VIOLA"</item>
- <item msgid="6835537356703747621">"GRIGIO"</item>
- <item msgid="2470141365136884119">"VERDE ACQUA"</item>
- </string-array>
-</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 52c16f0..b7fce4c 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Orologio personalizzato"</string>
<string name="clock_description" msgid="3563839327378948">"Scegli un orologio personalizzato"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Modifica un orologio personalizzato"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Impostazioni orologio"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Colore/dim. orologio"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Colore e dimensioni orologio"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Colore"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Scorciatoia sinistra"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Scorciatoia destra"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Nessuna"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Per poter selezionare \"<xliff:g id="APPNAME">%1$s</xliff:g>\", devi controllare quanto segue:"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Impossibile aggiungere la scorciatoia"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Apri <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Per aggiungere l\'app <xliff:g id="APPNAME">%1$s</xliff:g> come scorciatoia, assicurati che:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Fine"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Scorciatoie"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Nessuna"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notifiche"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostra le notifiche sulla schermata di blocco"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Nascondi le notifiche sulla schermata di blocco"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Altre opzioni"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Testo su schermata di blocco, Now Playing e altro"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Altre opzioni per la schermata di blocco"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Now Playing e altro"</string>
<string name="more_colors" msgid="3191071655353004591">"Altri colori"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinamico primario"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema naturale primario"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema intenso primario"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema espressivo primario"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Opzione colore predefinita"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opzione colore <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-iw/clock_colors.xml b/res/values-iw/clock_colors.xml
deleted file mode 100644
index 36c8783..0000000
--- a/res/values-iw/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"אדום"</item>
- <item msgid="6882970855289978213">"כתום"</item>
- <item msgid="5560732545714984533">"צהוב"</item>
- <item msgid="7246284817845434226">"ירוק"</item>
- <item msgid="6762906417604676001">"כחול"</item>
- <item msgid="8974135109557664892">"אינדיגו"</item>
- <item msgid="786643557830463422">"סגול"</item>
- <item msgid="6835537356703747621">"אפור"</item>
- <item msgid="2470141365136884119">"כחול-ירקרק"</item>
- </string-array>
-</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index b4afd18..f2f7053 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"שעון מותאם אישית"</string>
<string name="clock_description" msgid="3563839327378948">"בחירת שעון מותאם אישית"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"שינוי שעון מותאם אישית"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"הגדרות השעון"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"הצבע והגודל של השעון"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"הצבע והגודל של השעון"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"צבע"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"קיצור דרך שמאלי"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"קיצור דרך ימני"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"ללא"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"כדי לבחור באפליקציה <xliff:g id="APPNAME">%1$s</xliff:g> צריך לסמן את האפשרויות הבאות"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"לא ניתן להוסיף את קיצור הדרך"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"פתיחת <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"כדי להוסיף את האפליקציה <xliff:g id="APPNAME">%1$s</xliff:g> כקיצור דרך, צריך לוודא"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"סיום"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"קיצורי דרך"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"אין"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"התראות"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"הצגת ההתראות במסך הנעילה"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"הסתרת ההתראות במסך הנעילה"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"אפשרויות נוספות"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"טקסט שמופיע במסך הנעילה, \'מה שומעים עכשיו?\' ועוד"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"עוד אפשרויות של מסך הנעילה"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"פרטיות, \'מה שומעים עכשיו?\' ועוד"</string>
<string name="more_colors" msgid="3191071655353004591">"צבעים נוספים"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"עיצוב ראשי דינמי"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"עיצוב ראשי נייטרלי"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"עיצוב ראשי בצבעים עזים"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"עיצוב ראשי אקספרסיבי"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"אפשרות הצבע שמוגדרת כברירת מחדל"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"אפשרות צבע <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-ja/clock_colors.xml b/res/values-ja/clock_colors.xml
deleted file mode 100644
index 3bdde56..0000000
--- a/res/values-ja/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"赤"</item>
- <item msgid="6882970855289978213">"オレンジ"</item>
- <item msgid="5560732545714984533">"黄"</item>
- <item msgid="7246284817845434226">"緑"</item>
- <item msgid="6762906417604676001">"青"</item>
- <item msgid="8974135109557664892">"インディゴ"</item>
- <item msgid="786643557830463422">"バイオレット"</item>
- <item msgid="6835537356703747621">"グレー"</item>
- <item msgid="2470141365136884119">"ティール"</item>
- </string-array>
-</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 96c0d5c..1eab4c3 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"カスタム文字盤"</string>
<string name="clock_description" msgid="3563839327378948">"文字盤の選択"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"文字盤の変更"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"時計の設定"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"時計の色とサイズ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"時計の色とサイズ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>、<xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"色"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"左ショートカット"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"右ショートカット"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"なし"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"「<xliff:g id="APPNAME">%1$s</xliff:g>」を選択するには、以下を確認します"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"ショートカットを追加できません"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> を開きます。"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> アプリをショートカットとして追加するための手順"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"完了"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ショートカット"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>、<xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"なし"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"通知"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"ロック画面に通知を表示する"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ロック画面では通知を非表示にします"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"その他のオプション"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"ロック画面のテキスト、「この曲なに?」など"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"ロック画面の詳細オプション"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"プライバシー、この曲なに?、その他"</string>
<string name="more_colors" msgid="3191071655353004591">"他の色"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"メインの動的なテーマ"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"メインの中間テーマ"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"メインの鮮やかなテーマ"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"メインの表現力豊かなテーマ"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"デフォルトのカラー オプション"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"カラー オプション <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-ka/clock_colors.xml b/res/values-ka/clock_colors.xml
deleted file mode 100644
index dd13e10..0000000
--- a/res/values-ka/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"წითელი"</item>
- <item msgid="6882970855289978213">"ნარინჯისფერი"</item>
- <item msgid="5560732545714984533">"ყვითელი"</item>
- <item msgid="7246284817845434226">"მწვანე"</item>
- <item msgid="6762906417604676001">"ლურჯი"</item>
- <item msgid="8974135109557664892">"მუქი ლურჯი"</item>
- <item msgid="786643557830463422">"იისფერი"</item>
- <item msgid="6835537356703747621">"რუხი"</item>
- <item msgid="2470141365136884119">"ზურმუხტისფერი"</item>
- </string-array>
-</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 77cc3e2..c0f31d3 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"მორგებული საათი"</string>
<string name="clock_description" msgid="3563839327378948">"აირჩიეთ მორგებული საათი"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"შეცვალეთ მორგებული საათი"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"საათის პარამეტრები"</string>
+ <string name="clock_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_color" msgid="8081608867289156163">"ფერი"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"მარცხენა მალსახმობი"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"მარჯვენა მალსახმობი"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"არცერთი"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"„<xliff:g id="APPNAME">%1$s</xliff:g>“-ის ასარჩევად შეამოწმეთ შემდეგი"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"მალსახმობის დამატება შეუძლებელია"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g>-ის გახსნა"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> აპი რომ მალსახმობის სახით დაამატოთ, დარწმუნდით, რომ"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"მზადაა"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"მალსახმობები"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"არცერთი"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"შეტყობინებები"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"შეტყობინებების ჩვენება ჩაკეტილ ეკრანზე"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"შეტყობინებების დამალვა ჩაკეტილ ეკრანზე"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"სხვა ვარიანტები"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"ტექსტი ჩაკეტილ ეკრანზე, ახლა უკრავს და სხვა"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"ჩაკეტილი ეკრანის სხვა პარამეტრები"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"კონფიდენციალურობა, რა უკრავს და სხვა"</string>
<string name="more_colors" msgid="3191071655353004591">"მეტი ფერი"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ძირითადი დინამიური თემა"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ძირითადი ნეიტრალური თემა"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ძირითადი ცოცხალი თემა"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ძირითადი ექსპრესიული თემა"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"ფერის ნაგულისხმევი ვარიანტი"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"ფერის ვარიანტი <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-kk/clock_colors.xml b/res/values-kk/clock_colors.xml
deleted file mode 100644
index b8abce4..0000000
--- a/res/values-kk/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ҚЫЗЫЛ"</item>
- <item msgid="6882970855289978213">"ҚЫЗҒЫЛТ САРЫ"</item>
- <item msgid="5560732545714984533">"САРЫ"</item>
- <item msgid="7246284817845434226">"ЖАСЫЛ"</item>
- <item msgid="6762906417604676001">"КӨК"</item>
- <item msgid="8974135109557664892">"ИНДИГО"</item>
- <item msgid="786643557830463422">"КҮЛГІН"</item>
- <item msgid="6835537356703747621">"СҰР"</item>
- <item msgid="2470141365136884119">"КӨКШІЛ ЖАСЫЛ"</item>
- </string-array>
-</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 2a6b1dc..37b3005 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Арнаулы сағат"</string>
<string name="clock_description" msgid="3563839327378948">"Арнаулы сағатты таңдау"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Арнаулы сағатты өзгерту"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Сағат параметрі"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Сағат түсі, көлемі"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Сағаттың түсі, өлшемі"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Түс"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Сол жақ жылдам пәрмен"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Оң жақ жылдам пәрмен"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Жоқ"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"\"<xliff:g id="APPNAME">%1$s</xliff:g>\" қолданбасын таңдау үшін мынаны орындаңыз:"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Таңбаша қосу мүмкін емес"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> қолданбасын ашу"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> қолданбасын таңбаша ретінде қосу үшін келесі әрекеттерді орындауды ұмытпаңыз:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Дайын"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Жылдам пәрмендер"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ешқандай"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Хабарландырулар"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Құлып экранында хабарландыруларды көрсету"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Құлып экранында хабарландыруларды жасыру"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Қосымша опциялар"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Құлыптаулы экранда мәтіндік хабар жазу, Now Playing және т.б."</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Құлып экранының басқа опциялары"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Құпиялық, Now Playing және басқа функциялар"</string>
<string name="more_colors" msgid="3191071655353004591">"Қосымша түстер"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Негізгі динамикалық тақырып"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Негізгі бейтарап тақырып"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Негізгі қанық тақырып"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Негізгі бейнелі тақырып"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Әдепкі түс опциясы"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g> түс опциясы"</string>
</resources>
diff --git a/res/values-km/clock_colors.xml b/res/values-km/clock_colors.xml
deleted file mode 100644
index 25bc604..0000000
--- a/res/values-km/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ក្រហម"</item>
- <item msgid="6882970855289978213">"ទឹកក្រូច"</item>
- <item msgid="5560732545714984533">"លឿង"</item>
- <item msgid="7246284817845434226">"បៃតង"</item>
- <item msgid="6762906417604676001">"ខៀវ"</item>
- <item msgid="8974135109557664892">"ទឹកប៊ិក"</item>
- <item msgid="786643557830463422">"ត្របែកព្រៃ"</item>
- <item msgid="6835537356703747621">"ប្រផេះ"</item>
- <item msgid="2470141365136884119">"បៃតងចាស់"</item>
- </string-array>
-</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 4c7c4ca..c51d363 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"នាឡិកាផ្ទាល់ខ្លួន"</string>
<string name="clock_description" msgid="3563839327378948">"ជ្រើសរើសនាឡិកាផ្ទាល់ខ្លួន"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"ប្ដូរនាឡិកាផ្ទាល់ខ្លួន"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"ការកំណត់នាឡិកា"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"ពណ៌ និងទំហំនាឡិកា"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ពណ៌ និងទំហំនាឡិកា"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"ពណ៌"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ផ្លូវកាត់ខាងឆ្វេង"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ផ្លូវកាត់ខាងស្តាំ"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"គ្មាន"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"ដើម្បីជ្រើសរើស `<xliff:g id="APPNAME">%1$s</xliff:g>` សូមពិនិត្យមើលខាងក្រោម"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"មិនអាចបញ្ចូលផ្លូវកាត់បានទេ"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"បើក <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"ដើម្បីបញ្ចូលកម្មវិធី <xliff:g id="APPNAME">%1$s</xliff:g> ជាផ្លូវកាត់ សូមប្រាកដថា"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"រួចរាល់"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ផ្លូវកាត់"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"គ្មាន"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"ការជូនដំណឹង"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"បង្ហាញការជូនដំណឹងនៅលើអេក្រង់ចាក់សោ"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"លាក់ការជូនដំណឹងនៅលើអេក្រង់ចាក់សោ"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"ជម្រើសច្រើនទៀត"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"អក្សរនៅលើអេក្រង់ចាក់សោ, Now Playing និងអ្វីៗជាច្រើនទៀត"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"ជម្រើសអេក្រង់ចាក់សោច្រើនទៀត"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"ឯកជនភាព, Now Playing និងអ្វីៗច្រើនទៀត"</string>
<string name="more_colors" msgid="3191071655353004591">"ពណ៌ច្រើនទៀត"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ទម្រង់រចនាបែបឌីណាមិកចម្បង"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ទម្រង់រចនាបែបធម្មតាចម្បង"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ទម្រង់រចនាបែបរស់រវើកចម្បង"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ទម្រង់រចនាបែបបង្ហាញចម្បង"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"ជម្រើសពណ៌លំនាំដើម"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"ជម្រើសពណ៌ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-kn/clock_colors.xml b/res/values-kn/clock_colors.xml
deleted file mode 100644
index 775db7f..0000000
--- a/res/values-kn/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ಕೆಂಪು"</item>
- <item msgid="6882970855289978213">"ಕಿತ್ತಳೆ"</item>
- <item msgid="5560732545714984533">"ಹಳದಿ"</item>
- <item msgid="7246284817845434226">"ಹಸಿರು"</item>
- <item msgid="6762906417604676001">"ನೀಲಿ"</item>
- <item msgid="8974135109557664892">"ಇಂಡಿಗೊ"</item>
- <item msgid="786643557830463422">"ನೇರಳೆ"</item>
- <item msgid="6835537356703747621">"ಬೂದು"</item>
- <item msgid="2470141365136884119">"ಟೀಲ್"</item>
- </string-array>
-</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 0432b87..f7db142 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"ಕಸ್ಟಮ್ ಗಡಿಯಾರ"</string>
<string name="clock_description" msgid="3563839327378948">"ಕಸ್ಟಮ್ ವಾಚ್ ಪಿಕ್"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"ಕಸ್ಟಮ್ ಗಡಿಯಾರ ಬದಲಿಸಿ"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"ಗಡಿಯಾರ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"ಗಡಿಯಾರದ ಬಣ್ಣ, ಗಾತ್ರ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ಗಡಿಯಾರದ ಬಣ್ಣ, ಗಾತ್ರ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"ಬಣ್ಣ"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ಎಡ ಶಾರ್ಟ್ಕಟ್"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ಬಲ ಶಾರ್ಟ್ಕಟ್"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"ಯಾವುದೂ ಅಲ್ಲ"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` ಅನ್ನು ಆಯ್ಕೆಮಾಡಲು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಗುರುತು ಮಾಡಿ"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"ಶಾರ್ಟ್ಕಟ್ ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ಅನ್ನು ತೆರೆಯಿರಿ"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> ಆ್ಯಪ್ ಅನ್ನು ಶಾರ್ಟ್ಕಟ್ ಆಗಿ ಸೇರಿಸಲು ಕೆಳಗಿನವುಗಳನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ಮುಗಿದಿದೆ"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ಶಾರ್ಟ್ಕಟ್ಗಳು"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ಯಾವುದೂ ಅಲ್ಲ"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"ಅಧಿಸೂಚನೆಗಳು"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"ಲಾಕ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸಿ"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ಲಾಕ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ಮರೆಮಾಡಿ"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳು"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"ಲಾಕ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿನ ಪಠ್ಯ, Now Playing ಮತ್ತು ಇನ್ನಷ್ಟು"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"ಇನ್ನಷ್ಟು ಲಾಕ್ ಸ್ಕ್ರೀನ್ ಆಯ್ಕೆಗಳು"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"ಗೌಪ್ಯತೆ, Now Playing ಮತ್ತು ಇನ್ನಷ್ಟು"</string>
<string name="more_colors" msgid="3191071655353004591">"ಇನ್ನಷ್ಟು ಬಣ್ಣಗಳು"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ಪ್ರಾಥಮಿಕ ಡೈನಾಮಿಕ್ ಥೀಮ್"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ಪ್ರಾಥಮಿಕ ತಟಸ್ಥ ಥೀಮ್"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ಪ್ರಾಥಮಿಕ ವೈಬ್ರೆಂಟ್ ಥೀಮ್"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ಪ್ರಾಥಮಿಕ ಅಭಿವ್ಯಕ್ತಿಶೀಲ ಥೀಮ್"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"ಡೀಫಾಲ್ಟ್ ಬಣ್ಣದ ಆಯ್ಕೆ"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"ಬಣ್ಣದ ಆಯ್ಕೆ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-ko/clock_colors.xml b/res/values-ko/clock_colors.xml
deleted file mode 100644
index 2b596c8..0000000
--- a/res/values-ko/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"빨간색"</item>
- <item msgid="6882970855289978213">"주황색"</item>
- <item msgid="5560732545714984533">"노란색"</item>
- <item msgid="7246284817845434226">"초록색"</item>
- <item msgid="6762906417604676001">"파란색"</item>
- <item msgid="8974135109557664892">"인디고"</item>
- <item msgid="786643557830463422">"보라색"</item>
- <item msgid="6835537356703747621">"회색"</item>
- <item msgid="2470141365136884119">"청록색"</item>
- </string-array>
-</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 09cfb14..05ad2f3 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"맞춤 시계"</string>
<string name="clock_description" msgid="3563839327378948">"맞춤 시계 선택"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"맞춤 시계 변경"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"시계 설정"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"시계 색상 및 크기"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"시계 색상 및 크기"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"색상"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"왼쪽 바로가기"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"오른쪽 바로가기"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"없음"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` 앱을 선택하려면 다음을 선택하세요"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"단축키를 추가할 수 없음"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> 열기"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> 앱을 바로가기로 추가하려면 다음을 확인하세요."</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"완료"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"단축키"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"없음"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"알림"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"잠금 화면에 알림 표시"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"잠금 화면에서 알림 숨기기"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"옵션 더보기"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"잠금 화면에 표시되는 텍스트, Now Playing, 등"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"잠금 화면 옵션 더보기"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"개인 정보 보호, Now Playing 등"</string>
<string name="more_colors" msgid="3191071655353004591">"색상 더보기"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"기본 동적 테마"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"기본 보통 테마"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"기본 활기 테마"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"기본 표현 테마"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"기본 색상 옵션"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g> 색상 옵션"</string>
</resources>
diff --git a/res/values-ky/clock_colors.xml b/res/values-ky/clock_colors.xml
deleted file mode 100644
index 06d711c..0000000
--- a/res/values-ky/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"КЫЗЫЛ"</item>
- <item msgid="6882970855289978213">"КЫЗГЫЛТ САРЫ"</item>
- <item msgid="5560732545714984533">"САРЫ"</item>
- <item msgid="7246284817845434226">"ЖАШЫЛ"</item>
- <item msgid="6762906417604676001">"КӨК"</item>
- <item msgid="8974135109557664892">"ИНДИГО"</item>
- <item msgid="786643557830463422">"КЫЗГЫЛТ КӨК"</item>
- <item msgid="6835537356703747621">"БОЗ"</item>
- <item msgid="2470141365136884119">"КӨГҮШ ЖАШЫЛ"</item>
- </string-array>
-</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 3b0dcab..c7911c7 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Жеке саат"</string>
<string name="clock_description" msgid="3563839327378948">"Жеке саатты тандоо"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Жеке саатты өзгөртүү"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Сааттын параметрлери"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Сааттын түсү, өлчөмү"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Сааттын түсү, өлчөмү"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Түс"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Сол ыкчам баскыч"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Оң ыкчам баскыч"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Жок"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"\"<xliff:g id="APPNAME">%1$s</xliff:g>\" колдонмосун тандоо үчүн төмөнкүлөрдү аткарыңыз:"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Ыкчам баскыч кошулбай жатат"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ачуу"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> колдонмосун ыкчам баскыч катары кошуу үчүн төмөнкүлөрдү аткарыңыз:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Бүттү"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Ыкчам баскычтар"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Жок"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Билдирмелер"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Билдирмелерди кулпуланган экранда көрсөтүү"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Билдирмелерди кулпуланган экранда жашыруу"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Башка параметрлер"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Кулпу экранындагы текст, \"Эмне ойноп жатат?\" жана башка нерселер"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Кулпуланган экран параметрлери"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Купуялык, Эмне ойноп жатат? жана башкалар"</string>
<string name="more_colors" msgid="3191071655353004591">"Дагы түстөр"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Негизги динамикалык тема"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Негизги нейтралдуу тема"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Негизги каныккан тема"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Негизги ачык тема"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Демейки түс варианты"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g> түс варианты"</string>
</resources>
diff --git a/res/values-lo/clock_colors.xml b/res/values-lo/clock_colors.xml
deleted file mode 100644
index 857c2b0..0000000
--- a/res/values-lo/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ສີແດງ"</item>
- <item msgid="6882970855289978213">"ສີສົ້ມ"</item>
- <item msgid="5560732545714984533">"ສີເຫຼືອງ"</item>
- <item msgid="7246284817845434226">"ສີຂຽວ"</item>
- <item msgid="6762906417604676001">"ສີຟ້າ"</item>
- <item msgid="8974135109557664892">"ສີຄາມ"</item>
- <item msgid="786643557830463422">"ສີມ່ວງ"</item>
- <item msgid="6835537356703747621">"ສີເທົາ"</item>
- <item msgid="2470141365136884119">"ສີຟ້າອົມຂຽວ"</item>
- </string-array>
-</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 41e6e00..bda54b3 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"ໂມງທີ່ກຳນົດເອງ"</string>
<string name="clock_description" msgid="3563839327378948">"ເລືອກໂມງກຳນົດເອງ"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"ປ່ຽນໂມງກຳນົດເອງ"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"ການຕັ້ງຄ່າໂມງ"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"ສີ ແລະ ຂະໜາດໂມງ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ສີ ແລະ ຂະໜາດໂມງ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"ສີ"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ທາງລັດຊ້າຍ"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ທາງລັດຂວາ"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"ບໍ່ມີ"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"ເພື່ອເລືອກ `<xliff:g id="APPNAME">%1$s</xliff:g>` ກະລຸນາກວດສອບສິ່ງຕໍ່ໄປນີ້"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"ບໍ່ສາມາດເພີ່ມທາງລັດໄດ້"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"ເປີດ <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"ເພື່ອເພີ່ມແອັບ <xliff:g id="APPNAME">%1$s</xliff:g> ເປັນທາງລັດ, ກະລຸນາກວດສອບໃຫ້ແນ່ໃຈວ່າ"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ແລ້ວໆ"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ທາງລັດ"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ບໍ່ມີ"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"ການແຈ້ງເຕືອນ"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"ສະແດງການແຈ້ງເຕືອນຢູ່ໜ້າຈໍລັອກ"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ເຊື່ອງການແຈ້ງເຕືອນຢູ່ໜ້າຈໍລັອກ"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"ຕົວເລືອກເພີ່ມເຕີມ"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"ຂໍ້ຄວາມຢູ່ໜ້າຈໍລັອກ, Now Playing ແລະ ອື່ນໆ"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"ຕົວເລືອກໜ້າຈໍລັອກເພີ່ມເຕີມ"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"ຄວາມເປັນສ່ວນຕົວ, Now Playing ແລະ ອື່ນໆ"</string>
<string name="more_colors" msgid="3191071655353004591">"ສີເພີ່ມເຕີມ"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ຮູບແບບສີສັນຫຼັກແບບໄດນາມິກ"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ຮູບແບບສີສັນຫຼັກແບບໃຊ້ສີໂທນກາງ"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ຮູບແບບສີສັນຫຼັກແບບສີສັນສົດໃສ"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ຮູບແບບສີສັນຫຼັກແບບຊັດເຈນ"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"ຕົວເລືອກສີຄ່າເລີ່ມຕົ້ນ"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"ຕົວເລືອກສີ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-lt/clock_colors.xml b/res/values-lt/clock_colors.xml
deleted file mode 100644
index 4e30d75..0000000
--- a/res/values-lt/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"RAUDONA"</item>
- <item msgid="6882970855289978213">"ORANŽINĖ"</item>
- <item msgid="5560732545714984533">"GELTONA"</item>
- <item msgid="7246284817845434226">"ŽALIA"</item>
- <item msgid="6762906417604676001">"MĖLYNA"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOLETINĖ"</item>
- <item msgid="6835537356703747621">"PILKA"</item>
- <item msgid="2470141365136884119">"ŽALSVAI MĖLYNA"</item>
- </string-array>
-</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 3a5c864..9d1bdf8 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Tink. laikrodis"</string>
<string name="clock_description" msgid="3563839327378948">"Pasir. tink. laikr."</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Keiskite tinkintą laikrodį"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Laikr. nustat."</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Laikr. spalva, dyd."</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Laikr. spalva ir dydis"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Spalva"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Spart. kl. kair."</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Spart. kl. deš."</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Nėra"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Jei norite pasirinkti „<xliff:g id="APPNAME">%1$s</xliff:g>“, patikrinkite toliau nurodytus dalykus."</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Nepavyko pridėti sparčiojo klavišo"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Atidaryti „<xliff:g id="APPNAME">%1$s</xliff:g>“"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Jei norite pridėti programą „<xliff:g id="APPNAME">%1$s</xliff:g>“ kaip šaukinį, įsitikinkite, kad atitinkate reikalavimus."</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Atlikta"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Šaukiniai"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Nėra"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Pranešimai"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Rodyti pranešimus užrakinimo ekrane"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Slėpti pranešimus užrakinimo ekrane"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Daugiau parinkčių"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Tekstas užrakinimo ekrane, „Dabar leidžiama“ ir kt."</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Daugiau užrakinimo ekrano parinkčių"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privatumas, „Dabar leidžiama“ ir kt."</string>
<string name="more_colors" msgid="3191071655353004591">"Daugiau spalvų"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Pagrindinė dinaminė tema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Pagrindinė neutrali tema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Pagrindinė ryški tema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Pagrindinė išraiškinga tema"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Numatytoji spalvos parinktis"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Spalvos parinktis: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-lv/clock_colors.xml b/res/values-lv/clock_colors.xml
deleted file mode 100644
index 0983836..0000000
--- a/res/values-lv/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"SARKANA"</item>
- <item msgid="6882970855289978213">"ORANŽA"</item>
- <item msgid="5560732545714984533">"DZELTENA"</item>
- <item msgid="7246284817845434226">"ZAĻA"</item>
- <item msgid="6762906417604676001">"ZILA"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOLETA"</item>
- <item msgid="6835537356703747621">"PELĒKA"</item>
- <item msgid="2470141365136884119">"ZILGANZAĻA"</item>
- </string-array>
-</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index eb41480..bf9cb42 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Pielāgots ekrāns"</string>
<string name="clock_description" msgid="3563839327378948">"Pielāgota ekrāna izvēle"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Mainiet pielāgotu pulksteņa ekrānu."</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Pulksteņa iestatījumi"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Pulksteņa krāsa/lielums"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Pulksteņa krāsa/lielums"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Krāsa"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Saīsne pa kreisi"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Saīsne pa labi"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Nav"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Lai atlasītu lietotni <xliff:g id="APPNAME">%1$s</xliff:g>, pārbaudiet tālāk minēto"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Nevar pievienot saīsni"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Atvērt lietotni <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Lai pievienotu lietotni <xliff:g id="APPNAME">%1$s</xliff:g> kā saīsni, jābūt izpildītiem tālāk minētajiem nosacījumiem."</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Gatavs"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Saīsnes"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Nav"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Paziņojumi"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Rādīt paziņojumus bloķēšanas ekrānā"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Paslēpt paziņojumus bloķēšanas ekrānā"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Citas opcijas"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Teksts bloķēšanas ekrānā, funkcija “Tagad atskaņo” u.c."</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Citas bloķēšanas ekrāna opcijas"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Konfidencialitāte, funkcija “Tagad atskaņo” un citi iestatījumi"</string>
<string name="more_colors" msgid="3191071655353004591">"Citas krāsas"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primārais dinamiskais motīvs"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primārais neitrālais motīvs"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primārais spilgtais motīvs"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primārais ekspresīvais motīvs"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Noklusējuma krāsas opcija"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g>. krāsas opcija"</string>
</resources>
diff --git a/res/values-mk/clock_colors.xml b/res/values-mk/clock_colors.xml
deleted file mode 100644
index e89597c..0000000
--- a/res/values-mk/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ЦРВЕНА"</item>
- <item msgid="6882970855289978213">"ПОРТОКАЛОВА"</item>
- <item msgid="5560732545714984533">"ЖОЛТА"</item>
- <item msgid="7246284817845434226">"ЗЕЛЕНА"</item>
- <item msgid="6762906417604676001">"СИНА"</item>
- <item msgid="8974135109557664892">"ИНДИГО"</item>
- <item msgid="786643557830463422">"ВИОЛЕТОВА"</item>
- <item msgid="6835537356703747621">"СИВА"</item>
- <item msgid="2470141365136884119">"СИНО-ЗЕЛЕНА"</item>
- </string-array>
-</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 54ebf67..001f539 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Приспособен часовник"</string>
<string name="clock_description" msgid="3563839327378948">"Изберете приспособен часовник"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Променете го приспособениот часовник"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Поставки"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Боја и големина"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Боја и големина"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Боја"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Лева кратенка"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Десна кратенка"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Нема"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"За да изберете „<xliff:g id="APPNAME">%1$s</xliff:g>“, проверете го следново"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Не може да се додаде кратенката"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Отворете ја <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"За да ја додадете апликацијата <xliff:g id="APPNAME">%1$s</xliff:g> како кратенка, треба да бидат исполнети следниве услови"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Готово"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Кратенки"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Нема"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Известувања"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Прикажувај известувања на заклучен екран"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Скриј известувања на заклучен екран"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Повеќе опции"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Текст на заклучен екран, Now Playing и друго"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Повеќе опции за заклучен екран"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Приватност, Now Playing и друго"</string>
<string name="more_colors" msgid="3191071655353004591">"Повеќе бои"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Примарна динамична тема"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Примарна неутрална тема"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Примарна живописна тема"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Примарна експресивна тема"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Стандардна опција за боја"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Опција за <xliff:g id="ID_1">%1$d</xliff:g> боја"</string>
</resources>
diff --git a/res/values-ml/clock_colors.xml b/res/values-ml/clock_colors.xml
deleted file mode 100644
index b194aed..0000000
--- a/res/values-ml/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ചുവപ്പ്"</item>
- <item msgid="6882970855289978213">"ഓറഞ്ച്"</item>
- <item msgid="5560732545714984533">"മഞ്ഞ"</item>
- <item msgid="7246284817845434226">"പച്ച"</item>
- <item msgid="6762906417604676001">"നീല"</item>
- <item msgid="8974135109557664892">"ഇൻഡിഗോ"</item>
- <item msgid="786643557830463422">"വയലറ്റ്"</item>
- <item msgid="6835537356703747621">"ചാരനിറം"</item>
- <item msgid="2470141365136884119">"ടീൽ"</item>
- </string-array>
-</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index e9e33d3..2094ed0 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"കസ്റ്റം ക്ലോക്ക്"</string>
<string name="clock_description" msgid="3563839327378948">"കസ്റ്റം ക്ലോക്ക് തിരഞ്ഞെടുക്കൂ"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"ഇഷ്ടാനുസൃത ക്ലോക്ക് മാറ്റൂ"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"ക്ലോക്ക് ക്രമീകരണം"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"ക്ലോക്കിന്റെ നിറം, വലുപ്പം"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ക്ലോക്കിന്റെ നിറം, വലുപ്പം"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"നിറം"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ഇടത് കുറുക്കുവഴി"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"വലത് കുറുക്കുവഴി"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"ഒന്നുമില്ല"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` തിരഞ്ഞെടുക്കാൻ, ഇനിപ്പറയുന്നവ പരിശോധിക്കുക"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"കുറുക്കുവഴി ചേർക്കാനാകില്ല"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> തുറക്കുക"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"കുറുക്കുവഴിയായി <xliff:g id="APPNAME">%1$s</xliff:g> ആപ്പ് ചേർക്കാൻ, ഇനിപ്പറയുന്ന കാര്യങ്ങൾ ഉറപ്പാക്കുക"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"പൂർത്തിയായി"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"കുറുക്കുവഴികൾ"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ഒന്നുമില്ല"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"അറിയിപ്പുകൾ"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"ലോക്ക് സ്ക്രീനിൽ അറിയിപ്പുകൾ കാണിക്കുക"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ലോക്ക് സ്ക്രീനിൽ അറിയിപ്പുകൾ മറയ്ക്കുക"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"കൂടുതൽ ഓപ്ഷനുകൾ"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"ലോക്ക് സ്ക്രീനിൽ ടെക്സ്റ്റിംഗ്, \'ഇപ്പോൾ കേൾക്കുന്നത്\' തുടങ്ങിയവ"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"കൂടുതൽ ലോക്ക് സ്ക്രീൻ ഓപ്ഷനുകൾ"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"സ്വകാര്യത, ഇപ്പോൾ കേൾക്കുന്നത്, എന്നിവയും മറ്റും"</string>
<string name="more_colors" msgid="3191071655353004591">"കൂടുതൽ നിറങ്ങൾ"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"പ്രാഥമിക ഡൈനാമിക് തീം"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"പ്രാഥമിക ന്യൂട്രൽ തീം"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"പ്രാഥമിക വൈബ്രന്റ് തീം"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"പ്രാഥമിക എക്സ്പ്രസീവ് തീം"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"ഡിഫോൾട്ട് വർണ്ണ ഓപ്ഷൻ"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"വർണ്ണ ഓപ്ഷൻ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-mn/clock_colors.xml b/res/values-mn/clock_colors.xml
deleted file mode 100644
index d059fc0..0000000
--- a/res/values-mn/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"УЛААН"</item>
- <item msgid="6882970855289978213">"УЛБАР ШАР"</item>
- <item msgid="5560732545714984533">"ШАР"</item>
- <item msgid="7246284817845434226">"НОГООН"</item>
- <item msgid="6762906417604676001">"ЦЭНХЭР"</item>
- <item msgid="8974135109557664892">"ХӨХӨВТӨР НИЛ ЯГААН"</item>
- <item msgid="786643557830463422">"ХӨХ ЯГААН"</item>
- <item msgid="6835537356703747621">"СААРАЛ"</item>
- <item msgid="2470141365136884119">"УСАН ЦЭНХЭР"</item>
- </string-array>
-</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 804a4e1..438dbe8 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Захиалгат цаг"</string>
<string name="clock_description" msgid="3563839327378948">"Захиалгат цаг сонгох"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Захиалгат цагийг өөрчлөх"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Цагны тохиргоо"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Цагны өнгө, хэмжээ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Цагны өнгө, хэмжээ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Өнгө"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Зүүн товчлол"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Баруун товчлол"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Байхгүй"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>`-г сонгохын тулд дараахыг шалгана уу"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Товчлолыг нэмэх боломжгүй"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g>-г нээх"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> аппыг товчлолоор нэмэхийн тулд дараахыг баталгаажуулна уу"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Болсон"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Товчлол"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Байхгүй"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Мэдэгдэл"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Түгжээтэй дэлгэц дээр мэдэгдэл харуулах"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Түгжигдсэн дэлгэц дээрх мэдэгдлүүдийг нуух"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Бусад сонголт"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Түгжигдсэн дэлгэцийн текст, Now Playing болон бусад"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Түгжээтэй дэлгэцийн өөр сонголт"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Нууцлал, Now Playing болон бусад"</string>
<string name="more_colors" msgid="3191071655353004591">"Бусад өнгө"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Үндсэн динамик загвар"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Үндсэн завсрын загвар"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Үндсэн хурц тод загвар"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Үндсэн илэрхийлэлтэй загвар"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Өгөгдмөл өнгөний сонголт"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Өнгөний сонголт <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-mr/clock_colors.xml b/res/values-mr/clock_colors.xml
deleted file mode 100644
index a37bf2a..0000000
--- a/res/values-mr/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"लाल"</item>
- <item msgid="6882970855289978213">"नारिंगी"</item>
- <item msgid="5560732545714984533">"पिवळा"</item>
- <item msgid="7246284817845434226">"हिरवा"</item>
- <item msgid="6762906417604676001">"निळा"</item>
- <item msgid="8974135109557664892">"गडद निळा"</item>
- <item msgid="786643557830463422">"जांभळा"</item>
- <item msgid="6835537356703747621">"राखाडी"</item>
- <item msgid="2470141365136884119">"हिरवट निळा"</item>
- </string-array>
-</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index eb6c5b0..3b02791 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"कस्टम क्लॉक"</string>
<string name="clock_description" msgid="3563839327378948">"कस्टम क्लॉक निवडा"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"कस्टम क्लॉक बदला"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"क्लॉक सेटिंग्ज"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Clock चा रंग व आकार"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"घड्याळाचा रंग व आकार"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"रंग"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"डावा शॉर्टकट"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"उजवा शॉर्टकट"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"काहीही नाही"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` निवडण्यासाठी पुढील गोष्टी तपासा"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"शॉर्टकट जोडू शकत नाही"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> उघडा"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> हे अॅप शॉर्टकट म्हणून जोडण्यासाठी, पुढील गोष्टींची खात्री करा"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"पूर्ण झाले"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"शॉर्टकट"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"काहीही नाही"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"सूचना"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"लॉक स्क्रीनवर सूचना दाखवा"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"लॉक स्क्रीनवर सूचना लपवा"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"अधिक पर्याय"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"लॉक स्क्रीन, Now Playing आणि आणखी बरेच काही यासंबंधित मजकूर"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"आणखी लॉक स्क्रीन पर्याय"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"गोपनीयता, Now Playing आणि आणखी बरेच काही"</string>
<string name="more_colors" msgid="3191071655353004591">"आणखी रंग"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"प्राथमिक डायनॅमिक थीम"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"प्राथमिक न्यूट्रल थीम"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"प्राथमिक आकर्षक थीम"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"प्राथमिक भावदर्शी थीम"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"रंगाचा डीफॉल्ट पर्याय"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g> रंगाचा पर्याय"</string>
</resources>
diff --git a/res/values-ms/clock_colors.xml b/res/values-ms/clock_colors.xml
deleted file mode 100644
index fb06584..0000000
--- a/res/values-ms/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"MERAH"</item>
- <item msgid="6882970855289978213">"JINGGA"</item>
- <item msgid="5560732545714984533">"KUNING"</item>
- <item msgid="7246284817845434226">"HIJAU"</item>
- <item msgid="6762906417604676001">"BIRU"</item>
- <item msgid="8974135109557664892">"BIRU NILA"</item>
- <item msgid="786643557830463422">"LEMBAYUNG"</item>
- <item msgid="6835537356703747621">"KELABU"</item>
- <item msgid="2470141365136884119">"HIJAU KEBIRUAN"</item>
- </string-array>
-</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index ef25f12..7dfae36 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Jam Tersuai"</string>
<string name="clock_description" msgid="3563839327378948">"Pilih jam tersuai"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Tukar jam tersuai"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Tetapan Jam"</string>
+ <string name="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_color" msgid="8081608867289156163">"Warna"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Pintasan kiri"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Pintasan kanan"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Tiada"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Untuk memilih `<xliff:g id="APPNAME">%1$s</xliff:g>` semak perkara berikut"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Tidak dapat menambahkan pintasan"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Buka <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Untuk menambahkan apl <xliff:g id="APPNAME">%1$s</xliff:g> sebagai pintasan, pastikan"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Selesai"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Pintasan"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Tiada"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Pemberitahuan"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Tunjukkan pemberitahuan pada skrin kunci"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Sembunyikan pemberitahuan pada skrin kunci"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Lagi pilihan"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Teks pada skrin kunci, Now Playing dan pelbagai lagi"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Lebih banyak pilihan skrin kunci"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privasi, Now Playing dan pelbagai lagi"</string>
<string name="more_colors" msgid="3191071655353004591">"Lagi Warna"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinamik utama"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema neutral utama"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema ceria utama"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema ekspresif utama"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Pilihan warna lalai"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Pilihan warna <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-my/clock_colors.xml b/res/values-my/clock_colors.xml
deleted file mode 100644
index 121056b..0000000
--- a/res/values-my/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"အနီရောင်"</item>
- <item msgid="6882970855289978213">"လိမ္မော်ရောင်"</item>
- <item msgid="5560732545714984533">"အဝါရောင်"</item>
- <item msgid="7246284817845434226">"အစိမ်းရောင်"</item>
- <item msgid="6762906417604676001">"အပြာရောင်"</item>
- <item msgid="8974135109557664892">"မဲနယ်ရောင်"</item>
- <item msgid="786643557830463422">"ခရမ်းရောင်"</item>
- <item msgid="6835537356703747621">"မီးခိုးရောင်"</item>
- <item msgid="2470141365136884119">"စိမ်းပြာရောင်"</item>
- </string-array>
-</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 88f3f32..2f2008e 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"စိတ်ကြိုက်နာရီ"</string>
<string name="clock_description" msgid="3563839327378948">"စိတ်ကြိုက်နာရီရွေးပါ"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"စိတ်ကြိုက်နာရီ ပြောင်းနိုင်သည်"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"နာရီဆက်တင်များ"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"နာရီအရောင်၊ အရွယ်"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"နာရီအရောင်နှင့်အရွယ်"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>၊ <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"အရောင်"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ဘယ်ဖြတ်လမ်းလင့်ခ်"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ညာဖြတ်လမ်းလင့်ခ်"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"မရှိ"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` ရွေးချယ်ရန် အောက်ပါတို့ကို ကြည့်ပါ"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"ဖြတ်လမ်းလင့်ခ် ထည့်၍မရပါ"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ဖွင့်ရန်"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> အက်ပ်ကို ဖြတ်လမ်းလင့်ခ်အဖြစ် ထည့်ရန် အောက်ပါတို့နှင့်ကိုက်ညီရမည်"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ပြီးပြီ"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ဖြတ်လမ်းလင့်ခ်"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>၊ <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"မရှိ"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"အကြောင်းကြားချက်များ"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"အကြောင်းကြားချက်များကို လော့ခ်မျက်နှာပြင်တွင် ပြပါ"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"အကြောင်းကြားချက်များကို လော့ခ်မျက်နှာပြင်တွင် ဖျောက်ထားရန်"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"နောက်ထပ်ရွေးစရာများ"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"လော့ခ်စကရင် စာသား၊ Now Playing နှင့် နောက်ထပ်ဆက်တင်"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"နောက်ထပ် လော့ခ်မျက်နှာပြင် နည်းလမ်းများ"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"ကိုယ်ရေးအချက်အလက်လုံခြုံမှု၊ Now Playing နှင့်အခြား"</string>
<string name="more_colors" msgid="3191071655353004591">"နောက်ထပ်အရောင်များ"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"မူလ ပြောင်းလဲနိုင်သော အပြင်အဆင်"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"မူလ မနုမရင့် အပြင်အဆင်"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"မူလ စိုလွင်သော အပြင်အဆင်"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"မူလ ခံစားမှုပြ အပြင်အဆင်"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"မူလ အရောင်ရွေးစရာ"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"အရောင်ရွေးစရာ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-nb/clock_colors.xml b/res/values-nb/clock_colors.xml
deleted file mode 100644
index 7b27822..0000000
--- a/res/values-nb/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"RØD"</item>
- <item msgid="6882970855289978213">"ORANSJE"</item>
- <item msgid="5560732545714984533">"GUL"</item>
- <item msgid="7246284817845434226">"GRØNN"</item>
- <item msgid="6762906417604676001">"BLÅ"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"FIOLETT"</item>
- <item msgid="6835537356703747621">"GRÅ"</item>
- <item msgid="2470141365136884119">"BLÅGRØNN"</item>
- </string-array>
-</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 9f14aa3..666e237 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Tilpasset klokke"</string>
<string name="clock_description" msgid="3563839327378948">"Velg en tilpasset klokke"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Endre en tilpasset klokke"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Klokkevalg"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Farge og størrelse"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Farge og størrelse"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Farge"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Venstre snarvei"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Høyre snarvei"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Ingen"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"For å velge «<xliff:g id="APPNAME">%1$s</xliff:g>», sjekk det følgende"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Kan ikke legge til snarveien"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Åpne <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"For å legge til <xliff:g id="APPNAME">%1$s</xliff:g>-appen som en snarvei må du sørge for at"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Ferdig"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Snarveier"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ingen"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Varsler"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Vis varsler på låseskjermen"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skjul varsler på låseskjermen"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Flere alternativer"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst på låseskjermen, Spilles nå med mer"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Flere låseskjermalternativer"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Personvern, Spilles nå med mer"</string>
<string name="more_colors" msgid="3191071655353004591">"Flere farger"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Dynamisk primærtema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Nøytralt primærtema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Intenst primærtema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Uttrykksfullt primærtema"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Standard fargealternativ"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Fargealternativ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-ne/clock_colors.xml b/res/values-ne/clock_colors.xml
deleted file mode 100644
index a46e357..0000000
--- a/res/values-ne/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"रातो"</item>
- <item msgid="6882970855289978213">"सुन्तले"</item>
- <item msgid="5560732545714984533">"पहेँलो"</item>
- <item msgid="7246284817845434226">"हरियो"</item>
- <item msgid="6762906417604676001">"निलो"</item>
- <item msgid="8974135109557664892">"इन्डिगो"</item>
- <item msgid="786643557830463422">"बैजनी"</item>
- <item msgid="6835537356703747621">"खैरो"</item>
- <item msgid="2470141365136884119">"निलोमिश्रित हरियो"</item>
- </string-array>
-</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 51a63e2..86f7a31 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"कस्टम घडी"</string>
<string name="clock_description" msgid="3563839327378948">"कस्टम घडी छान्नु…"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"कुनै कस्टम घडी परिवर्तन गर्नुहोस्"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"घडीका सेटिङ"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"घडीको रङ र आकार"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"घडीको रङ र आकार"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"रङ"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"बायाँ सर्टकट"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"दायाँ सर्टकट"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"कुनै पनि होइन"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"\"<xliff:g id="APPNAME">%1$s</xliff:g>\" चयन गर्न तल दिइएका निर्देशनहरू पालना गर्नुहोस्"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"सर्टकट सिर्जना गर्न सकिएन"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> खोल्नुहोस्"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> एपलाई सर्टकटका रूपमा हाल्न, निम्न कुरा सुनिश्चित गर्नुहोस्:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"पूरा भयो"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"सर्टकटहरू"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"कुनै पनि होइन"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"सूचनाहरू"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"लक स्क्रिनमा सूचनाहरू देखाइऊन्"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"लक स्क्रिनमा सूचनाहरू लुकाइऊन्"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"थप विकल्पहरू"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"लक स्क्रिनमा टेक्स्ट देखिने सुविधा, Now Playing र थप सुविधाहरू"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"लक स्क्रिनसम्बन्धी थप विकल्पहरू"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"गोपनीयता, Now Playing र अन्य कुराहरू"</string>
<string name="more_colors" msgid="3191071655353004591">"थप रङहरू"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"प्राइमरी डाइनामिक थिम"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"प्राइमरी न्युट्रल थिम"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"प्राइमरी भाइब्रेन्ट थिम"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"प्राइमरी एक्सप्रेसिभ थिम"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"रङसम्बन्धी डिफल्ट विकल्प"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"रङसम्बन्धी विकल्प <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-nl/clock_colors.xml b/res/values-nl/clock_colors.xml
deleted file mode 100644
index bd072a1..0000000
--- a/res/values-nl/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ROOD"</item>
- <item msgid="6882970855289978213">"ORANJE"</item>
- <item msgid="5560732545714984533">"GEEL"</item>
- <item msgid="7246284817845434226">"GROEN"</item>
- <item msgid="6762906417604676001">"BLAUW"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOLET"</item>
- <item msgid="6835537356703747621">"GRIJS"</item>
- <item msgid="2470141365136884119">"BLAUWGROEN"</item>
- </string-array>
-</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index b00ef09..d7e1b31 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Aangepaste klok"</string>
<string name="clock_description" msgid="3563839327378948">"Klok kiezen"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Aangepaste klok wijzigen"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Klokinstellingen"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Kleur en grootte van klok"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Kleur en formaat van klok"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Kleur"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Snelkoppeling links"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Snelkoppeling rechts"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Geen"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Check het volgende als je <xliff:g id="APPNAME">%1$s</xliff:g> wilt selecteren"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Kan sneltoets niet toevoegen"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> openen"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Zorg voor het volgende om de <xliff:g id="APPNAME">%1$s</xliff:g>-app toe te voegen als snelkoppeling:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Klaar"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Snelkoppelingen"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Geen"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Meldingen"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Meldingen tonen op het vergrendelscherm"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Meldingen verbergen op het vergrendelscherm"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Meer opties"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst op vergrendelscherm, Now Playing en meer"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Meer schermvergrendelingsopties"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Now Playing en meer"</string>
<string name="more_colors" msgid="3191071655353004591">"Meer kleuren"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primair dynamisch thema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primair neutraal thema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primair levendig thema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primair expressief thema"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Standaard kleuroptie"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Kleuroptie <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-or/clock_colors.xml b/res/values-or/clock_colors.xml
deleted file mode 100644
index ab38485..0000000
--- a/res/values-or/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ଲାଲ"</item>
- <item msgid="6882970855289978213">"କମଳା"</item>
- <item msgid="5560732545714984533">"ହଳଦିଆ"</item>
- <item msgid="7246284817845434226">"ସବୁଜ"</item>
- <item msgid="6762906417604676001">"ନୀଳ"</item>
- <item msgid="8974135109557664892">"ଇଣ୍ଡିଗୋ"</item>
- <item msgid="786643557830463422">"ବାଇଗଣୀ"</item>
- <item msgid="6835537356703747621">"ଧୂସର"</item>
- <item msgid="2470141365136884119">"ଟିଲ"</item>
- </string-array>
-</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 6a5f37d..ea1b0fa 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"କଷ୍ଟମ ଘଣ୍ଟା"</string>
<string name="clock_description" msgid="3563839327378948">"କଷ୍ଟମ ଘଣ୍ଟା ବାଛ"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"ଏକ କଷ୍ଟମ ଘଣ୍ଟାକୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"କ୍ଲକ ସେଟିଂସ"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"ଘଣ୍ଟାର ରଙ୍ଗ ଓ ସାଇଜ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ଘଣ୍ଟାର ରଙ୍ଗ ଓ ଆକାର"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"ରଙ୍ଗ"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ବାମ ସର୍ଟକଟ"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ଡାହାଣ ସର୍ଟକଟ"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"କିଛି ନାହିଁ"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>`କୁ ଚୟନ କରିବା ପାଇଁ ନିମ୍ନୋକ୍ତକୁ ଯାଞ୍ଚ କରନ୍ତୁ"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"ସର୍ଟକଟ ଯୋଗ କରାଯାଇପାରିବ ନାହିଁ"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ଖୋଲନ୍ତୁ"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"ଏକ ସର୍ଟକଟ ଭାବେ <xliff:g id="APPNAME">%1$s</xliff:g> ଆପ ଯୋଗ କରିବାକୁ, ଏହା ସୁନିଶ୍ଚିତ କରନ୍ତୁ"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ହୋଇଗଲା"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ସର୍ଟକଟଗୁଡ଼ିକ"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"କିଛି ନାହିଁ"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"ଲକ ସ୍କ୍ରିନରେ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଦେଖାନ୍ତୁ"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ଲକ ସ୍କ୍ରିନରେ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଲୁଚାନ୍ତୁ"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"ଅଧିକ ବିକଳ୍ପ"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"ଲକ ସ୍କ୍ରିନରେ ଟେକ୍ସଟ, ଏବେ ଚାଲୁଛି ଏବଂ ଆହୁରି ଅନେକ କିଛି"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"ଅଧିକ ଲକ ସ୍କ୍ରିନ ବିକଳ୍ପ"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"ଗୋପନୀୟତା, ବର୍ତ୍ତମାନ ପ୍ଲେ ହେଉଛି ଏବଂ ଆହୁରି ଅନେକ କିଛି"</string>
<string name="more_colors" msgid="3191071655353004591">"ଅଧିକ ରଙ୍ଗ"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ପ୍ରାଥମିକ ଡାଇନାମିକ ଥିମ"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ପ୍ରାଥମିକ ନ୍ୟୁଟ୍ରାଲ ଥିମ"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ପ୍ରାଥମିକ ଭାଇବ୍ରାଣ୍ଟ ଥିମ"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ପ୍ରାଥମିକ ଏକ୍ସପ୍ରେସିଭ ଥିମ"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"ଡିଫଲ୍ଟ ରଙ୍ଗର ବିକଳ୍ପ"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"ରଙ୍ଗର ବିକଳ୍ପ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-pa/clock_colors.xml b/res/values-pa/clock_colors.xml
deleted file mode 100644
index 3201dab..0000000
--- a/res/values-pa/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ਲਾਲ"</item>
- <item msgid="6882970855289978213">"ਸੰਤਰੀ"</item>
- <item msgid="5560732545714984533">"ਪੀਲਾ"</item>
- <item msgid="7246284817845434226">"ਹਰਾ"</item>
- <item msgid="6762906417604676001">"ਨੀਲਾ"</item>
- <item msgid="8974135109557664892">"ਲਾਜਵਰ"</item>
- <item msgid="786643557830463422">"ਜਾਮਣੀ"</item>
- <item msgid="6835537356703747621">"ਸਲੇਟੀ"</item>
- <item msgid="2470141365136884119">"ਟੀਲ"</item>
- </string-array>
-</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 2b3bb83..7a40e92 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"ਵਿਉਂਤੀ ਘੜੀ"</string>
<string name="clock_description" msgid="3563839327378948">"ਵਿਉਂਤੀ ਘੜੀ ਚੁਣੋ"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"ਵਿਉਂਤੀ ਘੜੀ ਬਦਲੋ"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"ਘੜੀ ਦੀਆਂ ਸੈਟਿੰਗਾਂ"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"ਘੜੀ ਦਾ ਰੰਗ ਅਤੇ ਆਕਾਰ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ਘੜੀ ਦਾ ਰੰਗ ਅਤੇ ਆਕਾਰ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"ਰੰਗ"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ਖੱਬਾ ਸ਼ਾਰਟਕੱਟ"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ਸੱਜਾ ਸ਼ਾਰਟਕੱਟ"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"ਕੋਈ ਨਹੀਂ"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` ਨੂੰ ਚੁਣਨ ਲਈ, ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਹਿਦਾਇਤਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"ਸ਼ਾਰਟਕੱਟ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ਖੋਲ੍ਹੋ"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> ਐਪ ਨੂੰ ਸ਼ਾਰਟਕੱਟ ਵਜੋਂ ਸ਼ਾਮਲ ਕਰਨ ਲਈ, ਪੱਕਾ ਕਰੋ ਕਿ"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ਹੋ ਗਿਆ"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ਸ਼ਾਰਟਕੱਟ"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ਕੋਈ ਨਹੀਂ"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"ਸੂਚਨਾਵਾਂ"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਸੂਚਨਾਵਾਂ ਦਿਖਾਓ"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਸੂਚਨਾਵਾਂ ਲੁਕਾਓ"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"ਹੋਰ ਵਿਕਲਪ"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਲਿਖਤ ਸ਼ਾਮਲ ਕਰਨਾ, Now Playing ਅਤੇ ਹੋਰ"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"ਹੋਰ ਲਾਕ ਸਕ੍ਰੀਨ ਵਿਕਲਪ"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"ਪਰਦੇਦਾਰੀ, Now Playing ਅਤੇ ਹੋਰ"</string>
<string name="more_colors" msgid="3191071655353004591">"ਹੋਰ ਰੰਗ"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ਪ੍ਰਾਇਮਰੀ ਪਰਿਵਰਤਨਸ਼ੀਲ ਥੀਮ"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ਪ੍ਰਾਇਮਰੀ ਨਿਰਪੱਖ ਥੀਮ"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ਪ੍ਰਾਇਮਰੀ ਵਾਈਬਰੈਂਟ ਥੀਮ"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ਪ੍ਰਾਇਮਰੀ ਭਾਵਪੂਰਨ ਥੀਮ"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"ਰੰਗ ਦਾ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਵਿਕਲਪ"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"ਰੰਗ ਦਾ ਵਿਕਲਪ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-pl/clock_colors.xml b/res/values-pl/clock_colors.xml
deleted file mode 100644
index 2e6f58b..0000000
--- a/res/values-pl/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"CZERWONY"</item>
- <item msgid="6882970855289978213">"POMARAŃCZOWY"</item>
- <item msgid="5560732545714984533">"ŻÓŁTY"</item>
- <item msgid="7246284817845434226">"ZIELONY"</item>
- <item msgid="6762906417604676001">"NIEBIESKI"</item>
- <item msgid="8974135109557664892">"INDYGO"</item>
- <item msgid="786643557830463422">"FIOLETOWY"</item>
- <item msgid="6835537356703747621">"SZARY"</item>
- <item msgid="2470141365136884119">"MORSKI"</item>
- </string-array>
-</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index b15937c..15744d7 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Własny zegar"</string>
<string name="clock_description" msgid="3563839327378948">"Wybierz własny zegar"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Zmień własny zegar"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Ustawienia zegara"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Kolor i rozmiar zegara"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Kolor i rozmiar zegara"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Kolor"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Lewy skrót"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Prawy skrót"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Brak"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Aby wybrać opcję „<xliff:g id="APPNAME">%1$s</xliff:g>”, wykonaj te czynności"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Nie udało się dodać skrótu"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Otwórz: <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Aby dodać aplikację <xliff:g id="APPNAME">%1$s</xliff:g> jako skrót, upewnij się, że spełnione zostały te warunki:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Gotowe"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Skróty"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Brak"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Powiadomienia"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Pokazuj powiadomienia na ekranie blokady"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ukrywaj powiadomienia na ekranie blokady"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Więcej opcji"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"SMS-y na ekranie blokady, Co jest grane i inne funkcje"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Więcej opcji ekranu blokady"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Prywatność, Co jest grane i inne ustawienia"</string>
<string name="more_colors" msgid="3191071655353004591">"Więcej kolorów"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Główny motyw dynamiczny"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Główny motyw neutralny"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Główny motyw barwny"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Główny motyw ekspresyjny"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Domyślna opcja koloru"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opcja koloru <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-pt-rPT/clock_colors.xml b/res/values-pt-rPT/clock_colors.xml
deleted file mode 100644
index 029295a..0000000
--- a/res/values-pt-rPT/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"VERMELHO"</item>
- <item msgid="6882970855289978213">"LARANJA"</item>
- <item msgid="5560732545714984533">"AMARELO"</item>
- <item msgid="7246284817845434226">"VERDE"</item>
- <item msgid="6762906417604676001">"AZUL"</item>
- <item msgid="8974135109557664892">"ÍNDIGO"</item>
- <item msgid="786643557830463422">"VIOLETA"</item>
- <item msgid="6835537356703747621">"CINZENTO"</item>
- <item msgid="2470141365136884119">"AZUL-ESVERDEADO"</item>
- </string-array>
-</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 0905a4c..b45d81a 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Relógio person."</string>
<string name="clock_description" msgid="3563839327378948">"Escolha rel. pers."</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Altere um relógio personalizado"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Def. do Relógio"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Cor/tamanho relógio"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Cor/tamanho relógio"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Cor"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Atalho esquerdo"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Atalho direito"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Nenhum"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Para selecionar \"<xliff:g id="APPNAME">%1$s</xliff:g>\", verifique o seguinte"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Não é possível adicionar o atalho"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Abrir <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Para adicionar a app <xliff:g id="APPNAME">%1$s</xliff:g> como um atalho, garanta"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Concluído"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Atalhos"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Nenhum"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notificações"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostre as notificações no ecrã de bloqueio"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Oculte as notificações no ecrã de bloqueio"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Mais opções"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Texto no ecrã de bloqueio, A tocar e muito mais"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Mais opções do ecrã de bloqueio"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privacidade, A reproduzir e muito mais"</string>
<string name="more_colors" msgid="3191071655353004591">"Mais cores"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinâmico principal"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema neutro principal"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema vibrante principal"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema expressivo principal"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Opção de cor predefinida"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opção de cor <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-pt/clock_colors.xml b/res/values-pt/clock_colors.xml
deleted file mode 100644
index 57538ba..0000000
--- a/res/values-pt/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"VERMELHO"</item>
- <item msgid="6882970855289978213">"LARANJA"</item>
- <item msgid="5560732545714984533">"AMARELO"</item>
- <item msgid="7246284817845434226">"VERDE"</item>
- <item msgid="6762906417604676001">"AZUL"</item>
- <item msgid="8974135109557664892">"ÍNDIGO"</item>
- <item msgid="786643557830463422">"VIOLETA"</item>
- <item msgid="6835537356703747621">"CINZA"</item>
- <item msgid="2470141365136884119">"AZUL-PETRÓLEO"</item>
- </string-array>
-</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index ac3f506..032bb67 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Relógio personalizado"</string>
<string name="clock_description" msgid="3563839327378948">"Escolha um relógio personalizado"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Edite um relógio personalizado"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Configurações do Relógio"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Cor/tam. do relógio"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Cor e tamanho do relógio"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Cor"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Atalho à esquerda"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Atalho à direita"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Nenhum"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Para selecionar o app <xliff:g id="APPNAME">%1$s</xliff:g>, marque a opção a seguir"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Não é possível adicionar o atalho"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Abrir <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Para adicionar o app <xliff:g id="APPNAME">%1$s</xliff:g> como um atalho, confira se"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Concluído"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Atalhos"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Nenhum"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notificações"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostrar notificações na tela de bloqueio"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ocultar notificações na tela de bloqueio"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Mais opções"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Texto na tela de bloqueio, Tocando agora e muito mais"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Mais opções da tela de bloqueio"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privacidade, Tocando agora e muito mais"</string>
<string name="more_colors" msgid="3191071655353004591">"Mais cores"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema dinâmico principal"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema neutro principal"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema vibrante principal"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema expressivo principal"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Opção de cor padrão"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opção de cor <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-ro/clock_colors.xml b/res/values-ro/clock_colors.xml
deleted file mode 100644
index 003fa39..0000000
--- a/res/values-ro/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ROȘU"</item>
- <item msgid="6882970855289978213">"PORTOCALIU"</item>
- <item msgid="5560732545714984533">"GALBEN"</item>
- <item msgid="7246284817845434226">"VERDE"</item>
- <item msgid="6762906417604676001">"ALBASTRU"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOLET"</item>
- <item msgid="6835537356703747621">"GRI"</item>
- <item msgid="2470141365136884119">"TURCOAZ"</item>
- </string-array>
-</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index a53e7c8..e8726f0 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Ecran personalizat"</string>
<string name="clock_description" msgid="3563839327378948">"Alege un ecran personalizat"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Modifică un ecran personalizat"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Setări pentru ceas"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Culoare / mărime"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Culoare / dimensiune"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Culoare"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Comanda rapidă stânga"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Comanda rapidă dreapta"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Fără"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Ca să selectezi <xliff:g id="APPNAME">%1$s</xliff:g>, urmează aceste instrucțiuni"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Nu se poate adăuga comanda rapidă"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Deschide <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Pentru a adăuga aplicația <xliff:g id="APPNAME">%1$s</xliff:g> drept comandă rapidă, asigură-te"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Gata"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Comenzi rapide"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Niciunul"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Notificări"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Afișează notificările pe ecranul de blocare"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ascunde notificările pe ecranul de blocare"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Mai multe opțiuni"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Text pe ecranul de blocare, Now Playing și altele"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Alte opțiuni pentru ecranul de blocare"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Confidențialitate, Now Playing și altele"</string>
<string name="more_colors" msgid="3191071655353004591">"Mai multe culori"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Temă dinamică principală"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Temă neutră principală"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Temă vibrantă principală"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Temă expresivă principală"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Opțiune de culoare prestabilită"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opțiunea de culoare <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-ru/clock_colors.xml b/res/values-ru/clock_colors.xml
deleted file mode 100644
index 17e429a..0000000
--- a/res/values-ru/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"КРАСНЫЙ"</item>
- <item msgid="6882970855289978213">"ОРАНЖЕВЫЙ"</item>
- <item msgid="5560732545714984533">"ЖЕЛТЫЙ"</item>
- <item msgid="7246284817845434226">"ЗЕЛЕНЫЙ"</item>
- <item msgid="6762906417604676001">"СИНИЙ"</item>
- <item msgid="8974135109557664892">"ИНДИГО"</item>
- <item msgid="786643557830463422">"ФИОЛЕТОВЫЙ"</item>
- <item msgid="6835537356703747621">"СЕРЫЙ"</item>
- <item msgid="2470141365136884119">"ТЕМНО-БИРЮЗОВЫЙ"</item>
- </string-array>
-</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 5bf160b..9523c1f 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Настр. цифербл."</string>
<string name="clock_description" msgid="3563839327378948">"Выбер. цифербл."</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Выберите настраиваемый циферблат."</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Настройки часов"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Цвет и размер часов"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Цвет и размер часов"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>."</string>
<string name="clock_color" msgid="8081608867289156163">"Цвет"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Ярлык слева"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Ярлык справа"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Нет"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Чтобы выбрать приложение \"<xliff:g id="APPNAME">%1$s</xliff:g>\", сделайте следующее:"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Не удалось добавить ярлык"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Открыть: <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Для добавления ярлыка приложения \"<xliff:g id="APPNAME">%1$s</xliff:g>\" должны выполняться следующие условия:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ОК"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Быстрые действия"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Нет"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Уведомления"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Показывать уведомления на заблокированном экране"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Скрывать уведомления на заблокированном экране"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Дополнительные настройки"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Текст на заблок. экране, функция \"Что сейчас играет?\" и др."</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Ещё настройки заблок. экрана"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Конфиденциальность, функция \"Что сейчас играет?\" и т. д."</string>
<string name="more_colors" msgid="3191071655353004591">"Ещё цвета"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Основная динамическая тема"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Основная нейтральная тема"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Основная живая тема"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Основная выразительная тема"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Цвет по умолчанию"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Цвет: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-si/clock_colors.xml b/res/values-si/clock_colors.xml
deleted file mode 100644
index c0b3da5..0000000
--- a/res/values-si/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"රතු"</item>
- <item msgid="6882970855289978213">"තැඹිලි"</item>
- <item msgid="5560732545714984533">"කහ"</item>
- <item msgid="7246284817845434226">"කොළ"</item>
- <item msgid="6762906417604676001">"නිල්"</item>
- <item msgid="8974135109557664892">"ඉන්ඩිගෝ"</item>
- <item msgid="786643557830463422">"වයලට්"</item>
- <item msgid="6835537356703747621">"අළු"</item>
- <item msgid="2470141365136884119">"හරිත නිල්"</item>
- </string-array>
-</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index ee2570c..acfa37d 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"අභිරුචි ඔරලෝසුව"</string>
<string name="clock_description" msgid="3563839327378948">"අභිරුචි ඔරලෝසුවක් තෝරන්න"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"අභිරුචි ඔරලෝසුවක් වෙනස් කරන්න"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"ඔරලෝසු සැකසීම්"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"ඔරලෝසු වර්ණය සහ තරම"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"ඔරලෝසු වර්ණය සහ තරම"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"වර්ණය"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"වම් කෙටිමඟ"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"දකුණු කෙටිමඟ"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"කිසිත් නැත"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` තේරීම සඳහා පහත දේ පරීක්ෂා කරන්න"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"කෙටිමඟ එක් කළ නොහැක"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> විවෘත කරන්න"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"කෙටිමඟක් ලෙස <xliff:g id="APPNAME">%1$s</xliff:g> එක් කිරීමට, තහවුරු කර ගන්න"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"නිමයි"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"කෙටිමං"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"කිසිවක් නැත"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"දැනුම්දීම්"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"අගුළු තිරය මත දැනුම්දීම් පෙන්වන්න"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"අගුළු තිරය මත දැනුම්දීම් සඟවන්න"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"තවත් විකල්ප"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"අගුළු තිරය මත පෙළ, දැන් වාදනය වීම, සහ තවත් දේ"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"තවත් අගුලු තිර විකල්ප"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"පෞද්ගලිකත්වය, Now Playing, සහ තවත් දේ"</string>
<string name="more_colors" msgid="3191071655353004591">"තවත් වර්ණ"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"මූලික ගතික තේමාව"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"මූලික මධ්යස්ථ තේමාව"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"මූලික විචිත්රවත් තේමාව"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"මූලික ප්රකාශන තේමාව"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"පෙරනිමි වර්ණ විකල්පය"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"වර්ණ විකල්පය <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-sk/clock_colors.xml b/res/values-sk/clock_colors.xml
deleted file mode 100644
index a443c4b..0000000
--- a/res/values-sk/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ČERVENÁ"</item>
- <item msgid="6882970855289978213">"ORANŽOVÁ"</item>
- <item msgid="5560732545714984533">"ŽLTÁ"</item>
- <item msgid="7246284817845434226">"ZELENÁ"</item>
- <item msgid="6762906417604676001">"MODRÁ"</item>
- <item msgid="8974135109557664892">"INDIGOVÁ"</item>
- <item msgid="786643557830463422">"FIALOVÁ"</item>
- <item msgid="6835537356703747621">"SIVÁ"</item>
- <item msgid="2470141365136884119">"MODROZELENÁ"</item>
- </string-array>
-</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 64fee5d..7458a8f 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Vlastné hodiny"</string>
<string name="clock_description" msgid="3563839327378948">"Vyberte vlastné hodiny"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Zmeňte vlastné hodiny"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Nastav. hodín"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Farba a veľkosť"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Farba a veľkosť"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Farba"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Skratka vľavo"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Skratka vpravo"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Žiadne"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Ak chcete vybrať aplikáciu <xliff:g id="APPNAME">%1$s</xliff:g>, skontrolujte nasledovné"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Odkaz sa nedá pridať"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Otvoriť <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Ak chcete aplikáciu <xliff:g id="APPNAME">%1$s</xliff:g> pridať ako odkaz, uistite sa, že"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Hotovo"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Skratky"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Žiadne"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Upozornenia"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Zobrazovať upozornenia na uzamknutej obrazovke"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skrývať upozornenia na uzamknutej obrazovke"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Ďalšie možnosti"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Text na uzamknutej obrazovke, Čo to hrá a ďalšie nastavenia"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Viac možností uzamkn. obrazovky"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Ochrana súkromia, Čo to hrá a ďalšie funkcie"</string>
<string name="more_colors" msgid="3191071655353004591">"Ďalšie farby"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primárny dynamický motív"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primárny neutrálny motív"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primárny sýty motív"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primárny expresívny motív"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Predvolená farba"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Farba: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-sl/clock_colors.xml b/res/values-sl/clock_colors.xml
deleted file mode 100644
index edf1377..0000000
--- a/res/values-sl/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"RDEČA"</item>
- <item msgid="6882970855289978213">"ORANŽNA"</item>
- <item msgid="5560732545714984533">"RUMENA"</item>
- <item msgid="7246284817845434226">"ZELENA"</item>
- <item msgid="6762906417604676001">"MODRA"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIJOLIČNA"</item>
- <item msgid="6835537356703747621">"SIVA"</item>
- <item msgid="2470141365136884119">"ZELENOMODRA"</item>
- </string-array>
-</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 670174a..a8bd0f7 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Ura po meri"</string>
<string name="clock_description" msgid="3563839327378948">"Izberite uro po meri"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Spremenite uro po meri"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Nastavitve ure"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Barva, velikost ure"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Barva, velikost ure"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Barva"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Leva bližnjica"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Desna bližnjica"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Brez"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Če želite izbrati aplikacijo »<xliff:g id="APPNAME">%1$s</xliff:g>«, potrdite naslednje:"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Bližnjice ni mogoče dodati"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Odpri <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Če želite aplikacijo <xliff:g id="APPNAME">%1$s</xliff:g> dodati kot bližnjico, zagotovite naslednje:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Končano"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Bližnjice"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Brez"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Obvestila"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Prikaži obvestila na zaklenjenem zaslonu"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Skrivanje obvestil na zaklenjenem zaslonu"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Več možnosti"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Besedilo na zaklenjenem zaslonu, Zdaj se predvaja in drugo"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Več glede zaklenjenega zaslona"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Zasebnost, Zdaj se predvaja in drugo"</string>
<string name="more_colors" msgid="3191071655353004591">"Več barv"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Primarna dinamična tema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Primarna nevtralna tema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Primarna živahna tema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Primarna izrazna tema"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Privzeta možnost barve"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Možnost barve <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-sq/clock_colors.xml b/res/values-sq/clock_colors.xml
deleted file mode 100644
index 69a2b0c..0000000
--- a/res/values-sq/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"E KUQE"</item>
- <item msgid="6882970855289978213">"PORTOKALLI"</item>
- <item msgid="5560732545714984533">"E VERDHË"</item>
- <item msgid="7246284817845434226">"E GJELBËR"</item>
- <item msgid="6762906417604676001">"BLU"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VJOLLCË"</item>
- <item msgid="6835537356703747621">"GRI"</item>
- <item msgid="2470141365136884119">"GURKALI"</item>
- </string-array>
-</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 78dfec2..630091e 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Orë e personalizuar"</string>
<string name="clock_description" msgid="3563839327378948">"Orë e personalizuar"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Ndrysho orën e personalizuar"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Cilësimet e orës"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Ora: Ngjyrë/madhësi"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Ora: Ngjyra/madhësia"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Ngjyra"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Shkurtorja maj."</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Shkurtorja djath."</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Asnjë"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Për të zgjedhur \"<xliff:g id="APPNAME">%1$s</xliff:g>\", kontrollo si më poshtë"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Shkurtorja nuk mund të shtohet"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Hap \"<xliff:g id="APPNAME">%1$s</xliff:g>\""</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Për të shtuar aplikacionin \"<xliff:g id="APPNAME">%1$s</xliff:g>\" si një shkurtore, sigurohu që"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"U krye"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Shkurtoret"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Asnjë"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Njoftimet"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Shfaq njoftimet në ekranin e kyçjes"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Fshih njoftimet në ekranin e kyçjes"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Opsione të tjera"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Tekst në ekranin e kyçjes, \"Gjej këngën\" dhe të tjera"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Opsione të tjera të ekranit të kyçjes"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privatësia, \"Gjej këngën\" etj."</string>
<string name="more_colors" msgid="3191071655353004591">"Më shumë ngjyra"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Tema kryesore dinamike"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Tema kryesore neutrale"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Tema kryesore vibrante"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Tema kryesore ekspresive"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Opsioni i parazgjedhur i ngjyrës"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opsioni i ngjyrës: <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-sr/clock_colors.xml b/res/values-sr/clock_colors.xml
deleted file mode 100644
index 9250371..0000000
--- a/res/values-sr/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ЦРВЕНА"</item>
- <item msgid="6882970855289978213">"НАРАНЏАСТА"</item>
- <item msgid="5560732545714984533">"ЖУТА"</item>
- <item msgid="7246284817845434226">"ЗЕЛЕНА"</item>
- <item msgid="6762906417604676001">"ПЛАВА"</item>
- <item msgid="8974135109557664892">"ТАМНОПЛАВА"</item>
- <item msgid="786643557830463422">"ЉУБИЧАСТА"</item>
- <item msgid="6835537356703747621">"СИВА"</item>
- <item msgid="2470141365136884119">"ТИРКИЗНА"</item>
- </string-array>
-</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index af29aa2..5d41fa5 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Прилагођени сат"</string>
<string name="clock_description" msgid="3563839327378948">"Прилагођени сат"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Промените прилагођени сат"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Подешавања сата"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Боја и величина сата"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Боја и величина сата"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Боја"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Лева пречица"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Десна пречица"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Ништа"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Да бисте изабрали „<xliff:g id="APPNAME">%1$s</xliff:g>“, проверите следеће"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Додавање пречице није успело"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Отворите: <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Да бисте додали апликацију <xliff:g id="APPNAME">%1$s</xliff:g> као пречицу, уверите се"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Готово"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Пречице"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Ништа"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Обавештења"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Приказуј обавештења на закључаном екрану"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Сакриј обавештења на закључаном екрану"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Још опција"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Текст на закључаном екрану, Тренутно свира и друго"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Још опција за закључани екран"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Приватност, Тренутно свира и друго"</string>
<string name="more_colors" msgid="3191071655353004591">"Још боја"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Примарна динамична тема"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Примарна неутрална тема"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Примарна интензивна тема"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Примарна експресивна тема"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Подразумевана опција боје"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Опција боје <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-sv/clock_colors.xml b/res/values-sv/clock_colors.xml
deleted file mode 100644
index 46df56a..0000000
--- a/res/values-sv/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"RÖD"</item>
- <item msgid="6882970855289978213">"ORANGE"</item>
- <item msgid="5560732545714984533">"GUL"</item>
- <item msgid="7246284817845434226">"GRÖN"</item>
- <item msgid="6762906417604676001">"BLÅ"</item>
- <item msgid="8974135109557664892">"INDIGOBLÅ"</item>
- <item msgid="786643557830463422">"VIOLETT"</item>
- <item msgid="6835537356703747621">"GRÅ"</item>
- <item msgid="2470141365136884119">"BLÅGRÖN"</item>
- </string-array>
-</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 22dff29..09a1c7a 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Anpassad klocka"</string>
<string name="clock_description" msgid="3563839327378948">"Välj anpassad klocka"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Ändra en anpassad klocka"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Klockalternativ"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Klockstorlek/färg"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Klockstorlek/färg"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Färg"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Vänster genväg"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Höger genväg"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Inga"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Om du vill välja <xliff:g id="APPNAME">%1$s</xliff:g> markerar du följande"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Det går inte att lägga till genvägen"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Öppna <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Om du vill lägga till <xliff:g id="APPNAME">%1$s</xliff:g>-appen som en genväg ser du till att"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Klar"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Genvägar"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Inga"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Aviseringar"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Visa aviseringar på låsskärmen"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Dölj aviseringar på låsskärmen"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Fler alternativ"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Text på låsskärmen, Nu spelas med mera"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Fler låsskärmsalternativ"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Integritet, Nu spelas med mera"</string>
<string name="more_colors" msgid="3191071655353004591">"Fler färger"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Dynamiskt tema med primära färger"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Neutralt tema med primära färger"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Livfullt tema med primära färger"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Uttrycksfullt tema med primära färger"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Standardfärgen"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Färgalternativet <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-sw/clock_colors.xml b/res/values-sw/clock_colors.xml
deleted file mode 100644
index b2fd0c2..0000000
--- a/res/values-sw/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"NYEKUNDU"</item>
- <item msgid="6882970855289978213">"RANGI YA CHUNGWA"</item>
- <item msgid="5560732545714984533">"NJANO"</item>
- <item msgid="7246284817845434226">"KIJANI"</item>
- <item msgid="6762906417604676001">"BULUU"</item>
- <item msgid="8974135109557664892">"NILI"</item>
- <item msgid="786643557830463422">"ZAMBARAU ILIYOKOLEA"</item>
- <item msgid="6835537356703747621">"KIJIVU"</item>
- <item msgid="2470141365136884119">"SAMAWATI YA KIJANI"</item>
- </string-array>
-</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 780ab94..6361c8e 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Saa Maalum"</string>
<string name="clock_description" msgid="3563839327378948">"Chagua saa maalum"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Badili saa maalum"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Mipangilio ya Saa"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Rangi na ukubwa wa saa"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Rangi na ukubwa wa saa"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Rangi"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Njia ya mkato ya kushoto"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Njia ya mkato ya kulia"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Hamna"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Ili uchague `<xliff:g id="APPNAME">%1$s</xliff:g>` zingatia yafuatayo"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Imeshindwa kuweka njia ya mkato"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Fungua <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Ili kuweka programu ya <xliff:g id="APPNAME">%1$s</xliff:g> kuwa njia ya mkato, hakikisha"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Nimemaliza"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Njia za mkato"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Hamna"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Arifa"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Onyesha arifa kwenye skrini iliyofungwa"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ficha arifa kwenye skrini iliyofungwa"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Chaguo zaidi"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Maandishi kwenye skrini iliyofungwa, Kitambua Ngoma na zaidi"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Chaguo zaidi za kufunga skrini"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Faragha, Kitambua Ngoma na zaidi"</string>
<string name="more_colors" msgid="3191071655353004591">"Rangi Zaidi"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Mandhari msingi nyumbufu"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Mandhari msingi yenye rangi zilizopoa"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Mandhari msingi yenye rangi inayong\'aa"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Mandhari msingi inayojidhihirisha"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Chaguo la rangi chaguomsingi"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Chaguo la rangi ya <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-ta/clock_colors.xml b/res/values-ta/clock_colors.xml
deleted file mode 100644
index 67824d6..0000000
--- a/res/values-ta/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"சிவப்பு"</item>
- <item msgid="6882970855289978213">"ஆரஞ்சு"</item>
- <item msgid="5560732545714984533">"மஞ்சள்"</item>
- <item msgid="7246284817845434226">"பச்சை"</item>
- <item msgid="6762906417604676001">"நீலம்"</item>
- <item msgid="8974135109557664892">"அடர் நீலம்"</item>
- <item msgid="786643557830463422">"ஊதா"</item>
- <item msgid="6835537356703747621">"சாம்பல்"</item>
- <item msgid="2470141365136884119">"பசும் நீலம்"</item>
- </string-array>
-</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 429828b..469ccfd 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"பிரத்தியேகக் கடிகாரம்"</string>
<string name="clock_description" msgid="3563839327378948">"பிரத்தியேகக் கடிகாரத்தைத் தேர்வுசெய்க"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"பிரத்தியேகக் கடிகாரத்தை மாற்றும்"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"கடிகார அமைப்புகள்"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"கடிகார நிறம் & அளவு"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"கடிகார நிறம் & அளவு"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"நிறம்"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"இடது ஷார்ட்கட்"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"வலது ஷார்ட்கட்"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"ஏதுமில்லை"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` ஆப்ஸைத் தேர்ந்தெடுக்க பின்வருபவற்றைச் சரிபார்க்கவும்"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"ஷார்ட்கட்டைச் சேர்க்க முடியவில்லை"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> ஐத் திறக்கும்"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> ஆப்ஸை ஷார்ட்கட்டாகச் சேர்க்க இவற்றைப் பின்பற்றுவதை உறுதிசெய்துகொள்ளவும்:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"சரி"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ஷார்ட்கட்கள்"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ஏதுமில்லை"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"அறிவிப்புகள்"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"பூட்டுத் திரையில் அறிவிப்புகளைக் காட்டு"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"பூட்டுத் திரையில் அறிவிப்புகளைக் காட்டாது"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"மேலும் விருப்பங்கள்"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"பூட்டுத் திரையில் உரை, பாடல் விவரம் மற்றும் பல"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"கூடுதல் பூட்டுத் திரை விருப்பம்"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"தனியுரிமை, பாடல் விவரம் மற்றும் பல"</string>
<string name="more_colors" msgid="3191071655353004591">"கூடுதல் வண்ணங்கள்"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"முதன்மையான டைனமிக் தீம்"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"முதன்மையான நியூட்ரல் தீம்"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"முதன்மையான வர்ணஜாலத் தீம்"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"முதன்மையான எக்ஸ்பிரஸிவ் தீம்"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"இயல்பு வண்ண விருப்பம்"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"வண்ண விருப்பம் <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-te/clock_colors.xml b/res/values-te/clock_colors.xml
deleted file mode 100644
index a142c76..0000000
--- a/res/values-te/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ఎరుపు రంగు"</item>
- <item msgid="6882970855289978213">"నారింజ రంగు"</item>
- <item msgid="5560732545714984533">"పసుపు రంగు"</item>
- <item msgid="7246284817845434226">"ఆకుపచ్చ రంగు"</item>
- <item msgid="6762906417604676001">"నీలం రంగు"</item>
- <item msgid="8974135109557664892">"ఇండిగో రంగు"</item>
- <item msgid="786643557830463422">"ఊదా రంగు"</item>
- <item msgid="6835537356703747621">"బూడిద రంగు"</item>
- <item msgid="2470141365136884119">"టీల్ రంగు"</item>
- </string-array>
-</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index b7581e1..61fa556 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"అనుకూల గడియారం"</string>
<string name="clock_description" msgid="3563839327378948">"అనుకూల గడియారాన్ని ఎంచుకోండి"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"అనుకూల గడియారాన్ని మార్చండి"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"గడియారం సెట్టింగ్లు"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"గడియారం రంగు & సైజు"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"గడియారం రంగు & సైజు"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"రంగు"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ఎడమ షార్ట్కట్"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"కుడి షార్ట్కట్"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"ఏదీ లేదు"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` యాప్ను ఎంచుకోవడానికి దిగువ ఉన్న సూచనలను చూడండి."</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"షార్ట్కట్ను జోడించడం సాధ్యపడదు"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g>ను తెరవండి"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> యాప్ను షార్ట్కట్గా జోడించడానికి, వీటిని నిర్ధారించుకోండి"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"పూర్తయింది"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"షార్ట్కట్లు"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ఏదీ ఎంచుకోలేదు"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"నోటిఫికేషన్లు"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"లాక్ స్క్రీన్లో నోటిఫికేషన్లను చూపండి"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"లాక్ స్క్రీన్లో నోటిఫికేషన్లను దాచండి"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"మరిన్ని ఆప్షన్లు"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"లాక్ స్క్రీన్, Now Playing, మరిన్ని కోసం టెక్స్ట్ మెసేజ్ పంపండి"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"మరిన్ని లాక్ స్క్రీన్ ఆప్షన్లు"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"గోప్యత, Now Playing, ఇంకా మరిన్ని"</string>
<string name="more_colors" msgid="3191071655353004591">"మరిన్ని రంగులు"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ప్రాథమిక డైనమిక్ రూపం"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ప్రాథమిక న్యూట్రల్ రూపం"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ప్రాథమిక వైబ్రెంట్ రూపం"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ప్రాథమిక ఎక్స్ప్రెషిప్ రూపం"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"ఆటోమేటిక్ సెట్టింగ్ రంగు ఆప్షన్"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"రంగు ఆప్షన్ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-th/clock_colors.xml b/res/values-th/clock_colors.xml
deleted file mode 100644
index c63bdd1..0000000
--- a/res/values-th/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"แดง"</item>
- <item msgid="6882970855289978213">"ส้ม"</item>
- <item msgid="5560732545714984533">"เหลือง"</item>
- <item msgid="7246284817845434226">"เขียว"</item>
- <item msgid="6762906417604676001">"น้ำเงิน"</item>
- <item msgid="8974135109557664892">"น้ำเงินอมม่วง"</item>
- <item msgid="786643557830463422">"ม่วงอมน้ำเงิน"</item>
- <item msgid="6835537356703747621">"เทา"</item>
- <item msgid="2470141365136884119">"น้ำเงินอมเขียว"</item>
- </string-array>
-</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 1f790b0..248c8a1 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"นาฬิกาที่กำหนดเอง"</string>
<string name="clock_description" msgid="3563839327378948">"เลือกนาฬิกาที่กำหนดเอง"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"เปลี่ยนนาฬิกาที่กำหนดเอง"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"ตั้งค่านาฬิกา"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"สีและขนาดนาฬิกา"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"สีและขนาดนาฬิกา"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"สี"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"ทางลัดทางซ้าย"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"ทางลัดทางขวา"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"ไม่มี"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"หากต้องการเลือก \"<xliff:g id="APPNAME">%1$s</xliff:g>\" โปรดตรวจสอบรายการต่อไปนี้"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"เพิ่มทางลัดไม่ได้"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"เปิด <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"หากต้องการเพิ่มแอป <xliff:g id="APPNAME">%1$s</xliff:g> เป็นทางลัด โปรดตรวจสอบดังต่อไปนี้"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"เสร็จสิ้น"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ทางลัด"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"ไม่มี"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"การแจ้งเตือน"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"แสดงการแจ้งเตือนบนหน้าจอล็อก"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"ซ่อนการแจ้งเตือนบนหน้าจอล็อก"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"ตัวเลือกเพิ่มเติม"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"ข้อความบนหน้าจอล็อก \"กำลังเล่น\" และอื่นๆ"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"ตัวเลือกหน้าจอล็อกเพิ่มเติม"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"ความเป็นส่วนตัว ฟีเจอร์ \"กำลังเล่น\" และอื่นๆ"</string>
<string name="more_colors" msgid="3191071655353004591">"สีเพิ่มเติม"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"ธีมหลักแบบไดนามิก"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"ธีมหลักแบบใช้สีโทนกลาง"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"ธีมหลักแบบสีสันสดใส"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"ธีมหลักแบบชัดเจน"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"ตัวเลือกสีเริ่มต้น"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"ตัวเลือกสี <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-tl/clock_colors.xml b/res/values-tl/clock_colors.xml
deleted file mode 100644
index 6c26409..0000000
--- a/res/values-tl/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"PULA"</item>
- <item msgid="6882970855289978213">"ORANGE"</item>
- <item msgid="5560732545714984533">"DILAW"</item>
- <item msgid="7246284817845434226">"BERDE"</item>
- <item msgid="6762906417604676001">"ASUL"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"VIOLET"</item>
- <item msgid="6835537356703747621">"GRAY"</item>
- <item msgid="2470141365136884119">"TEAL"</item>
- </string-array>
-</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 2d901a8..98db3fb 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Custom na Orasan"</string>
<string name="clock_description" msgid="3563839327378948">"Pumili ng custom na orasan"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Magbago ng custom na orasan"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Clock Settings"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Kulay, laki ng clock"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Kulay, laki ng clock"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Kulay"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Kaliwang shortcut"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Kanang shortcut"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Wala"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Para piliin ang `<xliff:g id="APPNAME">%1$s</xliff:g>,` tingnan ang sumusunod"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Hindi maidagdag ang shortcut"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Buksan ang <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Para idagdag ang <xliff:g id="APPNAME">%1$s</xliff:g> app bilang shortcut, tiyaking"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Tapos na"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Mga Shortcut"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Wala"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Mga Notification"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Ipakita ang mga notification sa lock screen"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Itago ang mga notification sa lock screen"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Higit pang opsyon"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Text sa lock screen, Nagpi-play Ngayon, at higit pa"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Higit pang opsyon sa lock screen"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Privacy, Nagpe-play Ngayon, at higit pa"</string>
<string name="more_colors" msgid="3191071655353004591">"Higit Pang Kulay"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Pangunahing dynamic na tema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Pangunahing neutral na tema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Pangunahing matingkad na tema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Pangunahing expressive na tema"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Default na opsyon sa kulay"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Opsyon sa kulay na <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-tr/clock_colors.xml b/res/values-tr/clock_colors.xml
deleted file mode 100644
index 45c8118..0000000
--- a/res/values-tr/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"KIRMIZI"</item>
- <item msgid="6882970855289978213">"TURUNCU"</item>
- <item msgid="5560732545714984533">"SARI"</item>
- <item msgid="7246284817845434226">"YEŞİL"</item>
- <item msgid="6762906417604676001">"MAVİ"</item>
- <item msgid="8974135109557664892">"ÇİVİT MAVİSİ"</item>
- <item msgid="786643557830463422">"MOR"</item>
- <item msgid="6835537356703747621">"GRİ"</item>
- <item msgid="2470141365136884119">"TURKUAZ"</item>
- </string-array>
-</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index d5c66ab..a14dd38 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Özel Saat"</string>
<string name="clock_description" msgid="3563839327378948">"Özel saat seçin"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Özel saati değiştirin"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Saat Ayarları"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Saat rengi ve boyutu"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Saat rengi ve boyutu"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Renk"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Sol kısayol"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Sağ kısayol"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Yok"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"\"<xliff:g id="APPNAME">%1$s</xliff:g>\" uygulamasını seçmek için şunları kontrol edin"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Kısayol eklenemiyor"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> uygulamasını aç"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> uygulamasını kısayol olarak ekleyebilmeniz için gerekenler"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Bitti"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Kısayollar"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Yok"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Bildirimler"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Kilit ekranında bildirimleri göster"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Kilit ekranında bildirimleri gizle"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Diğer seçenekler"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Kilit ekranındaki metin, Ne Çalıyor? ve daha fazlası"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Diğer kilit ekranı seçenekleri"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Gizlilik, Ne Çalıyor? ve daha fazlası"</string>
<string name="more_colors" msgid="3191071655353004591">"Diğer Renkler"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Birincil dinamik tema"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Birincil nötr tema"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Birincil canlı tema"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Birincil ifade teması"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Varsayılan renk seçeneği"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g> renk seçeneği"</string>
</resources>
diff --git a/res/values-uk/clock_colors.xml b/res/values-uk/clock_colors.xml
deleted file mode 100644
index aaa3b71..0000000
--- a/res/values-uk/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ЧЕРВОНИЙ"</item>
- <item msgid="6882970855289978213">"ОРАНЖЕВИЙ"</item>
- <item msgid="5560732545714984533">"ЖОВТИЙ"</item>
- <item msgid="7246284817845434226">"ЗЕЛЕНИЙ"</item>
- <item msgid="6762906417604676001">"СИНІЙ"</item>
- <item msgid="8974135109557664892">"ІНДИГО"</item>
- <item msgid="786643557830463422">"ФІОЛЕТОВИЙ"</item>
- <item msgid="6835537356703747621">"СІРИЙ"</item>
- <item msgid="2470141365136884119">"БІРЮЗОВИЙ"</item>
- </string-array>
-</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index e043eb8..851c92f 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Свій циферблат"</string>
<string name="clock_description" msgid="3563839327378948">"Виберіть свій циферблат"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Змініть свій циферблат"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Налаштування"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Колір і розмір год."</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Колір і розмір годинника"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Колір"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Ярлик ліворуч"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Ярлик праворуч"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Немає"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Щоб вибрати додаток <xliff:g id="APPNAME">%1$s</xliff:g>, виконайте наведені нижче дії"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Не вдається додати ярлик"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Відкрити <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Щоб додати можливість швидкого ввімкнення додатка <xliff:g id="APPNAME">%1$s</xliff:g>, переконайтеся, що виконано вимоги нижче."</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Готово"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Ярлики"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Немає"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Сповіщення"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Показувати сповіщення на заблокованому екрані"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Приховувати сповіщення на заблокованому екрані"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Інші опції"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Текст на заблокованому екрані, функція \"Зараз грає\" тощо"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Інші параметри заблоков. екрана"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Конфіденційність, функція \"Зараз грає\" тощо"</string>
<string name="more_colors" msgid="3191071655353004591">"Більше кольорів"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Динамічна основна тема"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Нейтральна основна тема"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Насичена основна тема"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Виразна основна тема"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Колір за умовчанням"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Колір \"<xliff:g id="ID_1">%1$d</xliff:g>\""</string>
</resources>
diff --git a/res/values-ur/clock_colors.xml b/res/values-ur/clock_colors.xml
deleted file mode 100644
index 2203d92..0000000
--- a/res/values-ur/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"سرخ"</item>
- <item msgid="6882970855289978213">"نارنجی"</item>
- <item msgid="5560732545714984533">"زرد"</item>
- <item msgid="7246284817845434226">"سبز"</item>
- <item msgid="6762906417604676001">"نیلا"</item>
- <item msgid="8974135109557664892">"گہرا نیلا"</item>
- <item msgid="786643557830463422">"بیگنی"</item>
- <item msgid="6835537356703747621">"خاکستری"</item>
- <item msgid="2470141365136884119">"نیلگوں سبز"</item>
- </string-array>
-</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 211a016..65367db 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"حسب ضرورت گھڑی"</string>
<string name="clock_description" msgid="3563839327378948">"حسب ضرورت گھڑی چنیں"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"حسب ضرورت گھڑی کو تبدیل کریں"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"گھڑی کی ترتیبات"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"گھڑی کا رنگ و سائز"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"گھڑی کا رنگ اور سائز"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>، <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"رنگ"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"دائیں جانب کا شارٹ کٹ"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"بائیں جانب کا شارٹ کٹ"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"کوئی نہیں"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"`<xliff:g id="APPNAME">%1$s</xliff:g>` کو منتخب کرنے کے لیے درج ذیل کو چیک کریں"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"شارٹ کٹ شامل نہیں کیا جا سکتا"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"<xliff:g id="APPNAME">%1$s</xliff:g> کھولیں"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> ایپ کو شارٹ کٹ کے طور پر شامل کرنے کے لیے درج ذیل کو یقینی بنائیں"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ہو گیا"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"شارٹ کٹس"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>، <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"کوئی نہیں"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"اطلاعات"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"مقفل اسکرین پر اطلاعات دکھائیں"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"مقفل اسکرین پر اطلاعات چھپائیں"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"مزید اختیارات"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"لاک اسکرین پر ٹیکسٹ، ابھی Now Playing اور مزید"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"مقفل اسکرین کے مزید اختیارات"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"رازداری، Now Playing اور مزید"</string>
<string name="more_colors" msgid="3191071655353004591">"مزید رنگ"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"بنیادی ڈائنیمک تھیم"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"بنیادی نیوٹرل تھیم"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"بنیادی وائبرنٹ تھیم"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"بنیادی معنی خیز تھیم"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"رنگ کا ڈیفالٹ اختیار"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g> رنگ کا اختیار"</string>
</resources>
diff --git a/res/values-uz/clock_colors.xml b/res/values-uz/clock_colors.xml
deleted file mode 100644
index 737d2bd..0000000
--- a/res/values-uz/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"QIZIL"</item>
- <item msgid="6882970855289978213">"TOʻQ SARIQ"</item>
- <item msgid="5560732545714984533">"SARIQ"</item>
- <item msgid="7246284817845434226">"YASHIL"</item>
- <item msgid="6762906417604676001">"KOʻK"</item>
- <item msgid="8974135109557664892">"INDIGO"</item>
- <item msgid="786643557830463422">"BINAFSHARANG"</item>
- <item msgid="6835537356703747621">"KULRANG"</item>
- <item msgid="2470141365136884119">"MOVIY"</item>
- </string-array>
-</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index ac0d71e..9a9afa0 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Maxsus soat"</string>
<string name="clock_description" msgid="3563839327378948">"Maxsus soat tanlash"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Maxsus soatni almashtirish"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Soat sozlamalari"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Soat rangi va hajmi"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Soat rangi va hajmi"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Rang"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Chap yorliq"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Oʻng yorliq"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Hech biri"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"“<xliff:g id="APPNAME">%1$s</xliff:g>” ilovasini tanlash uchun quyidagilarni bajaring:"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Yorliq kiritilmadi"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Ochish: <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"<xliff:g id="APPNAME">%1$s</xliff:g> ilovasini yorliq sifatida qoʻshish uchun"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Tayyor"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Tezkor tugmalar"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Hech qanday"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Bildirishnomalar"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Ekran qulfida bildirishnomalarni chiqarish"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ekran qulfida bildirishnomalarni berkitish"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Boshqa parametrlar"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Ekran qulfidagi matn, Bu qaysi musiqa va boshqalar"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Boshqa ekran qulfi sozlamalari"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Maxfiylik, Bu qaysi musiqa va boshqalar"</string>
<string name="more_colors" msgid="3191071655353004591">"Boshqa ranglar"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Asosiy dinamik mavzu"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Asosiy neytral mavzu"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Asosiy yorqin mavzu"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Asosiy ifodali mavzu"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Asosiy rang varianti"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"<xliff:g id="ID_1">%1$d</xliff:g> rangi varianti"</string>
</resources>
diff --git a/res/values-vi/clock_colors.xml b/res/values-vi/clock_colors.xml
deleted file mode 100644
index 5ef97c5..0000000
--- a/res/values-vi/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"ĐỎ"</item>
- <item msgid="6882970855289978213">"CAM"</item>
- <item msgid="5560732545714984533">"VÀNG"</item>
- <item msgid="7246284817845434226">"XANH LỤC"</item>
- <item msgid="6762906417604676001">"XANH LAM"</item>
- <item msgid="8974135109557664892">"CHÀM"</item>
- <item msgid="786643557830463422">"TÍM"</item>
- <item msgid="6835537356703747621">"XÁM"</item>
- <item msgid="2470141365136884119">"XANH MÒNG KÉT"</item>
- </string-array>
-</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 88ffe44..3bace5c 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Đồng hồ tuỳ chỉnh"</string>
<string name="clock_description" msgid="3563839327378948">"Chọn đồng hồ tuỳ chỉnh"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Thay đổi đồng hồ tuỳ chỉnh"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Cài đặt đồng hồ"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Màu và kích thước đồng hồ"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Màu và kích thước đồng hồ"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Màu"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Lối tắt bên trái"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Lối tắt bên phải"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Không có"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Để chọn \"<xliff:g id="APPNAME">%1$s</xliff:g>\", hãy làm theo hướng dẫn sau đây"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Không thêm được lối tắt"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Mở <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Để tạo lối tắt cho ứng dụng <xliff:g id="APPNAME">%1$s</xliff:g>, hãy đảm bảo"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Xong"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Lối tắt"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Không có"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Thông báo"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Hiển thị thông báo trên màn hình khoá"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Ẩn thông báo trên màn hình khoá"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Tuỳ chọn khác"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Văn bản trên màn hình khoá, Phát hiện nhạc, v.v."</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Tuỳ chọn khác trên màn hình khoá"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Quyền riêng tư, Phát hiện nhạc, v.v."</string>
<string name="more_colors" msgid="3191071655353004591">"Màu khác"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Giao diện động chính"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Giao diện trung tính chính"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Giao diện rực rỡ chính"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Giao diện biểu đạt chính"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Tuỳ chọn màu mặc định"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Tuỳ chọn màu <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-w400dp/dimens.xml b/res/values-w400dp/dimens.xml
new file mode 100644
index 0000000..e546787
--- /dev/null
+++ b/res/values-w400dp/dimens.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2023 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<resources>
+ <!-- Clock carousel dimens -->
+ <dimen name="clock_carousel_item_card_width">114dp</dimen>
+ <dimen name="clock_carousel_item_card_height">124dp</dimen>
+ <dimen name="clock_carousel_guideline_margin">130dp</dimen>
+</resources>
diff --git a/res/values-w500dp/dimens.xml b/res/values-w500dp/dimens.xml
new file mode 100644
index 0000000..6d9476a
--- /dev/null
+++ b/res/values-w500dp/dimens.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2023 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<resources>
+ <!-- Clock carousel dimens -->
+ <dimen name="clock_carousel_item_card_width">114dp</dimen>
+ <dimen name="clock_carousel_item_card_height">124dp</dimen>
+ <dimen name="clock_carousel_guideline_margin">180dp</dimen>
+</resources>
diff --git a/res/values-w600dp/dimens.xml b/res/values-w600dp/dimens.xml
new file mode 100644
index 0000000..f9ed41b
--- /dev/null
+++ b/res/values-w600dp/dimens.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2023 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<resources>
+ <dimen name="clock_carousel_item_width">607dp</dimen>
+
+ <!-- Clock carousel dimens -->
+ <dimen name="clock_carousel_item_card_width">114dp</dimen>
+ <dimen name="clock_carousel_item_card_height">124dp</dimen>
+ <dimen name="clock_carousel_guideline_margin">220dp</dimen>
+</resources>
diff --git a/res/values-w700dp/dimens.xml b/res/values-w700dp/dimens.xml
new file mode 100644
index 0000000..3e3fa01
--- /dev/null
+++ b/res/values-w700dp/dimens.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2023 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<resources>
+ <!-- Clock carousel dimens -->
+ <dimen name="clock_carousel_item_card_width">114dp</dimen>
+ <dimen name="clock_carousel_item_card_height">124dp</dimen>
+ <dimen name="clock_carousel_guideline_margin">240dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/res/values-w800dp/dimens.xml b/res/values-w800dp/dimens.xml
index 6ba900e..d5032b6 100644
--- a/res/values-w800dp/dimens.xml
+++ b/res/values-w800dp/dimens.xml
@@ -18,4 +18,9 @@
<!-- Dimensions for the customization option tiles -->
<dimen name="option_tile_width">87dp</dimen>
<dimen name="option_tile_linear_padding_horizontal">8dp</dimen>
+
+ <!-- Clock carousel dimens -->
+ <dimen name="clock_carousel_item_card_width">114dp</dimen>
+ <dimen name="clock_carousel_item_card_height">124dp</dimen>
+ <dimen name="clock_carousel_guideline_margin">320dp</dimen>
</resources>
\ No newline at end of file
diff --git a/res/values-zh-rCN/clock_colors.xml b/res/values-zh-rCN/clock_colors.xml
deleted file mode 100644
index e3c68c0..0000000
--- a/res/values-zh-rCN/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"红色"</item>
- <item msgid="6882970855289978213">"橙色"</item>
- <item msgid="5560732545714984533">"黄色"</item>
- <item msgid="7246284817845434226">"绿色"</item>
- <item msgid="6762906417604676001">"蓝色"</item>
- <item msgid="8974135109557664892">"靛蓝色"</item>
- <item msgid="786643557830463422">"紫罗兰色"</item>
- <item msgid="6835537356703747621">"灰色"</item>
- <item msgid="2470141365136884119">"蓝绿色"</item>
- </string-array>
-</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 6057cb4..5d92107 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"自定义钟面"</string>
<string name="clock_description" msgid="3563839327378948">"选择自定义钟面"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"更改自定义钟面"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"表盘设置"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"时钟颜色和尺寸"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"时钟颜色和尺寸"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>、<xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"颜色"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"左侧快捷方式"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"右侧快捷方式"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"无"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"若要选择“<xliff:g id="APPNAME">%1$s</xliff:g>”,请确认满足已以下条件:"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"无法添加快捷方式"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"打开<xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"若要将<xliff:g id="APPNAME">%1$s</xliff:g>应用添加为快捷方式,请确保:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"完成"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"快捷方式"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>、<xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"无"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"通知"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"在锁定的屏幕上显示通知"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"在锁定的屏幕上不显示通知"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"更多选项"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"在锁定屏幕上添加文字、闻曲知音和其他设置"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"更多锁屏选项"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"隐私设置、闻曲知音等"</string>
<string name="more_colors" msgid="3191071655353004591">"更多颜色"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"主要动态主题"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"主要中性主题"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"主要鲜艳主题"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"主要炫彩主题"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"默认颜色选项"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"颜色选项 <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-zh-rHK/clock_colors.xml b/res/values-zh-rHK/clock_colors.xml
deleted file mode 100644
index 2861c3b..0000000
--- a/res/values-zh-rHK/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"紅色"</item>
- <item msgid="6882970855289978213">"橙色"</item>
- <item msgid="5560732545714984533">"黃色"</item>
- <item msgid="7246284817845434226">"綠色"</item>
- <item msgid="6762906417604676001">"藍色"</item>
- <item msgid="8974135109557664892">"靛藍色"</item>
- <item msgid="786643557830463422">"紫羅蘭色"</item>
- <item msgid="6835537356703747621">"灰色"</item>
- <item msgid="2470141365136884119">"藍綠色"</item>
- </string-array>
-</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 54f5a16..0594125 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"自訂時鐘"</string>
<string name="clock_description" msgid="3563839327378948">"揀選自訂時鐘"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"變更自訂時鐘"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"時鐘設定"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"時鐘顏色及大小"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"時鐘顏色及大小"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>,<xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"顏色"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"向左捷徑"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"向右捷徑"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"無"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"請勾選以下選項以選取「<xliff:g id="APPNAME">%1$s</xliff:g>」"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"無法新增捷徑"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"開啟「<xliff:g id="APPNAME">%1$s</xliff:g>」"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"如要新增「<xliff:g id="APPNAME">%1$s</xliff:g>」應用程式為快速鍵,請確保:"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"完成"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"捷徑"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>,<xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"無"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"通知"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"在上鎖畫面顯示通知"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"在上鎖畫面隱藏通知"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"更多選項"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"在上鎖畫面發短訊、使用「歌曲識別」功能等"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"更多上鎖畫面選項"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"私隱、歌曲識別和其他設定"</string>
<string name="more_colors" msgid="3191071655353004591">"更多顏色"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"動態主要主題"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"中性主要主題"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"鮮艷主要主題"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"熱情主要主題"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"預設顏色選項"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"顏色選項:<xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-zh-rTW/clock_colors.xml b/res/values-zh-rTW/clock_colors.xml
deleted file mode 100644
index 596109b..0000000
--- a/res/values-zh-rTW/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"紅色"</item>
- <item msgid="6882970855289978213">"橘色"</item>
- <item msgid="5560732545714984533">"黃色"</item>
- <item msgid="7246284817845434226">"綠色"</item>
- <item msgid="6762906417604676001">"藍色"</item>
- <item msgid="8974135109557664892">"靛藍色"</item>
- <item msgid="786643557830463422">"紫羅蘭色"</item>
- <item msgid="6835537356703747621">"灰色"</item>
- <item msgid="2470141365136884119">"藍綠色"</item>
- </string-array>
-</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 6708c5d..7a4d1c6 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"自訂時鐘"</string>
<string name="clock_description" msgid="3563839327378948">"選擇自訂時鐘"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"變更自訂時鐘"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"時鐘設定"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"時鐘顏色與大小"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"時鐘顏色與大小"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_2">%2$s</xliff:g>,<xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"顏色"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"左側捷徑"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"右側捷徑"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"無"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"必須完成以下事項才能選取「<xliff:g id="APPNAME">%1$s</xliff:g>」"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"無法新增捷徑"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"開啟「<xliff:g id="APPNAME">%1$s</xliff:g>」"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"如要將「<xliff:g id="APPNAME">%1$s</xliff:g>」應用程式新增為捷徑,必須滿足以下條件"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"完成"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"捷徑"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>、<xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"無"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"通知"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"在螢幕鎖定畫面上顯示通知"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"在螢幕鎖定畫面上隱藏通知"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"更多選項"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"「在螢幕鎖定畫面上顯示特定文字」、「聽聲辨曲」和其他設定"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"更多螢幕鎖定選項"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"隱私權、聽聲辨曲和其他設定"</string>
<string name="more_colors" msgid="3191071655353004591">"更多顏色"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"主要動態主題"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"主要自然主題"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"主要鮮豔主題"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"主要表現主題"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"預設顏色選項"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"顏色選項 <xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values-zu/clock_colors.xml b/res/values-zu/clock_colors.xml
deleted file mode 100644
index f33ef25..0000000
--- a/res/values-zu/clock_colors.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="clock_color_ids">
- <item msgid="4948142733161826319">"OKUBOMVU"</item>
- <item msgid="6882970855289978213">"OKUWOLINTSHI"</item>
- <item msgid="5560732545714984533">"OKUPHUZI"</item>
- <item msgid="7246284817845434226">"OKULUHLAZA OKOTSHANI"</item>
- <item msgid="6762906417604676001">"OKULUHLAZA OKWESIBHAKABHAKA"</item>
- <item msgid="8974135109557664892">"OKU-INDIGO"</item>
- <item msgid="786643557830463422">"OKU-VIOLET"</item>
- <item msgid="6835537356703747621">"OKUMPUNGA"</item>
- <item msgid="2470141365136884119">"OKU-TEAL"</item>
- </string-array>
-</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index bf3ad3d..f9ac005 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -22,7 +22,7 @@
<string name="clock_title" msgid="1974314575211361352">"Iwashi Elingokomuntu Ngamunye"</string>
<string name="clock_description" msgid="3563839327378948">"Khetha iwashi elingokomuntu ngamunye"</string>
<string name="clock_picker_entry_content_description" msgid="8377139273468595734">"Shintsha iwashi elingokomuntu ngamunye"</string>
- <string name="clock_settings_title" msgid="2940654205471453913">"Amasethingi Ewashi"</string>
+ <string name="clock_settings_title" msgid="2050906379377120431">"Umbala wewashi nosayizi"</string>
<string name="clock_color_and_size_title" msgid="7146791234905111351">"Umbala wewashi nosayizi"</string>
<string name="clock_color_and_size_description" msgid="6578061553012886817">"<xliff:g id="ID_1">%1$s</xliff:g>, <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="clock_color" msgid="8081608867289156163">"Umbala"</string>
@@ -116,7 +116,7 @@
<string name="keyguard_slot_name_bottom_start" msgid="8747677880200629719">"Isinqamuleli sangakwesokunxele"</string>
<string name="keyguard_slot_name_bottom_end" msgid="2525487375680217083">"Isinqamuleli sangakwesokudla"</string>
<string name="keyguard_affordance_none" msgid="1751643933430782312">"Lutho"</string>
- <string name="keyguard_affordance_enablement_dialog_title" msgid="3389730825561696493">"Ukukhetha i-`<xliff:g id="APPNAME">%1$s</xliff:g>` maka okulandelayo"</string>
+ <string name="keyguard_affordance_enablement_dialog_headline" msgid="365379085932610314">"Ayikwazi ukwengeza isinqamuleli"</string>
<string name="keyguard_affordance_enablement_dialog_action_template" msgid="8117011931337357438">"Vula i-<xliff:g id="APPNAME">%1$s</xliff:g>"</string>
<string name="keyguard_affordance_enablement_dialog_message" msgid="6136286758939253570">"Ukwengeza i-app ye-<xliff:g id="APPNAME">%1$s</xliff:g> njengesinqamuleli, qinisekisa"</string>
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Kwenziwe"</string>
@@ -124,12 +124,15 @@
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Izinqamuleli"</string>
<string name="keyguard_quick_affordance_two_selected_template" msgid="1757099194522296363">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
<string name="keyguard_quick_affordance_none_selected" msgid="8494127020144112003">"Lutho"</string>
- <string name="notifications_section_title" msgid="4283049750376871538">"Izaziso"</string>
<string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Bonisa izaziso esikrinini sokukhiya"</string>
<string name="hide_notifications_on_lock_screen" msgid="7413548956484779174">"Fihla izaziso esikrinini sokukhiya"</string>
- <string name="more_settings_section_title" msgid="8524741850115625404">"Okunye ongakhetha kukho"</string>
- <string name="more_settings_section_description" msgid="8787768566854880683">"Umbhalo esikrinini sokukhiya, Okudlala Manje, nokuningi"</string>
+ <string name="more_settings_section_title" msgid="1331425454775815958">"Okukhethwa kukho kokukhiya isikrini okuningi"</string>
+ <string name="more_settings_section_description" msgid="1860115709122398325">"Ubumfihlo, Okudlala Manje, nokuningi"</string>
<string name="more_colors" msgid="3191071655353004591">"Imibala Eyengeziwe"</string>
+ <string name="content_description_dynamic_color_option" msgid="2191721655642529886">"Itimu eshintshayo eyinhloko"</string>
+ <string name="content_description_neutral_color_option" msgid="3385443834001275301">"Itimu emaphakathi eyinhloko"</string>
+ <string name="content_description_vibrant_color_option" msgid="2230249305878632821">"Itimu edlidlizayo eyinhloko"</string>
+ <string name="content_description_expressive_color_option" msgid="6081295313456341282">"Itimu ebizayo eyinhloko"</string>
<string name="content_description_default_color_option" msgid="7011899327541080695">"Okukhethwa kukho kombala okuzenzakalelayo"</string>
<string name="content_description_color_option" msgid="4169813692012119578">"Okukhethwa kukho kombala kwe-<xliff:g id="ID_1">%1$d</xliff:g>"</string>
</resources>
diff --git a/res/values/clock_colors.xml b/res/values/clock_colors.xml
index 1539a92..465f0a0 100644
--- a/res/values/clock_colors.xml
+++ b/res/values/clock_colors.xml
@@ -15,7 +15,8 @@
limitations under the License.
-->
<resources>
- <string-array name="clock_color_ids">
+ <string-array translatable="false" name="clock_color_ids">
+ <item>GRAY</item>
<item>RED</item>
<item>ORANGE</item>
<item>YELLOW</item>
@@ -23,10 +24,10 @@
<item>BLUE</item>
<item>INDIGO</item>
<item>VIOLET</item>
- <item>GRAY</item>
<item>TEAL</item>
</string-array>
<array name="clock_color_names">
+ <item>@string/clock_color_gray</item>
<item>@string/clock_color_red</item>
<item>@string/clock_color_orange</item>
<item>@string/clock_color_yellow</item>
@@ -34,10 +35,10 @@
<item>@string/clock_color_blue</item>
<item>@string/clock_color_indigo</item>
<item>@string/clock_color_violet</item>
- <item>@string/clock_color_gray</item>
<item>@string/clock_color_teal</item>
</array>
<array name="clock_colors">
+ <item>#B9B9B9</item>
<item>#FFA3A7</item>
<item>#F7AC69</item>
<item>#FFC951</item>
@@ -45,10 +46,10 @@
<item>#8EC8FF</item>
<item>#B9AAFF</item>
<item>#F6A2FF</item>
- <item>#B9B9B9</item>
<item>#40D9CF</item>
</array>
<array name="clock_color_tone_min">
+ <item>0</item>
<item>20</item>
<item>20</item>
<item>50</item>
@@ -56,10 +57,10 @@
<item>20</item>
<item>10</item>
<item>20</item>
- <item>0</item>
<item>20</item>
</array>
<array name="clock_color_tone_max">
+ <item>100</item>
<item>95</item>
<item>95</item>
<item>95</item>
@@ -67,7 +68,6 @@
<item>95</item>
<item>95</item>
<item>97</item>
- <item>100</item>
<item>99</item>
</array>
</resources>
\ No newline at end of file
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 0d5a9a8..a3e0d4a 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -33,7 +33,7 @@
<dimen name="options_container_width">0dp</dimen>
<dimen name="option_bottom_margin">8dp</dimen>
<dimen name="option_padding_horizontal">2dp</dimen>
- <dimen name="option_tile_width">82dp</dimen>
+ <dimen name="option_tile_width">80dp</dimen>
<dimen name="option_tile_radius">20dp</dimen>
<dimen name="option_tile_margin_horizontal">6dp</dimen>
<dimen name="option_tile_padding_vertical">12dp</dimen>
@@ -157,11 +157,27 @@
<dimen name="keyguard_quick_affordance_icon_size">24dp</dimen>
<dimen name="clock_carousel_item_width">190dp</dimen>
- <dimen name="clock_carousel_item_height">380dp</dimen>
<dimen name="clock_carousel_item_margin">16dp</dimen>
- <dimen name="clock_carousel_guideline_margin">140dp</dimen>
- <!-- Scale of the carousel items that are not selected and at the side -->
- <dimen name="clock_carousel_scale" format="float">0.5</dimen>
- <!-- Alpha of the carousel items that are not selected and at the side -->
- <dimen name="clock_carousel_alpha" format="float">0.4</dimen>
+ <dimen name="clock_carousel_guideline_margin">100dp</dimen>
+ <dimen name="clock_carousel_item_card_width">100dp</dimen>
+ <dimen name="clock_carousel_item_card_height">108dp</dimen>
+ <dimen name="clock_carousel_guideline_margin_for_2_pane_small_width">122dp</dimen>
+
+ <!-- Clock color and size button -->
+ <dimen name="clock_color_size_button_min_height">32dp</dimen>
+ <dimen name="clock_color_size_button_horizontal_padding">12dp</dimen>
+ <dimen name="clock_color_size_button_vertical_padding">6dp</dimen>
+ <dimen name="clock_color_size_button_corner_radius">16dp</dimen>
+ <dimen name="clock_color_size_button_icon_size">20dp</dimen>
+ <dimen name="clock_color_size_button_icon_margin_end">12dp</dimen>
+
+ <!--
+ Dimension for clock translationY when swiping clock carousel in picker,
+ copied from sysui resources
+ -->
+ <dimen name="keyguard_large_clock_top_margin">-60dp</dimen>
+ <!-- Dimension for the clock view, copied from sysui resources. -->
+ <dimen name="small_clock_height">114dp</dimen>
+ <dimen name="small_clock_padding_top">28dp</dimen>
+ <dimen name="clock_padding_start">28dp</dimen>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 01113c4..b7574a3 100755
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -33,8 +33,11 @@
<!-- The content description of clock entry. [CHAR LIMIT=NONE] -->
<string name="clock_picker_entry_content_description">Change a custom clock</string>
+ <!-- action description for announcing selected Clock [CHAR LIMIT=NONE]-->
+ <string name="select_clock_action_description">Clock face option <xliff:g name="clock_face_description">%1$s</xliff:g></string>
+
<!-- Title of a section of the customization picker where the user can configure Clock face. [CHAR LIMIT=19] -->
- <string name="clock_settings_title">Clock Settings</string>
+ <string name="clock_settings_title">Clock color & size</string>
<!-- Title of a section of the customization picker where the user can configure clock color and size. [CHAR LIMIT=20] -->
<string name="clock_color_and_size_title">Clock color & size</string>
@@ -360,7 +363,7 @@
enabled. The dialog contains a list of instructions that the user needs to take in order to
enable the option before it can be selected again. [CHAR LIMIT=NONE].
-->
- <string name="keyguard_affordance_enablement_dialog_title">To select `<xliff:g id="appName" example="Wallet">%1$s</xliff:g>` check the following</string>
+ <string name="keyguard_affordance_enablement_dialog_headline">Can\'t add shortcut</string>
<!--
Template for an action that opens a specific app. [CHAR LIMIT=16]
@@ -412,14 +415,6 @@
<string name="keyguard_quick_affordance_none_selected">None</string>
<!--
- Title for a section in a list of sections in the settings app that allows the user to modify
- how notifications behave whilst the device is locked.
-
- [CHAR LIMIT=32].
- -->
- <string name="notifications_section_title">Notifications</string>
-
- <!--
Summary for a setting that lets the user toggle between showing or hiding notifications on their
device's lock screen. This one is shown when the user is allowing notifications to show on their
device's lock screen.
@@ -443,7 +438,7 @@
[CHAR LIMIT=32].
-->
- <string name="more_settings_section_title">More options</string>
+ <string name="more_settings_section_title">More lock screen options</string>
<!--
Summary for a setting that lets the user access additional settings related to lock screen
@@ -453,7 +448,7 @@
[CHAR LIMIT=64].
-->
- <string name="more_settings_section_description">Text on lock screen, Now Playing, and more</string>
+ <string name="more_settings_section_description">Privacy, Now Playing, and more</string>
<!--
Label for button that lets the user navigate to a full-screen experience of selecting
@@ -464,6 +459,38 @@
<string name="more_colors">More Colors</string>
<!--
+ Accessibility string for a button that allows the user to select a color scheme generated from
+ their current wallpaper as the system color. This is shown in a list with other color options.
+
+ [CHAR LIMIT=NONE].
+ -->
+ <string name="content_description_dynamic_color_option">Primary dynamic theme</string>
+
+ <!--
+ Accessibility string for a button that allows the user to select a color scheme generated from
+ their current wallpaper as the system color. This is shown in a list with other color options.
+
+ [CHAR LIMIT=NONE].
+ -->
+ <string name="content_description_neutral_color_option">Primary neutral theme</string>
+
+ <!--
+ Accessibility string for a button that allows the user to select a color scheme generated from
+ their current wallpaper as the system color. This is shown in a list with other color options.
+
+ [CHAR LIMIT=NONE].
+ -->
+ <string name="content_description_vibrant_color_option">Primary vibrant theme</string>
+
+ <!--
+ Accessibility string for a button that allows the user to select a color scheme generated from
+ their current wallpaper as the system color. This is shown in a list with other color options.
+
+ [CHAR LIMIT=NONE].
+ -->
+ <string name="content_description_expressive_color_option">Primary expressive theme</string>
+
+ <!--
Accessibility string for a button that allows the user to select the default color for their
lock screen clock on the device. This is shown next to other buttons that allow the user to
select from a set of custom colors.
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 3991b65..c70b596 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -47,6 +47,7 @@
<item name="colorAccent">@color/accent_color</item>
<item name="colorSurface">@color/design_default_color_surface</item>
<item name="colorOnSurface">@color/design_default_color_on_surface</item>
+ <item name="android:textAllCaps">false</item>
</style>
<!-- Snackbar margin -->
@@ -123,7 +124,7 @@
<item name="android:fontFamily">@*android:string/config_bodyFontFamily</item>
<item name="android:textColor">?android:textColorSecondary</item>
<item name="android:textSize">14sp</item>
- <item name="android:lineHeight">20dp</item>
+ <item name="android:lineHeight">16sp</item>
</style>
<style name="BetaTagTextStyle" parent="SectionTitleTextStyle">
diff --git a/res/xml/carousel_scene.xml b/res/xml/carousel_scene.xml
index 44fb556..aae3d39 100644
--- a/res/xml/carousel_scene.xml
+++ b/res/xml/carousel_scene.xml
@@ -21,119 +21,143 @@
<Transition
motion:constraintSetStart="@id/start"
motion:constraintSetEnd="@+id/next"
- motion:duration="1000"
+ motion:duration="200"
android:id="@+id/forward">
<OnSwipe
- motion:dragDirection="dragLeft"
- motion:touchAnchorSide="left" />
+ motion:dragDirection="dragStart"
+ motion:touchAnchorSide="start"
+ motion:maxVelocity="10"
+ motion:maxAcceleration="100"/>
</Transition>
<Transition
motion:constraintSetStart="@+id/start"
motion:constraintSetEnd="@+id/previous"
+ motion:duration="200"
android:id="@+id/backward">
<OnSwipe
- motion:dragDirection="dragRight"
- motion:touchAnchorSide="right" />
+ motion:dragDirection="dragEnd"
+ motion:touchAnchorSide="end"
+ motion:maxVelocity="10"
+ motion:maxAcceleration="100" />
</Transition>
<ConstraintSet android:id="@+id/previous">
<Constraint
android:id="@+id/item_view_0"
- android:layout_width="@dimen/clock_carousel_item_width"
- android:layout_height="@dimen/clock_carousel_item_height"
- android:scaleX="@dimen/clock_carousel_scale"
- android:scaleY="@dimen/clock_carousel_scale"
- android:alpha="@dimen/clock_carousel_alpha"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
motion:layout_constraintEnd_toStartOf="@id/guideline_start"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
+
<Constraint
android:id="@+id/item_view_1"
- android:layout_width="@dimen/clock_carousel_item_width"
- android:layout_height="@dimen/clock_carousel_item_height"
- motion:layout_constraintWidth_max="@dimen/clock_carousel_item_width"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
+ motion:layout_constraintWidth_max="@dimen/screen_preview_width"
motion:layout_constraintHorizontal_bias="0.5"
motion:layout_constraintStart_toStartOf="parent"
motion:layout_constraintEnd_toEndOf="parent"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
+
<Constraint
android:id="@+id/item_view_2"
- android:layout_width="@dimen/clock_carousel_item_width"
- android:layout_height="@dimen/clock_carousel_item_height"
- android:scaleX="@dimen/clock_carousel_scale"
- android:scaleY="@dimen/clock_carousel_scale"
- android:alpha="@dimen/clock_carousel_alpha"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
motion:layout_constraintStart_toStartOf="@id/guideline_end"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
+
+ <Constraint
+ android:id="@+id/item_view_3"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
+ motion:layout_constraintStart_toEndOf="@+id/item_view_2"
+ motion:layout_constraintTop_toTopOf="parent"
+ motion:layout_constraintBottom_toBottomOf="parent" />
</ConstraintSet>
<ConstraintSet android:id="@+id/start">
<Constraint
+ android:id="@+id/item_view_0"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
+ motion:layout_constraintEnd_toStartOf="@+id/item_view_1"
+ motion:layout_constraintTop_toTopOf="parent"
+ motion:layout_constraintBottom_toBottomOf="parent" />
+
+ <Constraint
android:id="@+id/item_view_1"
- android:layout_width="@dimen/clock_carousel_item_width"
- android:layout_height="@dimen/clock_carousel_item_height"
- android:scaleX="@dimen/clock_carousel_scale"
- android:scaleY="@dimen/clock_carousel_scale"
- android:alpha="@dimen/clock_carousel_alpha"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
motion:layout_constraintEnd_toStartOf="@id/guideline_start"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
+
<Constraint
android:id="@+id/item_view_2"
- android:layout_width="@dimen/clock_carousel_item_width"
- android:layout_height="@dimen/clock_carousel_item_height"
- motion:layout_constraintWidth_max="@dimen/clock_carousel_item_width"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
+ motion:layout_constraintWidth_max="@dimen/screen_preview_width"
motion:layout_constraintHorizontal_bias="0.5"
motion:layout_constraintStart_toStartOf="parent"
motion:layout_constraintEnd_toEndOf="parent"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
+
<Constraint
android:id="@+id/item_view_3"
- android:layout_width="@dimen/clock_carousel_item_width"
- android:layout_height="@dimen/clock_carousel_item_height"
- android:scaleX="@dimen/clock_carousel_scale"
- android:scaleY="@dimen/clock_carousel_scale"
- android:alpha="@dimen/clock_carousel_alpha"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
motion:layout_constraintStart_toStartOf="@id/guideline_end"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
+
+ <Constraint
+ android:id="@+id/item_view_4"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
+ motion:layout_constraintStart_toEndOf="@+id/item_view_3"
+ motion:layout_constraintTop_toTopOf="parent"
+ motion:layout_constraintBottom_toBottomOf="parent" />
</ConstraintSet>
<ConstraintSet android:id="@+id/next">
<Constraint
+ android:id="@+id/item_view_1"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
+ motion:layout_constraintEnd_toStartOf="@+id/item_view_2"
+ motion:layout_constraintTop_toTopOf="parent"
+ motion:layout_constraintBottom_toBottomOf="parent" />
+
+ <Constraint
android:id="@+id/item_view_2"
- android:layout_width="@dimen/clock_carousel_item_width"
- android:layout_height="@dimen/clock_carousel_item_height"
- android:scaleX="@dimen/clock_carousel_scale"
- android:scaleY="@dimen/clock_carousel_scale"
- android:alpha="@dimen/clock_carousel_alpha"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
motion:layout_constraintEnd_toStartOf="@id/guideline_start"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
+
<Constraint
android:id="@+id/item_view_3"
- android:layout_width="@dimen/clock_carousel_item_width"
- android:layout_height="@dimen/clock_carousel_item_height"
- motion:layout_constraintWidth_max="@dimen/clock_carousel_item_width"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
+ motion:layout_constraintWidth_max="@dimen/screen_preview_width"
motion:layout_constraintHorizontal_bias="0.5"
motion:layout_constraintStart_toStartOf="parent"
motion:layout_constraintEnd_toEndOf="parent"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
+
<Constraint
android:id="@+id/item_view_4"
- android:layout_width="@dimen/clock_carousel_item_width"
- android:layout_height="@dimen/clock_carousel_item_height"
- android:scaleX="@dimen/clock_carousel_scale"
- android:scaleY="@dimen/clock_carousel_scale"
- android:alpha="@dimen/clock_carousel_alpha"
+ android:layout_width="@dimen/screen_preview_width"
+ android:layout_height="wrap_content"
motion:layout_constraintStart_toStartOf="@id/guideline_end"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
</ConstraintSet>
-
</MotionScene>
\ No newline at end of file
diff --git a/src/com/android/customization/model/clock/BaseClockManager.java b/src/com/android/customization/model/clock/BaseClockManager.java
deleted file mode 100644
index 3434780..0000000
--- a/src/com/android/customization/model/clock/BaseClockManager.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.customization.model.clock;
-
-import com.android.customization.model.CustomizationManager;
-
-/**
- * {@link CustomizationManager} for clock faces.
- */
-public abstract class BaseClockManager implements CustomizationManager<Clockface> {
-
- private final ClockProvider mClockProvider;
-
- public BaseClockManager(ClockProvider provider) {
- mClockProvider = provider;
- }
-
- @Override
- public boolean isAvailable() {
- return mClockProvider.isAvailable();
- }
-
- @Override
- public void apply(Clockface option, Callback callback) {
- handleApply(option, callback);
- }
-
- @Override
- public void fetchOptions(OptionsFetchedListener<Clockface> callback, boolean reload) {
- mClockProvider.fetch(callback, false);
- }
-
- /** Returns the ID of the current clock face, which may be null for the default clock face. */
- String getCurrentClock() {
- return lookUpCurrentClock();
- }
-
- /**
- * Implement to apply the clock picked by the user for {@link BaseClockManager#apply}.
- *
- * @param option Clock option, containing ID of the clock, that the user picked.
- * @param callback Report success and failure.
- */
- protected abstract void handleApply(Clockface option, Callback callback);
-
- /**
- * Implement to look up the current clock face for {@link BaseClockManager#getCurrentClock()}.
- *
- * @return ID of current clock. Can be null for the default clock face.
- */
- protected abstract String lookUpCurrentClock();
-}
diff --git a/src/com/android/customization/model/clock/ClockManager.java b/src/com/android/customization/model/clock/ClockManager.java
deleted file mode 100644
index 4e77a49..0000000
--- a/src/com/android/customization/model/clock/ClockManager.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.customization.model.clock;
-
-import android.content.ContentResolver;
-import android.provider.Settings.Secure;
-import android.text.TextUtils;
-
-import com.android.customization.module.ThemesUserEventLogger;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-/**
- * {@link CustomizationManager} for clock faces that implements apply by writing to secure settings.
- */
-public class ClockManager extends BaseClockManager {
-
- // TODO: use constant from Settings.Secure
- static final String CLOCK_FACE_SETTING = "lock_screen_custom_clock_face";
- private static final String CLOCK_FIELD = "clock";
- private static final String TIMESTAMP_FIELD = "_applied_timestamp";
- private final ContentResolver mContentResolver;
- private final ThemesUserEventLogger mEventLogger;
-
- public ClockManager(ContentResolver resolver, ClockProvider provider,
- ThemesUserEventLogger logger) {
- super(provider);
- mContentResolver = resolver;
- mEventLogger = logger;
- }
-
- @Override
- protected void handleApply(Clockface option, Callback callback) {
- boolean stored;
- try {
- final JSONObject json = new JSONObject();
- json.put(CLOCK_FIELD, option.getId());
- json.put(TIMESTAMP_FIELD, System.currentTimeMillis());
- stored = Secure.putString(mContentResolver, CLOCK_FACE_SETTING, json.toString());
- } catch (JSONException ex) {
- stored = false;
- }
- if (stored) {
- mEventLogger.logClockApplied(option);
- callback.onSuccess();
- } else {
- callback.onError(null);
- }
- }
-
- @Override
- protected String lookUpCurrentClock() {
- final String value = Secure.getString(mContentResolver, CLOCK_FACE_SETTING);
- if (TextUtils.isEmpty(value)) {
- return value;
- }
- try {
- final JSONObject json = new JSONObject(value);
- return json.getString(CLOCK_FIELD);
- } catch (JSONException ex) {
- return value;
- }
- }
-}
diff --git a/src/com/android/customization/model/clock/ClockProvider.java b/src/com/android/customization/model/clock/ClockProvider.java
deleted file mode 100644
index d9a6779..0000000
--- a/src/com/android/customization/model/clock/ClockProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.customization.model.clock;
-
-import com.android.customization.model.CustomizationManager.OptionsFetchedListener;
-
-/**
- * Interface for a class that can retrieve Themes from the system.
- */
-public interface ClockProvider {
- /**
- * Returns whether clockfaces are available in the current setup.
- */
- boolean isAvailable();
-
- /**
- * Retrieve the available clockfaces.
- * @param callback called when the clockfaces have been retrieved (or immediately if cached)
- * @param reload whether to reload clockfaces if they're cached.
- */
- void fetch(OptionsFetchedListener<Clockface> callback, boolean reload);
-}
diff --git a/src/com/android/customization/model/clock/Clockface.java b/src/com/android/customization/model/clock/Clockface.java
deleted file mode 100644
index 9bdcaef..0000000
--- a/src/com/android/customization/model/clock/Clockface.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.customization.model.clock;
-
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.ImageView;
-
-import com.android.customization.model.CustomizationManager;
-import com.android.customization.model.CustomizationOption;
-import com.android.wallpaper.R;
-import com.android.wallpaper.asset.Asset;
-
-public class Clockface implements CustomizationOption<Clockface> {
-
- private final String mTitle;
- private final String mId;
- private final Asset mPreview;
- private final Asset mThumbnail;
-
- private Clockface(String title, String id, Asset preview, Asset thumbnail) {
- mTitle = title;
- mId = id;
- mPreview = preview;
- mThumbnail = thumbnail;
- }
-
- @Override
- public String getTitle() {
- return mTitle;
- }
-
- @Override
- public void bindThumbnailTile(View view) {
- ImageView thumbView = view.findViewById(R.id.clock_option_thumbnail);
- mThumbnail.loadDrawableWithTransition(thumbView.getContext(), thumbView, 50, null,
- thumbView.getResources().getColor(android.R.color.transparent, null));
- }
-
- @Override
- public boolean isActive(CustomizationManager<Clockface> manager) {
- String currentClock = ((BaseClockManager) manager).getCurrentClock();
- // Empty clock Id is the default system clock
- return (TextUtils.isEmpty(currentClock) && TextUtils.isEmpty(mId))
- || (mId != null && mId.equals(currentClock));
- }
-
- @Override
- public int getLayoutResId() {
- return R.layout.clock_option;
- }
-
- public Asset getPreviewAsset() {
- return mPreview;
- }
-
- public String getId() {
- return mId;
- }
-
- public static class Builder {
- private String mTitle;
- private String mId;
- private Asset mPreview;
- private Asset mThumbnail;
-
- public Clockface build() {
- return new Clockface(mTitle, mId, mPreview, mThumbnail);
- }
-
- public Builder setTitle(String title) {
- mTitle = title;
- return this;
- }
-
- public Builder setId(String id) {
- mId = id;
- return this;
- }
-
- public Builder setPreview(Asset preview) {
- mPreview = preview;
- return this;
- }
-
- public Builder setThumbnail(Asset thumbnail) {
- mThumbnail = thumbnail;
- return this;
- }
- }
-}
diff --git a/src/com/android/customization/model/clock/ContentProviderClockProvider.java b/src/com/android/customization/model/clock/ContentProviderClockProvider.java
deleted file mode 100644
index f0df031..0000000
--- a/src/com/android/customization/model/clock/ContentProviderClockProvider.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package com.android.customization.model.clock;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.ProviderInfo;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Handler;
-import android.os.Looper;
-import android.text.TextUtils;
-import android.util.Log;
-
-import com.android.customization.model.CustomizationManager.OptionsFetchedListener;
-import com.android.customization.model.clock.Clockface.Builder;
-import com.android.wallpaper.R;
-import com.android.wallpaper.asset.ContentUriAsset;
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-public class ContentProviderClockProvider implements ClockProvider {
-
- private static final String TAG = "ContentProviderClockProvider";
- private static final ExecutorService sExecutorService = Executors.newSingleThreadExecutor();
- private static final String LIST_OPTIONS = "list_options";
- private static final String COL_TITLE = "title";
- private static final String COL_ID = "id";
- private static final String COL_THUMBNAIL = "thumbnail";
- private static final String COL_PREVIEW = "preview";
-
- private final Context mContext;
- private final ProviderInfo mProviderInfo;
- private List<Clockface> mClocks;
- private boolean mClockContentAvailable;
-
- public ContentProviderClockProvider(Context context) {
- mContext = context;
- String providerAuthority = mContext.getString(R.string.clocks_provider_authority);
- // TODO: check permissions if needed
- mProviderInfo = TextUtils.isEmpty(providerAuthority) ? null
- : mContext.getPackageManager().resolveContentProvider(providerAuthority,
- PackageManager.MATCH_SYSTEM_ONLY);
-
- if (TextUtils.isEmpty(mContext.getString(R.string.clocks_stub_package))) {
- mClockContentAvailable = false;
- } else {
- try {
- ApplicationInfo applicationInfo = mContext.getPackageManager().getApplicationInfo(
- mContext.getString(R.string.clocks_stub_package),
- PackageManager.MATCH_SYSTEM_ONLY);
- mClockContentAvailable = applicationInfo != null;
- } catch (NameNotFoundException e) {
- mClockContentAvailable = false;
- }
- }
- }
-
- @Override
- public boolean isAvailable() {
- return mProviderInfo != null && mClockContentAvailable
- && (mClocks == null || !mClocks.isEmpty());
- }
-
- @Override
- public void fetch(OptionsFetchedListener<Clockface> callback, boolean reload) {
- if (!isAvailable()) {
- if (callback != null) {
- callback.onError(null);
- }
- return;
- }
- if (mClocks != null && !reload) {
- if (callback != null) {
- if (!mClocks.isEmpty()) {
- callback.onOptionsLoaded(mClocks);
- } else {
- callback.onError(null);
- }
- }
- return;
- }
- sExecutorService.submit(() -> {
- Uri optionsUri = new Uri.Builder()
- .scheme(ContentResolver.SCHEME_CONTENT)
- .authority(mProviderInfo.authority)
- .appendPath(LIST_OPTIONS)
- .build();
-
- ContentResolver resolver = mContext.getContentResolver();
-
- List<Clockface> clockfaces = new ArrayList<>();
- try (Cursor c = resolver.query(optionsUri, null, null, null, null)) {
- while (c != null && c.moveToNext()) {
- String id = c.getString(c.getColumnIndex(COL_ID));
- String title = c.getString(c.getColumnIndex(COL_TITLE));
- String thumbnailUri = c.getString(c.getColumnIndex(COL_THUMBNAIL));
- String previewUri = c.getString(c.getColumnIndex(COL_PREVIEW));
- Uri thumbnail = Uri.parse(thumbnailUri);
- Uri preview = Uri.parse(previewUri);
-
- Clockface.Builder builder = new Builder();
- builder.setId(id).setTitle(title)
- .setThumbnail(new ContentUriAsset(mContext, thumbnail,
- RequestOptions.fitCenterTransform()))
- .setPreview(new ContentUriAsset(mContext, preview,
- RequestOptions.fitCenterTransform()));
- clockfaces.add(builder.build());
- }
- Glide.get(mContext).clearDiskCache();
- } catch (Exception e) {
- clockfaces = null;
- Log.e(TAG, "Failed to query clock face options.", e);
- }
- final List<Clockface> clockfaceList = clockfaces;
- new Handler(Looper.getMainLooper()).post(() -> {
- mClocks = clockfaceList;
- if (callback != null) {
- if (!mClocks.isEmpty()) {
- callback.onOptionsLoaded(mClocks);
- } else {
- callback.onError(null);
- }
- }
- });
- });
- }
-}
diff --git a/src/com/android/customization/model/clock/custom/ClockCustomManager.java b/src/com/android/customization/model/clock/custom/ClockCustomManager.java
deleted file mode 100644
index 0815a3e..0000000
--- a/src/com/android/customization/model/clock/custom/ClockCustomManager.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.customization.model.clock.custom;
-
-import com.android.customization.model.CustomizationManager;
-
-import com.google.common.collect.Lists;
-
-/**
- * {@link CustomizationManager} for clock faces.
- */
-public class ClockCustomManager implements CustomizationManager<ClockOption> {
- @Override
- public boolean isAvailable() {
- return true;
- }
-
- @Override
- public void apply(ClockOption option, Callback callback) {
- // TODO(/b241966062) execute applying the clock when user selects a clock
- }
-
- @Override
- public void fetchOptions(OptionsFetchedListener<ClockOption> callback, boolean reload) {
- // TODO(/b241966062) fetch the real clock metadata from the ClockRegistry
- callback.onOptionsLoaded(
- Lists.newArrayList(new ClockOption(), new ClockOption(), new ClockOption(),
- new ClockOption(), new ClockOption()));
- }
-}
diff --git a/src/com/android/customization/model/clock/custom/ClockOption.java b/src/com/android/customization/model/clock/custom/ClockOption.java
deleted file mode 100644
index 5a9f051..0000000
--- a/src/com/android/customization/model/clock/custom/ClockOption.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.customization.model.clock.custom;
-
-import android.view.View;
-
-import com.android.customization.model.CustomizationManager;
-import com.android.customization.model.CustomizationOption;
-import com.android.wallpaper.R;
-
-/**
- * {@link CustomizationOption} for a clock face.
- */
-public class ClockOption implements CustomizationOption<ClockOption> {
-
- @Override
- public String getTitle() {
- // TODO(/b241966062) use the title from the clock metadata
- return "title";
- }
-
- @Override
- public void bindThumbnailTile(View view) {
- // TODO(/b241966062) bind the thumbnail
- }
-
- @Override
- public boolean isActive(CustomizationManager<ClockOption> manager) {
- return false;
- }
-
-
- @Override
- public int getLayoutResId() {
- return R.layout.clock_option;
- }
-}
diff --git a/src/com/android/customization/model/color/ColorCustomizationManager.java b/src/com/android/customization/model/color/ColorCustomizationManager.java
index 29f6ba6..790c86f 100644
--- a/src/com/android/customization/model/color/ColorCustomizationManager.java
+++ b/src/com/android/customization/model/color/ColorCustomizationManager.java
@@ -181,7 +181,23 @@
if (lockWallpaperColors != null && mLockWallpaperColors.equals(mHomeWallpaperColors)) {
lockWallpaperColors = null;
}
- mProvider.fetch(callback, reload, mHomeWallpaperColors, lockWallpaperColors);
+ mProvider.fetch(callback, reload, mHomeWallpaperColors,
+ lockWallpaperColors, /* shouldUseRevampedUi= */ false);
+ }
+
+ /**
+ * Fetch options function for the customization hub revamped UI
+ *
+ * TODO (b/276417460): refactor to reduce code repetition with the other fetch options function
+ */
+ public void fetchRevampedUIOptions(OptionsFetchedListener<ColorOption> callback,
+ boolean reload) {
+ WallpaperColors lockWallpaperColors = mLockWallpaperColors;
+ if (lockWallpaperColors != null && mLockWallpaperColors.equals(mHomeWallpaperColors)) {
+ lockWallpaperColors = null;
+ }
+ mProvider.fetch(callback, reload, mHomeWallpaperColors,
+ lockWallpaperColors, /* shouldUseRevampedUi= */ true);
}
/**
diff --git a/src/com/android/customization/model/color/ColorOptionImpl.kt b/src/com/android/customization/model/color/ColorOptionImpl.kt
new file mode 100644
index 0000000..3273ce2
--- /dev/null
+++ b/src/com/android/customization/model/color/ColorOptionImpl.kt
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package com.android.customization.model.color
+
+import android.content.Context
+import android.view.View
+import androidx.annotation.ColorInt
+import com.android.customization.model.color.ColorOptionsProvider.ColorSource
+import com.android.customization.picker.color.shared.model.ColorType
+import com.android.systemui.monet.Style
+import com.android.wallpaper.R
+
+/**
+ * Represents a color option in the revamped UI, it can be used for both wallpaper and preset colors
+ */
+class ColorOptionImpl(
+ title: String?,
+ overlayPackages: Map<String, String?>,
+ isDefault: Boolean,
+ private val source: String?,
+ style: Style,
+ index: Int,
+ private val previewInfo: PreviewInfo,
+ val type: ColorType,
+) : ColorOption(title, overlayPackages, isDefault, style, index) {
+
+ class PreviewInfo(
+ @ColorInt val lightColors: IntArray,
+ @ColorInt val darkColors: IntArray,
+ ) : ColorOption.PreviewInfo {
+ @ColorInt
+ fun resolveColors(darkTheme: Boolean): IntArray {
+ return if (darkTheme) darkColors else lightColors
+ }
+ }
+
+ override fun bindThumbnailTile(view: View?) {
+ // Do nothing. This function will no longer be used in the Revamped UI
+ }
+
+ override fun getLayoutResId(): Int {
+ return R.layout.color_option
+ }
+
+ override fun getPreviewInfo(): PreviewInfo {
+ return previewInfo
+ }
+
+ override fun getContentDescription(context: Context): CharSequence? {
+ return title
+ }
+
+ override fun getSource(): String? {
+ return source
+ }
+
+ class Builder {
+ var title: String? = null
+
+ @ColorInt var lightColors: IntArray = intArrayOf()
+
+ @ColorInt var darkColors: IntArray = intArrayOf()
+
+ @ColorSource var source: String? = null
+ var isDefault = false
+ var style = Style.TONAL_SPOT
+ var index = 0
+ var packages: MutableMap<String, String?> = HashMap()
+ var type = ColorType.WALLPAPER_COLOR
+
+ fun build(): ColorOptionImpl {
+ return ColorOptionImpl(
+ title,
+ packages,
+ isDefault,
+ source,
+ style,
+ index,
+ createPreviewInfo(),
+ type
+ )
+ }
+
+ private fun createPreviewInfo(): PreviewInfo {
+ return PreviewInfo(lightColors, darkColors)
+ }
+
+ fun addOverlayPackage(category: String?, packageName: String?): ColorOptionImpl.Builder {
+ category?.let { packages[category] = packageName }
+ return this
+ }
+ }
+}
diff --git a/src/com/android/customization/model/color/ColorOptionsProvider.java b/src/com/android/customization/model/color/ColorOptionsProvider.java
index 2803c7b..166b4da 100644
--- a/src/com/android/customization/model/color/ColorOptionsProvider.java
+++ b/src/com/android/customization/model/color/ColorOptionsProvider.java
@@ -70,8 +70,12 @@
* @param homeWallpaperColors to get seed colors from
* @param lockWallpaperColors WallpaperColors from the lockscreen wallpaper to get seeds from,
* if different than homeWallpaperColors
+ * @param shouldUseRevampedUi fetches color options with new preview mappings for the revamped
+ * UI if set to true
*/
void fetch(OptionsFetchedListener<ColorOption> callback, boolean reload,
@Nullable WallpaperColors homeWallpaperColors,
- @Nullable WallpaperColors lockWallpaperColors);
+ @Nullable WallpaperColors lockWallpaperColors,
+ boolean shouldUseRevampedUi
+ );
}
diff --git a/src/com/android/customization/model/color/ColorProvider.kt b/src/com/android/customization/model/color/ColorProvider.kt
index f91ec6b..63d298d 100644
--- a/src/com/android/customization/model/color/ColorProvider.kt
+++ b/src/com/android/customization/model/color/ColorProvider.kt
@@ -34,11 +34,12 @@
import com.android.customization.model.color.ColorOptionsProvider.COLOR_SOURCE_HOME
import com.android.customization.model.color.ColorOptionsProvider.COLOR_SOURCE_LOCK
import com.android.customization.model.color.ColorUtils.toColorString
+import com.android.customization.picker.color.shared.model.ColorType
import com.android.systemui.monet.ColorScheme
import com.android.systemui.monet.Style
+import com.android.wallpaper.R
import com.android.wallpaper.compat.WallpaperManagerCompat
import com.android.wallpaper.module.InjectorProvider
-import java.util.*
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
@@ -48,7 +49,7 @@
/**
* Default implementation of {@link ColorOptionsProvider} that reads preset colors from a stub APK.
*/
-class ColorProvider(context: Context, stubPackageName: String) :
+class ColorProvider(private val context: Context, stubPackageName: String) :
ResourcesApkProvider(context, stubPackageName), ColorOptionsProvider {
companion object {
@@ -67,6 +68,10 @@
arrayOf(Style.TONAL_SPOT, Style.SPRITZ, Style.VIBRANT, Style.EXPRESSIVE)
else arrayOf(Style.TONAL_SPOT)
+ private val monochromeEnabled =
+ InjectorProvider.getInjector().getFlags().isMonochromaticThemeEnabled(mContext)
+ private var monochromeBundleName: String? = null
+
private val scope =
if (mContext is LifecycleOwner) {
mContext.lifecycleScope
@@ -87,7 +92,8 @@
callback: OptionsFetchedListener<ColorOption>?,
reload: Boolean,
homeWallpaperColors: WallpaperColors?,
- lockWallpaperColors: WallpaperColors?
+ lockWallpaperColors: WallpaperColors?,
+ shouldUseRevampedUi: Boolean
) {
val wallpaperColorsChanged =
this.homeWallpaperColors != homeWallpaperColors ||
@@ -100,10 +106,14 @@
scope.launch {
try {
if (colorBundles == null || reload) {
- loadPreset()
+ loadPreset(shouldUseRevampedUi)
}
if (wallpaperColorsChanged || reload) {
- loadSeedColors(homeWallpaperColors, lockWallpaperColors)
+ loadSeedColors(
+ homeWallpaperColors,
+ lockWallpaperColors,
+ shouldUseRevampedUi
+ )
}
} catch (e: Throwable) {
colorsAvailable = false
@@ -127,7 +137,8 @@
private fun loadSeedColors(
homeWallpaperColors: WallpaperColors?,
- lockWallpaperColors: WallpaperColors?
+ lockWallpaperColors: WallpaperColors?,
+ shouldUseRevampedUi: Boolean,
) {
if (homeWallpaperColors == null) return
@@ -147,7 +158,8 @@
colorsPerSource,
if (shouldLockColorsGoFirst) COLOR_SOURCE_LOCK else COLOR_SOURCE_HOME,
true,
- bundles
+ bundles,
+ shouldUseRevampedUi
)
// Second half of the colors
buildColorSeeds(
@@ -155,13 +167,45 @@
MAX_SEED_COLORS - bundles.size / styleSize,
if (shouldLockColorsGoFirst) COLOR_SOURCE_HOME else COLOR_SOURCE_LOCK,
false,
- bundles
+ bundles,
+ shouldUseRevampedUi
)
} else {
- buildColorSeeds(homeWallpaperColors, colorsPerSource, COLOR_SOURCE_HOME, true, bundles)
+ buildColorSeeds(
+ homeWallpaperColors,
+ colorsPerSource,
+ COLOR_SOURCE_HOME,
+ true,
+ bundles,
+ shouldUseRevampedUi
+ )
}
- bundles.addAll(colorBundles?.filterNot { it is ColorSeedOption } ?: emptyList())
+ if (shouldUseRevampedUi) {
+ // Insert monochrome in the second position if it is enabled and included in preset
+ // colors
+ if (monochromeEnabled) {
+ monochromeBundleName?.let {
+ bundles.add(
+ 1,
+ buildRevampedUIPreset(
+ it,
+ -1,
+ Style.MONOCHROMATIC,
+ ColorType.WALLPAPER_COLOR
+ )
+ )
+ }
+ }
+ bundles.addAll(
+ colorBundles?.filterNot {
+ (it as ColorOptionImpl).type == ColorType.WALLPAPER_COLOR
+ }
+ ?: emptyList()
+ )
+ } else {
+ bundles.addAll(colorBundles?.filterNot { it is ColorSeedOption } ?: emptyList())
+ }
colorBundles = bundles
}
@@ -170,13 +214,14 @@
maxColors: Int,
source: String,
containsDefault: Boolean,
- bundles: MutableList<ColorOption>
+ bundles: MutableList<ColorOption>,
+ shouldUseRevampedUi: Boolean,
) {
val seedColors = ColorScheme.getSeedColors(wallpaperColors)
val defaultSeed = seedColors.first()
- buildBundle(defaultSeed, 0, containsDefault, source, bundles)
+ buildBundle(defaultSeed, 0, containsDefault, source, bundles, shouldUseRevampedUi)
for ((i, colorInt) in seedColors.drop(1).take(maxColors - 1).withIndex()) {
- buildBundle(colorInt, i + 1, false, source, bundles)
+ buildBundle(colorInt, i + 1, false, source, bundles, shouldUseRevampedUi)
}
}
@@ -185,38 +230,72 @@
i: Int,
isDefault: Boolean,
source: String,
- bundles: MutableList<ColorOption>
+ bundles: MutableList<ColorOption>,
+ shouldUseRevampedUi: Boolean,
) {
// TODO(b/202145216): Measure time cost in the loop.
- for (style in styleList) {
- val builder = ColorSeedOption.Builder()
- val lightColorScheme = ColorScheme(colorInt, /* darkTheme= */ false, style)
- val darkColorScheme = ColorScheme(colorInt, /* darkTheme= */ true, style)
- builder
- .setLightColors(lightColorScheme.getLightColorPreview())
- .setDarkColors(darkColorScheme.getDarkColorPreview())
- .addOverlayPackage(
+ if (shouldUseRevampedUi) {
+ for (style in styleList) {
+ val lightColorScheme = ColorScheme(colorInt, /* darkTheme= */ false, style)
+ val darkColorScheme = ColorScheme(colorInt, /* darkTheme= */ true, style)
+ val builder = ColorOptionImpl.Builder()
+ builder.lightColors = getRevampedUILightColorPreview(lightColorScheme)
+ builder.darkColors = getRevampedUIDarkColorPreview(darkColorScheme)
+ builder.addOverlayPackage(
OVERLAY_CATEGORY_SYSTEM_PALETTE,
if (isDefault) "" else toColorString(colorInt)
)
- .addOverlayPackage(
- OVERLAY_CATEGORY_COLOR,
- if (isDefault) "" else toColorString(colorInt)
- )
- .setSource(source)
- .setStyle(style)
+ builder.title =
+ when (style) {
+ Style.TONAL_SPOT ->
+ context.getString(R.string.content_description_dynamic_color_option)
+ Style.SPRITZ ->
+ context.getString(R.string.content_description_neutral_color_option)
+ Style.VIBRANT ->
+ context.getString(R.string.content_description_vibrant_color_option)
+ Style.EXPRESSIVE ->
+ context.getString(R.string.content_description_expressive_color_option)
+ else -> context.getString(R.string.content_description_dynamic_color_option)
+ }
+ builder.source = source
+ builder.style = style
// Color option index value starts from 1.
- .setIndex(i + 1)
+ builder.index = i + 1
+ builder.isDefault = isDefault
+ builder.type = ColorType.WALLPAPER_COLOR
+ bundles.add(builder.build())
+ }
+ } else {
+ for (style in styleList) {
+ val lightColorScheme = ColorScheme(colorInt, /* darkTheme= */ false, style)
+ val darkColorScheme = ColorScheme(colorInt, /* darkTheme= */ true, style)
+ val builder = ColorSeedOption.Builder()
+ builder
+ .setLightColors(lightColorScheme.getLightColorPreview())
+ .setDarkColors(darkColorScheme.getDarkColorPreview())
+ .addOverlayPackage(
+ OVERLAY_CATEGORY_SYSTEM_PALETTE,
+ if (isDefault) "" else toColorString(colorInt)
+ )
+ .addOverlayPackage(
+ OVERLAY_CATEGORY_COLOR,
+ if (isDefault) "" else toColorString(colorInt)
+ )
+ .setSource(source)
+ .setStyle(style)
+ // Color option index value starts from 1.
+ .setIndex(i + 1)
- if (isDefault) builder.asDefault()
+ if (isDefault) builder.asDefault()
- bundles.add(builder.build())
+ bundles.add(builder.build())
+ }
}
}
/**
* Returns the colors for the light theme version of the preview of a ColorScheme based on this
- * order: |-------| | 0 | 1 | |---+---| | 2 | 3 | |-------|
+ * order: top left, top right, bottom left, bottom right
*/
@ColorInt
private fun ColorScheme.getLightColorPreview(): IntArray {
@@ -240,13 +319,101 @@
/**
* Returns the color for the dark theme version of the preview of a ColorScheme based on this
- * order: |-------| | 0 | 1 | |---+---| | 2 | 3 | |-------|
+ * order: top left, top right, bottom left, bottom right
*/
@ColorInt
private fun ColorScheme.getDarkColorPreview(): IntArray {
return getLightColorPreview()
}
+ /**
+ * Returns the light theme version of the Revamped UI preview of a ColorScheme based on this
+ * order: top left, top right, bottom left, bottom right
+ *
+ * This color mapping corresponds to GM3 colors: Primary (light), Primary (light), Secondary
+ * LStar 85, and Tertiary LStar 70
+ */
+ @ColorInt
+ private fun getRevampedUILightColorPreview(colorScheme: ColorScheme): IntArray {
+ return intArrayOf(
+ setAlphaComponent(colorScheme.accent1.s600, ALPHA_MASK),
+ setAlphaComponent(colorScheme.accent1.s600, ALPHA_MASK),
+ ColorStateList.valueOf(colorScheme.accent2.s500).withLStar(85f).colors[0],
+ setAlphaComponent(colorScheme.accent3.s300, ALPHA_MASK),
+ )
+ }
+
+ /**
+ * Returns the dark theme version of the Revamped UI preview of a ColorScheme based on this
+ * order: top left, top right, bottom left, bottom right
+ *
+ * This color mapping corresponds to GM3 colors: Primary (dark), Primary (dark), Secondary LStar
+ * 35, and Tertiary LStar 70
+ */
+ @ColorInt
+ private fun getRevampedUIDarkColorPreview(colorScheme: ColorScheme): IntArray {
+ return intArrayOf(
+ setAlphaComponent(colorScheme.accent1.s200, ALPHA_MASK),
+ setAlphaComponent(colorScheme.accent1.s200, ALPHA_MASK),
+ ColorStateList.valueOf(colorScheme.accent2.s500).withLStar(35f).colors[0],
+ setAlphaComponent(colorScheme.accent3.s300, ALPHA_MASK),
+ )
+ }
+
+ /**
+ * Returns the light theme version of the Revamped UI preview of a ColorScheme based on this
+ * order: top left, top right, bottom left, bottom right
+ *
+ * This color mapping corresponds to GM3 colors: Primary LStar 0, Primary LStar 0, Secondary
+ * LStar 85, and Tertiary LStar 70
+ */
+ @ColorInt
+ private fun getRevampedUILightMonochromePreview(colorScheme: ColorScheme): IntArray {
+ return intArrayOf(
+ setAlphaComponent(colorScheme.accent1.s1000, ALPHA_MASK),
+ setAlphaComponent(colorScheme.accent1.s1000, ALPHA_MASK),
+ ColorStateList.valueOf(colorScheme.accent2.s500).withLStar(85f).colors[0],
+ setAlphaComponent(colorScheme.accent3.s300, ALPHA_MASK),
+ )
+ }
+
+ /**
+ * Returns the dark theme version of the Revamped UI preview of a ColorScheme based on this
+ * order: top left, top right, bottom left, bottom right
+ *
+ * This color mapping corresponds to GM3 colors: Primary LStar 99, Primary LStar 99, Secondary
+ * LStar 35, and Tertiary LStar 70
+ */
+ @ColorInt
+ private fun getRevampedUIDarkMonochromePreview(colorScheme: ColorScheme): IntArray {
+ return intArrayOf(
+ setAlphaComponent(colorScheme.accent1.s10, ALPHA_MASK),
+ setAlphaComponent(colorScheme.accent1.s10, ALPHA_MASK),
+ ColorStateList.valueOf(colorScheme.accent2.s500).withLStar(35f).colors[0],
+ setAlphaComponent(colorScheme.accent3.s300, ALPHA_MASK),
+ )
+ }
+
+ /**
+ * Returns the Revamped UI preview of a preset ColorScheme based on this order: top left, top
+ * right, bottom left, bottom right
+ */
+ private fun getRevampedUIPresetColorPreview(colorScheme: ColorScheme, seed: Int): IntArray {
+ val colors =
+ when (colorScheme.style) {
+ Style.FRUIT_SALAD -> intArrayOf(seed, colorScheme.accent1.s200)
+ Style.TONAL_SPOT -> intArrayOf(colorScheme.accentColor, colorScheme.accentColor)
+ Style.RAINBOW -> intArrayOf(colorScheme.accent1.s200, colorScheme.accent1.s200)
+ else -> intArrayOf(colorScheme.accent1.s100, colorScheme.accent1.s100)
+ }
+ return intArrayOf(
+ colors[0],
+ colors[1],
+ colors[0],
+ colors[1],
+ )
+ }
+
private fun ColorScheme.getPresetColorPreview(seed: Int): IntArray {
return when (this.style) {
Style.FRUIT_SALAD -> intArrayOf(seed, this.accent1.s100)
@@ -260,7 +427,7 @@
}
}
- private suspend fun loadPreset() =
+ private suspend fun loadPreset(shouldUseRevampedUi: Boolean) =
withContext(Dispatchers.IO) {
val extractor = ColorBundlePreviewExtractor(mContext)
val bundles: MutableList<ColorOption> = ArrayList()
@@ -269,52 +436,134 @@
// Color option index value starts from 1.
var index = 1
val maxPresetColors = if (themeStyleEnabled) bundleNames.size else MAX_PRESET_COLORS
- for (bundleName in bundleNames.take(maxPresetColors)) {
- val builder = ColorBundle.Builder()
- builder.title = getItemStringFromStub(COLOR_BUNDLE_NAME_PREFIX, bundleName)
- builder.setIndex(index)
- val colorFromStub = getItemColorFromStub(COLOR_BUNDLE_MAIN_COLOR_PREFIX, bundleName)
- extractor.addPrimaryColor(builder, colorFromStub)
- extractor.addSecondaryColor(builder, colorFromStub)
- if (themeStyleEnabled) {
- val styleName =
- try {
- getItemStringFromStub(COLOR_BUNDLE_STYLE_PREFIX, bundleName)
- } catch (e: Resources.NotFoundException) {
- null
- }
- extractor.addColorStyle(builder, styleName)
- val style =
- try {
- if (styleName != null) Style.valueOf(styleName) else Style.TONAL_SPOT
- } catch (e: IllegalArgumentException) {
- Style.TONAL_SPOT
- }
- if (
- style == Style.MONOCHROMATIC &&
- !InjectorProvider.getInjector()
- .getFlags()
- .isMonochromaticThemeEnabled(mContext)
- ) {
- continue
+ if (shouldUseRevampedUi) {
+ // keep track of whether monochrome is included in preset colors to determine
+ // inclusion in wallpaper colors
+ var hasMonochrome = false
+ for (bundleName in bundleNames.take(maxPresetColors)) {
+ if (themeStyleEnabled) {
+ val styleName =
+ try {
+ getItemStringFromStub(COLOR_BUNDLE_STYLE_PREFIX, bundleName)
+ } catch (e: Resources.NotFoundException) {
+ null
+ }
+ val style =
+ try {
+ if (styleName != null) Style.valueOf(styleName)
+ else Style.TONAL_SPOT
+ } catch (e: IllegalArgumentException) {
+ Style.TONAL_SPOT
+ }
+
+ if (style == Style.MONOCHROMATIC) {
+ if (!monochromeEnabled) {
+ continue
+ }
+ hasMonochrome = true
+ monochromeBundleName = bundleName
+ }
+ bundles.add(buildRevampedUIPreset(bundleName, index, style))
+ } else {
+ bundles.add(buildRevampedUIPreset(bundleName, index, null))
}
- val darkColors =
- ColorScheme(colorFromStub, true, style).getPresetColorPreview(colorFromStub)
- val lightColors =
- ColorScheme(colorFromStub, false, style)
- .getPresetColorPreview(colorFromStub)
- builder.setColorPrimaryDark(darkColors[0]).setColorSecondaryDark(darkColors[1])
- builder
- .setColorPrimaryLight(lightColors[0])
- .setColorSecondaryLight(lightColors[1])
+ index++
}
+ if (!hasMonochrome) {
+ monochromeBundleName = null
+ }
+ } else {
+ for (bundleName in bundleNames.take(maxPresetColors)) {
+ val builder = ColorBundle.Builder()
+ builder.title = getItemStringFromStub(COLOR_BUNDLE_NAME_PREFIX, bundleName)
+ builder.setIndex(index)
+ val colorFromStub =
+ getItemColorFromStub(COLOR_BUNDLE_MAIN_COLOR_PREFIX, bundleName)
+ extractor.addPrimaryColor(builder, colorFromStub)
+ extractor.addSecondaryColor(builder, colorFromStub)
+ if (themeStyleEnabled) {
+ val styleName =
+ try {
+ getItemStringFromStub(COLOR_BUNDLE_STYLE_PREFIX, bundleName)
+ } catch (e: Resources.NotFoundException) {
+ null
+ }
+ extractor.addColorStyle(builder, styleName)
+ val style =
+ try {
+ if (styleName != null) Style.valueOf(styleName)
+ else Style.TONAL_SPOT
+ } catch (e: IllegalArgumentException) {
+ Style.TONAL_SPOT
+ }
- bundles.add(builder.build(mContext))
- index++
+ if (style == Style.MONOCHROMATIC && !monochromeEnabled) {
+ continue
+ }
+
+ val darkColors =
+ ColorScheme(colorFromStub, /* darkTheme= */ true, style)
+ .getPresetColorPreview(colorFromStub)
+ val lightColors =
+ ColorScheme(colorFromStub, /* darkTheme= */ false, style)
+ .getPresetColorPreview(colorFromStub)
+ builder
+ .setColorPrimaryDark(darkColors[0])
+ .setColorSecondaryDark(darkColors[1])
+ builder
+ .setColorPrimaryLight(lightColors[0])
+ .setColorSecondaryLight(lightColors[1])
+ }
+
+ bundles.add(builder.build(mContext))
+ index++
+ }
}
colorBundles = bundles
}
+
+ private fun buildRevampedUIPreset(
+ bundleName: String,
+ index: Int,
+ style: Style? = null,
+ type: ColorType = ColorType.PRESET_COLOR,
+ ): ColorOptionImpl {
+ val builder = ColorOptionImpl.Builder()
+ builder.title = getItemStringFromStub(COLOR_BUNDLE_NAME_PREFIX, bundleName)
+ builder.index = index
+ builder.source = ColorOptionsProvider.COLOR_SOURCE_PRESET
+ builder.type = type
+ val colorFromStub = getItemColorFromStub(COLOR_BUNDLE_MAIN_COLOR_PREFIX, bundleName)
+ var darkColorScheme = ColorScheme(colorFromStub, /* darkTheme= */ true)
+ var lightColorScheme = ColorScheme(colorFromStub, /* darkTheme= */ false)
+ val lightColor = lightColorScheme.accentColor
+ val darkColor = darkColorScheme.accentColor
+ var lightColors = intArrayOf(lightColor, lightColor, lightColor, lightColor)
+ var darkColors = intArrayOf(darkColor, darkColor, darkColor, darkColor)
+ builder.addOverlayPackage(OVERLAY_CATEGORY_COLOR, toColorString(colorFromStub))
+ builder.addOverlayPackage(OVERLAY_CATEGORY_SYSTEM_PALETTE, toColorString(colorFromStub))
+ if (style != null) {
+ builder.style = style
+
+ lightColorScheme = ColorScheme(colorFromStub, /* darkTheme= */ false, style)
+ darkColorScheme = ColorScheme(colorFromStub, /* darkTheme= */ true, style)
+
+ when (style) {
+ Style.MONOCHROMATIC -> {
+ darkColors = getRevampedUIDarkMonochromePreview(darkColorScheme)
+ lightColors = getRevampedUILightMonochromePreview(lightColorScheme)
+ }
+ else -> {
+ darkColors = getRevampedUIPresetColorPreview(darkColorScheme, colorFromStub)
+ lightColors = getRevampedUIPresetColorPreview(lightColorScheme, colorFromStub)
+ }
+ }
+ }
+ builder.lightColors = lightColors
+ builder.darkColors = darkColors
+ return builder.build()
+ }
}
diff --git a/src/com/android/customization/model/color/ColorSeedOption.java b/src/com/android/customization/model/color/ColorSeedOption.java
index ba61ed1..ed38049 100644
--- a/src/com/android/customization/model/color/ColorSeedOption.java
+++ b/src/com/android/customization/model/color/ColorSeedOption.java
@@ -100,6 +100,7 @@
/**
* Returns the colors to be applied corresponding with the current
* configuration's UI mode.
+ * @param res resources to read to the UI mode configuration from
* @return one of {@link #lightColors} or {@link #darkColors}
*/
@ColorInt
@@ -108,6 +109,17 @@
== Configuration.UI_MODE_NIGHT_YES;
return night ? darkColors : lightColors;
}
+
+ /**
+ * Returns the preview colors based on whether dark theme or light theme colors are
+ * requested.
+ * @param darkTheme if true, returns dark theme colors, otherwise returns light theme colors
+ * @return one of {@link #lightColors} or {@link #darkColors}
+ */
+ @ColorInt
+ public int[] resolveColors(boolean darkTheme) {
+ return darkTheme ? darkColors : lightColors;
+ }
}
/**
diff --git a/src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt b/src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt
index d8cad82..6ab561f 100644
--- a/src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt
+++ b/src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt
@@ -122,11 +122,11 @@
}
},
wallpaperInteractor = wallpaperInteractor,
+ screen = CustomizationSections.Screen.HOME_SCREEN,
),
- lifecycleOwner = this,
+ lifecycleOwner = viewLifecycleOwner,
offsetToStart = false,
- screen = CustomizationSections.Screen.HOME_SCREEN,
- onPreviewDirty = { activity?.recreate() },
+ onWallpaperPreviewDirty = { activity?.recreate() },
)
}
}
diff --git a/src/com/android/customization/module/CustomizationInjector.kt b/src/com/android/customization/module/CustomizationInjector.kt
index 306ef04..5f8f9d3 100644
--- a/src/com/android/customization/module/CustomizationInjector.kt
+++ b/src/com/android/customization/module/CustomizationInjector.kt
@@ -15,8 +15,8 @@
*/
package com.android.customization.module
-import android.app.Activity
import android.content.Context
+import androidx.activity.ComponentActivity
import androidx.fragment.app.FragmentActivity
import com.android.customization.model.theme.OverlayManagerCompat
import com.android.customization.model.theme.ThemeBundleProvider
@@ -26,6 +26,7 @@
import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
import com.android.customization.picker.clock.ui.viewmodel.ClockSectionViewModel
import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
+import com.android.customization.picker.clock.utils.ClockDescriptionUtils
import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor
@@ -47,11 +48,13 @@
context: Context,
): KeyguardQuickAffordancePickerInteractor
- fun getClockRegistry(context: Context): ClockRegistry
+ fun getClockRegistry(context: Context): ClockRegistry?
fun getClockPickerInteractor(context: Context): ClockPickerInteractor
- fun getClockSectionViewModel(context: Context): ClockSectionViewModel
+ fun getClockSectionViewModel(
+ context: Context,
+ ): ClockSectionViewModel
fun getColorPickerInteractor(
context: Context,
@@ -63,12 +66,17 @@
wallpaperColorsViewModel: WallpaperColorsViewModel,
): ColorPickerViewModel.Factory
- fun getClockCarouselViewModel(context: Context): ClockCarouselViewModel
+ fun getClockCarouselViewModelFactory(
+ interactor: ClockPickerInteractor,
+ ): ClockCarouselViewModel.Factory
- fun getClockViewFactory(activity: Activity): ClockViewFactory
+ fun getClockViewFactory(activity: ComponentActivity): ClockViewFactory
fun getClockSettingsViewModelFactory(
context: Context,
wallpaperColorsViewModel: WallpaperColorsViewModel,
+ clockViewFactory: ClockViewFactory,
): ClockSettingsViewModel.Factory
+
+ fun getClockDescriptionUtils(): ClockDescriptionUtils
}
diff --git a/src/com/android/customization/module/DefaultCustomizationSections.java b/src/com/android/customization/module/DefaultCustomizationSections.java
index 232e948..b408a89 100644
--- a/src/com/android/customization/module/DefaultCustomizationSections.java
+++ b/src/com/android/customization/module/DefaultCustomizationSections.java
@@ -1,5 +1,6 @@
package com.android.customization.module;
+import android.app.WallpaperManager;
import android.os.Bundle;
import androidx.annotation.Nullable;
@@ -23,6 +24,7 @@
import com.android.customization.picker.notifications.ui.section.NotificationSectionController;
import com.android.customization.picker.notifications.ui.viewmodel.NotificationSectionViewModel;
import com.android.customization.picker.preview.ui.section.PreviewWithClockCarouselSectionController;
+import com.android.customization.picker.preview.ui.section.PreviewWithThemeSectionController;
import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor;
import com.android.customization.picker.quickaffordance.ui.section.KeyguardQuickAffordanceSectionController;
import com.android.customization.picker.quickaffordance.ui.viewmodel.KeyguardQuickAffordancePickerViewModel;
@@ -38,9 +40,8 @@
import com.android.wallpaper.module.CustomizationSections;
import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor;
import com.android.wallpaper.picker.customization.ui.section.ConnectedSectionController;
-import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewSectionController;
import com.android.wallpaper.picker.customization.ui.section.WallpaperQuickSwitchSectionController;
-import com.android.wallpaper.picker.customization.ui.viewmodel.WallpaperQuickSwitchViewModel;
+import com.android.wallpaper.picker.customization.ui.viewmodel.CustomizationPickerViewModel;
import com.android.wallpaper.util.DisplayUtils;
import java.util.ArrayList;
@@ -55,7 +56,7 @@
mKeyguardQuickAffordancePickerViewModelFactory;
private final NotificationSectionViewModel.Factory mNotificationSectionViewModelFactory;
private final BaseFlags mFlags;
- private final ClockCarouselViewModel mClockCarouselViewModel;
+ private final ClockCarouselViewModel.Factory mClockCarouselViewModelFactory;
private final ClockViewFactory mClockViewFactory;
private final DarkModeSnapshotRestorer mDarkModeSnapshotRestorer;
private final ThemedIconSnapshotRestorer mThemedIconSnapshotRestorer;
@@ -68,7 +69,7 @@
keyguardQuickAffordancePickerViewModelFactory,
NotificationSectionViewModel.Factory notificationSectionViewModelFactory,
BaseFlags flags,
- ClockCarouselViewModel clockCarouselViewModel,
+ ClockCarouselViewModel.Factory clockCarouselViewModelFactory,
ClockViewFactory clockViewFactory,
DarkModeSnapshotRestorer darkModeSnapshotRestorer,
ThemedIconSnapshotRestorer themedIconSnapshotRestorer,
@@ -79,7 +80,7 @@
keyguardQuickAffordancePickerViewModelFactory;
mNotificationSectionViewModelFactory = notificationSectionViewModelFactory;
mFlags = flags;
- mClockCarouselViewModel = clockCarouselViewModel;
+ mClockCarouselViewModelFactory = clockCarouselViewModelFactory;
mClockViewFactory = clockViewFactory;
mDarkModeSnapshotRestorer = darkModeSnapshotRestorer;
mThemedIconSnapshotRestorer = themedIconSnapshotRestorer;
@@ -98,8 +99,10 @@
@Nullable Bundle savedInstanceState,
CurrentWallpaperInfoFactory wallpaperInfoFactory,
DisplayUtils displayUtils,
- WallpaperQuickSwitchViewModel wallpaperQuickSwitchViewModel,
- WallpaperInteractor wallpaperInteractor) {
+ CustomizationPickerViewModel customizationPickerViewModel,
+ WallpaperInteractor wallpaperInteractor,
+ WallpaperManager wallpaperManager,
+ boolean isTwoPaneAndSmallWidth) {
List<CustomizationSectionController<?>> sectionControllers = new ArrayList<>();
// Wallpaper section.
@@ -112,19 +115,26 @@
wallpaperInfoFactory,
wallpaperColorsViewModel,
displayUtils,
- mClockCarouselViewModel,
+ mClockCarouselViewModelFactory,
mClockViewFactory,
+ wallpaperPreviewNavigator,
sectionNavigationController,
- wallpaperInteractor)
- : new ScreenPreviewSectionController(
+ wallpaperInteractor,
+ mThemedIconInteractor,
+ wallpaperManager,
+ isTwoPaneAndSmallWidth)
+ : new PreviewWithThemeSectionController(
activity,
lifecycleOwner,
screen,
wallpaperInfoFactory,
wallpaperColorsViewModel,
displayUtils,
- sectionNavigationController,
- wallpaperInteractor));
+ wallpaperPreviewNavigator,
+ wallpaperInteractor,
+ mThemedIconInteractor,
+ wallpaperManager,
+ isTwoPaneAndSmallWidth));
sectionControllers.add(
new ConnectedSectionController(
@@ -138,10 +148,11 @@
lifecycleOwner),
// Wallpaper quick switch section.
new WallpaperQuickSwitchSectionController(
- screen,
- wallpaperQuickSwitchViewModel,
+ customizationPickerViewModel.getWallpaperQuickSwitchViewModel(
+ screen),
lifecycleOwner,
- sectionNavigationController),
+ sectionNavigationController,
+ savedInstanceState == null),
/* reverseOrderWhenHorizontal= */ true));
switch (screen) {
diff --git a/src/com/android/customization/module/StatsLogUserEventLogger.java b/src/com/android/customization/module/StatsLogUserEventLogger.java
index 9645454..32e0599 100644
--- a/src/com/android/customization/module/StatsLogUserEventLogger.java
+++ b/src/com/android/customization/module/StatsLogUserEventLogger.java
@@ -44,7 +44,6 @@
import androidx.annotation.Nullable;
-import com.android.customization.model.clock.Clockface;
import com.android.customization.model.color.ColorOption;
import com.android.customization.model.grid.GridOption;
import com.android.customization.model.theme.ThemeBundle;
@@ -237,22 +236,6 @@
}
@Override
- public void logClockSelected(Clockface clock) {
- new SysUiStatsLogger()
- .setAction(StyleEnums.PICKER_SELECT)
- .setClockPackageHash(Objects.hashCode(clock.getId()))
- .log();
- }
-
- @Override
- public void logClockApplied(Clockface clock) {
- new SysUiStatsLogger()
- .setAction(StyleEnums.PICKER_APPLIED)
- .setClockPackageHash(Objects.hashCode(clock.getId()))
- .log();
- }
-
- @Override
public void logGridSelected(GridOption grid) {
new SysUiStatsLogger()
.setAction(StyleEnums.PICKER_SELECT)
diff --git a/src/com/android/customization/module/ThemePickerInjector.kt b/src/com/android/customization/module/ThemePickerInjector.kt
index eb20037..cceb896 100644
--- a/src/com/android/customization/module/ThemePickerInjector.kt
+++ b/src/com/android/customization/module/ThemePickerInjector.kt
@@ -15,8 +15,8 @@
*/
package com.android.customization.module
-import android.app.Activity
import android.app.UiModeManager
+import android.app.WallpaperManager
import android.content.Context
import android.content.Intent
import android.net.Uri
@@ -25,6 +25,8 @@
import androidx.activity.ComponentActivity
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.DefaultLifecycleObserver
+import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.ViewModelProvider
import com.android.customization.model.color.ColorCustomizationManager
import com.android.customization.model.color.ColorOptionsProvider
@@ -44,10 +46,13 @@
import com.android.customization.picker.clock.data.repository.ClockPickerRepositoryImpl
import com.android.customization.picker.clock.data.repository.ClockRegistryProvider
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
+import com.android.customization.picker.clock.domain.interactor.ClockPickerSnapshotRestorer
import com.android.customization.picker.clock.ui.view.ClockViewFactory
import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
import com.android.customization.picker.clock.ui.viewmodel.ClockSectionViewModel
import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
+import com.android.customization.picker.clock.utils.ClockDescriptionUtils
+import com.android.customization.picker.clock.utils.ThemePickerClockDescriptionUtils
import com.android.customization.picker.color.data.repository.ColorPickerRepositoryImpl
import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
import com.android.customization.picker.color.domain.interactor.ColorPickerSnapshotRestorer
@@ -79,11 +84,9 @@
import com.android.wallpaper.picker.customization.data.repository.WallpaperRepository
import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
import com.android.wallpaper.picker.undo.domain.interactor.SnapshotRestorer
-import kotlinx.coroutines.DelicateCoroutinesApi
+import com.android.wallpaper.util.ScreenSizeCalculator
import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.GlobalScope
-@OptIn(DelicateCoroutinesApi::class)
open class ThemePickerInjector : WallpaperPicker2Injector(), CustomizationInjector {
private var customizationSections: CustomizationSections? = null
private var userEventLogger: UserEventLogger? = null
@@ -99,11 +102,11 @@
private var keyguardQuickAffordanceSnapshotRestorer: KeyguardQuickAffordanceSnapshotRestorer? =
null
private var notificationsSnapshotRestorer: NotificationsSnapshotRestorer? = null
- private var clockRegistry: ClockRegistry? = null
private var clockPickerInteractor: ClockPickerInteractor? = null
private var clockSectionViewModel: ClockSectionViewModel? = null
- private var clockCarouselViewModel: ClockCarouselViewModel? = null
- private var clockViewFactory: ClockViewFactory? = null
+ private var clockCarouselViewModelFactory: ClockCarouselViewModel.Factory? = null
+ private var clockViewFactories: MutableMap<Int, ClockViewFactory> = HashMap()
+ private var clockPickerSnapshotRestorer: ClockPickerSnapshotRestorer? = null
private var notificationsInteractor: NotificationsInteractor? = null
private var notificationSectionViewModelFactory: NotificationSectionViewModel.Factory? = null
private var colorPickerInteractor: ColorPickerInteractor? = null
@@ -114,9 +117,11 @@
private var themedIconSnapshotRestorer: ThemedIconSnapshotRestorer? = null
private var themedIconInteractor: ThemedIconInteractor? = null
private var clockSettingsViewModelFactory: ClockSettingsViewModel.Factory? = null
+ private var clockDescriptionUtils: ClockDescriptionUtils? = null
private var gridInteractor: GridInteractor? = null
private var gridSnapshotRestorer: GridSnapshotRestorer? = null
private var gridScreenViewModelFactory: GridScreenViewModel.Factory? = null
+ private var clockRegistryProvider: ClockRegistryProvider? = null
override fun getCustomizationSections(activity: ComponentActivity): CustomizationSections {
return customizationSections
@@ -131,7 +136,9 @@
interactor = getNotificationsInteractor(activity),
),
getFlags(),
- getClockCarouselViewModel(activity),
+ getClockCarouselViewModelFactory(
+ getClockPickerInteractor(activity.applicationContext),
+ ),
getClockViewFactory(activity),
getDarkModeSnapshotRestorer(activity),
getThemedIconSnapshotRestorer(activity),
@@ -177,7 +184,7 @@
@Synchronized
override fun getUserEventLogger(context: Context): ThemesUserEventLogger {
return if (userEventLogger != null) userEventLogger as ThemesUserEventLogger
- else StatsLogUserEventLogger(context).also { userEventLogger = it }
+ else StatsLogUserEventLogger(context.applicationContext).also { userEventLogger = it }
}
@Synchronized
@@ -190,17 +197,23 @@
return fragmentFactory ?: ThemePickerFragmentFactory().also { fragmentFactory }
}
- override fun getSnapshotRestorers(context: Context): Map<Int, SnapshotRestorer> {
+ override fun getSnapshotRestorers(
+ context: Context,
+ ): Map<Int, SnapshotRestorer> {
return super<WallpaperPicker2Injector>.getSnapshotRestorers(context).toMutableMap().apply {
this[KEY_QUICK_AFFORDANCE_SNAPSHOT_RESTORER] =
getKeyguardQuickAffordanceSnapshotRestorer(context)
- this[KEY_WALLPAPER_SNAPSHOT_RESTORER] = getWallpaperSnapshotRestorer(context)
+ // TODO(b/285047815): Enable after adding wallpaper id for default static wallpaper
+ if (getFlags().isWallpaperRestorerEnabled()) {
+ this[KEY_WALLPAPER_SNAPSHOT_RESTORER] = getWallpaperSnapshotRestorer(context)
+ }
this[KEY_NOTIFICATIONS_SNAPSHOT_RESTORER] = getNotificationsSnapshotRestorer(context)
this[KEY_DARK_MODE_SNAPSHOT_RESTORER] = getDarkModeSnapshotRestorer(context)
this[KEY_THEMED_ICON_SNAPSHOT_RESTORER] = getThemedIconSnapshotRestorer(context)
this[KEY_APP_GRID_SNAPSHOT_RESTORER] = getGridSnapshotRestorer(context)
this[KEY_COLOR_PICKER_SNAPSHOT_RESTORER] =
getColorPickerSnapshotRestorer(context, getWallpaperColorsViewModel())
+ this[KEY_CLOCKS_SNAPSHOT_RESTORER] = getClockPickerSnapshotRestorer(context)
}
}
@@ -218,17 +231,24 @@
}
override fun getWallpaperInteractor(context: Context): WallpaperInteractor {
+ val appContext = context.applicationContext
return wallpaperInteractor
?: WallpaperInteractor(
repository =
WallpaperRepository(
- scope = GlobalScope,
- client = WallpaperClientImpl(context = context),
+ scope = getApplicationCoroutineScope(),
+ client =
+ WallpaperClientImpl(
+ context = appContext,
+ infoFactory = getCurrentWallpaperInfoFactory(appContext),
+ wallpaperManager = WallpaperManager.getInstance(appContext)
+ ),
+ wallpaperPreferences = getPreferences(context = appContext),
backgroundDispatcher = Dispatchers.IO,
),
shouldHandleReload = {
TextUtils.equals(
- getColorCustomizationManager(context).currentColorSource,
+ getColorCustomizationManager(appContext).currentColorSource,
ColorOptionsProvider.COLOR_SOURCE_PRESET
)
}
@@ -250,42 +270,32 @@
): KeyguardQuickAffordancePickerViewModel.Factory {
return keyguardQuickAffordancePickerViewModelFactory
?: KeyguardQuickAffordancePickerViewModel.Factory(
- context,
+ context.applicationContext,
getKeyguardQuickAffordancePickerInteractor(context),
+ getWallpaperInteractor(context),
getCurrentWallpaperInfoFactory(context),
- ) { intent ->
- context.startActivity(intent)
- }
- .also { keyguardQuickAffordancePickerViewModelFactory = it }
- }
-
- fun getNotificationSectionViewModelFactory(
- context: Context,
- ): NotificationSectionViewModel.Factory {
- return notificationSectionViewModelFactory
- ?: NotificationSectionViewModel.Factory(
- interactor = getNotificationsInteractor(context),
)
- .also { notificationSectionViewModelFactory = it }
+ .also { keyguardQuickAffordancePickerViewModelFactory = it }
}
private fun getKeyguardQuickAffordancePickerInteractorImpl(
context: Context
): KeyguardQuickAffordancePickerInteractor {
val client = getKeyguardQuickAffordancePickerProviderClient(context)
+ val appContext = context.applicationContext
return KeyguardQuickAffordancePickerInteractor(
KeyguardQuickAffordancePickerRepository(client, Dispatchers.IO),
client
) {
- getKeyguardQuickAffordanceSnapshotRestorer(context)
+ getKeyguardQuickAffordanceSnapshotRestorer(appContext)
}
}
- protected fun getKeyguardQuickAffordancePickerProviderClient(
+ private fun getKeyguardQuickAffordancePickerProviderClient(
context: Context
): CustomizationProviderClient {
return customizationProviderClient
- ?: CustomizationProviderClientImpl(context, Dispatchers.IO).also {
+ ?: CustomizationProviderClientImpl(context.applicationContext, Dispatchers.IO).also {
customizationProviderClient = it
}
}
@@ -301,6 +311,33 @@
.also { keyguardQuickAffordanceSnapshotRestorer = it }
}
+ fun getNotificationSectionViewModelFactory(
+ context: Context,
+ ): NotificationSectionViewModel.Factory {
+ return notificationSectionViewModelFactory
+ ?: NotificationSectionViewModel.Factory(
+ interactor = getNotificationsInteractor(context),
+ )
+ .also { notificationSectionViewModelFactory = it }
+ }
+
+ private fun getNotificationsInteractor(
+ context: Context,
+ ): NotificationsInteractor {
+ val appContext = context.applicationContext
+ return notificationsInteractor
+ ?: NotificationsInteractor(
+ repository =
+ NotificationsRepository(
+ scope = getApplicationCoroutineScope(),
+ backgroundDispatcher = Dispatchers.IO,
+ secureSettingsRepository = getSecureSettingsRepository(context),
+ ),
+ snapshotRestorer = { getNotificationsSnapshotRestorer(appContext) },
+ )
+ .also { notificationsInteractor = it }
+ }
+
private fun getNotificationsSnapshotRestorer(context: Context): NotificationsSnapshotRestorer {
return notificationsSnapshotRestorer
?: NotificationsSnapshotRestorer(
@@ -313,79 +350,102 @@
}
override fun getClockRegistry(context: Context): ClockRegistry {
- return clockRegistry
- ?: ClockRegistryProvider(
- context = context,
- coroutineScope = GlobalScope,
- mainDispatcher = Dispatchers.Main,
- backgroundDispatcher = Dispatchers.IO,
- )
- .get()
- .also { clockRegistry = it }
+ return (clockRegistryProvider
+ ?: ClockRegistryProvider(
+ context = context.applicationContext,
+ coroutineScope = getApplicationCoroutineScope(),
+ mainDispatcher = Dispatchers.Main,
+ backgroundDispatcher = Dispatchers.IO,
+ )
+ .also { clockRegistryProvider = it })
+ .get()
}
override fun getClockPickerInteractor(
context: Context,
): ClockPickerInteractor {
+ val appContext = context.applicationContext
return clockPickerInteractor
?: ClockPickerInteractor(
- ClockPickerRepositoryImpl(
- secureSettingsRepository = getSecureSettingsRepository(context),
- registry = getClockRegistry(context),
- scope = GlobalScope,
- ),
+ repository =
+ ClockPickerRepositoryImpl(
+ secureSettingsRepository = getSecureSettingsRepository(appContext),
+ registry = getClockRegistry(appContext),
+ scope = getApplicationCoroutineScope(),
+ mainDispatcher = Dispatchers.Main,
+ ),
+ snapshotRestorer = { getClockPickerSnapshotRestorer(appContext) },
)
.also { clockPickerInteractor = it }
}
- override fun getClockSectionViewModel(context: Context): ClockSectionViewModel {
- return clockSectionViewModel
- ?: ClockSectionViewModel(context, getClockPickerInteractor(context)).also {
- clockSectionViewModel = it
- }
- }
-
- override fun getClockCarouselViewModel(context: Context): ClockCarouselViewModel {
- return clockCarouselViewModel
- ?: ClockCarouselViewModel(getClockPickerInteractor(context)).also {
- clockCarouselViewModel = it
- }
- }
-
- override fun getClockViewFactory(activity: Activity): ClockViewFactory {
- return clockViewFactory
- ?: ClockViewFactory(activity, getClockRegistry(activity)).also { clockViewFactory = it }
- }
-
- protected fun getNotificationsInteractor(
+ override fun getClockSectionViewModel(
context: Context,
- ): NotificationsInteractor {
- return notificationsInteractor
- ?: NotificationsInteractor(
- repository =
- NotificationsRepository(
- scope = GlobalScope,
- backgroundDispatcher = Dispatchers.IO,
- secureSettingsRepository = getSecureSettingsRepository(context),
- ),
- snapshotRestorer = { getNotificationsSnapshotRestorer(context) },
+ ): ClockSectionViewModel {
+ return clockSectionViewModel
+ ?: ClockSectionViewModel(
+ context.applicationContext,
+ getClockPickerInteractor(context.applicationContext)
)
- .also { notificationsInteractor = it }
+ .also { clockSectionViewModel = it }
+ }
+
+ override fun getClockCarouselViewModelFactory(
+ interactor: ClockPickerInteractor,
+ ): ClockCarouselViewModel.Factory {
+ return clockCarouselViewModelFactory
+ ?: ClockCarouselViewModel.Factory(interactor, Dispatchers.IO).also {
+ clockCarouselViewModelFactory = it
+ }
+ }
+
+ override fun getClockViewFactory(activity: ComponentActivity): ClockViewFactory {
+ val activityHashCode = activity.hashCode()
+ return clockViewFactories[activityHashCode]
+ ?: ClockViewFactory(
+ activity.applicationContext,
+ ScreenSizeCalculator.getInstance()
+ .getScreenSize(activity.windowManager.defaultDisplay),
+ WallpaperManager.getInstance(activity.applicationContext),
+ getClockRegistry(activity.applicationContext),
+ )
+ .also {
+ clockViewFactories[activityHashCode] = it
+ activity.lifecycle.addObserver(
+ object : DefaultLifecycleObserver {
+ override fun onDestroy(owner: LifecycleOwner) {
+ super.onDestroy(owner)
+ clockViewFactories[activityHashCode]?.onDestroy()
+ clockViewFactories.remove(activityHashCode)
+ }
+ }
+ )
+ }
+ }
+
+ private fun getClockPickerSnapshotRestorer(
+ context: Context,
+ ): ClockPickerSnapshotRestorer {
+ return clockPickerSnapshotRestorer
+ ?: ClockPickerSnapshotRestorer(getClockPickerInteractor(context)).also {
+ clockPickerSnapshotRestorer = it
+ }
}
override fun getColorPickerInteractor(
context: Context,
wallpaperColorsViewModel: WallpaperColorsViewModel,
): ColorPickerInteractor {
+ val appContext = context.applicationContext
return colorPickerInteractor
?: ColorPickerInteractor(
repository =
ColorPickerRepositoryImpl(
wallpaperColorsViewModel,
- getColorCustomizationManager(context)
+ getColorCustomizationManager(appContext)
),
snapshotRestorer = {
- getColorPickerSnapshotRestorer(context, wallpaperColorsViewModel)
+ getColorPickerSnapshotRestorer(appContext, wallpaperColorsViewModel)
}
)
.also { colorPickerInteractor = it }
@@ -397,7 +457,7 @@
): ColorPickerViewModel.Factory {
return colorPickerViewModelFactory
?: ColorPickerViewModel.Factory(
- context,
+ context.applicationContext,
getColorPickerInteractor(context, wallpaperColorsViewModel),
)
.also { colorPickerViewModelFactory = it }
@@ -424,10 +484,11 @@
fun getDarkModeSnapshotRestorer(
context: Context,
): DarkModeSnapshotRestorer {
+ val appContext = context.applicationContext
return darkModeSnapshotRestorer
?: DarkModeSnapshotRestorer(
- context = context,
- manager = context.getSystemService(Context.UI_MODE_SERVICE) as UiModeManager,
+ context = appContext,
+ manager = appContext.getSystemService(Context.UI_MODE_SERVICE) as UiModeManager,
backgroundDispatcher = Dispatchers.IO,
)
.also { darkModeSnapshotRestorer = it }
@@ -459,19 +520,28 @@
override fun getClockSettingsViewModelFactory(
context: Context,
wallpaperColorsViewModel: WallpaperColorsViewModel,
+ clockViewFactory: ClockViewFactory,
): ClockSettingsViewModel.Factory {
return clockSettingsViewModelFactory
?: ClockSettingsViewModel.Factory(
- context,
+ context.applicationContext,
getClockPickerInteractor(context),
getColorPickerInteractor(
context,
wallpaperColorsViewModel,
),
- )
+ ) { clockId ->
+ clockId?.let { clockViewFactory.getController(clockId).config.isReactiveToTone }
+ ?: false
+ }
.also { clockSettingsViewModelFactory = it }
}
+ override fun getClockDescriptionUtils(): ClockDescriptionUtils {
+ return clockDescriptionUtils
+ ?: ThemePickerClockDescriptionUtils().also { clockDescriptionUtils = it }
+ }
+
fun getGridScreenViewModelFactory(
context: Context,
): ViewModelProvider.Factory {
@@ -486,16 +556,17 @@
private fun getGridInteractor(
context: Context,
): GridInteractor {
+ val appContext = context.applicationContext
return gridInteractor
?: GridInteractor(
- applicationScope = GlobalScope,
+ applicationScope = getApplicationCoroutineScope(),
repository =
GridRepositoryImpl(
- applicationScope = GlobalScope,
+ applicationScope = getApplicationCoroutineScope(),
manager = GridOptionsManager.getInstance(context),
backgroundDispatcher = Dispatchers.IO,
),
- snapshotRestorer = { getGridSnapshotRestorer(context) },
+ snapshotRestorer = { getGridSnapshotRestorer(appContext) },
)
.also { gridInteractor = it }
}
@@ -526,6 +597,7 @@
private val KEY_APP_GRID_SNAPSHOT_RESTORER = KEY_THEMED_ICON_SNAPSHOT_RESTORER + 1
@JvmStatic
private val KEY_COLOR_PICKER_SNAPSHOT_RESTORER = KEY_APP_GRID_SNAPSHOT_RESTORER + 1
+ @JvmStatic private val KEY_CLOCKS_SNAPSHOT_RESTORER = KEY_COLOR_PICKER_SNAPSHOT_RESTORER + 1
/**
* When this injector is overridden, this is the minimal value that should be used by
@@ -533,6 +605,6 @@
*
* It should always be greater than the biggest restorer key.
*/
- @JvmStatic protected val MIN_SNAPSHOT_RESTORER_KEY = KEY_COLOR_PICKER_SNAPSHOT_RESTORER + 1
+ @JvmStatic protected val MIN_SNAPSHOT_RESTORER_KEY = KEY_CLOCKS_SNAPSHOT_RESTORER + 1
}
}
diff --git a/src/com/android/customization/module/ThemesUserEventLogger.java b/src/com/android/customization/module/ThemesUserEventLogger.java
index 3e5bb54..b1a87b9 100644
--- a/src/com/android/customization/module/ThemesUserEventLogger.java
+++ b/src/com/android/customization/module/ThemesUserEventLogger.java
@@ -15,7 +15,6 @@
*/
package com.android.customization.module;
-import com.android.customization.model.clock.Clockface;
import com.android.customization.model.color.ColorOption;
import com.android.customization.model.grid.GridOption;
import com.android.customization.model.theme.ThemeBundle;
@@ -38,10 +37,6 @@
*/
void logColorApplied(int action, ColorOption colorOption);
- void logClockSelected(Clockface clock);
-
- void logClockApplied(Clockface clock);
-
void logGridSelected(GridOption grid);
void logGridApplied(GridOption grid);
diff --git a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepository.kt b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepository.kt
index ae66ce3..57f77b0 100644
--- a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepository.kt
+++ b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepository.kt
@@ -33,7 +33,7 @@
val selectedClockSize: Flow<ClockSize>
- fun setSelectedClock(clockId: String)
+ suspend fun setSelectedClock(clockId: String)
/**
* Set clock color to the settings.
@@ -42,7 +42,7 @@
* @param colorToneProgress color tone from 0 to 100 to apply to the selected color
* @param seedColor the actual clock color after blending the selected color and color tone
*/
- fun setClockColor(
+ suspend fun setClockColor(
selectedColorId: String?,
@IntRange(from = 0, to = 100) colorToneProgress: Int,
@ColorInt seedColor: Int?,
diff --git a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt
index 880a00b..be6c6cb 100644
--- a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt
+++ b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt
@@ -24,6 +24,7 @@
import com.android.systemui.plugins.ClockMetadata
import com.android.systemui.shared.clocks.ClockRegistry
import com.android.wallpaper.settings.data.repository.SecureSettingsRepository
+import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.channels.awaitClose
@@ -32,6 +33,7 @@
import kotlinx.coroutines.flow.SharedFlow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.mapLatest
import kotlinx.coroutines.flow.mapNotNull
@@ -43,6 +45,7 @@
private val secureSettingsRepository: SecureSettingsRepository,
private val registry: ClockRegistry,
scope: CoroutineScope,
+ mainDispatcher: CoroutineDispatcher,
) : ClockPickerRepository {
@OptIn(ExperimentalCoroutinesApi::class)
@@ -67,6 +70,7 @@
send()
awaitClose { registry.unregisterClockChangeListener(listener) }
}
+ .flowOn(mainDispatcher)
.mapLatest { allClocks ->
// Loading list of clock plugins can cause many consecutive calls of
// onAvailableClocksChanged(). We only care about the final fully-initiated clock
@@ -108,9 +112,10 @@
send()
awaitClose { registry.unregisterClockChangeListener(listener) }
}
+ .flowOn(mainDispatcher)
.mapNotNull { it }
- override fun setSelectedClock(clockId: String) {
+ override suspend fun setSelectedClock(clockId: String) {
registry.mutateSetting { oldSettings ->
val newSettings = oldSettings.copy(clockId = clockId)
newSettings.metadata = oldSettings.metadata
@@ -118,7 +123,7 @@
}
}
- override fun setClockColor(
+ override suspend fun setClockColor(
selectedColorId: String?,
@IntRange(from = 0, to = 100) colorToneProgress: Int,
@ColorInt seedColor: Int?,
@@ -137,6 +142,7 @@
secureSettingsRepository
.intSetting(
name = Settings.Secure.LOCKSCREEN_USE_DOUBLE_LINE_CLOCK,
+ defaultValue = DEFAULT_CLOCK_SIZE,
)
.map { setting -> setting == 1 }
.map { isDynamic -> if (isDynamic) ClockSize.DYNAMIC else ClockSize.SMALL }
@@ -189,5 +195,8 @@
// The color tone to apply to the selected color
private const val KEY_METADATA_COLOR_TONE_PROGRESS = "metadataColorToneProgress"
+
+ // The default clock size is 1, which means dynamic
+ private const val DEFAULT_CLOCK_SIZE = 1
}
}
diff --git a/src/com/android/customization/picker/clock/data/repository/ClockRegistryProvider.kt b/src/com/android/customization/picker/clock/data/repository/ClockRegistryProvider.kt
index bfe87c9..652ffdd 100644
--- a/src/com/android/customization/picker/clock/data/repository/ClockRegistryProvider.kt
+++ b/src/com/android/customization/picker/clock/data/repository/ClockRegistryProvider.kt
@@ -43,25 +43,28 @@
private val mainDispatcher: CoroutineDispatcher,
private val backgroundDispatcher: CoroutineDispatcher,
) {
- private val pluginManager: PluginManager by lazy { createPluginManager(context) }
private val clockRegistry: ClockRegistry by lazy {
ClockRegistry(
- context,
- pluginManager,
- coroutineScope,
- mainDispatcher,
- backgroundDispatcher,
- isEnabled = true,
- handleAllUsers = false,
- DefaultClockProvider(context, LayoutInflater.from(context), context.resources)
- )
- .apply { registerListeners() }
+ context,
+ createPluginManager(context),
+ coroutineScope,
+ mainDispatcher,
+ backgroundDispatcher,
+ isEnabled = true,
+ handleAllUsers = false,
+ DefaultClockProvider(context, LayoutInflater.from(context), context.resources),
+ keepAllLoaded = true,
+ subTag = "Picker",
+ )
}
- fun get(): ClockRegistry {
- return clockRegistry
+ init {
+ // Listeners in ClockRegistry get cleaned up when app ended
+ clockRegistry.registerListeners()
}
+ fun get() = clockRegistry
+
private fun createPluginManager(context: Context): PluginManager {
val privilegedPlugins = listOf<String>()
val isDebugDevice = true
@@ -70,7 +73,7 @@
PluginInstance.Factory(
this::class.java.classLoader,
PluginInstance.InstanceFactory<Plugin>(),
- PluginInstance.VersionChecker(),
+ PluginInstance.VersionCheckerImpl(),
privilegedPlugins,
isDebugDevice,
)
diff --git a/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt
index 6f3657a..30887e5 100644
--- a/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt
+++ b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt
@@ -22,15 +22,21 @@
import com.android.customization.picker.clock.data.repository.ClockPickerRepository
import com.android.customization.picker.clock.shared.ClockSize
import com.android.customization.picker.clock.shared.model.ClockMetadataModel
+import com.android.customization.picker.clock.shared.model.ClockSnapshotModel
+import javax.inject.Provider
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.flow.map
/**
* Interactor for accessing application clock settings, as well as selecting and configuring custom
* clocks.
*/
-class ClockPickerInteractor(private val repository: ClockPickerRepository) {
+class ClockPickerInteractor(
+ private val repository: ClockPickerRepository,
+ private val snapshotRestorer: Provider<ClockPickerSnapshotRestorer>,
+) {
val allClocks: Flow<List<ClockMetadataModel>> = repository.allClocks
@@ -47,19 +53,69 @@
val selectedClockSize: Flow<ClockSize> = repository.selectedClockSize
- fun setSelectedClock(clockId: String) {
- repository.setSelectedClock(clockId)
+ suspend fun setSelectedClock(clockId: String) {
+ // Use the [clockId] to override saved clock id, since it might not be updated in time
+ setClockOption(ClockSnapshotModel(clockId = clockId))
}
- fun setClockColor(
+ suspend fun setClockColor(
selectedColorId: String?,
@IntRange(from = 0, to = 100) colorToneProgress: Int,
@ColorInt seedColor: Int?,
) {
- repository.setClockColor(selectedColorId, colorToneProgress, seedColor)
+ // Use the color to override saved color, since it might not be updated in time
+ setClockOption(
+ ClockSnapshotModel(
+ selectedColorId = selectedColorId,
+ colorToneProgress = colorToneProgress,
+ seedColor = seedColor,
+ )
+ )
}
suspend fun setClockSize(size: ClockSize) {
- repository.setClockSize(size)
+ // Use the [ClockSize] to override saved clock size, since it might not be updated in time
+ setClockOption(ClockSnapshotModel(clockSize = size))
+ }
+
+ suspend fun setClockOption(clockSnapshotModel: ClockSnapshotModel) {
+ // [ClockCarouselViewModel] is monitoring the [ClockPickerInteractor.setSelectedClock] job,
+ // so it needs to finish last.
+ storeCurrentClockOption(clockSnapshotModel)
+
+ clockSnapshotModel.clockSize?.let { repository.setClockSize(it) }
+ clockSnapshotModel.colorToneProgress?.let {
+ repository.setClockColor(
+ selectedColorId = clockSnapshotModel.selectedColorId,
+ colorToneProgress = clockSnapshotModel.colorToneProgress,
+ seedColor = clockSnapshotModel.seedColor
+ )
+ }
+ clockSnapshotModel.clockId?.let { repository.setSelectedClock(it) }
+ }
+
+ /**
+ * Gets the [ClockSnapshotModel] from the storage and override with [latestOption].
+ *
+ * The storage might be in the middle of a write, and not reflecting the user's options, always
+ * pass in a [ClockSnapshotModel] if we know it's the latest option from a user's point of view.
+ *
+ * [selectedColorId] and [seedColor] have null state collide with nullable type, but we know
+ * they are presented whenever there's a [colorToneProgress].
+ */
+ suspend fun getCurrentClockToRestore(latestOption: ClockSnapshotModel? = null) =
+ ClockSnapshotModel(
+ clockId = latestOption?.clockId ?: selectedClockId.firstOrNull(),
+ clockSize = latestOption?.clockSize ?: selectedClockSize.firstOrNull(),
+ colorToneProgress = latestOption?.colorToneProgress ?: colorToneProgress.firstOrNull(),
+ selectedColorId = latestOption?.colorToneProgress?.let { latestOption.selectedColorId }
+ ?: selectedColorId.firstOrNull(),
+ seedColor = latestOption?.colorToneProgress?.let { latestOption.seedColor }
+ ?: seedColor.firstOrNull(),
+ )
+
+ private suspend fun storeCurrentClockOption(clockSnapshotModel: ClockSnapshotModel) {
+ val option = getCurrentClockToRestore(clockSnapshotModel)
+ snapshotRestorer.get().storeSnapshot(option)
}
}
diff --git a/src/com/android/customization/picker/clock/domain/interactor/ClockPickerSnapshotRestorer.kt b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerSnapshotRestorer.kt
new file mode 100644
index 0000000..ecaf10f
--- /dev/null
+++ b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerSnapshotRestorer.kt
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package com.android.customization.picker.clock.domain.interactor
+
+import android.text.TextUtils
+import android.util.Log
+import com.android.customization.picker.clock.shared.model.ClockSnapshotModel
+import com.android.wallpaper.picker.undo.domain.interactor.SnapshotRestorer
+import com.android.wallpaper.picker.undo.domain.interactor.SnapshotStore
+import com.android.wallpaper.picker.undo.shared.model.RestorableSnapshot
+
+/** Handles state restoration for clocks. */
+class ClockPickerSnapshotRestorer(private val interactor: ClockPickerInteractor) :
+ SnapshotRestorer {
+ private var snapshotStore: SnapshotStore = SnapshotStore.NOOP
+ private var originalOption: ClockSnapshotModel? = null
+
+ override suspend fun setUpSnapshotRestorer(
+ store: SnapshotStore,
+ ): RestorableSnapshot {
+ snapshotStore = store
+ originalOption = interactor.getCurrentClockToRestore()
+ return snapshot(originalOption)
+ }
+
+ override suspend fun restoreToSnapshot(snapshot: RestorableSnapshot) {
+ originalOption?.let { optionToRestore ->
+ if (
+ TextUtils.isEmpty(optionToRestore.clockId) ||
+ optionToRestore.clockId != snapshot.args[KEY_CLOCK_ID] ||
+ optionToRestore.clockSize?.toString() != snapshot.args[KEY_CLOCK_SIZE] ||
+ optionToRestore.colorToneProgress?.toString() !=
+ snapshot.args[KEY_COLOR_TONE_PROGRESS] ||
+ optionToRestore.seedColor?.toString() != snapshot.args[KEY_SEED_COLOR] ||
+ optionToRestore.selectedColorId != snapshot.args[KEY_COLOR_ID]
+ ) {
+ Log.wtf(
+ TAG,
+ """ Original clock option does not match snapshot option to restore to. The
+ | current implementation doesn't support undo, only a reset back to the
+ | original clock option."""
+ .trimMargin(),
+ )
+ }
+
+ interactor.setClockOption(optionToRestore)
+ }
+ }
+
+ fun storeSnapshot(clockSnapshotModel: ClockSnapshotModel) {
+ snapshotStore.store(snapshot(clockSnapshotModel))
+ }
+
+ private fun snapshot(clockSnapshotModel: ClockSnapshotModel? = null): RestorableSnapshot {
+ val options =
+ if (clockSnapshotModel == null) emptyMap()
+ else
+ buildMap {
+ clockSnapshotModel.clockId?.let { put(KEY_CLOCK_ID, it) }
+ clockSnapshotModel.clockSize?.let { put(KEY_CLOCK_SIZE, it.toString()) }
+ clockSnapshotModel.selectedColorId?.let { put(KEY_COLOR_ID, it) }
+ clockSnapshotModel.colorToneProgress?.let {
+ put(KEY_COLOR_TONE_PROGRESS, it.toString())
+ }
+ clockSnapshotModel.seedColor?.let { put(KEY_SEED_COLOR, it.toString()) }
+ }
+
+ return RestorableSnapshot(options)
+ }
+
+ companion object {
+ private const val TAG = "ClockPickerSnapshotRestorer"
+ private const val KEY_CLOCK_ID = "clock_id"
+ private const val KEY_CLOCK_SIZE = "clock_size"
+ private const val KEY_COLOR_ID = "color_id"
+ private const val KEY_COLOR_TONE_PROGRESS = "color_tone_progress"
+ private const val KEY_SEED_COLOR = "seed_color"
+ }
+}
diff --git a/src/com/android/customization/picker/clock/domain/interactor/ClocksSnapshotRestorer.kt b/src/com/android/customization/picker/clock/domain/interactor/ClocksSnapshotRestorer.kt
deleted file mode 100644
index 7bb3232..0000000
--- a/src/com/android/customization/picker/clock/domain/interactor/ClocksSnapshotRestorer.kt
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package com.android.customization.picker.clock.domain.interactor
-
-import com.android.wallpaper.picker.undo.domain.interactor.SnapshotRestorer
-import com.android.wallpaper.picker.undo.domain.interactor.SnapshotStore
-import com.android.wallpaper.picker.undo.shared.model.RestorableSnapshot
-
-/** Handles state restoration for clocks. */
-class ClocksSnapshotRestorer : SnapshotRestorer {
- override suspend fun setUpSnapshotRestorer(
- store: SnapshotStore,
- ): RestorableSnapshot {
- // TODO(b/262924055): implement as part of the clock settings screen.
- return RestorableSnapshot(mapOf())
- }
-
- override suspend fun restoreToSnapshot(snapshot: RestorableSnapshot) {
- // TODO(b/262924055): implement as part of the clock settings screen.
- }
-}
diff --git a/src/com/android/customization/picker/clock/shared/model/ClockSnapshotModel.kt b/src/com/android/customization/picker/clock/shared/model/ClockSnapshotModel.kt
new file mode 100644
index 0000000..942cc59
--- /dev/null
+++ b/src/com/android/customization/picker/clock/shared/model/ClockSnapshotModel.kt
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package com.android.customization.picker.clock.shared.model
+
+import androidx.annotation.ColorInt
+import androidx.annotation.IntRange
+import com.android.customization.picker.clock.shared.ClockSize
+
+/** Models application state for a clock option in a picker experience. */
+data class ClockSnapshotModel(
+ val clockId: String? = null,
+ val clockSize: ClockSize? = null,
+ val selectedColorId: String? = null,
+ @IntRange(from = 0, to = 100) val colorToneProgress: Int? = null,
+ @ColorInt val seedColor: Int? = null,
+)
diff --git a/src/com/android/customization/picker/clock/ui/adapter/ClockSettingsTabAdapter.kt b/src/com/android/customization/picker/clock/ui/adapter/ClockSettingsTabAdapter.kt
index 746fdb3..981a8e8 100644
--- a/src/com/android/customization/picker/clock/ui/adapter/ClockSettingsTabAdapter.kt
+++ b/src/com/android/customization/picker/clock/ui/adapter/ClockSettingsTabAdapter.kt
@@ -54,7 +54,7 @@
val item = items[position]
holder.itemView.isSelected = item.isSelected
holder.textView.text = item.name
- holder.textView.setOnClickListener(
+ holder.itemView.setOnClickListener(
if (item.onClicked != null) {
View.OnClickListener { item.onClicked.invoke() }
} else {
diff --git a/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt b/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
index 9ad735d..13c80c8 100644
--- a/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
+++ b/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
@@ -19,6 +19,7 @@
import android.widget.FrameLayout
import androidx.core.view.isVisible
import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
@@ -26,17 +27,10 @@
import com.android.customization.picker.clock.ui.view.ClockViewFactory
import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
import com.android.wallpaper.R
+import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.launch
object ClockCarouselViewBinder {
- /**
- * The binding is used by the view where there is an action executed from another view, e.g.
- * toggling show/hide of the view that the binder is holding.
- */
- interface Binding {
- fun show()
- fun hide()
- }
@JvmStatic
fun bind(
@@ -45,7 +39,10 @@
viewModel: ClockCarouselViewModel,
clockViewFactory: ClockViewFactory,
lifecycleOwner: LifecycleOwner,
- ): Binding {
+ isTwoPaneAndSmallWidth: Boolean,
+ ) {
+ carouselView.setClockViewFactory(clockViewFactory)
+ clockViewFactory.updateRegionDarkness()
val singleClockHostView =
singleClockView.requireViewById<FrameLayout>(R.id.single_clock_host_view)
lifecycleOwner.lifecycleScope.launch {
@@ -53,16 +50,26 @@
launch { viewModel.isCarouselVisible.collect { carouselView.isVisible = it } }
launch {
- viewModel.allClockIds.collect { allClockIds ->
+ combine(viewModel.selectedClockSize, viewModel.allClocks, ::Pair).collect {
+ (size, allClocks) ->
carouselView.setUpClockCarouselView(
- clockIds = allClockIds,
- onGetClockPreview = { clockId -> clockViewFactory.getView(clockId) },
- onClockSelected = { clockId -> viewModel.setSelectedClock(clockId) },
+ clockSize = size,
+ clocks = allClocks,
+ onClockSelected = { clock ->
+ viewModel.setSelectedClock(clock.clockId)
+ },
+ isTwoPaneAndSmallWidth = isTwoPaneAndSmallWidth,
)
}
}
launch {
+ viewModel.allClocks.collect {
+ it.forEach { clock -> clockViewFactory.updateTimeFormat(clock.clockId) }
+ }
+ }
+
+ launch {
viewModel.selectedIndex.collect { selectedIndex ->
carouselView.setSelectedClockIndex(selectedIndex)
}
@@ -79,7 +86,7 @@
launch {
viewModel.clockId.collect { clockId ->
singleClockHostView.removeAllViews()
- val clockView = clockViewFactory.getView(clockId)
+ val clockView = clockViewFactory.getLargeView(clockId)
// The clock view might still be attached to an existing parent. Detach
// before adding to another parent.
(clockView.parent as? ViewGroup)?.removeView(clockView)
@@ -89,22 +96,18 @@
}
}
- lifecycleOwner.lifecycleScope.launch {
- lifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) {
- clockViewFactory.registerTimeTicker()
+ lifecycleOwner.lifecycle.addObserver(
+ LifecycleEventObserver { source, event ->
+ when (event) {
+ Lifecycle.Event.ON_RESUME -> {
+ clockViewFactory.registerTimeTicker(source)
+ }
+ Lifecycle.Event.ON_PAUSE -> {
+ clockViewFactory.unregisterTimeTicker(source)
+ }
+ else -> {}
+ }
}
- // When paused
- clockViewFactory.unregisterTimeTicker()
- }
-
- return object : Binding {
- override fun show() {
- viewModel.showClockCarousel(true)
- }
-
- override fun hide() {
- viewModel.showClockCarousel(false)
- }
- }
+ )
}
}
diff --git a/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt b/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt
index 66d9251..4f4bd1b 100644
--- a/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt
+++ b/src/com/android/customization/picker/clock/ui/binder/ClockSettingsBinder.kt
@@ -15,13 +15,17 @@
*/
package com.android.customization.picker.clock.ui.binder
+import android.content.res.Configuration
+import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.FrameLayout
+import android.widget.LinearLayout
import android.widget.SeekBar
+import androidx.core.view.doOnPreDraw
import androidx.core.view.isInvisible
import androidx.core.view.isVisible
import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
@@ -29,38 +33,37 @@
import androidx.recyclerview.widget.RecyclerView
import com.android.customization.picker.clock.shared.ClockSize
import com.android.customization.picker.clock.ui.adapter.ClockSettingsTabAdapter
+import com.android.customization.picker.clock.ui.view.ClockHostView
import com.android.customization.picker.clock.ui.view.ClockSizeRadioButtonGroup
import com.android.customization.picker.clock.ui.view.ClockViewFactory
import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
-import com.android.customization.picker.color.ui.adapter.ColorOptionAdapter
+import com.android.customization.picker.color.ui.binder.ColorOptionIconBinder
import com.android.customization.picker.common.ui.view.ItemSpacing
import com.android.wallpaper.R
+import com.android.wallpaper.picker.option.ui.binder.OptionItemBinder
+import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.mapNotNull
import kotlinx.coroutines.launch
/** Bind between the clock settings screen and its view model. */
object ClockSettingsBinder {
+ private const val SLIDER_ENABLED_ALPHA = 1f
+ private const val SLIDER_DISABLED_ALPHA = .3f
+ private const val COLOR_PICKER_ITEM_PREFIX_ID = 1234
+
fun bind(
view: View,
viewModel: ClockSettingsViewModel,
clockViewFactory: ClockViewFactory,
lifecycleOwner: LifecycleOwner,
) {
- val clockHostView: FrameLayout = view.requireViewById(R.id.clock_host_view)
-
+ val clockHostView: ClockHostView = view.requireViewById(R.id.clock_host_view)
val tabView: RecyclerView = view.requireViewById(R.id.tabs)
val tabAdapter = ClockSettingsTabAdapter()
tabView.adapter = tabAdapter
tabView.layoutManager = LinearLayoutManager(view.context, RecyclerView.HORIZONTAL, false)
tabView.addItemDecoration(ItemSpacing(ItemSpacing.TAB_ITEM_SPACING_DP))
-
- val colorOptionContainerView: RecyclerView = view.requireViewById(R.id.color_options)
- val colorOptionAdapter = ColorOptionAdapter()
- colorOptionContainerView.adapter = colorOptionAdapter
- colorOptionContainerView.layoutManager =
- LinearLayoutManager(view.context, RecyclerView.HORIZONTAL, false)
- colorOptionContainerView.addItemDecoration(ItemSpacing(ItemSpacing.ITEM_SPACING_DP))
-
+ val colorOptionContainerListView: LinearLayout = view.requireViewById(R.id.color_options)
val slider: SeekBar = view.requireViewById(R.id.slider)
slider.setOnSeekBarChangeListener(
object : SeekBar.OnSeekBarChangeListener {
@@ -72,7 +75,9 @@
override fun onStartTrackingTouch(seekBar: SeekBar?) = Unit
override fun onStopTrackingTouch(seekBar: SeekBar?) {
- seekBar?.progress?.let { viewModel.onSliderProgressStop(it) }
+ seekBar?.progress?.let {
+ lifecycleOwner.lifecycleScope.launch { viewModel.onSliderProgressStop(it) }
+ }
}
}
)
@@ -90,17 +95,6 @@
lifecycleOwner.lifecycleScope.launch {
lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
launch {
- viewModel.selectedClockId
- .mapNotNull { it }
- .collect { clockId ->
- val clockView = clockViewFactory.getView(clockId)
- (clockView.parent as? ViewGroup)?.removeView(clockView)
- clockHostView.removeAllViews()
- clockHostView.addView(clockView)
- }
- }
-
- launch {
viewModel.seedColor.collect { seedColor ->
viewModel.selectedClockId.value?.let { selectedClockId ->
clockViewFactory.updateColor(selectedClockId, seedColor)
@@ -127,35 +121,90 @@
launch {
viewModel.colorOptions.collect { colorOptions ->
- colorOptionAdapter.setItems(colorOptions)
+ colorOptions.forEachIndexed { index, colorOption ->
+ colorOption.payload?.let { payload ->
+ val item =
+ LayoutInflater.from(view.context)
+ .inflate(
+ R.layout.clock_color_option,
+ colorOptionContainerListView,
+ false,
+ ) as LinearLayout
+ val darkMode =
+ (view.resources.configuration.uiMode and
+ Configuration.UI_MODE_NIGHT_MASK ==
+ Configuration.UI_MODE_NIGHT_YES)
+ ColorOptionIconBinder.bind(
+ item.requireViewById(R.id.foreground),
+ payload,
+ darkMode
+ )
+ OptionItemBinder.bind(
+ view = item,
+ viewModel = colorOptions[index],
+ lifecycleOwner = lifecycleOwner,
+ foregroundTintSpec = null,
+ )
+
+ val id = COLOR_PICKER_ITEM_PREFIX_ID + index
+ item.id = id
+ colorOptionContainerListView.addView(item)
+ }
+ }
}
}
launch {
viewModel.selectedColorOptionPosition.collect { selectedPosition ->
if (selectedPosition != -1) {
- // We use "post" because we need to give the adapter item a pass to
- // update the view.
- colorOptionContainerView.post {
- colorOptionContainerView.smoothScrollToPosition(selectedPosition)
- }
+ val colorOptionContainerListView: LinearLayout =
+ view.requireViewById(R.id.color_options)
+
+ val selectedView =
+ colorOptionContainerListView.findViewById<View>(
+ COLOR_PICKER_ITEM_PREFIX_ID + selectedPosition
+ )
+ selectedView?.parent?.requestChildFocus(selectedView, selectedView)
}
}
}
launch {
- viewModel.selectedClockSize.collect { size ->
- when (size) {
- ClockSize.DYNAMIC -> {
- sizeOptions.radioButtonDynamic.isChecked = true
- sizeOptions.radioButtonSmall.isChecked = false
- }
- ClockSize.SMALL -> {
- sizeOptions.radioButtonDynamic.isChecked = false
- sizeOptions.radioButtonSmall.isChecked = true
+ combine(
+ viewModel.selectedClockId.mapNotNull { it },
+ viewModel.selectedClockSize,
+ ::Pair,
+ )
+ .collect { (clockId, size) ->
+ clockHostView.removeAllViews()
+ val clockView =
+ when (size) {
+ ClockSize.DYNAMIC -> clockViewFactory.getLargeView(clockId)
+ ClockSize.SMALL -> clockViewFactory.getSmallView(clockId)
+ }
+ // The clock view might still be attached to an existing parent. Detach
+ // before adding to another parent.
+ (clockView.parent as? ViewGroup)?.removeView(clockView)
+ clockHostView.addView(clockView)
+ when (size) {
+ ClockSize.DYNAMIC -> {
+ sizeOptions.radioButtonDynamic.isChecked = true
+ sizeOptions.radioButtonSmall.isChecked = false
+ clockHostView.doOnPreDraw {
+ it.pivotX = it.width / 2F
+ it.pivotY = it.height / 2F
+ }
+ }
+ ClockSize.SMALL -> {
+ sizeOptions.radioButtonDynamic.isChecked = false
+ sizeOptions.radioButtonSmall.isChecked = true
+ clockHostView.doOnPreDraw {
+ it.pivotX = 0F
+ it.pivotY = 0F
+ }
+ }
}
}
- }
}
launch {
@@ -165,17 +214,27 @@
}
launch {
- viewModel.isSliderEnabled.collect { isEnabled -> slider.isEnabled = isEnabled }
+ viewModel.isSliderEnabled.collect { isEnabled ->
+ slider.isEnabled = isEnabled
+ slider.alpha =
+ if (isEnabled) SLIDER_ENABLED_ALPHA else SLIDER_DISABLED_ALPHA
+ }
}
}
}
- lifecycleOwner.lifecycleScope.launch {
- lifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) {
- clockViewFactory.registerTimeTicker()
+ lifecycleOwner.lifecycle.addObserver(
+ LifecycleEventObserver { source, event ->
+ when (event) {
+ Lifecycle.Event.ON_RESUME -> {
+ clockViewFactory.registerTimeTicker(source)
+ }
+ Lifecycle.Event.ON_PAUSE -> {
+ clockViewFactory.unregisterTimeTicker(source)
+ }
+ else -> {}
+ }
}
- // When paused
- clockViewFactory.unregisterTimeTicker()
- }
+ )
}
}
diff --git a/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragment.kt b/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragment.kt
index 7e53ac4..f138d6a 100644
--- a/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragment.kt
+++ b/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragment.kt
@@ -36,7 +36,7 @@
setUpToolbar(view)
clockRegistry =
(InjectorProvider.getInjector() as ThemePickerInjector).getClockRegistry(
- requireContext()
+ requireContext(),
)
val listInUse = clockRegistry.getClocks().filter { "NOT_IN_USE" !in it.clockId }
diff --git a/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt b/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
index c5cde53..f4684d8 100644
--- a/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
+++ b/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
@@ -26,6 +26,7 @@
import com.android.customization.picker.clock.ui.binder.ClockSettingsBinder
import com.android.systemui.shared.clocks.shared.model.ClockPreviewConstants
import com.android.wallpaper.R
+import com.android.wallpaper.module.CustomizationSections
import com.android.wallpaper.module.InjectorProvider
import com.android.wallpaper.picker.AppbarFragment
import com.android.wallpaper.picker.customization.ui.binder.ScreenPreviewBinder
@@ -66,70 +67,77 @@
val colorViewModel = injector.getWallpaperColorsViewModel()
val displayUtils = injector.getDisplayUtils(context)
ScreenPreviewBinder.bind(
- activity = activity,
- previewView = lockScreenView,
- viewModel =
- ScreenPreviewViewModel(
- previewUtils =
- PreviewUtils(
- context = context,
- authority =
- resources.getString(
- R.string.lock_screen_preview_provider_authority,
- ),
- ),
- wallpaperInfoProvider = {
- suspendCancellableCoroutine { continuation ->
- injector
- .getCurrentWallpaperInfoFactory(context)
- .createCurrentWallpaperInfos(
- { homeWallpaper, lockWallpaper, _ ->
- continuation.resume(
- homeWallpaper ?: lockWallpaper,
- null,
- )
- },
- /* forceRefresh= */ true,
- )
- }
- },
- onWallpaperColorChanged = { colors ->
- colorViewModel.setLockWallpaperColors(colors)
- },
- initialExtrasProvider = {
- Bundle().apply {
- // Hide the clock from the system UI rendered preview so we can
- // place the carousel on top of it.
- putBoolean(
- ClockPreviewConstants.KEY_HIDE_CLOCK,
- true,
+ activity = activity,
+ previewView = lockScreenView,
+ viewModel =
+ ScreenPreviewViewModel(
+ previewUtils =
+ PreviewUtils(
+ context = context,
+ authority =
+ resources.getString(
+ R.string.lock_screen_preview_provider_authority,
+ ),
+ ),
+ wallpaperInfoProvider = { forceReload ->
+ suspendCancellableCoroutine { continuation ->
+ injector
+ .getCurrentWallpaperInfoFactory(context)
+ .createCurrentWallpaperInfos(
+ { homeWallpaper, lockWallpaper, _ ->
+ continuation.resume(
+ lockWallpaper ?: homeWallpaper,
+ null,
+ )
+ },
+ forceReload,
)
- }
- },
- ),
- lifecycleOwner = this,
- offsetToStart = displayUtils.isSingleDisplayOrUnfoldedHorizontalHinge(activity),
- )
- .show()
+ }
+ },
+ onWallpaperColorChanged = { colors ->
+ colorViewModel.setLockWallpaperColors(colors)
+ },
+ initialExtrasProvider = {
+ Bundle().apply {
+ // Hide the clock from the system UI rendered preview so we can
+ // place the carousel on top of it.
+ putBoolean(
+ ClockPreviewConstants.KEY_HIDE_CLOCK,
+ true,
+ )
+ }
+ },
+ wallpaperInteractor = injector.getWallpaperInteractor(requireContext()),
+ screen = CustomizationSections.Screen.LOCK_SCREEN,
+ ),
+ lifecycleOwner = this,
+ offsetToStart = displayUtils.isSingleDisplayOrUnfoldedHorizontalHinge(activity),
+ onWallpaperPreviewDirty = { activity.recreate() },
+ )
ClockSettingsBinder.bind(
view,
ViewModelProvider(
- requireActivity(),
+ this,
injector.getClockSettingsViewModelFactory(
context,
injector.getWallpaperColorsViewModel(),
+ injector.getClockViewFactory(activity),
),
)
.get(),
injector.getClockViewFactory(activity),
- this@ClockSettingsFragment,
+ viewLifecycleOwner,
)
return view
}
override fun getDefaultTitle(): CharSequence {
- return requireContext().getString(R.string.clock_settings_title)
+ return requireContext().getString(R.string.clock_color_and_size_title)
+ }
+
+ override fun getToolbarColorId(): Int {
+ return android.R.color.transparent
}
}
diff --git a/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt b/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt
index 90d7c42..73d5508 100644
--- a/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt
+++ b/src/com/android/customization/picker/clock/ui/view/ClockCarouselView.kt
@@ -22,8 +22,17 @@
import android.view.ViewGroup
import android.widget.FrameLayout
import androidx.constraintlayout.helper.widget.Carousel
+import androidx.constraintlayout.motion.widget.MotionLayout
+import androidx.constraintlayout.widget.ConstraintSet
+import androidx.core.view.doOnPreDraw
import androidx.core.view.get
+import androidx.core.view.isNotEmpty
+import com.android.customization.picker.clock.shared.ClockSize
+import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselItemViewModel
+import com.android.systemui.plugins.ClockController
import com.android.wallpaper.R
+import com.android.wallpaper.picker.FixedWidthDisplayRatioFrameLayout
+import java.lang.Float.max
class ClockCarouselView(
context: Context,
@@ -34,53 +43,452 @@
attrs,
) {
- private val carousel: Carousel
+ val carousel: Carousel
+ private val motionLayout: MotionLayout
private lateinit var adapter: ClockCarouselAdapter
+ private lateinit var clockViewFactory: ClockViewFactory
+ private var toCenterClockController: ClockController? = null
+ private var offCenterClockController: ClockController? = null
+ private var toCenterClockScaleView: View? = null
+ private var offCenterClockScaleView: View? = null
+ private var toCenterClockHostView: ClockHostView? = null
+ private var offCenterClockHostView: ClockHostView? = null
+ private var toCenterCardView: View? = null
+ private var offCenterCardView: View? = null
init {
- val view = LayoutInflater.from(context).inflate(R.layout.clock_carousel, this)
- carousel = view.requireViewById(R.id.carousel)
+ val clockCarousel = LayoutInflater.from(context).inflate(R.layout.clock_carousel, this)
+ carousel = clockCarousel.requireViewById(R.id.carousel)
+ motionLayout = clockCarousel.requireViewById(R.id.motion_container)
+ }
+
+ /**
+ * Make sure to set [clockViewFactory] before calling any functions from [ClockCarouselView].
+ */
+ fun setClockViewFactory(factory: ClockViewFactory) {
+ clockViewFactory = factory
}
fun setUpClockCarouselView(
- clockIds: List<String>,
- onGetClockPreview: (clockId: String) -> View,
- onClockSelected: (clockId: String) -> Unit,
+ clockSize: ClockSize,
+ clocks: List<ClockCarouselItemViewModel>,
+ onClockSelected: (clock: ClockCarouselItemViewModel) -> Unit,
+ isTwoPaneAndSmallWidth: Boolean,
) {
- adapter = ClockCarouselAdapter(clockIds, onGetClockPreview, onClockSelected)
+ if (isTwoPaneAndSmallWidth) {
+ overrideScreenPreviewWidth()
+ }
+
+ adapter = ClockCarouselAdapter(clockSize, clocks, clockViewFactory, onClockSelected)
carousel.setAdapter(adapter)
carousel.refresh()
+ motionLayout.setTransitionListener(
+ object : MotionLayout.TransitionListener {
+
+ override fun onTransitionStarted(
+ motionLayout: MotionLayout?,
+ startId: Int,
+ endId: Int
+ ) {
+ if (motionLayout == null) {
+ return
+ }
+ when (clockSize) {
+ ClockSize.DYNAMIC -> prepareDynamicClockView(motionLayout, endId)
+ ClockSize.SMALL -> prepareSmallClockView(motionLayout, endId)
+ }
+ prepareCardView(motionLayout, endId)
+ setCarouselItemAnimationState(true)
+ }
+
+ override fun onTransitionChange(
+ motionLayout: MotionLayout?,
+ startId: Int,
+ endId: Int,
+ progress: Float,
+ ) {
+ when (clockSize) {
+ ClockSize.DYNAMIC -> onDynamicClockViewTransition(progress)
+ ClockSize.SMALL -> onSmallClockViewTransition(progress)
+ }
+ onCardViewTransition(progress)
+ }
+
+ override fun onTransitionCompleted(motionLayout: MotionLayout?, currentId: Int) {
+ setCarouselItemAnimationState(currentId == R.id.start)
+ }
+
+ private fun prepareDynamicClockView(motionLayout: MotionLayout, endId: Int) {
+ val scalingDownClockId = adapter.clocks[carousel.currentIndex].clockId
+ val scalingUpIdx =
+ if (endId == R.id.next) (carousel.currentIndex + 1) % adapter.count()
+ else (carousel.currentIndex - 1 + adapter.count()) % adapter.count()
+ val scalingUpClockId = adapter.clocks[scalingUpIdx].clockId
+ offCenterClockController = clockViewFactory.getController(scalingDownClockId)
+ toCenterClockController = clockViewFactory.getController(scalingUpClockId)
+ offCenterClockScaleView = motionLayout.findViewById(R.id.clock_scale_view_2)
+ toCenterClockScaleView =
+ motionLayout.findViewById(
+ if (endId == R.id.next) R.id.clock_scale_view_3
+ else R.id.clock_scale_view_1
+ )
+ }
+
+ private fun prepareSmallClockView(motionLayout: MotionLayout, endId: Int) {
+ offCenterClockHostView = motionLayout.findViewById(R.id.clock_host_view_2)
+ toCenterClockHostView =
+ motionLayout.findViewById(
+ if (endId == R.id.next) R.id.clock_host_view_3
+ else R.id.clock_host_view_1
+ )
+ }
+
+ private fun prepareCardView(motionLayout: MotionLayout, endId: Int) {
+ offCenterCardView = motionLayout.findViewById(R.id.item_card_2)
+ toCenterCardView =
+ motionLayout.findViewById(
+ if (endId == R.id.next) R.id.item_card_3 else R.id.item_card_1
+ )
+ }
+
+ private fun onCardViewTransition(progress: Float) {
+ offCenterCardView?.alpha = getShowingAlpha(progress)
+ toCenterCardView?.alpha = getHidingAlpha(progress)
+ }
+
+ private fun onDynamicClockViewTransition(progress: Float) {
+ offCenterClockController
+ ?.largeClock
+ ?.animations
+ ?.onPickerCarouselSwiping(1 - progress)
+ toCenterClockController
+ ?.largeClock
+ ?.animations
+ ?.onPickerCarouselSwiping(progress)
+ val scalingDownScale = getScalingDownScale(progress)
+ val scalingUpScale = getScalingUpScale(progress)
+ offCenterClockScaleView?.scaleX = scalingDownScale
+ offCenterClockScaleView?.scaleY = scalingDownScale
+ toCenterClockScaleView?.scaleX = scalingUpScale
+ toCenterClockScaleView?.scaleY = scalingUpScale
+ }
+
+ private fun onSmallClockViewTransition(progress: Float) {
+ val offCenterClockHostView = offCenterClockHostView ?: return
+ val toCenterClockHostView = toCenterClockHostView ?: return
+ val offCenterClockFrame =
+ if (offCenterClockHostView.isNotEmpty()) {
+ offCenterClockHostView[0]
+ } else {
+ null
+ }
+ ?: return
+ val toCenterClockFrame =
+ if (toCenterClockHostView.isNotEmpty()) {
+ toCenterClockHostView[0]
+ } else {
+ null
+ }
+ ?: return
+ offCenterClockHostView.doOnPreDraw {
+ it.pivotX = progress * it.width / 2
+ it.pivotY = progress * it.height / 2
+ }
+ toCenterClockHostView.doOnPreDraw {
+ it.pivotX = (1 - progress) * it.width / 2
+ it.pivotY = (1 - progress) * it.height / 2
+ }
+ offCenterClockFrame.translationX =
+ getTranslationDistance(
+ offCenterClockHostView.width,
+ offCenterClockFrame.width,
+ offCenterClockFrame.left,
+ ) * progress
+ offCenterClockFrame.translationY =
+ getTranslationDistance(
+ offCenterClockHostView.height,
+ offCenterClockFrame.height,
+ offCenterClockFrame.top,
+ ) * progress
+ toCenterClockFrame.translationX =
+ getTranslationDistance(
+ toCenterClockHostView.width,
+ toCenterClockFrame.width,
+ toCenterClockFrame.left,
+ ) * (1 - progress)
+ toCenterClockFrame.translationY =
+ getTranslationDistance(
+ toCenterClockHostView.height,
+ toCenterClockFrame.height,
+ toCenterClockFrame.top,
+ ) * (1 - progress)
+ }
+
+ private fun setCarouselItemAnimationState(isStart: Boolean) {
+ when (clockSize) {
+ ClockSize.DYNAMIC -> onDynamicClockViewTransition(if (isStart) 0f else 1f)
+ ClockSize.SMALL -> onSmallClockViewTransition(if (isStart) 0f else 1f)
+ }
+ onCardViewTransition(if (isStart) 0f else 1f)
+ }
+
+ override fun onTransitionTrigger(
+ motionLayout: MotionLayout?,
+ triggerId: Int,
+ positive: Boolean,
+ progress: Float
+ ) {}
+ }
+ )
}
fun setSelectedClockIndex(
index: Int,
) {
- carousel.jumpToIndex(index)
+ // jumpToIndex to the same position can cause the views unnecessarily populate again.
+ // Only call jumpToIndex when the jump-to index is different from the current carousel.
+ if (index != carousel.currentIndex) {
+ carousel.jumpToIndex(index)
+ }
}
- class ClockCarouselAdapter(
- val clockIds: List<String>,
- val onGetClockPreview: (clockId: String) -> View,
- val onClockSelected: (clockId: String) -> Unit,
+ private fun overrideScreenPreviewWidth() {
+ val overrideWidth =
+ context.resources.getDimensionPixelSize(
+ R.dimen.screen_preview_width_for_2_pane_small_width
+ )
+ itemViewIds.forEach { id ->
+ val itemView = motionLayout.requireViewById<FrameLayout>(id)
+ val itemViewLp = itemView.layoutParams
+ itemViewLp.width = overrideWidth
+ itemView.layoutParams = itemViewLp
+
+ getClockScaleViewId(id)?.let {
+ val scaleView = motionLayout.requireViewById<FixedWidthDisplayRatioFrameLayout>(it)
+ val scaleViewLp = scaleView.layoutParams
+ scaleViewLp.width = overrideWidth
+ scaleView.layoutParams = scaleViewLp
+ }
+ }
+
+ val previousConstaintSet = motionLayout.getConstraintSet(R.id.previous)
+ val startConstaintSet = motionLayout.getConstraintSet(R.id.start)
+ val nextConstaintSet = motionLayout.getConstraintSet(R.id.next)
+ val constaintSetList =
+ listOf<ConstraintSet>(previousConstaintSet, startConstaintSet, nextConstaintSet)
+ constaintSetList.forEach { constraintSet ->
+ itemViewIds.forEach { id ->
+ constraintSet.getConstraint(id)?.let { constraint ->
+ val layout = constraint.layout
+ if (
+ constraint.layout.mWidth ==
+ context.resources.getDimensionPixelSize(R.dimen.screen_preview_width)
+ ) {
+ layout.mWidth = overrideWidth
+ }
+ if (
+ constraint.layout.widthMax ==
+ context.resources.getDimensionPixelSize(R.dimen.screen_preview_width)
+ ) {
+ layout.widthMax = overrideWidth
+ }
+ }
+ }
+ }
+ }
+
+ private class ClockCarouselAdapter(
+ val clockSize: ClockSize,
+ val clocks: List<ClockCarouselItemViewModel>,
+ private val clockViewFactory: ClockViewFactory,
+ private val onClockSelected: (clock: ClockCarouselItemViewModel) -> Unit
) : Carousel.Adapter {
override fun count(): Int {
- return clockIds.size
+ return clocks.size
}
override fun populate(view: View?, index: Int) {
- val viewRoot = view as ViewGroup
- val clockHostView = viewRoot[0] as ViewGroup
+ val viewRoot = view as? ViewGroup ?: return
+ val cardView =
+ getClockCardViewId(viewRoot.id)?.let { viewRoot.findViewById(it) as? View }
+ ?: return
+ val clockScaleView =
+ getClockScaleViewId(viewRoot.id)?.let { viewRoot.findViewById(it) as? View }
+ ?: return
+ val clockHostView =
+ getClockHostViewId(viewRoot.id)?.let { viewRoot.findViewById(it) as? ClockHostView }
+ ?: return
+ val clockId = clocks[index].clockId
+
+ // Add the clock view to the cloc host view
clockHostView.removeAllViews()
- val clockView = onGetClockPreview(clockIds[index])
+ val clockView =
+ when (clockSize) {
+ ClockSize.DYNAMIC -> clockViewFactory.getLargeView(clockId)
+ ClockSize.SMALL -> clockViewFactory.getSmallView(clockId)
+ }
// The clock view might still be attached to an existing parent. Detach before adding to
// another parent.
(clockView.parent as? ViewGroup)?.removeView(clockView)
clockHostView.addView(clockView)
+
+ val isMiddleView = isMiddleView(viewRoot.id)
+
+ // Accessibility
+ viewRoot.contentDescription = clocks[index].getContentDescription(view.resources)
+ viewRoot.isSelected = isMiddleView
+
+ when (clockSize) {
+ ClockSize.DYNAMIC ->
+ initializeDynamicClockView(
+ isMiddleView,
+ clockScaleView,
+ clockId,
+ clockHostView,
+ )
+ ClockSize.SMALL ->
+ initializeSmallClockView(
+ isMiddleView,
+ clockHostView,
+ clockView,
+ )
+ }
+ cardView.alpha = if (isMiddleView) 0f else 1f
+ }
+
+ private fun initializeDynamicClockView(
+ isMiddleView: Boolean,
+ clockScaleView: View,
+ clockId: String,
+ clockHostView: ClockHostView,
+ ) {
+ clockHostView.doOnPreDraw {
+ it.pivotX = it.width / 2F
+ it.pivotY = it.height / 2F
+ }
+ if (isMiddleView) {
+ clockScaleView.scaleX = 1f
+ clockScaleView.scaleY = 1f
+ clockViewFactory
+ .getController(clockId)
+ .largeClock
+ .animations
+ .onPickerCarouselSwiping(1F)
+ } else {
+ clockScaleView.scaleX = CLOCK_CAROUSEL_VIEW_SCALE
+ clockScaleView.scaleY = CLOCK_CAROUSEL_VIEW_SCALE
+ clockViewFactory
+ .getController(clockId)
+ .largeClock
+ .animations
+ .onPickerCarouselSwiping(0F)
+ }
+ }
+
+ private fun initializeSmallClockView(
+ isMiddleView: Boolean,
+ clockHostView: ClockHostView,
+ clockView: View,
+ ) {
+ clockHostView.doOnPreDraw {
+ if (isMiddleView) {
+ it.pivotX = 0F
+ it.pivotY = 0F
+ clockView.translationX = 0F
+ clockView.translationY = 0F
+ } else {
+ it.pivotX = it.width / 2F
+ it.pivotY = it.height / 2F
+ clockView.translationX =
+ getTranslationDistance(
+ clockHostView.width,
+ clockView.width,
+ clockView.left,
+ )
+ clockView.translationY =
+ getTranslationDistance(
+ clockHostView.height,
+ clockView.height,
+ clockView.top,
+ )
+ }
+ }
}
override fun onNewItem(index: Int) {
- onClockSelected.invoke(clockIds[index])
+ onClockSelected.invoke(clocks[index])
+ }
+ }
+
+ companion object {
+ const val CLOCK_CAROUSEL_VIEW_SCALE = 0.5f
+
+ val itemViewIds =
+ listOf(
+ R.id.item_view_0,
+ R.id.item_view_1,
+ R.id.item_view_2,
+ R.id.item_view_3,
+ R.id.item_view_4
+ )
+
+ fun getScalingUpScale(progress: Float) =
+ CLOCK_CAROUSEL_VIEW_SCALE + progress * (1f - CLOCK_CAROUSEL_VIEW_SCALE)
+
+ fun getScalingDownScale(progress: Float) = 1f - progress * (1f - CLOCK_CAROUSEL_VIEW_SCALE)
+
+ // This makes the card only starts to reveal in the last quarter of the trip so
+ // the card won't overlap the preview.
+ fun getShowingAlpha(progress: Float) = max(progress - 0.75f, 0f) * 4
+
+ // This makes the card starts to hide in the first quarter of the trip so the
+ // card won't overlap the preview.
+ fun getHidingAlpha(progress: Float) = max(1f - progress * 4, 0f)
+
+ fun getClockHostViewId(rootViewId: Int): Int? {
+ return when (rootViewId) {
+ R.id.item_view_0 -> R.id.clock_host_view_0
+ R.id.item_view_1 -> R.id.clock_host_view_1
+ R.id.item_view_2 -> R.id.clock_host_view_2
+ R.id.item_view_3 -> R.id.clock_host_view_3
+ R.id.item_view_4 -> R.id.clock_host_view_4
+ else -> null
+ }
+ }
+
+ fun getClockScaleViewId(rootViewId: Int): Int? {
+ return when (rootViewId) {
+ R.id.item_view_0 -> R.id.clock_scale_view_0
+ R.id.item_view_1 -> R.id.clock_scale_view_1
+ R.id.item_view_2 -> R.id.clock_scale_view_2
+ R.id.item_view_3 -> R.id.clock_scale_view_3
+ R.id.item_view_4 -> R.id.clock_scale_view_4
+ else -> null
+ }
+ }
+
+ fun getClockCardViewId(rootViewId: Int): Int? {
+ return when (rootViewId) {
+ R.id.item_view_0 -> R.id.item_card_0
+ R.id.item_view_1 -> R.id.item_card_1
+ R.id.item_view_2 -> R.id.item_card_2
+ R.id.item_view_3 -> R.id.item_card_3
+ R.id.item_view_4 -> R.id.item_card_4
+ else -> null
+ }
+ }
+
+ fun isMiddleView(rootViewId: Int): Boolean {
+ return rootViewId == R.id.item_view_2
+ }
+
+ private fun getTranslationDistance(
+ hostLength: Int,
+ frameLength: Int,
+ edgeDimen: Int,
+ ): Float {
+ return ((hostLength - frameLength) / 2 - edgeDimen).toFloat()
}
}
}
diff --git a/src/com/android/customization/picker/clock/ui/view/ClockHostView.kt b/src/com/android/customization/picker/clock/ui/view/ClockHostView.kt
new file mode 100644
index 0000000..512fcd1
--- /dev/null
+++ b/src/com/android/customization/picker/clock/ui/view/ClockHostView.kt
@@ -0,0 +1,55 @@
+package com.android.customization.picker.clock.ui.view
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.View
+import android.view.View.MeasureSpec.EXACTLY
+import android.widget.FrameLayout
+import com.android.wallpaper.util.ScreenSizeCalculator
+
+/**
+ * The parent view for each clock view in picker carousel This view will give a container with the
+ * same size of lockscreen to layout clock and scale down it to the size in picker carousel
+ * according to ratio of preview to LS
+ */
+class ClockHostView(
+ context: Context,
+ attrs: AttributeSet?,
+) : FrameLayout(context, attrs) {
+ private var previewRatio: Float = 1F
+ set(value) {
+ if (field != value) {
+ field = value
+ scaleX = previewRatio
+ scaleY = previewRatio
+ invalidate()
+ }
+ }
+
+ override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec)
+ val screenSize = ScreenSizeCalculator.getInstance().getScreenSize(display)
+ previewRatio = measuredWidth / screenSize.x.toFloat()
+ }
+
+ /**
+ * In clock picker, we want to clock layout and render at lockscreen size and scale down so that
+ * the preview in clock carousel will be the same as lockscreen
+ */
+ override fun measureChildWithMargins(
+ child: View?,
+ parentWidthMeasureSpec: Int,
+ widthUsed: Int,
+ parentHeightMeasureSpec: Int,
+ heightUsed: Int
+ ) {
+ val screenSize = ScreenSizeCalculator.getInstance().getScreenSize(display)
+ super.measureChildWithMargins(
+ child,
+ MeasureSpec.makeMeasureSpec(screenSize.x, EXACTLY),
+ widthUsed,
+ MeasureSpec.makeMeasureSpec(screenSize.y, EXACTLY),
+ heightUsed
+ )
+ }
+}
diff --git a/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt b/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt
index 7f480de..3f6f423 100644
--- a/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt
+++ b/src/com/android/customization/picker/clock/ui/view/ClockViewFactory.kt
@@ -15,61 +15,226 @@
*/
package com.android.customization.picker.clock.ui.view
-import android.app.Activity
+import android.app.WallpaperColors
+import android.app.WallpaperManager
+import android.content.Context
+import android.content.res.Resources
+import android.graphics.Point
+import android.graphics.Rect
import android.view.View
+import android.widget.FrameLayout
import androidx.annotation.ColorInt
+import androidx.core.text.util.LocalePreferences
+import androidx.lifecycle.LifecycleOwner
import com.android.systemui.plugins.ClockController
+import com.android.systemui.plugins.WeatherData
import com.android.systemui.shared.clocks.ClockRegistry
import com.android.wallpaper.R
-import com.android.wallpaper.util.ScreenSizeCalculator
import com.android.wallpaper.util.TimeUtils.TimeTicker
+import java.util.concurrent.ConcurrentHashMap
+/**
+ * Provide reusable clock view and related util functions.
+ *
+ * @property screenSize The Activity or Fragment's window size.
+ */
class ClockViewFactory(
- private val activity: Activity,
+ private val appContext: Context,
+ val screenSize: Point,
+ private val wallpaperManager: WallpaperManager,
private val registry: ClockRegistry,
) {
+ private val resources = appContext.resources
+ private val timeTickListeners: ConcurrentHashMap<Int, TimeTicker> = ConcurrentHashMap()
private val clockControllers: HashMap<String, ClockController> = HashMap()
- private var ticker: TimeTicker? = null
+ private val smallClockFrames: HashMap<String, FrameLayout> = HashMap()
- fun getView(clockId: String): View {
- return (clockControllers[clockId] ?: initClockController(clockId)).largeClock.view
+ fun getController(clockId: String): ClockController {
+ return clockControllers[clockId]
+ ?: initClockController(clockId).also { clockControllers[clockId] = it }
}
+ /**
+ * Reset the large view to its initial state when getting the view. This is because some view
+ * configs, e.g. animation state, might change during the reuse of the clock view in the app.
+ */
+ fun getLargeView(clockId: String): View {
+ return getController(clockId).largeClock.let {
+ it.animations.onPickerCarouselSwiping(1F)
+ it.view
+ }
+ }
+
+ /**
+ * Reset the small view to its initial state when getting the view. This is because some view
+ * configs, e.g. translation X, might change during the reuse of the clock view in the app.
+ */
+ fun getSmallView(clockId: String): View {
+ val smallClockFrame =
+ smallClockFrames[clockId]
+ ?: createSmallClockFrame().also {
+ it.addView(getController(clockId).smallClock.view)
+ smallClockFrames[clockId] = it
+ }
+ smallClockFrame.translationX = 0F
+ smallClockFrame.translationY = 0F
+ return smallClockFrame
+ }
+
+ private fun createSmallClockFrame(): FrameLayout {
+ val smallClockFrame = FrameLayout(appContext)
+ val layoutParams =
+ FrameLayout.LayoutParams(
+ FrameLayout.LayoutParams.WRAP_CONTENT,
+ resources.getDimensionPixelSize(R.dimen.small_clock_height)
+ )
+ layoutParams.topMargin = getSmallClockTopMargin()
+ layoutParams.marginStart = getSmallClockStartPadding()
+ smallClockFrame.layoutParams = layoutParams
+ smallClockFrame.clipChildren = false
+ return smallClockFrame
+ }
+
+ private fun getSmallClockTopMargin() =
+ getStatusBarHeight(appContext.resources) +
+ appContext.resources.getDimensionPixelSize(R.dimen.small_clock_padding_top)
+
+ private fun getSmallClockStartPadding() =
+ appContext.resources.getDimensionPixelSize(R.dimen.clock_padding_start)
+
fun updateColorForAllClocks(@ColorInt seedColor: Int?) {
clockControllers.values.forEach { it.events.onSeedColorChanged(seedColor = seedColor) }
}
fun updateColor(clockId: String, @ColorInt seedColor: Int?) {
- return (clockControllers[clockId] ?: initClockController(clockId))
+ clockControllers[clockId]?.events?.onSeedColorChanged(seedColor)
+ }
+
+ fun updateRegionDarkness() {
+ val isRegionDark = isLockscreenWallpaperDark()
+ clockControllers.values.forEach {
+ it.largeClock.events.onRegionDarknessChanged(isRegionDark)
+ it.smallClock.events.onRegionDarknessChanged(isRegionDark)
+ }
+ }
+
+ private fun isLockscreenWallpaperDark(): Boolean {
+ val colors = wallpaperManager.getWallpaperColors(WallpaperManager.FLAG_LOCK)
+ return (colors?.colorHints?.and(WallpaperColors.HINT_SUPPORTS_DARK_TEXT)) == 0
+ }
+
+ fun updateTimeFormat(clockId: String) {
+ getController(clockId)
.events
- .onSeedColorChanged(seedColor)
+ .onTimeFormatChanged(android.text.format.DateFormat.is24HourFormat(appContext))
}
- fun registerTimeTicker() {
- ticker =
- TimeTicker.registerNewReceiver(activity.applicationContext) {
- clockControllers.values.forEach { it.largeClock.events.onTimeTick() }
- }
+ fun registerTimeTicker(owner: LifecycleOwner) {
+ val hashCode = owner.hashCode()
+ if (timeTickListeners.keys.contains(hashCode)) {
+ return
+ }
+
+ timeTickListeners[hashCode] = TimeTicker.registerNewReceiver(appContext) { onTimeTick() }
}
- fun unregisterTimeTicker() {
- activity.applicationContext.unregisterReceiver(ticker)
+ fun onDestroy() {
+ timeTickListeners.forEach { (_, timeTicker) -> appContext.unregisterReceiver(timeTicker) }
+ timeTickListeners.clear()
+ clockControllers.clear()
+ smallClockFrames.clear()
+ }
+
+ private fun onTimeTick() {
+ clockControllers.values.forEach {
+ it.largeClock.events.onTimeTick()
+ it.smallClock.events.onTimeTick()
+ }
+ }
+
+ fun unregisterTimeTicker(owner: LifecycleOwner) {
+ val hashCode = owner.hashCode()
+ timeTickListeners[hashCode]?.let {
+ appContext.unregisterReceiver(it)
+ timeTickListeners.remove(hashCode)
+ }
}
private fun initClockController(clockId: String): ClockController {
val controller =
- registry.createExampleClock(clockId).also { it?.initialize(activity.resources, 0f, 0f) }
+ registry.createExampleClock(clockId).also { it?.initialize(resources, 0f, 0f) }
checkNotNull(controller)
- val screenSizeCalculator = ScreenSizeCalculator.getInstance()
- val screenSize = screenSizeCalculator.getScreenSize(activity.windowManager.defaultDisplay)
- val ratio =
- activity.resources.getDimensionPixelSize(R.dimen.screen_preview_height).toFloat() /
- screenSize.y.toFloat()
+
+ val isWallpaperDark = isLockscreenWallpaperDark()
+ // Initialize large clock
+ controller.largeClock.events.onRegionDarknessChanged(isWallpaperDark)
controller.largeClock.events.onFontSettingChanged(
- activity.resources.getDimensionPixelSize(R.dimen.large_clock_text_size).toFloat() *
- ratio
+ resources.getDimensionPixelSize(R.dimen.large_clock_text_size).toFloat()
)
- clockControllers[clockId] = controller
+ controller.largeClock.events.onTargetRegionChanged(getLargeClockRegion())
+
+ // Initialize small clock
+ controller.smallClock.events.onRegionDarknessChanged(isWallpaperDark)
+ controller.smallClock.events.onFontSettingChanged(
+ resources.getDimensionPixelSize(R.dimen.small_clock_text_size).toFloat()
+ )
+ controller.smallClock.events.onTargetRegionChanged(getSmallClockRegion())
+
+ // Use placeholder for weather clock preview in picker.
+ // Use locale default temp unit since assistant default is not available in this context.
+ val useCelsius =
+ LocalePreferences.getTemperatureUnit() == LocalePreferences.TemperatureUnit.CELSIUS
+ controller.events.onWeatherDataChanged(
+ WeatherData(
+ description = DESCRIPTION_PLACEHODLER,
+ state = WEATHERICON_PLACEHOLDER,
+ temperature =
+ if (useCelsius) TEMPERATURE_CELSIUS_PLACEHOLDER
+ else TEMPERATURE_FAHRENHEIT_PLACEHOLDER,
+ useCelsius = useCelsius,
+ )
+ )
return controller
}
+
+ /**
+ * Simulate the function of getLargeClockRegion in KeyguardClockSwitch so that we can get a
+ * proper region corresponding to lock screen in picker and for onTargetRegionChanged to scale
+ * and position the clock view
+ */
+ private fun getLargeClockRegion(): Rect {
+ val largeClockTopMargin =
+ resources.getDimensionPixelSize(R.dimen.keyguard_large_clock_top_margin)
+ val targetHeight = resources.getDimensionPixelSize(R.dimen.large_clock_text_size) * 2
+ val top = (screenSize.y / 2 - targetHeight / 2 + largeClockTopMargin / 2)
+ return Rect(0, top, screenSize.x, (top + targetHeight))
+ }
+
+ /**
+ * Simulate the function of getSmallClockRegion in KeyguardClockSwitch so that we can get a
+ * proper region corresponding to lock screen in picker and for onTargetRegionChanged to scale
+ * and position the clock view
+ */
+ private fun getSmallClockRegion(): Rect {
+ val topMargin = getSmallClockTopMargin()
+ val targetHeight = resources.getDimensionPixelSize(R.dimen.small_clock_height)
+ return Rect(getSmallClockStartPadding(), topMargin, screenSize.x, topMargin + targetHeight)
+ }
+
+ companion object {
+ const val DESCRIPTION_PLACEHODLER = ""
+ const val TEMPERATURE_FAHRENHEIT_PLACEHOLDER = 58
+ const val TEMPERATURE_CELSIUS_PLACEHOLDER = 21
+ val WEATHERICON_PLACEHOLDER = WeatherData.WeatherStateIcon.MOSTLY_SUNNY
+ const val USE_CELSIUS_PLACEHODLER = false
+
+ private fun getStatusBarHeight(resource: Resources): Int {
+ var result = 0
+ val resourceId: Int = resource.getIdentifier("status_bar_height", "dimen", "android")
+ if (resourceId > 0) {
+ result = resource.getDimensionPixelSize(resourceId)
+ }
+ return result
+ }
+ }
}
diff --git a/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselItemViewModel.kt b/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselItemViewModel.kt
new file mode 100644
index 0000000..708fa2f
--- /dev/null
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselItemViewModel.kt
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.customization.picker.clock.ui.viewmodel
+
+import android.content.res.Resources
+import com.android.customization.module.CustomizationInjector
+import com.android.wallpaper.R
+import com.android.wallpaper.module.InjectorProvider
+
+class ClockCarouselItemViewModel(val clockId: String) {
+
+ /** Description for accessibility purposes when a clock is selected. */
+ fun getContentDescription(resources: Resources): String {
+ val clockContent =
+ (InjectorProvider.getInjector() as? CustomizationInjector)
+ ?.getClockDescriptionUtils()
+ ?.getDescriptionResId(clockId)
+ ?.let { resources.getString(it) }
+ ?: ""
+ return resources.getString(R.string.select_clock_action_description, clockContent)
+ }
+}
diff --git a/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModel.kt b/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModel.kt
index 60a9e85..a4f9cc4 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModel.kt
@@ -15,51 +15,60 @@
*/
package com.android.customization.picker.clock.ui.viewmodel
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
+import com.android.customization.picker.clock.shared.ClockSize
+import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.flatMapLatest
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.mapLatest
import kotlinx.coroutines.flow.mapNotNull
+import kotlinx.coroutines.flow.stateIn
+import kotlinx.coroutines.launch
/**
* Clock carousel view model that provides data for the carousel of clock previews. When there is
* only one item, we should show a single clock preview instead of a carousel.
*/
-class ClockCarouselViewModel(
+class ClockCarouselViewModel
+constructor(
private val interactor: ClockPickerInteractor,
-) {
+ private val backgroundDispatcher: CoroutineDispatcher,
+) : ViewModel() {
@OptIn(ExperimentalCoroutinesApi::class)
- val allClockIds: Flow<List<String>> =
- interactor.allClocks.mapLatest { allClocks ->
- // Delay to avoid the case that the full list of clocks is not initiated.
- delay(CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
- allClocks.map { it.clockId }
- }
+ val allClocks: StateFlow<List<ClockCarouselItemViewModel>> =
+ interactor.allClocks
+ .mapLatest { allClocks ->
+ // Delay to avoid the case that the full list of clocks is not initiated.
+ delay(CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
+ allClocks.map { ClockCarouselItemViewModel(it.clockId) }
+ }
+ .stateIn(viewModelScope, SharingStarted.Eagerly, emptyList())
+
+ val selectedClockSize: Flow<ClockSize> = interactor.selectedClockSize
val seedColor: Flow<Int?> = interactor.seedColor
- private val shouldShowCarousel = MutableStateFlow(false)
- val isCarouselVisible: Flow<Boolean> =
- combine(allClockIds.map { it.size > 1 }.distinctUntilChanged(), shouldShowCarousel) {
- hasMoreThanOneClock,
- shouldShowCarousel ->
- hasMoreThanOneClock && shouldShowCarousel
- }
- .distinctUntilChanged()
+ val isCarouselVisible: Flow<Boolean> = allClocks.map { it.size > 1 }.distinctUntilChanged()
@OptIn(ExperimentalCoroutinesApi::class)
val selectedIndex: Flow<Int> =
- allClockIds
+ allClocks
.flatMapLatest { allClockIds ->
interactor.selectedClockId.map { selectedClockId ->
- val index = allClockIds.indexOf(selectedClockId)
- if (index >= 0) {
+ val index = allClockIds.indexOfFirst { it.clockId == selectedClockId }
+ /** Making sure there is no active [setSelectedClockJob] */
+ val isSetClockIdJobActive = setSelectedClockJob?.isActive == true
+ if (index >= 0 && !isSetClockIdJobActive) {
index
} else {
null
@@ -69,27 +78,33 @@
.mapNotNull { it }
// Handle the case when there is only one clock in the carousel
- private val shouldShowSingleClock = MutableStateFlow(false)
val isSingleClockViewVisible: Flow<Boolean> =
- combine(allClockIds.map { it.size == 1 }.distinctUntilChanged(), shouldShowSingleClock) {
- hasOneClock,
- shouldShowSingleClock ->
- hasOneClock && shouldShowSingleClock
- }
- .distinctUntilChanged()
+ allClocks.map { it.size == 1 }.distinctUntilChanged()
val clockId: Flow<String> =
- allClockIds
- .map { allClockIds -> if (allClockIds.size == 1) allClockIds[0] else null }
+ allClocks
+ .map { allClockIds -> if (allClockIds.size == 1) allClockIds[0].clockId else null }
.mapNotNull { it }
+ private var setSelectedClockJob: Job? = null
fun setSelectedClock(clockId: String) {
- interactor.setSelectedClock(clockId)
+ setSelectedClockJob?.cancel()
+ setSelectedClockJob =
+ viewModelScope.launch(backgroundDispatcher) { interactor.setSelectedClock(clockId) }
}
- fun showClockCarousel(shouldShow: Boolean) {
- shouldShowCarousel.value = shouldShow
- shouldShowSingleClock.value = shouldShow
+ class Factory(
+ private val interactor: ClockPickerInteractor,
+ private val backgroundDispatcher: CoroutineDispatcher,
+ ) : ViewModelProvider.Factory {
+ override fun <T : ViewModel> create(modelClass: Class<T>): T {
+ @Suppress("UNCHECKED_CAST")
+ return ClockCarouselViewModel(
+ interactor = interactor,
+ backgroundDispatcher = backgroundDispatcher,
+ )
+ as T
+ }
}
companion object {
diff --git a/src/com/android/customization/picker/clock/ui/viewmodel/ClockColorViewModel.kt b/src/com/android/customization/picker/clock/ui/viewmodel/ClockColorViewModel.kt
index ea60ae3..9d622da 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockColorViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockColorViewModel.kt
@@ -35,8 +35,8 @@
}
companion object {
- const val DEFAULT_COLOR_TONE_MIN = 0
- const val DEFAULT_COLOR_TONE_MAX = 100
+ private const val DEFAULT_COLOR_TONE_MIN = 0
+ private const val DEFAULT_COLOR_TONE_MAX = 100
fun getPresetColorMap(resources: Resources): Map<String, ClockColorViewModel> {
val ids = resources.getStringArray(R.array.clock_color_ids)
diff --git a/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt b/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt
index 008a125..8a65522 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModel.kt
@@ -35,7 +35,7 @@
(selectedColorId, selectedClockSize) ->
val colorText =
clockColorMap[selectedColorId]?.colorName
- ?: context.getString(R.string.default_theme_title)
+ ?: appContext.getString(R.string.default_theme_title)
val sizeText =
when (selectedClockSize) {
ClockSize.SMALL -> appContext.getString(R.string.clock_size_small)
diff --git a/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModel.kt b/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModel.kt
index c3cd217..a498c71 100644
--- a/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModel.kt
+++ b/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModel.kt
@@ -20,15 +20,17 @@
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
-import com.android.customization.model.color.ColorBundle
-import com.android.customization.model.color.ColorSeedOption
+import com.android.customization.model.color.ColorOptionImpl
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
import com.android.customization.picker.clock.shared.ClockSize
import com.android.customization.picker.clock.shared.model.ClockMetadataModel
import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
+import com.android.customization.picker.color.shared.model.ColorOptionModel
import com.android.customization.picker.color.shared.model.ColorType
-import com.android.customization.picker.color.ui.viewmodel.ColorOptionViewModel
+import com.android.customization.picker.color.ui.viewmodel.ColorOptionIconViewModel
import com.android.wallpaper.R
+import com.android.wallpaper.picker.common.text.ui.viewmodel.Text
+import com.android.wallpaper.picker.option.ui.viewmodel.OptionItemViewModel
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.Flow
@@ -38,8 +40,8 @@
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.flatMapLatest
import kotlinx.coroutines.flow.map
-import kotlinx.coroutines.flow.mapLatest
import kotlinx.coroutines.flow.merge
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
@@ -50,6 +52,7 @@
context: Context,
private val clockPickerInteractor: ClockPickerInteractor,
private val colorPickerInteractor: ColorPickerInteractor,
+ private val getIsReactiveToTone: (clockId: String?) -> Boolean,
) : ViewModel() {
enum class Tab {
@@ -57,20 +60,27 @@
SIZE,
}
- val colorMap = ClockColorViewModel.getPresetColorMap(context.resources)
+ private val colorMap = ClockColorViewModel.getPresetColorMap(context.resources)
val selectedClockId: StateFlow<String?> =
clockPickerInteractor.selectedClockId
.distinctUntilChanged()
.stateIn(viewModelScope, SharingStarted.Eagerly, null)
- val selectedColorId: StateFlow<String?> =
+ private val selectedColorId: StateFlow<String?> =
clockPickerInteractor.selectedColorId.stateIn(viewModelScope, SharingStarted.Eagerly, null)
private val sliderColorToneProgress =
MutableStateFlow(ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS)
val isSliderEnabled: Flow<Boolean> =
- clockPickerInteractor.selectedColorId.map { it != null }.distinctUntilChanged()
+ combine(selectedClockId, clockPickerInteractor.selectedColorId) { clockId, colorId ->
+ if (colorId == null) {
+ false
+ } else {
+ getIsReactiveToTone(clockId)
+ }
+ }
+ .distinctUntilChanged()
val sliderProgress: Flow<Int> =
merge(clockPickerInteractor.colorToneProgress, sliderColorToneProgress)
@@ -93,7 +103,7 @@
)
}
- fun onSliderProgressStop(progress: Int) {
+ suspend fun onSliderProgressStop(progress: Int) {
val selectedColorId = selectedColorId.value ?: return
val clockColorViewModel = colorMap[selectedColorId] ?: return
clockPickerInteractor.setClockColor(
@@ -108,135 +118,134 @@
}
@OptIn(ExperimentalCoroutinesApi::class)
- val colorOptions: StateFlow<List<ColorOptionViewModel>> =
- combine(colorPickerInteractor.colorOptions, clockPickerInteractor.selectedColorId, ::Pair)
- .mapLatest { (colorOptions, selectedColorId) ->
- // Use mapLatest and delay(100) here to prevent too many selectedClockColor update
- // events from ClockRegistry upstream, caused by sliding the saturation level bar.
- delay(COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
- buildList {
- val defaultThemeColorOptionViewModel =
- (colorOptions[ColorType.WALLPAPER_COLOR]
- ?.find { it.isSelected }
- ?.colorOption as? ColorSeedOption)
- ?.toColorOptionViewModel(
- context,
- selectedColorId,
- )
- ?: (colorOptions[ColorType.PRESET_COLOR]
- ?.find { it.isSelected }
- ?.colorOption as? ColorBundle)
- ?.toColorOptionViewModel(
- context,
- selectedColorId,
- )
- if (defaultThemeColorOptionViewModel != null) {
- add(defaultThemeColorOptionViewModel)
- }
+ val colorOptions: Flow<List<OptionItemViewModel<ColorOptionIconViewModel>>> =
+ colorPickerInteractor.colorOptions.map { colorOptions ->
+ // Use mapLatest and delay(100) here to prevent too many selectedClockColor update
+ // events from ClockRegistry upstream, caused by sliding the saturation level bar.
+ delay(COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
+ buildList {
+ val defaultThemeColorOptionViewModel =
+ (colorOptions[ColorType.WALLPAPER_COLOR]?.find { it.isSelected })
+ ?.toOptionItemViewModel(context)
+ ?: (colorOptions[ColorType.PRESET_COLOR]?.find { it.isSelected })
+ ?.toOptionItemViewModel(context)
+ if (defaultThemeColorOptionViewModel != null) {
+ add(defaultThemeColorOptionViewModel)
+ }
- val selectedColorPosition = colorMap.keys.indexOf(selectedColorId)
-
- colorMap.values.forEachIndexed { index, colorModel ->
- val isSelected = selectedColorPosition == index
- val colorToneProgress = ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS
- add(
- ColorOptionViewModel(
- color0 = colorModel.color,
- color1 = colorModel.color,
- color2 = colorModel.color,
- color3 = colorModel.color,
- contentDescription =
+ colorMap.values.forEachIndexed { index, colorModel ->
+ val isSelectedFlow =
+ selectedColorId
+ .map { colorMap.keys.indexOf(it) == index }
+ .stateIn(viewModelScope)
+ val colorToneProgress = ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS
+ add(
+ OptionItemViewModel<ColorOptionIconViewModel>(
+ key = MutableStateFlow(colorModel.colorId) as StateFlow<String>,
+ payload =
+ ColorOptionIconViewModel(
+ lightThemeColor0 = colorModel.color,
+ lightThemeColor1 = colorModel.color,
+ lightThemeColor2 = colorModel.color,
+ lightThemeColor3 = colorModel.color,
+ darkThemeColor0 = colorModel.color,
+ darkThemeColor1 = colorModel.color,
+ darkThemeColor2 = colorModel.color,
+ darkThemeColor3 = colorModel.color,
+ ),
+ text =
+ Text.Loaded(
context.getString(
R.string.content_description_color_option,
index,
- ),
- isSelected = isSelected,
- onClick =
+ )
+ ),
+ isTextUserVisible = false,
+ isSelected = isSelectedFlow,
+ onClicked =
+ isSelectedFlow.map { isSelected ->
if (isSelected) {
null
} else {
{
- clockPickerInteractor.setClockColor(
- selectedColorId = colorModel.colorId,
- colorToneProgress = colorToneProgress,
- seedColor =
- blendColorWithTone(
- color = colorModel.color,
- colorTone =
- colorModel.getColorTone(
- colorToneProgress,
- ),
- ),
- )
+ viewModelScope.launch {
+ clockPickerInteractor.setClockColor(
+ selectedColorId = colorModel.colorId,
+ colorToneProgress = colorToneProgress,
+ seedColor =
+ blendColorWithTone(
+ color = colorModel.color,
+ colorTone =
+ colorModel.getColorTone(
+ colorToneProgress,
+ ),
+ ),
+ )
+ }
}
- },
- )
+ }
+ },
)
- }
+ )
}
}
- .stateIn(
- scope = viewModelScope,
- started = SharingStarted.WhileSubscribed(),
- initialValue = emptyList(),
- )
+ }
@OptIn(ExperimentalCoroutinesApi::class)
val selectedColorOptionPosition: Flow<Int> =
- colorOptions.mapLatest { it.indexOfFirst { colorOption -> colorOption.isSelected } }
+ colorOptions.flatMapLatest { colorOptions ->
+ combine(colorOptions.map { colorOption -> colorOption.isSelected }) { selectedFlags ->
+ selectedFlags.indexOfFirst { it }
+ }
+ }
- private fun ColorSeedOption.toColorOptionViewModel(
- context: Context,
- selectedColorId: String?,
- ): ColorOptionViewModel {
- val colors = previewInfo.resolveColors(context.resources)
- return ColorOptionViewModel(
- color0 = colors[0],
- color1 = colors[1],
- color2 = colors[2],
- color3 = colors[3],
- contentDescription = getContentDescription(context).toString(),
- title = context.getString(R.string.default_theme_title),
- isSelected = selectedColorId == null,
- onClick =
- if (selectedColorId == null) {
- null
- } else {
- {
- clockPickerInteractor.setClockColor(
- selectedColorId = null,
- colorToneProgress = ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
- seedColor = null,
- )
- }
- },
- )
- }
-
- private fun ColorBundle.toColorOptionViewModel(
- context: Context,
- selectedColorId: String?
- ): ColorOptionViewModel {
- val primaryColor = previewInfo.resolvePrimaryColor(context.resources)
- val secondaryColor = previewInfo.resolveSecondaryColor(context.resources)
- return ColorOptionViewModel(
- color0 = primaryColor,
- color1 = secondaryColor,
- color2 = primaryColor,
- color3 = secondaryColor,
- contentDescription = getContentDescription(context).toString(),
- title = context.getString(R.string.default_theme_title),
- isSelected = selectedColorId == null,
- onClick =
- if (selectedColorId == null) {
- null
- } else {
- {
- clockPickerInteractor.setClockColor(
- selectedColorId = null,
- colorToneProgress = ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
- seedColor = null,
- )
+ private suspend fun ColorOptionModel.toOptionItemViewModel(
+ context: Context
+ ): OptionItemViewModel<ColorOptionIconViewModel> {
+ val lightThemeColors =
+ (colorOption as ColorOptionImpl)
+ .previewInfo
+ .resolveColors(
+ /** darkTheme= */
+ false
+ )
+ val darkThemeColors =
+ colorOption.previewInfo.resolveColors(
+ /** darkTheme= */
+ true
+ )
+ val isSelectedFlow = selectedColorId.map { it == null }.stateIn(viewModelScope)
+ return OptionItemViewModel<ColorOptionIconViewModel>(
+ key = MutableStateFlow(key) as StateFlow<String>,
+ payload =
+ ColorOptionIconViewModel(
+ lightThemeColor0 = lightThemeColors[0],
+ lightThemeColor1 = lightThemeColors[1],
+ lightThemeColor2 = lightThemeColors[2],
+ lightThemeColor3 = lightThemeColors[3],
+ darkThemeColor0 = darkThemeColors[0],
+ darkThemeColor1 = darkThemeColors[1],
+ darkThemeColor2 = darkThemeColors[2],
+ darkThemeColor3 = darkThemeColors[3],
+ ),
+ text = Text.Loaded(context.getString(R.string.default_theme_title)),
+ isTextUserVisible = true,
+ isSelected = isSelectedFlow,
+ onClicked =
+ isSelectedFlow.map { isSelected ->
+ if (isSelected) {
+ null
+ } else {
+ {
+ viewModelScope.launch {
+ clockPickerInteractor.setClockColor(
+ selectedColorId = null,
+ colorToneProgress =
+ ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
+ seedColor = null,
+ )
+ }
+ }
}
},
)
@@ -295,6 +304,7 @@
private val context: Context,
private val clockPickerInteractor: ClockPickerInteractor,
private val colorPickerInteractor: ColorPickerInteractor,
+ private val getIsReactiveToTone: (clockId: String?) -> Boolean,
) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
@Suppress("UNCHECKED_CAST")
@@ -302,6 +312,7 @@
context = context,
clockPickerInteractor = clockPickerInteractor,
colorPickerInteractor = colorPickerInteractor,
+ getIsReactiveToTone = getIsReactiveToTone,
)
as T
}
diff --git a/src/com/android/customization/picker/clock/utils/ClockDescriptionUtils.kt b/src/com/android/customization/picker/clock/utils/ClockDescriptionUtils.kt
new file mode 100644
index 0000000..9a0b66f
--- /dev/null
+++ b/src/com/android/customization/picker/clock/utils/ClockDescriptionUtils.kt
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.customization.picker.clock.utils
+
+import androidx.annotation.StringRes
+
+/** Provides clock description for accessibility purposes. */
+interface ClockDescriptionUtils {
+
+ /**
+ * TODO (b/287507746) : Migrate description res ID to system UI or a shared library, instead of
+ * preserving the clock description at the Wallpaper Picker side.
+ */
+ @StringRes fun getDescriptionResId(clockId: String): Int
+}
diff --git a/src/com/android/customization/picker/clock/utils/ThemePickerClockDescriptionUtils.kt b/src/com/android/customization/picker/clock/utils/ThemePickerClockDescriptionUtils.kt
new file mode 100644
index 0000000..6b3b405
--- /dev/null
+++ b/src/com/android/customization/picker/clock/utils/ThemePickerClockDescriptionUtils.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.customization.picker.clock.utils
+
+import androidx.annotation.StringRes
+
+class ThemePickerClockDescriptionUtils : ClockDescriptionUtils {
+ @StringRes
+ override fun getDescriptionResId(clockId: String): Int {
+ return -1
+ }
+}
diff --git a/src/com/android/customization/picker/color/ColorPickerFragment.kt b/src/com/android/customization/picker/color/ColorPickerFragment.kt
deleted file mode 100644
index c8ecb7f..0000000
--- a/src/com/android/customization/picker/color/ColorPickerFragment.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.customization.picker.color
-
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.android.wallpaper.R
-import com.android.wallpaper.picker.AppbarFragment
-
-// TODO (b/262924623): Color Picker Fragment
-class ColorPickerFragment : AppbarFragment() {
- override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View {
- val view =
- inflater.inflate(
- R.layout.fragment_color_picker,
- container,
- false,
- )
- setUpToolbar(view)
- return view
- }
-}
diff --git a/src/com/android/customization/picker/color/data/repository/ColorPickerRepositoryImpl.kt b/src/com/android/customization/picker/color/data/repository/ColorPickerRepositoryImpl.kt
index 512a500..41ef3a5 100644
--- a/src/com/android/customization/picker/color/data/repository/ColorPickerRepositoryImpl.kt
+++ b/src/com/android/customization/picker/color/data/repository/ColorPickerRepositoryImpl.kt
@@ -16,16 +16,15 @@
*/
package com.android.customization.picker.color.data.repository
-import android.app.WallpaperColors
import android.util.Log
import com.android.customization.model.CustomizationManager
-import com.android.customization.model.color.ColorBundle
import com.android.customization.model.color.ColorCustomizationManager
import com.android.customization.model.color.ColorOption
-import com.android.customization.model.color.ColorSeedOption
+import com.android.customization.model.color.ColorOptionImpl
import com.android.customization.picker.color.shared.model.ColorOptionModel
import com.android.customization.picker.color.shared.model.ColorType
import com.android.systemui.monet.Style
+import com.android.wallpaper.model.WallpaperColorsModel
import com.android.wallpaper.model.WallpaperColorsViewModel
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.StateFlow
@@ -40,9 +39,9 @@
private val colorManager: ColorCustomizationManager,
) : ColorPickerRepository {
- private val homeWallpaperColors: StateFlow<WallpaperColors?> =
+ private val homeWallpaperColors: StateFlow<WallpaperColorsModel?> =
wallpaperColorsViewModel.homeWallpaperColors
- private val lockWallpaperColors: StateFlow<WallpaperColors?> =
+ private val lockWallpaperColors: StateFlow<WallpaperColorsModel?> =
wallpaperColorsViewModel.lockWallpaperColors
override val colorOptions: Flow<Map<ColorType, List<ColorOptionModel>>> =
@@ -51,8 +50,27 @@
}
.map { (homeColors, lockColors) ->
suspendCancellableCoroutine { continuation ->
- colorManager.setWallpaperColors(homeColors, lockColors)
- colorManager.fetchOptions(
+ if (
+ homeColors is WallpaperColorsModel.Loading ||
+ lockColors is WallpaperColorsModel.Loading
+ ) {
+ continuation.resumeWith(
+ Result.success(
+ mapOf(
+ ColorType.WALLPAPER_COLOR to listOf(),
+ ColorType.PRESET_COLOR to listOf()
+ )
+ )
+ )
+ return@suspendCancellableCoroutine
+ }
+ val homeColorsLoaded = homeColors as WallpaperColorsModel.Loaded
+ val lockColorsLoaded = lockColors as WallpaperColorsModel.Loaded
+ colorManager.setWallpaperColors(
+ homeColorsLoaded.colors,
+ lockColorsLoaded.colors
+ )
+ colorManager.fetchRevampedUIOptions(
object : CustomizationManager.OptionsFetchedListener<ColorOption?> {
override fun onOptionsLoaded(options: MutableList<ColorOption?>?) {
val wallpaperColorOptions: MutableList<ColorOptionModel> =
@@ -60,10 +78,11 @@
val presetColorOptions: MutableList<ColorOptionModel> =
mutableListOf()
options?.forEach { option ->
- when (option) {
- is ColorSeedOption ->
+ when ((option as ColorOptionImpl).type) {
+ ColorType.WALLPAPER_COLOR ->
wallpaperColorOptions.add(option.toModel())
- is ColorBundle -> presetColorOptions.add(option.toModel())
+ ColorType.PRESET_COLOR ->
+ presetColorOptions.add(option.toModel())
}
}
continuation.resumeWith(
@@ -113,16 +132,16 @@
val overlays = colorManager.currentOverlays
val styleOrNull = colorManager.currentStyle
val style = styleOrNull?.let { Style.valueOf(it) } ?: Style.TONAL_SPOT
- val colorOptionBuilder =
- // Does not matter whether ColorSeedOption or ColorBundle builder is used here
- // because to apply the color, one just needs a generic ColorOption
- ColorSeedOption.Builder().setSource(colorManager.currentColorSource).setStyle(style)
+ val source = colorManager.currentColorSource
+ val colorOptionBuilder = ColorOptionImpl.Builder()
+ colorOptionBuilder.source = source
+ colorOptionBuilder.style = style
for (overlay in overlays) {
colorOptionBuilder.addOverlayPackage(overlay.key, overlay.value)
}
val colorOption = colorOptionBuilder.build()
return ColorOptionModel(
- key = "${colorOption.style}::${colorOption.serializedPackages}",
+ key = "",
colorOption = colorOption,
isSelected = false,
)
@@ -132,9 +151,9 @@
return colorManager.currentColorSource
}
- private fun ColorOption.toModel(): ColorOptionModel {
+ private fun ColorOptionImpl.toModel(): ColorOptionModel {
return ColorOptionModel(
- key = "${this.style}::${this.serializedPackages}",
+ key = "${this.type}::${this.style}::${this.serializedPackages}",
colorOption = this,
isSelected = isActive(colorManager),
)
diff --git a/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt b/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt
index edbf6dc..714129d 100644
--- a/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt
+++ b/src/com/android/customization/picker/color/data/repository/FakeColorPickerRepository.kt
@@ -19,9 +19,8 @@
import android.content.Context
import android.graphics.Color
import android.text.TextUtils
-import com.android.customization.model.color.ColorBundle
+import com.android.customization.model.color.ColorOptionImpl
import com.android.customization.model.color.ColorOptionsProvider
-import com.android.customization.model.color.ColorSeedOption
import com.android.customization.picker.color.shared.model.ColorOptionModel
import com.android.customization.picker.color.shared.model.ColorType
import kotlinx.coroutines.flow.MutableStateFlow
@@ -82,9 +81,7 @@
ColorOptionModel(
key = "${ColorType.PRESET_COLOR}::$index",
colorOption = buildPresetOption(index),
- isSelected =
- selectedColorOptionType == ColorType.PRESET_COLOR &&
- selectedColorOptionIndex == index,
+ isSelected = isSelected,
)
if (isSelected) {
selectedColorOption = colorOption
@@ -95,36 +92,36 @@
)
}
- private fun buildPresetOption(index: Int): ColorBundle {
- return ColorBundle.Builder()
+ private fun buildPresetOption(index: Int): ColorOptionImpl {
+ val builder = ColorOptionImpl.Builder()
+ builder.lightColors =
+ intArrayOf(Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT)
+ builder.darkColors =
+ intArrayOf(Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT)
+ builder.index = index
+ builder.type = ColorType.PRESET_COLOR
+ builder.source = ColorOptionsProvider.COLOR_SOURCE_PRESET
+ builder.title = "Preset"
+ builder
.addOverlayPackage("TEST_PACKAGE_TYPE", "preset_color")
.addOverlayPackage("TEST_PACKAGE_INDEX", "$index")
- .setIndex(index)
- .build(context)
+ return builder.build()
}
- private fun buildWallpaperOption(index: Int): ColorSeedOption {
- return ColorSeedOption.Builder()
- .setLightColors(
- intArrayOf(
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT
- )
- )
- .setDarkColors(
- intArrayOf(
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT,
- Color.TRANSPARENT
- )
- )
+ private fun buildWallpaperOption(index: Int): ColorOptionImpl {
+ val builder = ColorOptionImpl.Builder()
+ builder.lightColors =
+ intArrayOf(Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT)
+ builder.darkColors =
+ intArrayOf(Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT)
+ builder.index = index
+ builder.type = ColorType.WALLPAPER_COLOR
+ builder.source = ColorOptionsProvider.COLOR_SOURCE_HOME
+ builder.title = "Dynamic"
+ builder
.addOverlayPackage("TEST_PACKAGE_TYPE", "wallpaper_color")
.addOverlayPackage("TEST_PACKAGE_INDEX", "$index")
- .setIndex(index)
- .build()
+ return builder.build()
}
override suspend fun select(colorOptionModel: ColorOptionModel) {
@@ -163,9 +160,9 @@
override fun getCurrentColorOption(): ColorOptionModel = selectedColorOption
override fun getCurrentColorSource(): String? =
- when (selectedColorOption.colorOption) {
- is ColorSeedOption -> ColorOptionsProvider.COLOR_SOURCE_HOME
- is ColorBundle -> ColorOptionsProvider.COLOR_SOURCE_PRESET
+ when ((selectedColorOption.colorOption as ColorOptionImpl).type) {
+ ColorType.WALLPAPER_COLOR -> ColorOptionsProvider.COLOR_SOURCE_HOME
+ ColorType.PRESET_COLOR -> ColorOptionsProvider.COLOR_SOURCE_PRESET
else -> null
}
diff --git a/src/com/android/customization/picker/color/ui/adapter/ColorOptionAdapter.kt b/src/com/android/customization/picker/color/ui/adapter/ColorOptionAdapter.kt
deleted file mode 100644
index 7aa390d..0000000
--- a/src/com/android/customization/picker/color/ui/adapter/ColorOptionAdapter.kt
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package com.android.customization.picker.color.ui.adapter
-
-import android.graphics.BlendMode
-import android.graphics.BlendModeColorFilter
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.ImageView
-import android.widget.TextView
-import androidx.core.view.isVisible
-import androidx.recyclerview.widget.RecyclerView
-import com.android.customization.picker.color.ui.viewmodel.ColorOptionViewModel
-import com.android.wallpaper.R
-
-/**
- * Adapts between color option items and views.
- *
- * TODO (b/272109171): Remove after clock settings is refactored to use OptionItemAdapter
- */
-class ColorOptionAdapter : RecyclerView.Adapter<ColorOptionAdapter.ViewHolder>() {
-
- private val items = mutableListOf<ColorOptionViewModel>()
- private var isTitleVisible = false
-
- fun setItems(items: List<ColorOptionViewModel>) {
- this.items.clear()
- this.items.addAll(items)
- isTitleVisible = items.any { item -> item.title != null }
- notifyDataSetChanged()
- }
-
- class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val borderView: View = itemView.requireViewById(R.id.selection_border)
- val backgroundView: View = itemView.requireViewById(R.id.background)
- val color0View: ImageView = itemView.requireViewById(R.id.color_preview_0)
- val color1View: ImageView = itemView.requireViewById(R.id.color_preview_1)
- val color2View: ImageView = itemView.requireViewById(R.id.color_preview_2)
- val color3View: ImageView = itemView.requireViewById(R.id.color_preview_3)
- val optionTitleView: TextView = itemView.requireViewById(R.id.option_title)
- }
-
- override fun getItemCount(): Int {
- return items.size
- }
-
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
- return ViewHolder(
- LayoutInflater.from(parent.context)
- .inflate(
- R.layout.color_option_with_background,
- parent,
- false,
- )
- )
- }
-
- override fun onBindViewHolder(holder: ViewHolder, position: Int) {
- val item = items[position]
-
- holder.itemView.setOnClickListener(
- if (item.onClick != null) {
- View.OnClickListener { item.onClick.invoke() }
- } else {
- null
- }
- )
- if (item.isSelected) {
- holder.borderView.alpha = 1f
- holder.borderView.scaleX = 1f
- holder.borderView.scaleY = 1f
- holder.backgroundView.scaleX = 0.86f
- holder.backgroundView.scaleY = 0.86f
- } else {
- holder.borderView.alpha = 0f
- holder.backgroundView.scaleX = 1f
- holder.backgroundView.scaleY = 1f
- }
- holder.color0View.drawable.colorFilter = BlendModeColorFilter(item.color0, BlendMode.SRC)
- holder.color1View.drawable.colorFilter = BlendModeColorFilter(item.color1, BlendMode.SRC)
- holder.color2View.drawable.colorFilter = BlendModeColorFilter(item.color2, BlendMode.SRC)
- holder.color3View.drawable.colorFilter = BlendModeColorFilter(item.color3, BlendMode.SRC)
- holder.itemView.contentDescription = item.contentDescription
- holder.optionTitleView.isVisible = isTitleVisible
- holder.optionTitleView.text = item.title
- }
-}
diff --git a/src/com/android/customization/picker/color/ui/adapter/ColorTypeTabAdapter.kt b/src/com/android/customization/picker/color/ui/adapter/ColorTypeTabAdapter.kt
index bb9f082..553f586 100644
--- a/src/com/android/customization/picker/color/ui/adapter/ColorTypeTabAdapter.kt
+++ b/src/com/android/customization/picker/color/ui/adapter/ColorTypeTabAdapter.kt
@@ -55,7 +55,7 @@
val item = items[position]
holder.itemView.isSelected = item.isSelected
holder.textView.text = item.name
- holder.textView.setOnClickListener(
+ holder.itemView.setOnClickListener(
if (item.onClick != null) {
View.OnClickListener { item.onClick.invoke() }
} else {
diff --git a/src/com/android/customization/picker/color/ui/binder/ColorOptionIconBinder.kt b/src/com/android/customization/picker/color/ui/binder/ColorOptionIconBinder.kt
index 1478cc4..31d3dc8 100644
--- a/src/com/android/customization/picker/color/ui/binder/ColorOptionIconBinder.kt
+++ b/src/com/android/customization/picker/color/ui/binder/ColorOptionIconBinder.kt
@@ -17,25 +17,29 @@
package com.android.customization.picker.color.ui.binder
-import android.graphics.BlendMode
-import android.graphics.BlendModeColorFilter
-import android.view.ViewGroup
-import android.widget.ImageView
+import com.android.customization.picker.color.ui.view.ColorOptionIconView
import com.android.customization.picker.color.ui.viewmodel.ColorOptionIconViewModel
-import com.android.wallpaper.R
object ColorOptionIconBinder {
fun bind(
- view: ViewGroup,
+ view: ColorOptionIconView,
viewModel: ColorOptionIconViewModel,
+ darkTheme: Boolean,
) {
- val color0View: ImageView = view.requireViewById(R.id.color_preview_0)
- val color1View: ImageView = view.requireViewById(R.id.color_preview_1)
- val color2View: ImageView = view.requireViewById(R.id.color_preview_2)
- val color3View: ImageView = view.requireViewById(R.id.color_preview_3)
- color0View.drawable.colorFilter = BlendModeColorFilter(viewModel.color0, BlendMode.SRC)
- color1View.drawable.colorFilter = BlendModeColorFilter(viewModel.color1, BlendMode.SRC)
- color2View.drawable.colorFilter = BlendModeColorFilter(viewModel.color2, BlendMode.SRC)
- color3View.drawable.colorFilter = BlendModeColorFilter(viewModel.color3, BlendMode.SRC)
+ if (darkTheme) {
+ view.bindColor(
+ viewModel.darkThemeColor0,
+ viewModel.darkThemeColor1,
+ viewModel.darkThemeColor2,
+ viewModel.darkThemeColor3,
+ )
+ } else {
+ view.bindColor(
+ viewModel.lightThemeColor0,
+ viewModel.lightThemeColor1,
+ viewModel.lightThemeColor2,
+ viewModel.lightThemeColor3,
+ )
+ }
}
}
diff --git a/src/com/android/customization/picker/color/ui/binder/ColorPickerBinder.kt b/src/com/android/customization/picker/color/ui/binder/ColorPickerBinder.kt
index 7623048..cd9dd54 100644
--- a/src/com/android/customization/picker/color/ui/binder/ColorPickerBinder.kt
+++ b/src/com/android/customization/picker/color/ui/binder/ColorPickerBinder.kt
@@ -17,8 +17,10 @@
package com.android.customization.picker.color.ui.binder
+import android.content.res.Configuration
+import android.os.Bundle
+import android.os.Parcelable
import android.view.View
-import android.view.ViewGroup
import android.widget.TextView
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
@@ -27,12 +29,12 @@
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.android.customization.picker.color.ui.adapter.ColorTypeTabAdapter
+import com.android.customization.picker.color.ui.view.ColorOptionIconView
import com.android.customization.picker.color.ui.viewmodel.ColorOptionIconViewModel
import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
import com.android.customization.picker.common.ui.view.ItemSpacing
import com.android.wallpaper.R
import com.android.wallpaper.picker.option.ui.adapter.OptionItemAdapter
-import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.launch
@@ -48,7 +50,7 @@
view: View,
viewModel: ColorPickerViewModel,
lifecycleOwner: LifecycleOwner,
- ) {
+ ): Binding {
val colorTypeTabView: RecyclerView = view.requireViewById(R.id.color_type_tabs)
val colorTypeTabSubheaderView: TextView = view.requireViewById(R.id.color_type_tab_subhead)
val colorOptionContainerView: RecyclerView = view.requireViewById(R.id.color_options)
@@ -63,8 +65,11 @@
layoutResourceId = R.layout.color_option_2,
lifecycleOwner = lifecycleOwner,
bindIcon = { foregroundView: View, colorIcon: ColorOptionIconViewModel ->
- val viewGroup = foregroundView as? ViewGroup
- viewGroup?.let { ColorOptionIconBinder.bind(viewGroup, colorIcon) }
+ val colorOptionIconView = foregroundView as? ColorOptionIconView
+ val night =
+ (view.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK ==
+ Configuration.UI_MODE_NIGHT_YES)
+ colorOptionIconView?.let { ColorOptionIconBinder.bind(it, colorIcon, night) }
}
)
colorOptionContainerView.adapter = colorOptionAdapter
@@ -89,9 +94,52 @@
launch {
viewModel.colorOptions.collect { colorOptions ->
colorOptionAdapter.setItems(colorOptions)
+ // the same recycler view is used for different color types tabs
+ // the scroll state of each tab should be independent of others
+ if (layoutManagerSavedState != null) {
+ colorOptionContainerView.post {
+ (colorOptionContainerView.layoutManager as LinearLayoutManager)
+ .onRestoreInstanceState(layoutManagerSavedState)
+ layoutManagerSavedState = null
+ }
+ } else {
+ var indexToFocus = colorOptions.indexOfFirst { it.isSelected.value }
+ indexToFocus = if (indexToFocus < 0) 0 else indexToFocus
+ val linearLayoutManager =
+ object : LinearLayoutManager(view.context, HORIZONTAL, false) {
+ override fun onLayoutCompleted(state: RecyclerView.State?) {
+ super.onLayoutCompleted(state)
+ // scrollToPosition seems to be inconsistently moving
+ // selected
+ // color to different positions
+ scrollToPositionWithOffset(indexToFocus, 0)
+ }
+ }
+ colorOptionContainerView.layoutManager = linearLayoutManager
+ }
}
}
}
}
+ return object : Binding {
+ override fun saveInstanceState(savedState: Bundle) {
+ savedState.putParcelable(
+ LAYOUT_MANAGER_SAVED_STATE,
+ colorOptionContainerView.layoutManager?.onSaveInstanceState()
+ )
+ }
+
+ override fun restoreInstanceState(savedState: Bundle) {
+ layoutManagerSavedState = savedState.getParcelable(LAYOUT_MANAGER_SAVED_STATE)
+ }
+ }
}
+
+ interface Binding {
+ fun saveInstanceState(savedState: Bundle)
+ fun restoreInstanceState(savedState: Bundle)
+ }
+
+ private val LAYOUT_MANAGER_SAVED_STATE: String = "layout_manager_state"
+ private var layoutManagerSavedState: Parcelable? = null
}
diff --git a/src/com/android/customization/picker/color/ui/binder/ColorSectionViewBinder.kt b/src/com/android/customization/picker/color/ui/binder/ColorSectionViewBinder.kt
index 05b0916..45e3cde 100644
--- a/src/com/android/customization/picker/color/ui/binder/ColorSectionViewBinder.kt
+++ b/src/com/android/customization/picker/color/ui/binder/ColorSectionViewBinder.kt
@@ -17,9 +17,9 @@
package com.android.customization.picker.color.ui.binder
+import android.content.res.Configuration
import android.view.LayoutInflater
import android.view.View
-import android.view.ViewGroup
import android.widget.ImageView
import android.widget.LinearLayout
import androidx.core.view.isVisible
@@ -30,6 +30,7 @@
import com.android.customization.picker.color.ui.viewmodel.ColorOptionIconViewModel
import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
import com.android.wallpaper.R
+import com.android.wallpaper.picker.common.icon.ui.viewbinder.ContentDescriptionViewBinder
import com.android.wallpaper.picker.option.ui.viewmodel.OptionItemViewModel
import kotlinx.coroutines.launch
@@ -91,10 +92,23 @@
})
.let { if (it < 0) 0 else it }
options.subList(0, colorOptionSlotSize).forEach { item ->
+ val night =
+ (view.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK ==
+ Configuration.UI_MODE_NIGHT_YES)
val itemView =
LayoutInflater.from(view.context)
.inflate(R.layout.color_option_no_background, view, false)
- item.payload?.let { ColorOptionIconBinder.bind(itemView as ViewGroup, item.payload) }
+ item.payload?.let {
+ ColorOptionIconBinder.bind(
+ itemView.requireViewById(R.id.option_tile),
+ item.payload,
+ night
+ )
+ ContentDescriptionViewBinder.bind(
+ view = itemView.requireViewById(R.id.option_tile),
+ viewModel = item.text,
+ )
+ }
val optionSelectedView = itemView.findViewById<ImageView>(R.id.option_selected)
lifecycleOwner.lifecycleScope.launch {
diff --git a/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt b/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt
index c6b2023..78bfa43 100644
--- a/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt
+++ b/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt
@@ -15,6 +15,7 @@
*/
package com.android.customization.picker.color.ui.fragment
+import android.app.WallpaperManager
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -23,21 +24,30 @@
import androidx.cardview.widget.CardView
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.get
+import androidx.lifecycle.lifecycleScope
import com.android.customization.model.mode.DarkModeSectionController
import com.android.customization.module.ThemePickerInjector
import com.android.customization.picker.color.ui.binder.ColorPickerBinder
import com.android.wallpaper.R
+import com.android.wallpaper.model.WallpaperColorsModel
+import com.android.wallpaper.model.WallpaperColorsViewModel
+import com.android.wallpaper.module.CustomizationSections
import com.android.wallpaper.module.InjectorProvider
import com.android.wallpaper.picker.AppbarFragment
import com.android.wallpaper.picker.customization.ui.binder.ScreenPreviewBinder
import com.android.wallpaper.picker.customization.ui.viewmodel.ScreenPreviewViewModel
import com.android.wallpaper.util.DisplayUtils
import com.android.wallpaper.util.PreviewUtils
+import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.launch
import kotlinx.coroutines.suspendCancellableCoroutine
+import kotlinx.coroutines.withContext
@OptIn(ExperimentalCoroutinesApi::class)
class ColorPickerFragment : AppbarFragment() {
+ private var binding: ColorPickerBinder.Binding? = null
+
companion object {
@JvmStatic
fun newInstance(): ColorPickerFragment {
@@ -63,19 +73,25 @@
val wallpaperInfoFactory = injector.getCurrentWallpaperInfoFactory(requireContext())
val displayUtils: DisplayUtils = injector.getDisplayUtils(requireContext())
val wcViewModel = injector.getWallpaperColorsViewModel()
- ColorPickerBinder.bind(
- view = view,
- viewModel =
- ViewModelProvider(
- requireActivity(),
- injector.getColorPickerViewModelFactory(
- context = requireContext(),
- wallpaperColorsViewModel = wcViewModel,
- ),
- )
- .get(),
- lifecycleOwner = this,
- )
+ val wallpaperManager = WallpaperManager.getInstance(requireContext())
+
+ binding =
+ ColorPickerBinder.bind(
+ view = view,
+ viewModel =
+ ViewModelProvider(
+ requireActivity(),
+ injector.getColorPickerViewModelFactory(
+ context = requireContext(),
+ wallpaperColorsViewModel = wcViewModel,
+ ),
+ )
+ .get(),
+ lifecycleOwner = this,
+ )
+
+ savedInstanceState?.let { binding?.restoreInstanceState(it) }
+
ScreenPreviewBinder.bind(
activity = requireActivity(),
previewView = lockScreenView,
@@ -90,23 +106,38 @@
R.string.lock_screen_preview_provider_authority,
),
),
- wallpaperInfoProvider = {
+ wallpaperInfoProvider = { forceReload ->
suspendCancellableCoroutine { continuation ->
wallpaperInfoFactory.createCurrentWallpaperInfos(
{ homeWallpaper, lockWallpaper, _ ->
+ lifecycleScope.launch {
+ if (
+ wcViewModel.lockWallpaperColors.value
+ is WallpaperColorsModel.Loading
+ ) {
+ loadInitialColors(
+ wallpaperManager,
+ wcViewModel,
+ CustomizationSections.Screen.LOCK_SCREEN
+ )
+ }
+ }
continuation.resume(lockWallpaper ?: homeWallpaper, null)
},
- /* forceRefresh= */ true,
+ forceReload,
)
}
},
onWallpaperColorChanged = { colors ->
wcViewModel.setLockWallpaperColors(colors)
},
+ wallpaperInteractor = injector.getWallpaperInteractor(requireContext()),
+ screen = CustomizationSections.Screen.LOCK_SCREEN,
),
lifecycleOwner = this,
offsetToStart =
displayUtils.isSingleDisplayOrUnfoldedHorizontalHinge(requireActivity()),
+ onWallpaperPreviewDirty = { activity?.recreate() },
)
ScreenPreviewBinder.bind(
activity = requireActivity(),
@@ -122,23 +153,38 @@
R.string.grid_control_metadata_name,
),
),
- wallpaperInfoProvider = {
+ wallpaperInfoProvider = { forceReload ->
suspendCancellableCoroutine { continuation ->
wallpaperInfoFactory.createCurrentWallpaperInfos(
{ homeWallpaper, lockWallpaper, _ ->
+ lifecycleScope.launch {
+ if (
+ wcViewModel.homeWallpaperColors.value
+ is WallpaperColorsModel.Loading
+ ) {
+ loadInitialColors(
+ wallpaperManager,
+ wcViewModel,
+ CustomizationSections.Screen.HOME_SCREEN
+ )
+ }
+ }
continuation.resume(homeWallpaper ?: lockWallpaper, null)
},
- /* forceRefresh= */ true,
+ forceReload,
)
}
},
onWallpaperColorChanged = { colors ->
- wcViewModel.setLockWallpaperColors(colors)
+ wcViewModel.setHomeWallpaperColors(colors)
},
+ wallpaperInteractor = injector.getWallpaperInteractor(requireContext()),
+ screen = CustomizationSections.Screen.HOME_SCREEN,
),
lifecycleOwner = this,
offsetToStart =
displayUtils.isSingleDisplayOrUnfoldedHorizontalHinge(requireActivity()),
+ onWallpaperPreviewDirty = { activity?.recreate() },
)
val darkModeToggleContainerView: FrameLayout =
view.requireViewById(R.id.dark_mode_toggle_container)
@@ -154,6 +200,35 @@
return view
}
+ private suspend fun loadInitialColors(
+ wallpaperManager: WallpaperManager,
+ colorViewModel: WallpaperColorsViewModel,
+ screen: CustomizationSections.Screen,
+ ) {
+ withContext(Dispatchers.IO) {
+ val colors =
+ wallpaperManager.getWallpaperColors(
+ if (screen == CustomizationSections.Screen.LOCK_SCREEN) {
+ WallpaperManager.FLAG_LOCK
+ } else {
+ WallpaperManager.FLAG_SYSTEM
+ }
+ )
+ withContext(Dispatchers.Main) {
+ if (screen == CustomizationSections.Screen.LOCK_SCREEN) {
+ colorViewModel.setLockWallpaperColors(colors)
+ } else {
+ colorViewModel.setHomeWallpaperColors(colors)
+ }
+ }
+ }
+ }
+
+ override fun onSaveInstanceState(savedInstanceState: Bundle) {
+ super.onSaveInstanceState(savedInstanceState)
+ binding?.saveInstanceState(savedInstanceState)
+ }
+
override fun getDefaultTitle(): CharSequence {
return requireContext().getString(R.string.color_picker_title)
}
diff --git a/src/com/android/customization/picker/color/ui/view/ColorOptionIconView.kt b/src/com/android/customization/picker/color/ui/view/ColorOptionIconView.kt
new file mode 100644
index 0000000..0514843
--- /dev/null
+++ b/src/com/android/customization/picker/color/ui/view/ColorOptionIconView.kt
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.customization.picker.color.ui.view
+
+import android.annotation.ColorInt
+import android.content.Context
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.Paint
+import android.graphics.RectF
+import android.util.AttributeSet
+import android.view.View
+
+/**
+ * Draw a color option icon, which is a quadrant circle that can show at most 4 different colors.
+ */
+class ColorOptionIconView(
+ context: Context,
+ attrs: AttributeSet,
+) : View(context, attrs) {
+
+ private val paint = Paint().apply { style = Paint.Style.FILL }
+
+ private val oval = RectF()
+
+ private var color0 = DEFAULT_PLACEHOLDER_COLOR
+ private var color1 = DEFAULT_PLACEHOLDER_COLOR
+ private var color2 = DEFAULT_PLACEHOLDER_COLOR
+ private var color3 = DEFAULT_PLACEHOLDER_COLOR
+
+ private var w = 0
+ private var h = 0
+
+ /**
+ * @param color0 the color in the top left quadrant
+ * @param color1 the color in the top right quadrant
+ * @param color2 the color in the bottom left quadrant
+ * @param color3 the color in the bottom right quadrant
+ */
+ fun bindColor(
+ @ColorInt color0: Int,
+ @ColorInt color1: Int,
+ @ColorInt color2: Int,
+ @ColorInt color3: Int,
+ ) {
+ this.color0 = color0
+ this.color1 = color1
+ this.color2 = color2
+ this.color3 = color3
+ invalidate()
+ }
+
+ override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
+ this.w = w
+ this.h = h
+ super.onSizeChanged(w, h, oldw, oldh)
+ }
+
+ override fun onDraw(canvas: Canvas?) {
+ super.onDraw(canvas)
+ // The w and h need to be an even number to avoid tiny pixel-level gaps between the pies
+ w = w.roundDownToEven()
+ h = h.roundDownToEven()
+
+ val width = w.toFloat()
+ val height = h.toFloat()
+
+ oval.set(0f, 0f, width, height)
+ canvas?.apply {
+ paint.color = color3
+ drawArc(
+ oval,
+ 0f,
+ 90f,
+ true,
+ paint,
+ )
+ paint.color = color2
+ drawArc(
+ oval,
+ 90f,
+ 90f,
+ true,
+ paint,
+ )
+ paint.color = color0
+ drawArc(
+ oval,
+ 180f,
+ 90f,
+ true,
+ paint,
+ )
+ paint.color = color1
+ drawArc(
+ oval,
+ 270f,
+ 90f,
+ true,
+ paint,
+ )
+ }
+ }
+
+ companion object {
+ const val DEFAULT_PLACEHOLDER_COLOR = Color.BLACK
+
+ fun Int.roundDownToEven(): Int {
+ return if (this % 2 == 0) this else this - 1
+ }
+ }
+}
diff --git a/src/com/android/customization/picker/color/ui/viewmodel/ColorOptionIconViewModel.kt b/src/com/android/customization/picker/color/ui/viewmodel/ColorOptionIconViewModel.kt
index d32538d..8723c8c 100644
--- a/src/com/android/customization/picker/color/ui/viewmodel/ColorOptionIconViewModel.kt
+++ b/src/com/android/customization/picker/color/ui/viewmodel/ColorOptionIconViewModel.kt
@@ -20,8 +20,12 @@
import android.annotation.ColorInt
data class ColorOptionIconViewModel(
- @ColorInt val color0: Int,
- @ColorInt val color1: Int,
- @ColorInt val color2: Int,
- @ColorInt val color3: Int,
+ @ColorInt val lightThemeColor0: Int,
+ @ColorInt val lightThemeColor1: Int,
+ @ColorInt val lightThemeColor2: Int,
+ @ColorInt val lightThemeColor3: Int,
+ @ColorInt val darkThemeColor0: Int,
+ @ColorInt val darkThemeColor1: Int,
+ @ColorInt val darkThemeColor2: Int,
+ @ColorInt val darkThemeColor3: Int,
)
diff --git a/src/com/android/customization/picker/color/ui/viewmodel/ColorPickerViewModel.kt b/src/com/android/customization/picker/color/ui/viewmodel/ColorPickerViewModel.kt
index 81a5810..67c6838 100644
--- a/src/com/android/customization/picker/color/ui/viewmodel/ColorPickerViewModel.kt
+++ b/src/com/android/customization/picker/color/ui/viewmodel/ColorPickerViewModel.kt
@@ -20,8 +20,7 @@
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
-import com.android.customization.model.color.ColorBundle
-import com.android.customization.model.color.ColorSeedOption
+import com.android.customization.model.color.ColorOptionImpl
import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
import com.android.customization.picker.color.shared.model.ColorType
import com.android.wallpaper.R
@@ -31,9 +30,11 @@
import kotlin.math.min
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.shareIn
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
@@ -92,146 +93,114 @@
/** The list of all color options mapped by their color type */
private val allColorOptions:
Flow<Map<ColorType, List<OptionItemViewModel<ColorOptionIconViewModel>>>> =
- interactor.colorOptions.map { colorOptions ->
- colorOptions
- .map { colorOptionEntry ->
- colorOptionEntry.key to
- when (colorOptionEntry.key) {
- ColorType.WALLPAPER_COLOR -> {
- colorOptionEntry.value.map { colorOptionModel ->
- val colorSeedOption: ColorSeedOption =
- colorOptionModel.colorOption as ColorSeedOption
- val colors =
- colorSeedOption.previewInfo.resolveColors(context.resources)
- val isSelectedFlow: StateFlow<Boolean> =
- interactor.activeColorOption
- .map {
- it?.colorOption?.isEquivalent(
- colorOptionModel.colorOption
- )
- ?: colorOptionModel.isSelected
- }
- .stateIn(viewModelScope)
- OptionItemViewModel<ColorOptionIconViewModel>(
- key =
- MutableStateFlow(colorOptionModel.key)
- as StateFlow<String>,
- payload =
- ColorOptionIconViewModel(
- colors[0],
- colors[1],
- colors[2],
- colors[3]
- ),
- text =
- Text.Loaded(
- colorSeedOption
- .getContentDescription(context)
- .toString()
- ),
- isSelected = isSelectedFlow,
- onClicked =
- isSelectedFlow.map { isSelected ->
- if (isSelected) {
- null
- } else {
- {
- viewModelScope.launch {
- interactor.select(colorOptionModel)
- }
+ interactor.colorOptions
+ .map { colorOptions ->
+ colorOptions
+ .map { colorOptionEntry ->
+ colorOptionEntry.key to
+ colorOptionEntry.value.map { colorOptionModel ->
+ val colorOption: ColorOptionImpl =
+ colorOptionModel.colorOption as ColorOptionImpl
+ val lightThemeColors =
+ colorOption.previewInfo.resolveColors(/* darkTheme= */ false)
+ val darkThemeColors =
+ colorOption.previewInfo.resolveColors(/* darkTheme= */ true)
+ val isSelectedFlow: StateFlow<Boolean> =
+ interactor.activeColorOption
+ .map {
+ it?.colorOption?.isEquivalent(
+ colorOptionModel.colorOption
+ )
+ ?: colorOptionModel.isSelected
+ }
+ .stateIn(viewModelScope)
+ OptionItemViewModel<ColorOptionIconViewModel>(
+ key =
+ MutableStateFlow(colorOptionModel.key) as StateFlow<String>,
+ payload =
+ ColorOptionIconViewModel(
+ lightThemeColor0 = lightThemeColors[0],
+ lightThemeColor1 = lightThemeColors[1],
+ lightThemeColor2 = lightThemeColors[2],
+ lightThemeColor3 = lightThemeColors[3],
+ darkThemeColor0 = darkThemeColors[0],
+ darkThemeColor1 = darkThemeColors[1],
+ darkThemeColor2 = darkThemeColors[2],
+ darkThemeColor3 = darkThemeColors[3],
+ ),
+ text =
+ Text.Loaded(
+ colorOption.getContentDescription(context).toString()
+ ),
+ isTextUserVisible = false,
+ isSelected = isSelectedFlow,
+ onClicked =
+ isSelectedFlow.map { isSelected ->
+ if (isSelected) {
+ null
+ } else {
+ {
+ viewModelScope.launch {
+ interactor.select(colorOptionModel)
}
}
- },
- )
- }
- }
- ColorType.PRESET_COLOR -> {
- colorOptionEntry.value.map { colorOptionModel ->
- val colorBundle: ColorBundle =
- colorOptionModel.colorOption as ColorBundle
- val primaryColor =
- colorBundle.previewInfo.resolvePrimaryColor(
- context.resources
- )
- val secondaryColor =
- colorBundle.previewInfo.resolveSecondaryColor(
- context.resources
- )
- val isSelectedFlow: StateFlow<Boolean> =
- interactor.activeColorOption
- .map {
- it?.colorOption?.isEquivalent(
- colorOptionModel.colorOption
- )
- ?: colorOptionModel.isSelected
}
- .stateIn(viewModelScope)
- OptionItemViewModel<ColorOptionIconViewModel>(
- key =
- MutableStateFlow(colorOptionModel.key)
- as StateFlow<String>,
- payload =
- ColorOptionIconViewModel(
- primaryColor,
- secondaryColor,
- primaryColor,
- secondaryColor
- ),
- text =
- Text.Loaded(
- colorBundle
- .getContentDescription(context)
- .toString()
- ),
- isSelected = isSelectedFlow,
- onClicked =
- isSelectedFlow.map { isSelected ->
- if (isSelected) {
- null
- } else {
- {
- viewModelScope.launch {
- interactor.select(colorOptionModel)
- }
- }
- }
- },
- )
- }
+ },
+ )
}
- }
- }
- .toMap()
- }
+ }
+ .toMap()
+ }
+ .shareIn(
+ scope = viewModelScope,
+ started = SharingStarted.WhileSubscribed(),
+ replay = 1,
+ )
/** The list of all available color options for the selected Color Type. */
val colorOptions: Flow<List<OptionItemViewModel<ColorOptionIconViewModel>>> =
combine(allColorOptions, selectedColorTypeTabId) {
- allColorOptions: Map<ColorType, List<OptionItemViewModel<ColorOptionIconViewModel>>>,
- selectedColorTypeIdOrNull ->
- val selectedColorTypeId = selectedColorTypeIdOrNull ?: ColorType.WALLPAPER_COLOR
- allColorOptions[selectedColorTypeId]!!
- }
+ allColorOptions:
+ Map<ColorType, List<OptionItemViewModel<ColorOptionIconViewModel>>>,
+ selectedColorTypeIdOrNull ->
+ val selectedColorTypeId = selectedColorTypeIdOrNull ?: ColorType.WALLPAPER_COLOR
+ allColorOptions[selectedColorTypeId]!!
+ }
+ .shareIn(
+ scope = viewModelScope,
+ started = SharingStarted.Eagerly,
+ replay = 1,
+ )
/** The list of color options for the color section */
val colorSectionOptions: Flow<List<OptionItemViewModel<ColorOptionIconViewModel>>> =
- allColorOptions.map { allColorOptions ->
- val wallpaperOptions = allColorOptions[ColorType.WALLPAPER_COLOR]
- val presetOptions = allColorOptions[ColorType.PRESET_COLOR]
- val subOptions =
- wallpaperOptions!!.subList(0, min(COLOR_SECTION_OPTION_SIZE, wallpaperOptions.size))
- // Add additional options based on preset colors if size of wallpaper color options is
- // less than COLOR_SECTION_OPTION_SIZE
- val additionalSubOptions =
- presetOptions!!.subList(
- 0,
- min(
- max(0, COLOR_SECTION_OPTION_SIZE - wallpaperOptions.size),
- presetOptions.size,
+ allColorOptions
+ .map { allColorOptions ->
+ val wallpaperOptions = allColorOptions[ColorType.WALLPAPER_COLOR]
+ val presetOptions = allColorOptions[ColorType.PRESET_COLOR]
+ val subOptions =
+ wallpaperOptions!!.subList(
+ 0,
+ min(COLOR_SECTION_OPTION_SIZE, wallpaperOptions.size)
)
- )
- subOptions + additionalSubOptions
- }
+ // Add additional options based on preset colors if size of wallpaper color options
+ // is
+ // less than COLOR_SECTION_OPTION_SIZE
+ val additionalSubOptions =
+ presetOptions!!.subList(
+ 0,
+ min(
+ max(0, COLOR_SECTION_OPTION_SIZE - wallpaperOptions.size),
+ presetOptions.size,
+ )
+ )
+ subOptions + additionalSubOptions
+ }
+ .shareIn(
+ scope = viewModelScope,
+ started = SharingStarted.WhileSubscribed(),
+ replay = 1,
+ )
class Factory(
private val context: Context,
diff --git a/src/com/android/customization/picker/notifications/ui/binder/NotificationSectionBinder.kt b/src/com/android/customization/picker/notifications/ui/binder/NotificationSectionBinder.kt
index 54f9bf6..1868a4e 100644
--- a/src/com/android/customization/picker/notifications/ui/binder/NotificationSectionBinder.kt
+++ b/src/com/android/customization/picker/notifications/ui/binder/NotificationSectionBinder.kt
@@ -20,7 +20,6 @@
import android.annotation.SuppressLint
import android.view.View
import android.widget.Switch
-import android.widget.TextView
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
@@ -39,19 +38,12 @@
viewModel: NotificationSectionViewModel,
lifecycleOwner: LifecycleOwner,
) {
- val subtitle: TextView = view.requireViewById(R.id.subtitle)
val switch: Switch = view.requireViewById(R.id.switcher)
view.setOnClickListener { viewModel.onClicked() }
lifecycleOwner.lifecycleScope.launch {
lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
- launch {
- viewModel.subtitleStringResourceId.collect {
- subtitle.text = view.context.getString(it)
- }
- }
-
launch { viewModel.isSwitchOn.collect { switch.isChecked = it } }
}
}
diff --git a/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModel.kt b/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModel.kt
index 97b0448..954efa2 100644
--- a/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModel.kt
+++ b/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModel.kt
@@ -17,13 +17,11 @@
package com.android.customization.picker.notifications.ui.viewmodel
-import androidx.annotation.StringRes
import androidx.annotation.VisibleForTesting
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import com.android.customization.picker.notifications.domain.interactor.NotificationsInteractor
-import com.android.wallpaper.R
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.launch
@@ -35,16 +33,6 @@
private val interactor: NotificationsInteractor,
) : ViewModel() {
- /** A string resource ID for the subtitle. */
- @StringRes
- val subtitleStringResourceId: Flow<Int> =
- interactor.settings.map { model ->
- when (model.isShowNotificationsOnLockScreenEnabled) {
- true -> R.string.show_notifications_on_lock_screen
- false -> R.string.hide_notifications_on_lock_screen
- }
- }
-
/** Whether the switch should be on. */
val isSwitchOn: Flow<Boolean> =
interactor.settings.map { model -> model.isShowNotificationsOnLockScreenEnabled }
diff --git a/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt b/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt
index a2afc81..4322009 100644
--- a/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt
+++ b/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt
@@ -17,87 +17,173 @@
package com.android.customization.picker.preview.ui.section
-import android.app.Activity
+import android.app.WallpaperManager
import android.content.Context
+import android.graphics.Rect
+import android.view.TouchDelegate
+import android.view.View
+import android.view.View.OnAttachStateChangeListener
import android.view.ViewGroup
import android.view.ViewStub
+import androidx.activity.ComponentActivity
+import androidx.constraintlayout.helper.widget.Carousel
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.constraintlayout.widget.Guideline
import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.get
import androidx.lifecycle.lifecycleScope
+import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor
import com.android.customization.picker.clock.ui.binder.ClockCarouselViewBinder
+import com.android.customization.picker.clock.ui.fragment.ClockSettingsFragment
import com.android.customization.picker.clock.ui.view.ClockCarouselView
import com.android.customization.picker.clock.ui.view.ClockViewFactory
import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
import com.android.wallpaper.R
-import com.android.wallpaper.model.CustomizationSectionController
+import com.android.wallpaper.model.CustomizationSectionController.CustomizationSectionNavigationController
import com.android.wallpaper.model.WallpaperColorsViewModel
+import com.android.wallpaper.model.WallpaperPreviewNavigator
import com.android.wallpaper.module.CurrentWallpaperInfoFactory
import com.android.wallpaper.module.CustomizationSections
import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewSectionController
import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewView
import com.android.wallpaper.util.DisplayUtils
+import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
-/** Controls the screen preview section. */
+/**
+ * A ThemePicker version of the [ScreenPreviewSectionController] that adjusts the preview for the
+ * clock carousel, and also updates the preview on theme changes.
+ */
class PreviewWithClockCarouselSectionController(
- activity: Activity,
+ activity: ComponentActivity,
private val lifecycleOwner: LifecycleOwner,
- private val initialScreen: CustomizationSections.Screen,
+ private val screen: CustomizationSections.Screen,
wallpaperInfoFactory: CurrentWallpaperInfoFactory,
colorViewModel: WallpaperColorsViewModel,
displayUtils: DisplayUtils,
- private val clockCarouselViewModel: ClockCarouselViewModel,
+ clockCarouselViewModelFactory: ClockCarouselViewModel.Factory,
private val clockViewFactory: ClockViewFactory,
- navigator: CustomizationSectionController.CustomizationSectionNavigationController,
+ wallpaperPreviewNavigator: WallpaperPreviewNavigator,
+ private val navigationController: CustomizationSectionNavigationController,
wallpaperInteractor: WallpaperInteractor,
+ themedIconInteractor: ThemedIconInteractor,
+ wallpaperManager: WallpaperManager,
+ private val isTwoPaneAndSmallWidth: Boolean,
) :
- ScreenPreviewSectionController(
+ PreviewWithThemeSectionController(
activity,
lifecycleOwner,
- initialScreen,
+ screen,
wallpaperInfoFactory,
colorViewModel,
displayUtils,
- navigator,
+ wallpaperPreviewNavigator,
wallpaperInteractor,
+ themedIconInteractor,
+ wallpaperManager,
+ isTwoPaneAndSmallWidth,
) {
- private var clockCarouselBinding: ClockCarouselViewBinder.Binding? = null
+ private val viewModel =
+ ViewModelProvider(
+ activity,
+ clockCarouselViewModelFactory,
+ )
+ .get() as ClockCarouselViewModel
+
+ private var clockColorAndSizeButton: View? = null
override val hideLockScreenClockPreview = true
override fun createView(context: Context): ScreenPreviewView {
val view = super.createView(context)
- val carouselViewStub: ViewStub = view.requireViewById(R.id.clock_carousel_view_stub)
- carouselViewStub.layoutResource = R.layout.clock_carousel_view
- val carouselView = carouselViewStub.inflate() as ClockCarouselView
+ if (screen == CustomizationSections.Screen.LOCK_SCREEN) {
+ val clockColorAndSizeButtonStub: ViewStub =
+ view.requireViewById(R.id.clock_color_and_size_button)
+ clockColorAndSizeButtonStub.layoutResource = R.layout.clock_color_and_size_button
+ clockColorAndSizeButton = clockColorAndSizeButtonStub.inflate() as View
+ clockColorAndSizeButton?.setOnClickListener {
+ navigationController.navigateTo(ClockSettingsFragment())
+ }
+ // clockColorAndSizeButton's touch target has to be increased programmatically
+ // rather than with padding because this button only appears in the lock screen tab.
+ view.post {
+ val rect = Rect()
+ clockColorAndSizeButton?.getHitRect(rect)
+ val padding =
+ context
+ .getResources()
+ .getDimensionPixelSize(R.dimen.screen_preview_section_vertical_space)
+ rect.top -= padding
+ rect.bottom += padding
+ val touchDelegate = TouchDelegate(rect, clockColorAndSizeButton)
+ view.setTouchDelegate(touchDelegate)
+ }
- // TODO (b/270716937) We should handle the single clock case in the clock carousel itself
- val singleClockViewStub: ViewStub = view.requireViewById(R.id.single_clock_view_stub)
- singleClockViewStub.layoutResource = R.layout.single_clock_view
- val singleClockView = singleClockViewStub.inflate() as ViewGroup
- lifecycleOwner.lifecycleScope.launch {
- clockCarouselBinding =
- ClockCarouselViewBinder.bind(
- carouselView = carouselView,
- singleClockView = singleClockView,
- viewModel = clockCarouselViewModel,
- clockViewFactory = clockViewFactory,
- lifecycleOwner = lifecycleOwner,
- )
- onScreenSwitched(
- isOnLockScreen = initialScreen == CustomizationSections.Screen.LOCK_SCREEN
- )
+ val carouselViewStub: ViewStub = view.requireViewById(R.id.clock_carousel_view_stub)
+ carouselViewStub.layoutResource = R.layout.clock_carousel_view
+ val carouselView = carouselViewStub.inflate() as ClockCarouselView
+
+ if (isTwoPaneAndSmallWidth) {
+ val guidelineMargin =
+ context.resources.getDimensionPixelSize(
+ R.dimen.clock_carousel_guideline_margin_for_2_pane_small_width
+ )
+
+ val guidelineStart = carouselView.requireViewById<Guideline>(R.id.guideline_start)
+ var layoutParams = guidelineStart.layoutParams as ConstraintLayout.LayoutParams
+ layoutParams.guideBegin = guidelineMargin
+ guidelineStart.layoutParams = layoutParams
+
+ val guidelineEnd = carouselView.requireViewById<Guideline>(R.id.guideline_end)
+ layoutParams = guidelineEnd.layoutParams as ConstraintLayout.LayoutParams
+ layoutParams.guideEnd = guidelineMargin
+ guidelineEnd.layoutParams = layoutParams
+ }
+
+ // TODO (b/270716937) We should handle the single clock case in the clock carousel
+ // itself
+ val singleClockViewStub: ViewStub = view.requireViewById(R.id.single_clock_view_stub)
+ singleClockViewStub.layoutResource = R.layout.single_clock_view
+ val singleClockView = singleClockViewStub.inflate() as ViewGroup
+
+ /**
+ * Only bind after [Carousel.onAttachedToWindow]. This is to avoid the race condition
+ * that the flow emits before attached to window where [Carousel.mMotionLayout] is still
+ * null.
+ */
+ var onAttachStateChangeListener: OnAttachStateChangeListener? = null
+ var bindJob: Job? = null
+ onAttachStateChangeListener =
+ object : OnAttachStateChangeListener {
+ override fun onViewAttachedToWindow(view: View?) {
+ bindJob =
+ lifecycleOwner.lifecycleScope.launch {
+ ClockCarouselViewBinder.bind(
+ carouselView = carouselView,
+ singleClockView = singleClockView,
+ viewModel = viewModel,
+ clockViewFactory = clockViewFactory,
+ lifecycleOwner = lifecycleOwner,
+ isTwoPaneAndSmallWidth = isTwoPaneAndSmallWidth,
+ )
+ if (onAttachStateChangeListener != null) {
+ carouselView.carousel.removeOnAttachStateChangeListener(
+ onAttachStateChangeListener,
+ )
+ }
+ }
+ }
+
+ override fun onViewDetachedFromWindow(view: View?) {
+ bindJob?.cancel()
+ }
+ }
+ carouselView.carousel.addOnAttachStateChangeListener(onAttachStateChangeListener)
}
+
return view
}
-
- override fun onScreenSwitched(isOnLockScreen: Boolean) {
- super.onScreenSwitched(isOnLockScreen)
- if (isOnLockScreen) {
- clockCarouselBinding?.show()
- } else {
- clockCarouselBinding?.hide()
- }
- }
}
diff --git a/src/com/android/customization/picker/preview/ui/section/PreviewWithThemeSectionController.kt b/src/com/android/customization/picker/preview/ui/section/PreviewWithThemeSectionController.kt
new file mode 100644
index 0000000..56c6c30
--- /dev/null
+++ b/src/com/android/customization/picker/preview/ui/section/PreviewWithThemeSectionController.kt
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package com.android.customization.picker.preview.ui.section
+
+import android.app.Activity
+import android.app.WallpaperManager
+import android.content.Context
+import androidx.lifecycle.LifecycleOwner
+import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor
+import com.android.customization.picker.preview.ui.viewmodel.PreviewWithThemeViewModel
+import com.android.wallpaper.R
+import com.android.wallpaper.model.WallpaperColorsViewModel
+import com.android.wallpaper.model.WallpaperPreviewNavigator
+import com.android.wallpaper.module.CurrentWallpaperInfoFactory
+import com.android.wallpaper.module.CustomizationSections
+import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
+import com.android.wallpaper.picker.customization.ui.section.ScreenPreviewSectionController
+import com.android.wallpaper.picker.customization.ui.viewmodel.ScreenPreviewViewModel
+import com.android.wallpaper.util.DisplayUtils
+import com.android.wallpaper.util.PreviewUtils
+import kotlinx.coroutines.suspendCancellableCoroutine
+
+/**
+ * A ThemePicker version of the [ScreenPreviewSectionController] that binds the preview view with
+ * the [PreviewWithThemeViewModel] to allow preview updates on theme changes.
+ */
+open class PreviewWithThemeSectionController(
+ activity: Activity,
+ lifecycleOwner: LifecycleOwner,
+ private val screen: CustomizationSections.Screen,
+ private val wallpaperInfoFactory: CurrentWallpaperInfoFactory,
+ private val colorViewModel: WallpaperColorsViewModel,
+ displayUtils: DisplayUtils,
+ wallpaperPreviewNavigator: WallpaperPreviewNavigator,
+ private val wallpaperInteractor: WallpaperInteractor,
+ private val themedIconInteractor: ThemedIconInteractor,
+ wallpaperManager: WallpaperManager,
+ isTwoPaneAndSmallWidth: Boolean,
+) :
+ ScreenPreviewSectionController(
+ activity,
+ lifecycleOwner,
+ screen,
+ wallpaperInfoFactory,
+ colorViewModel,
+ displayUtils,
+ wallpaperPreviewNavigator,
+ wallpaperInteractor,
+ wallpaperManager,
+ isTwoPaneAndSmallWidth
+ ) {
+ override fun createScreenPreviewViewModel(context: Context): ScreenPreviewViewModel {
+ return PreviewWithThemeViewModel(
+ previewUtils =
+ if (isOnLockScreen) {
+ PreviewUtils(
+ context = context,
+ authority =
+ context.getString(
+ R.string.lock_screen_preview_provider_authority,
+ ),
+ )
+ } else {
+ PreviewUtils(
+ context = context,
+ authorityMetadataKey =
+ context.getString(
+ R.string.grid_control_metadata_name,
+ ),
+ )
+ },
+ wallpaperInfoProvider = { forceReload ->
+ suspendCancellableCoroutine { continuation ->
+ wallpaperInfoFactory.createCurrentWallpaperInfos(
+ { homeWallpaper, lockWallpaper, _ ->
+ val wallpaper =
+ if (isOnLockScreen) {
+ lockWallpaper ?: homeWallpaper
+ } else {
+ homeWallpaper ?: lockWallpaper
+ }
+ loadInitialColors(
+ context = context,
+ screen = screen,
+ )
+ continuation.resume(wallpaper, null)
+ },
+ forceReload,
+ )
+ }
+ },
+ onWallpaperColorChanged = { colors ->
+ if (isOnLockScreen) {
+ colorViewModel.setLockWallpaperColors(colors)
+ } else {
+ colorViewModel.setHomeWallpaperColors(colors)
+ }
+ },
+ initialExtrasProvider = { getInitialExtras(isOnLockScreen) },
+ wallpaperInteractor = wallpaperInteractor,
+ themedIconInteractor = themedIconInteractor,
+ screen = screen,
+ )
+ }
+}
diff --git a/src/com/android/customization/picker/preview/ui/viewmodel/PreviewWithThemeViewModel.kt b/src/com/android/customization/picker/preview/ui/viewmodel/PreviewWithThemeViewModel.kt
new file mode 100644
index 0000000..435878d
--- /dev/null
+++ b/src/com/android/customization/picker/preview/ui/viewmodel/PreviewWithThemeViewModel.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package com.android.customization.picker.preview.ui.viewmodel
+
+import android.app.WallpaperColors
+import android.os.Bundle
+import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor
+import com.android.wallpaper.model.WallpaperInfo
+import com.android.wallpaper.module.CustomizationSections
+import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
+import com.android.wallpaper.picker.customization.ui.viewmodel.ScreenPreviewViewModel
+import com.android.wallpaper.util.PreviewUtils
+import kotlinx.coroutines.flow.Flow
+
+/** A ThemePicker version of the [ScreenPreviewViewModel] */
+class PreviewWithThemeViewModel(
+ previewUtils: PreviewUtils,
+ initialExtrasProvider: () -> Bundle? = { null },
+ wallpaperInfoProvider: suspend (forceReload: Boolean) -> WallpaperInfo?,
+ onWallpaperColorChanged: (WallpaperColors?) -> Unit = {},
+ wallpaperInteractor: WallpaperInteractor,
+ private val themedIconInteractor: ThemedIconInteractor? = null,
+ screen: CustomizationSections.Screen,
+) :
+ ScreenPreviewViewModel(
+ previewUtils,
+ initialExtrasProvider,
+ wallpaperInfoProvider,
+ onWallpaperColorChanged,
+ wallpaperInteractor,
+ screen,
+ ) {
+ override fun workspaceUpdateEvents(): Flow<Boolean>? = themedIconInteractor?.isActivated
+}
diff --git a/src/com/android/customization/picker/quickaffordance/data/repository/KeyguardQuickAffordancePickerRepository.kt b/src/com/android/customization/picker/quickaffordance/data/repository/KeyguardQuickAffordancePickerRepository.kt
index c432bd9..b17af80 100644
--- a/src/com/android/customization/picker/quickaffordance/data/repository/KeyguardQuickAffordancePickerRepository.kt
+++ b/src/com/android/customization/picker/quickaffordance/data/repository/KeyguardQuickAffordancePickerRepository.kt
@@ -80,9 +80,9 @@
name = name,
iconResourceId = iconResourceId,
isEnabled = isEnabled,
- enablementInstructions = enablementInstructions ?: emptyList(),
+ enablementExplanation = enablementExplanation ?: "",
enablementActionText = enablementActionText,
- enablementActionComponentName = enablementActionComponentName,
+ enablementActionIntent = enablementActionIntent,
configureIntent = configureIntent,
)
}
diff --git a/src/com/android/customization/picker/quickaffordance/shared/model/KeyguardQuickAffordancePickerAffordanceModel.kt b/src/com/android/customization/picker/quickaffordance/shared/model/KeyguardQuickAffordancePickerAffordanceModel.kt
index 7b04ff1..e53f790 100644
--- a/src/com/android/customization/picker/quickaffordance/shared/model/KeyguardQuickAffordancePickerAffordanceModel.kt
+++ b/src/com/android/customization/picker/quickaffordance/shared/model/KeyguardQuickAffordancePickerAffordanceModel.kt
@@ -31,18 +31,18 @@
@DrawableRes val iconResourceId: Int,
/** Whether this quick affordance is enabled. */
val isEnabled: Boolean,
- /** If not enabled, the list of user-visible steps to re-enable it. */
- val enablementInstructions: List<String>,
+ /** If not enabled, the user-visible message explaining why. */
+ val enablementExplanation: String,
/**
* If not enabled, an optional label for a button that takes the user to a destination where
* they can re-enable it.
*/
val enablementActionText: String?,
/**
- * If not enabled, an optional component name (package and action) for a button that takes the
- * user to a destination where they can re-enable it.
+ * If not enabled, an optional [Intent] for a button that takes the user to a destination where
+ * they can re-enable it.
*/
- val enablementActionComponentName: String?,
+ val enablementActionIntent: Intent?,
/** Optional [Intent] to use to start an activity to configure this affordance. */
val configureIntent: Intent?,
)
diff --git a/src/com/android/customization/picker/quickaffordance/ui/adapter/SlotTabAdapter.kt b/src/com/android/customization/picker/quickaffordance/ui/adapter/SlotTabAdapter.kt
index 5203ed3..6879ffc 100644
--- a/src/com/android/customization/picker/quickaffordance/ui/adapter/SlotTabAdapter.kt
+++ b/src/com/android/customization/picker/quickaffordance/ui/adapter/SlotTabAdapter.kt
@@ -55,7 +55,7 @@
val item = items[position]
holder.itemView.isSelected = item.isSelected
holder.textView.text = item.name
- holder.textView.setOnClickListener(
+ holder.itemView.setOnClickListener(
if (item.onClicked != null) {
View.OnClickListener { item.onClicked.invoke() }
} else {
diff --git a/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePickerBinder.kt b/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePickerBinder.kt
index 4395f5e..68367c8 100644
--- a/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePickerBinder.kt
+++ b/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePickerBinder.kt
@@ -126,6 +126,15 @@
}
}
}
+
+ launch {
+ viewModel.activityStartRequests.collect { intent ->
+ if (intent != null) {
+ view.context.startActivity(intent)
+ viewModel.onActivityStarted()
+ }
+ }
+ }
}
}
}
diff --git a/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePreviewBinder.kt b/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePreviewBinder.kt
index 58a082d..5b6d353 100644
--- a/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePreviewBinder.kt
+++ b/src/com/android/customization/picker/quickaffordance/ui/binder/KeyguardQuickAffordancePreviewBinder.kt
@@ -25,7 +25,7 @@
import androidx.lifecycle.flowWithLifecycle
import androidx.lifecycle.lifecycleScope
import com.android.customization.picker.quickaffordance.ui.viewmodel.KeyguardQuickAffordancePickerViewModel
-import com.android.systemui.shared.quickaffordance.shared.model.KeyguardQuickAffordancePreviewConstants
+import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants
import com.android.wallpaper.R
import com.android.wallpaper.picker.customization.ui.binder.ScreenPreviewBinder
import kotlinx.coroutines.launch
@@ -49,6 +49,7 @@
lifecycleOwner = lifecycleOwner,
offsetToStart = offsetToStart,
dimWallpaper = true,
+ onWallpaperPreviewDirty = { activity.recreate() },
)
previewView.contentDescription =
@@ -61,10 +62,8 @@
.flowWithLifecycle(lifecycleOwner.lifecycle, Lifecycle.State.STARTED)
.collect { slotId ->
binding.sendMessage(
- KeyguardQuickAffordancePreviewConstants.MESSAGE_ID_SLOT_SELECTED,
- Bundle().apply {
- putString(KeyguardQuickAffordancePreviewConstants.KEY_SLOT_ID, slotId)
- },
+ KeyguardPreviewConstants.MESSAGE_ID_SLOT_SELECTED,
+ Bundle().apply { putString(KeyguardPreviewConstants.KEY_SLOT_ID, slotId) },
)
}
}
diff --git a/src/com/android/customization/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModel.kt b/src/com/android/customization/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModel.kt
index 14b6acc..f832cde 100644
--- a/src/com/android/customization/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModel.kt
+++ b/src/com/android/customization/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModel.kt
@@ -27,16 +27,17 @@
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor
-import com.android.systemui.shared.customization.data.content.CustomizationProviderContract
import com.android.systemui.shared.keyguard.shared.model.KeyguardQuickAffordanceSlots
-import com.android.systemui.shared.quickaffordance.shared.model.KeyguardQuickAffordancePreviewConstants
+import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants
import com.android.wallpaper.R
import com.android.wallpaper.module.CurrentWallpaperInfoFactory
+import com.android.wallpaper.module.CustomizationSections
import com.android.wallpaper.picker.common.button.ui.viewmodel.ButtonStyle
import com.android.wallpaper.picker.common.button.ui.viewmodel.ButtonViewModel
import com.android.wallpaper.picker.common.dialog.ui.viewmodel.DialogViewModel
import com.android.wallpaper.picker.common.icon.ui.viewmodel.Icon
import com.android.wallpaper.picker.common.text.ui.viewmodel.Text
+import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
import com.android.wallpaper.picker.customization.ui.viewmodel.ScreenPreviewViewModel
import com.android.wallpaper.picker.option.ui.viewmodel.OptionItemViewModel
import com.android.wallpaper.util.PreviewUtils
@@ -60,8 +61,8 @@
private constructor(
context: Context,
private val quickAffordanceInteractor: KeyguardQuickAffordancePickerInteractor,
+ private val wallpaperInteractor: WallpaperInteractor,
private val wallpaperInfoFactory: CurrentWallpaperInfoFactory,
- activityStarter: (Intent) -> Unit,
) : ViewModel() {
@SuppressLint("StaticFieldLeak") private val applicationContext = context.applicationContext
@@ -79,25 +80,27 @@
initialExtrasProvider = {
Bundle().apply {
putString(
- KeyguardQuickAffordancePreviewConstants.KEY_INITIALLY_SELECTED_SLOT_ID,
+ KeyguardPreviewConstants.KEY_INITIALLY_SELECTED_SLOT_ID,
selectedSlotId.value,
)
putBoolean(
- KeyguardQuickAffordancePreviewConstants.KEY_HIGHLIGHT_QUICK_AFFORDANCES,
+ KeyguardPreviewConstants.KEY_HIGHLIGHT_QUICK_AFFORDANCES,
true,
)
}
},
- wallpaperInfoProvider = {
+ wallpaperInfoProvider = { forceReload ->
suspendCancellableCoroutine { continuation ->
wallpaperInfoFactory.createCurrentWallpaperInfos(
{ homeWallpaper, lockWallpaper, _ ->
continuation.resume(lockWallpaper ?: homeWallpaper, null)
},
- /* forceRefresh= */ true,
+ forceReload,
)
}
},
+ wallpaperInteractor = wallpaperInteractor,
+ screen = CustomizationSections.Screen.LOCK_SCREEN,
)
/** A locally-selected slot, if the user ever switched from the original one. */
@@ -258,16 +261,15 @@
showEnablementDialog(
icon = affordanceIcon,
name = affordance.name,
- instructions = affordance.enablementInstructions,
+ explanation = affordance.enablementExplanation,
actionText = affordance.enablementActionText,
- actionComponentName =
- affordance.enablementActionComponentName,
+ actionIntent = affordance.enablementActionIntent,
)
}
},
onLongClicked =
if (affordance.configureIntent != null) {
- { activityStarter(affordance.configureIntent) }
+ { requestActivityStart(affordance.configureIntent) }
} else {
null
},
@@ -313,17 +315,40 @@
*/
val dialog: Flow<DialogViewModel?> = _dialog.asStateFlow()
+ private val _activityStartRequests = MutableStateFlow<Intent?>(null)
+ /**
+ * Requests to start an activity with the given [Intent].
+ *
+ * Important: once the activity is started, the [Intent] should be consumed by calling
+ * [onActivityStarted].
+ */
+ val activityStartRequests: StateFlow<Intent?> = _activityStartRequests.asStateFlow()
+
/** Notifies that the dialog has been dismissed in the UI. */
fun onDialogDismissed() {
_dialog.value = null
}
+ /**
+ * Notifies that an activity request from [activityStartRequests] has been fulfilled (e.g. the
+ * activity was started and the view-model can forget needing to start this activity).
+ */
+ fun onActivityStarted() {
+ _activityStartRequests.value = null
+ }
+
+ private fun requestActivityStart(
+ intent: Intent,
+ ) {
+ _activityStartRequests.value = intent
+ }
+
private fun showEnablementDialog(
icon: Drawable,
name: String,
- instructions: List<String>,
+ explanation: String,
actionText: String?,
- actionComponentName: String?,
+ actionIntent: Intent?,
) {
_dialog.value =
DialogViewModel(
@@ -332,35 +357,39 @@
drawable = icon,
contentDescription = null,
),
- title = Text.Loaded(name),
- message =
- Text.Loaded(
- buildString {
- instructions.forEachIndexed { index, instruction ->
- if (index > 0) {
- append('\n')
- }
-
- append(instruction)
- }
- }
- ),
+ headline = Text.Resource(R.string.keyguard_affordance_enablement_dialog_headline),
+ message = Text.Loaded(explanation),
buttons =
- listOf(
- ButtonViewModel(
- text = actionText?.let { Text.Loaded(actionText) }
- ?: Text.Resource(
- R.string
- .keyguard_affordance_enablement_dialog_dismiss_button,
+ buildList {
+ add(
+ ButtonViewModel(
+ text =
+ Text.Resource(
+ if (actionText != null) {
+ // This is not the only button on the dialog.
+ R.string.cancel
+ } else {
+ // This is the only button on the dialog.
+ R.string
+ .keyguard_affordance_enablement_dialog_dismiss_button
+ }
),
- style = ButtonStyle.Primary,
- onClicked = {
- actionComponentName.toIntent()?.let { intent ->
- applicationContext.startActivity(intent)
- }
- }
- ),
- ),
+ style = ButtonStyle.Secondary,
+ ),
+ )
+
+ if (actionText != null) {
+ add(
+ ButtonViewModel(
+ text = Text.Loaded(actionText),
+ style = ButtonStyle.Primary,
+ onClicked = {
+ actionIntent?.let { intent -> requestActivityStart(intent) }
+ }
+ ),
+ )
+ }
+ },
)
}
@@ -398,29 +427,6 @@
return quickAffordanceInteractor.getAffordanceIcon(iconResourceId)
}
- private fun String?.toIntent(): Intent? {
- if (isNullOrEmpty()) {
- return null
- }
-
- val splitUp =
- split(
- CustomizationProviderContract.LockScreenQuickAffordances.AffordanceTable
- .COMPONENT_NAME_SEPARATOR
- )
- check(splitUp.size == 1 || splitUp.size == 2) {
- "Illegal component name \"$this\". Must be either just an action or a package and an" +
- " action separated by a" +
- " \"${CustomizationProviderContract.LockScreenQuickAffordances.AffordanceTable.COMPONENT_NAME_SEPARATOR}\"!"
- }
-
- return Intent(splitUp.last()).apply {
- if (splitUp.size > 1) {
- setPackage(splitUp[0])
- }
- }
- }
-
private fun toDescriptionText(
context: Context,
slots: Map<String, KeyguardQuickAffordanceSlotViewModel>,
@@ -455,16 +461,16 @@
class Factory(
private val context: Context,
private val quickAffordanceInteractor: KeyguardQuickAffordancePickerInteractor,
+ private val wallpaperInteractor: WallpaperInteractor,
private val wallpaperInfoFactory: CurrentWallpaperInfoFactory,
- private val activityStarter: (Intent) -> Unit,
) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
@Suppress("UNCHECKED_CAST")
return KeyguardQuickAffordancePickerViewModel(
context = context,
quickAffordanceInteractor = quickAffordanceInteractor,
+ wallpaperInteractor = wallpaperInteractor,
wallpaperInfoFactory = wallpaperInfoFactory,
- activityStarter = activityStarter,
)
as T
}
diff --git a/tests/robotests/src/com/android/customization/model/clock/BaseClockManagerTest.java b/tests/robotests/src/com/android/customization/model/clock/BaseClockManagerTest.java
deleted file mode 100644
index eeff531..0000000
--- a/tests/robotests/src/com/android/customization/model/clock/BaseClockManagerTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.customization.model.clock;
-
-import static junit.framework.TestCase.assertTrue;
-import static junit.framework.TestCase.fail;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.anyBoolean;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import androidx.annotation.Nullable;
-
-import com.android.customization.model.CustomizationManager.Callback;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-
-@RunWith(RobolectricTestRunner.class)
-public class BaseClockManagerTest {
-
- private static final String CURRENT_CLOCK = "current_clock";
-
- @Mock ClockProvider mProvider;
- private TestClockManager mManager;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mManager = new TestClockManager(mProvider);
- }
-
- @Test
- public void testIsAvailable() {
- // GIVEN that the ClockProvider is available
- when(mProvider.isAvailable()).thenReturn(true);
- // THEN the BaseClockManager is true
- assertTrue(mManager.isAvailable());
- }
-
- @Test
- public void testApply() {
- final String id = "id";
- Clockface clock = new Clockface.Builder().setId(id).build();
-
- mManager.apply(clock, new Callback() {
- @Override
- public void onSuccess() {
- //Nothing to do here, the test passed
- }
- @Override
- public void onError(@Nullable Throwable throwable) {
- fail("onError was called when grid had been applied successfully");
- }
- });
-
- assertEquals(id, mManager.getClockId());
- }
-
- @Test
- public void testFetch() {
- mManager.fetchOptions(null, false);
- verify(mProvider).fetch(eq(null), anyBoolean());
- }
-
- /**
- * Testable BaseClockManager that provides basic implementations of abstract methods.
- */
- private static final class TestClockManager extends BaseClockManager {
-
- private String mClockId;
-
- TestClockManager(ClockProvider provider) {
- super(provider);
- }
-
- String getClockId() {
- return mClockId;
- }
-
- @Override
- protected void handleApply(Clockface option, Callback callback) {
- mClockId = option.getId();
- callback.onSuccess();
- }
-
- @Override
- protected String lookUpCurrentClock() {
- return CURRENT_CLOCK;
- }
- }
-}
diff --git a/tests/robotests/src/com/android/customization/model/clock/ClockManagerTest.java b/tests/robotests/src/com/android/customization/model/clock/ClockManagerTest.java
deleted file mode 100644
index 574548a..0000000
--- a/tests/robotests/src/com/android/customization/model/clock/ClockManagerTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.customization.model.clock;
-
-import static junit.framework.TestCase.fail;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.verify;
-
-import android.content.ContentResolver;
-import android.provider.Settings.Secure;
-
-import androidx.annotation.Nullable;
-
-import com.android.customization.model.CustomizationManager.Callback;
-import com.android.customization.module.ThemesUserEventLogger;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class ClockManagerTest {
-
- private static final String CLOCK_ID = "id";
- private static final String CLOCK_FIELD = "clock";
- private static final String CLOCK_FACE_SETTING = "fake_clock_face_setting";
-
- @Mock ClockProvider mProvider;
- @Mock ThemesUserEventLogger mLogger;
- private ContentResolver mContentResolver;
- private ClockManager mManager;
- @Mock private Clockface mMockClockface;
- @Mock private Callback mMockCallback;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContentResolver = RuntimeEnvironment.application.getContentResolver();
- mManager = new ClockManager(mContentResolver, mProvider, mLogger);
- }
-
- @Test
- public void testApply() throws JSONException {
- Clockface clock = new Clockface.Builder().setId(CLOCK_ID).build();
-
- mManager.apply(clock, new Callback() {
- @Override
- public void onSuccess() {
- //Nothing to do here, the test passed
- }
-
- @Override
- public void onError(@Nullable Throwable throwable) {
- fail("onError was called when grid had been applied successfully");
- }
- });
-
- // THEN the clock id is written to secure settings.
- JSONObject json =
- new JSONObject(Secure.getString(mContentResolver, ClockManager.CLOCK_FACE_SETTING));
- assertEquals(CLOCK_ID, json.getString(CLOCK_FIELD));
- // AND the event is logged
- verify(mLogger).logClockApplied(clock);
- }
-
- @Test
- public void testApply_whenJSONExceptionOccurs_callsOnError() {
- doAnswer((invocation) -> {
- throw new JSONException("Fake Test Excepton");
- }).when(mMockClockface).getId();
-
- mManager.apply(mMockClockface, mMockCallback);
-
- verify(mMockCallback).onError(null);
- }
-
- @Test
- public void testGetCurrentClock_returnsClockId() throws JSONException {
- // Secure settings contains a clock id
- JSONObject json = new JSONObject().put(CLOCK_FIELD, CLOCK_ID);
- Secure.putString(mContentResolver, ClockManager.CLOCK_FACE_SETTING, json.toString());
-
- // The current clock is that id
- assertEquals(CLOCK_ID, mManager.getCurrentClock());
- }
-
- @Test
- public void testGetCurrentClock_whenJSONExceptionOccurs_returnsClockFaceSetting() {
- // Secure settings contains a clock face setting with invalid format to cause JSONException.
- Secure.putString(mContentResolver, ClockManager.CLOCK_FACE_SETTING, CLOCK_FACE_SETTING);
-
- // The current clock is the clock face setting which is saved in secure settings.
- assertEquals(CLOCK_FACE_SETTING, mManager.getCurrentClock());
- }
-
- @Test
- public void testGetCurrentClock_withNullIdInSecureSettings_returnsNullId() {
- // Secure settings contains a null clock id
- Secure.putString(mContentResolver, ClockManager.CLOCK_FACE_SETTING, /* value= */ null);
-
- // The current clock is null
- assertEquals(null, mManager.getCurrentClock());
- }
-
- @Test
- public void testGetCurrentClock_withEmptyIdInSecureSettings_returnsEmptyId() {
- // Secure settings contains an empty clock id
- Secure.putString(mContentResolver, ClockManager.CLOCK_FACE_SETTING, /* value= */ "");
-
- // The current clock is empty
- assertEquals("", mManager.getCurrentClock());
- }
-}
diff --git a/tests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt b/tests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
index 1d9457a..a29d559 100644
--- a/tests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
+++ b/tests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
@@ -61,8 +61,8 @@
fun setUp() {
context = InstrumentationRegistry.getInstrumentation().targetContext
val testDispatcher = StandardTestDispatcher()
- testScope = TestScope(testDispatcher)
Dispatchers.setMain(testDispatcher)
+ testScope = TestScope(testDispatcher)
repository = FakeColorPickerRepository(context = context)
store = FakeSnapshotStore()
diff --git a/tests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt b/tests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt
index 103ae84..3f10674 100644
--- a/tests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt
+++ b/tests/src/com/android/customization/model/picker/quickaffordance/ui/viewmodel/KeyguardQuickAffordancePickerViewModelTest.kt
@@ -34,10 +34,14 @@
import com.android.wallpaper.module.InjectorProvider
import com.android.wallpaper.picker.common.icon.ui.viewmodel.Icon
import com.android.wallpaper.picker.common.text.ui.viewmodel.Text
+import com.android.wallpaper.picker.customization.data.repository.WallpaperRepository
+import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
import com.android.wallpaper.picker.option.ui.viewmodel.OptionItemViewModel
import com.android.wallpaper.testing.FakeSnapshotStore
+import com.android.wallpaper.testing.FakeWallpaperClient
import com.android.wallpaper.testing.TestCurrentWallpaperInfoFactory
import com.android.wallpaper.testing.TestInjector
+import com.android.wallpaper.testing.TestWallpaperPreferences
import com.android.wallpaper.testing.collectLastValue
import com.google.common.truth.Truth.assertThat
import com.google.common.truth.Truth.assertWithMessage
@@ -66,8 +70,7 @@
private lateinit var testScope: TestScope
private lateinit var client: FakeCustomizationProviderClient
private lateinit var quickAffordanceInteractor: KeyguardQuickAffordancePickerInteractor
-
- private var latestStartedActivityIntent: Intent? = null
+ private lateinit var wallpaperInteractor: WallpaperInteractor
@Before
fun setUp() {
@@ -94,12 +97,22 @@
.apply { runBlocking { setUpSnapshotRestorer(FakeSnapshotStore()) } }
},
)
+ wallpaperInteractor =
+ WallpaperInteractor(
+ repository =
+ WallpaperRepository(
+ scope = testScope.backgroundScope,
+ client = FakeWallpaperClient(),
+ wallpaperPreferences = TestWallpaperPreferences(),
+ backgroundDispatcher = testDispatcher,
+ ),
+ )
underTest =
KeyguardQuickAffordancePickerViewModel.Factory(
context = context,
quickAffordanceInteractor = quickAffordanceInteractor,
+ wallpaperInteractor = wallpaperInteractor,
wallpaperInfoFactory = TestCurrentWallpaperInfoFactory(context),
- activityStarter = { intent -> latestStartedActivityIntent = intent },
)
.create(KeyguardQuickAffordancePickerViewModel::class.java)
}
@@ -233,12 +246,13 @@
val slots = collectLastValue(underTest.slots)
val quickAffordances = collectLastValue(underTest.quickAffordances)
val dialog = collectLastValue(underTest.dialog)
+ val activityStartRequest = collectLastValue(underTest.activityStartRequests)
- val enablementInstructions = listOf("instruction1", "instruction2")
+ val enablementExplanation = "enablementExplanation"
val enablementActionText = "enablementActionText"
val packageName = "packageName"
val action = "action"
- val enablementActionComponentName = "$packageName/$action"
+ val enablementActionIntent = Intent(action).apply { `package` = packageName }
// Lets add a disabled affordance to the picker:
val affordanceIndex =
client.addAffordance(
@@ -247,9 +261,9 @@
name = "disabled",
iconResourceId = 1,
isEnabled = false,
- enablementInstructions = enablementInstructions,
+ enablementExplanation = enablementExplanation,
enablementActionText = enablementActionText,
- enablementActionComponentName = enablementActionComponentName,
+ enablementActionIntent = enablementActionIntent,
)
)
@@ -259,16 +273,26 @@
// We expect there to be a dialog that should be shown:
assertThat(dialog()?.icon)
.isEqualTo(Icon.Loaded(FakeCustomizationProviderClient.ICON_1, null))
- assertThat(dialog()?.title).isEqualTo(Text.Loaded("disabled"))
- assertThat(dialog()?.message)
- .isEqualTo(Text.Loaded(enablementInstructions.joinToString("\n")))
- assertThat(dialog()?.buttons?.size).isEqualTo(1)
- assertThat(dialog()?.buttons?.first()?.text)
- .isEqualTo(Text.Loaded(enablementActionText))
+ assertThat(dialog()?.headline)
+ .isEqualTo(Text.Resource(R.string.keyguard_affordance_enablement_dialog_headline))
+ assertThat(dialog()?.message).isEqualTo(Text.Loaded(enablementExplanation))
+ assertThat(dialog()?.buttons?.size).isEqualTo(2)
+ assertThat(dialog()?.buttons?.first()?.text).isEqualTo(Text.Resource(R.string.cancel))
+ assertThat(dialog()?.buttons?.get(1)?.text).isEqualTo(Text.Loaded(enablementActionText))
+
+ // When the button is clicked, we expect an intent of the given enablement action
+ // component name to be emitted.
+ dialog()?.buttons?.get(1)?.onClicked?.invoke()
+ assertThat(activityStartRequest()?.`package`).isEqualTo(packageName)
+ assertThat(activityStartRequest()?.action).isEqualTo(action)
+
+ // Once we report that the activity was started, the activity start request should be
+ // nullified.
+ underTest.onActivityStarted()
+ assertThat(activityStartRequest()).isNull()
// Once we report that the dialog has been dismissed by the user, we expect there to be
- // no
- // dialog to be shown:
+ // no dialog to be shown:
underTest.onDialogDismissed()
assertThat(dialog()).isNull()
}
@@ -277,6 +301,7 @@
fun `Start settings activity when long-pressing an affordance`() =
testScope.runTest {
val quickAffordances = collectLastValue(underTest.quickAffordances)
+ val activityStartRequest = collectLastValue(underTest.activityStartRequests)
// Lets add a configurable affordance to the picker:
val configureIntent = Intent("some.action")
@@ -294,7 +319,11 @@
// Lets try to long-click the affordance:
quickAffordances()?.get(affordanceIndex + 1)?.onLongClicked?.invoke()
- assertThat(latestStartedActivityIntent).isEqualTo(configureIntent)
+ assertThat(activityStartRequest()).isEqualTo(configureIntent)
+ // Once we report that the activity was started, the activity start request should be
+ // nullified.
+ underTest.onActivityStarted()
+ assertThat(activityStartRequest()).isNull()
}
@Test
diff --git a/tests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt b/tests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
index 2ef4e97..bf2766d 100644
--- a/tests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
+++ b/tests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
@@ -56,11 +56,11 @@
private val _selectedClockSize = MutableStateFlow(ClockSize.SMALL)
override val selectedClockSize: Flow<ClockSize> = _selectedClockSize.asStateFlow()
- override fun setSelectedClock(clockId: String) {
+ override suspend fun setSelectedClock(clockId: String) {
selectedClockId.value = clockId
}
- override fun setClockColor(
+ override suspend fun setClockColor(
selectedColorId: String?,
@IntRange(from = 0, to = 100) colorToneProgress: Int,
@ColorInt seedColor: Int?,
@@ -75,12 +75,16 @@
}
companion object {
+ const val CLOCK_ID_0 = "clock0"
+ const val CLOCK_ID_1 = "clock1"
+ const val CLOCK_ID_2 = "clock2"
+ const val CLOCK_ID_3 = "clock3"
val fakeClocks =
listOf(
- ClockMetadataModel("clock0", "clock0", null, 50, null),
- ClockMetadataModel("clock1", "clock1", null, 50, null),
- ClockMetadataModel("clock2", "clock2", null, 50, null),
- ClockMetadataModel("clock3", "clock3", null, 50, null),
+ ClockMetadataModel(CLOCK_ID_0, "clock0", null, 50, null),
+ ClockMetadataModel(CLOCK_ID_1, "clock1", null, 50, null),
+ ClockMetadataModel(CLOCK_ID_2, "clock2", null, 50, null),
+ ClockMetadataModel(CLOCK_ID_3, "clock3", null, 50, null),
)
const val CLOCK_COLOR_ID = "RED"
const val CLOCK_COLOR_TONE_PROGRESS = 87
diff --git a/tests/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractorTest.kt b/tests/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractorTest.kt
index cd41d7d..1a7ebb5 100644
--- a/tests/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractorTest.kt
+++ b/tests/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractorTest.kt
@@ -3,10 +3,12 @@
import androidx.test.filters.SmallTest
import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
import com.android.customization.picker.clock.shared.ClockSize
+import com.android.wallpaper.testing.FakeSnapshotStore
import com.android.wallpaper.testing.collectLastValue
import com.google.common.truth.Truth
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.resetMain
import kotlinx.coroutines.test.runTest
@@ -28,7 +30,15 @@
fun setUp() {
val testDispatcher = StandardTestDispatcher()
Dispatchers.setMain(testDispatcher)
- underTest = ClockPickerInteractor(FakeClockPickerRepository())
+ underTest =
+ ClockPickerInteractor(
+ repository = FakeClockPickerRepository(),
+ snapshotRestorer = {
+ ClockPickerSnapshotRestorer(interactor = underTest).apply {
+ runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) }
+ }
+ },
+ )
}
@After
diff --git a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
index 63f77bd..c5eb796 100644
--- a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
+++ b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
@@ -16,13 +16,18 @@
package com.android.customization.picker.clock.ui.viewmodel
import androidx.test.filters.SmallTest
+import com.android.customization.picker.clock.data.repository.ClockPickerRepository
import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
+import com.android.customization.picker.clock.domain.interactor.ClockPickerSnapshotRestorer
import com.android.customization.picker.clock.shared.model.ClockMetadataModel
+import com.android.wallpaper.testing.FakeSnapshotStore
import com.android.wallpaper.testing.collectLastValue
import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.advanceTimeBy
import kotlinx.coroutines.test.resetMain
@@ -52,11 +57,13 @@
)
)
}
+ private lateinit var testDispatcher: CoroutineDispatcher
private lateinit var underTest: ClockCarouselViewModel
+ private lateinit var interactor: ClockPickerInteractor
@Before
fun setUp() {
- val testDispatcher = StandardTestDispatcher()
+ testDispatcher = StandardTestDispatcher()
Dispatchers.setMain(testDispatcher)
}
@@ -67,54 +74,60 @@
@Test
fun setSelectedClock() = runTest {
- underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithMultipleClocks))
+ underTest =
+ ClockCarouselViewModel(
+ getClockPickerInteractor(repositoryWithMultipleClocks),
+ testDispatcher
+ )
val observedSelectedIndex = collectLastValue(underTest.selectedIndex)
advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
+
underTest.setSelectedClock(FakeClockPickerRepository.fakeClocks[2].clockId)
+
assertThat(observedSelectedIndex()).isEqualTo(2)
}
@Test
- fun setShouldShowCarousel() = runTest {
- underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithMultipleClocks))
+ fun multipleClockCase() = runTest {
+ underTest =
+ ClockCarouselViewModel(
+ getClockPickerInteractor(repositoryWithMultipleClocks),
+ testDispatcher
+ )
val observedIsCarouselVisible = collectLastValue(underTest.isCarouselVisible)
- advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
- underTest.showClockCarousel(false)
- assertThat(observedIsCarouselVisible()).isFalse()
- underTest.showClockCarousel(true)
- assertThat(observedIsCarouselVisible()).isTrue()
- }
-
- @Test
- fun shouldNotShowCarouselWhenSingleClock() = runTest {
- underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithSingleClock))
- val observedIsCarouselVisible = collectLastValue(underTest.isCarouselVisible)
- advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
- underTest.showClockCarousel(false)
- assertThat(observedIsCarouselVisible()).isFalse()
- underTest.showClockCarousel(true)
- assertThat(observedIsCarouselVisible()).isFalse()
- }
-
- @Test
- fun setShouldShowSingleClock() = runTest {
- underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithSingleClock))
val observedIsSingleClockViewVisible = collectLastValue(underTest.isSingleClockViewVisible)
+
advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
- underTest.showClockCarousel(false)
+
+ assertThat(observedIsCarouselVisible()).isTrue()
assertThat(observedIsSingleClockViewVisible()).isFalse()
- underTest.showClockCarousel(true)
+ }
+
+ @Test
+ fun singleClockCase() = runTest {
+ underTest =
+ ClockCarouselViewModel(
+ getClockPickerInteractor(repositoryWithSingleClock),
+ testDispatcher
+ )
+ val observedIsCarouselVisible = collectLastValue(underTest.isCarouselVisible)
+ val observedIsSingleClockViewVisible = collectLastValue(underTest.isSingleClockViewVisible)
+
+ advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
+
+ assertThat(observedIsCarouselVisible()).isFalse()
assertThat(observedIsSingleClockViewVisible()).isTrue()
}
- @Test
- fun shouldNotShowSingleClockWhenMultipleClocks() = runTest {
- underTest = ClockCarouselViewModel(ClockPickerInteractor(repositoryWithMultipleClocks))
- val observedIsSingleClockViewVisible = collectLastValue(underTest.isSingleClockViewVisible)
- advanceTimeBy(ClockCarouselViewModel.CLOCKS_EVENT_UPDATE_DELAY_MILLIS)
- underTest.showClockCarousel(false)
- assertThat(observedIsSingleClockViewVisible()).isFalse()
- underTest.showClockCarousel(true)
- assertThat(observedIsSingleClockViewVisible()).isFalse()
+ private fun getClockPickerInteractor(repository: ClockPickerRepository): ClockPickerInteractor {
+ return ClockPickerInteractor(
+ repository = repository,
+ snapshotRestorer = {
+ ClockPickerSnapshotRestorer(interactor = interactor).apply {
+ runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) }
+ }
+ }
+ )
+ .also { interactor = it }
}
}
diff --git a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt
index 61976ad..293e393 100644
--- a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt
+++ b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSectionViewModelTest.kt
@@ -19,12 +19,15 @@
import androidx.test.platform.app.InstrumentationRegistry
import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
+import com.android.customization.picker.clock.domain.interactor.ClockPickerSnapshotRestorer
import com.android.customization.picker.clock.shared.ClockSize
import com.android.customization.picker.clock.shared.model.ClockMetadataModel
+import com.android.wallpaper.testing.FakeSnapshotStore
import com.android.wallpaper.testing.collectLastValue
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.resetMain
import kotlinx.coroutines.test.runTest
@@ -50,7 +53,15 @@
Dispatchers.setMain(testDispatcher)
val context = InstrumentationRegistry.getInstrumentation().targetContext
clockColorMap = ClockColorViewModel.getPresetColorMap(context.resources)
- interactor = ClockPickerInteractor(FakeClockPickerRepository())
+ interactor =
+ ClockPickerInteractor(
+ repository = FakeClockPickerRepository(),
+ snapshotRestorer = {
+ ClockPickerSnapshotRestorer(interactor = interactor).apply {
+ runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) }
+ }
+ },
+ )
underTest =
ClockSectionViewModel(
context,
@@ -65,18 +76,20 @@
@Test
fun setSelectedClock() = runTest {
- val colorRed = clockColorMap.values.first()
+ val colorGrey = clockColorMap.values.first()
val observedSelectedClockColorAndSizeText =
collectLastValue(underTest.selectedClockColorAndSizeText)
+
interactor.setClockColor(
- colorRed.colorId,
+ colorGrey.colorId,
ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
ClockSettingsViewModel.blendColorWithTone(
- colorRed.color,
- colorRed.getColorTone(ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS),
+ colorGrey.color,
+ colorGrey.getColorTone(ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS),
)
)
interactor.setClockSize(ClockSize.DYNAMIC)
- assertThat(observedSelectedClockColorAndSizeText()).isEqualTo("Red, dynamic")
+
+ assertThat(observedSelectedClockColorAndSizeText()).isEqualTo("Grey, dynamic")
}
}
diff --git a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt
index d53288d..f58baf8 100644
--- a/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt
+++ b/tests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt
@@ -5,6 +5,7 @@
import androidx.test.platform.app.InstrumentationRegistry
import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
+import com.android.customization.picker.clock.domain.interactor.ClockPickerSnapshotRestorer
import com.android.customization.picker.clock.shared.ClockSize
import com.android.customization.picker.clock.shared.model.ClockMetadataModel
import com.android.customization.picker.color.data.repository.FakeColorPickerRepository
@@ -15,8 +16,10 @@
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.test.StandardTestDispatcher
+import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.advanceTimeBy
import kotlinx.coroutines.test.resetMain
import kotlinx.coroutines.test.runTest
@@ -33,15 +36,37 @@
class ClockSettingsViewModelTest {
private lateinit var context: Context
+ private lateinit var testScope: TestScope
private lateinit var colorPickerInteractor: ColorPickerInteractor
+ private lateinit var clockPickerInteractor: ClockPickerInteractor
private lateinit var underTest: ClockSettingsViewModel
private lateinit var colorMap: Map<String, ClockColorViewModel>
+ // We make the condition that CLOCK_ID_3 is not reactive to tone
+ private val getIsReactiveToTone: (clockId: String?) -> Boolean = { clockId ->
+ when (clockId) {
+ FakeClockPickerRepository.CLOCK_ID_0 -> true
+ FakeClockPickerRepository.CLOCK_ID_1 -> true
+ FakeClockPickerRepository.CLOCK_ID_2 -> true
+ FakeClockPickerRepository.CLOCK_ID_3 -> false
+ else -> false
+ }
+ }
@Before
fun setUp() {
val testDispatcher = StandardTestDispatcher()
Dispatchers.setMain(testDispatcher)
context = InstrumentationRegistry.getInstrumentation().targetContext
+ testScope = TestScope(testDispatcher)
+ clockPickerInteractor =
+ ClockPickerInteractor(
+ repository = FakeClockPickerRepository(),
+ snapshotRestorer = {
+ ClockPickerSnapshotRestorer(interactor = clockPickerInteractor).apply {
+ runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) }
+ }
+ },
+ )
colorPickerInteractor =
ColorPickerInteractor(
repository = FakeColorPickerRepository(context = context),
@@ -54,11 +79,16 @@
underTest =
ClockSettingsViewModel.Factory(
context = context,
- clockPickerInteractor = ClockPickerInteractor(FakeClockPickerRepository()),
+ clockPickerInteractor = clockPickerInteractor,
colorPickerInteractor = colorPickerInteractor,
+ getIsReactiveToTone = getIsReactiveToTone,
)
.create(ClockSettingsViewModel::class.java)
colorMap = ClockColorViewModel.getPresetColorMap(context.resources)
+
+ testScope.launch {
+ clockPickerInteractor.setSelectedClock(FakeClockPickerRepository.CLOCK_ID_0)
+ }
}
@After
@@ -88,15 +118,20 @@
val observedSeedColor = collectLastValue(underTest.seedColor)
// Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from colorOptions
advanceTimeBy(ClockSettingsViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
- assertThat(observedClockColorOptions()!![0].isSelected).isTrue()
- assertThat(observedClockColorOptions()!![0].onClick).isNull()
+ val option0IsSelected = collectLastValue(observedClockColorOptions()!![0].isSelected)
+ val option0OnClicked = collectLastValue(observedClockColorOptions()!![0].onClicked)
+ assertThat(option0IsSelected()).isTrue()
+ assertThat(option0OnClicked()).isNull()
assertThat(observedSelectedColorOptionPosition()).isEqualTo(0)
- observedClockColorOptions()!![1].onClick?.invoke()
+ val option1OnClickedBefore = collectLastValue(observedClockColorOptions()!![1].onClicked)
+ option1OnClickedBefore()?.invoke()
// Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from colorOptions
advanceTimeBy(ClockSettingsViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
- assertThat(observedClockColorOptions()!![1].isSelected).isTrue()
- assertThat(observedClockColorOptions()!![1].onClick).isNull()
+ val option1IsSelected = collectLastValue(observedClockColorOptions()!![1].isSelected)
+ val option1OnClickedAfter = collectLastValue(observedClockColorOptions()!![1].onClicked)
+ assertThat(option1IsSelected()).isTrue()
+ assertThat(option1OnClickedAfter()).isNull()
assertThat(observedSelectedColorOptionPosition()).isEqualTo(1)
assertThat(observedSliderProgress())
.isEqualTo(ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS)
@@ -120,10 +155,12 @@
val observedSeedColor = collectLastValue(underTest.seedColor)
// Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from colorOptions
advanceTimeBy(ClockSettingsViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
- assertThat(observedClockColorOptions()!![0].isSelected).isTrue()
+ val option0IsSelected = collectLastValue(observedClockColorOptions()!![0].isSelected)
+ assertThat(option0IsSelected()).isTrue()
assertThat(observedIsSliderEnabled()).isFalse()
- observedClockColorOptions()!![1].onClick?.invoke()
+ val option1OnClicked = collectLastValue(observedClockColorOptions()!![1].onClicked)
+ option1OnClicked()?.invoke()
// Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from colorOptions
advanceTimeBy(ClockSettingsViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
@@ -132,7 +169,7 @@
underTest.onSliderProgressChanged(targetProgress1)
assertThat(observedSliderProgress()).isEqualTo(targetProgress1)
val targetProgress2 = 55
- underTest.onSliderProgressStop(targetProgress2)
+ testScope.launch { underTest.onSliderProgressStop(targetProgress2) }
assertThat(observedSliderProgress()).isEqualTo(targetProgress2)
val expectedSelectedColorModel = colorMap.values.first() // RED
assertThat(observedSeedColor())
@@ -153,4 +190,21 @@
underTest.setClockSize(ClockSize.SMALL)
assertThat(observedClockSize()).isEqualTo(ClockSize.SMALL)
}
+
+ @Test
+ fun getIsReactiveToTone() = runTest {
+ val observedClockColorOptions = collectLastValue(underTest.colorOptions)
+ val isSliderEnabled = collectLastValue(underTest.isSliderEnabled)
+ // Advance COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS since there is a delay from colorOptions
+ advanceTimeBy(ClockSettingsViewModel.COLOR_OPTIONS_EVENT_UPDATE_DELAY_MILLIS)
+ val option1OnClicked = collectLastValue(observedClockColorOptions()!![1].onClicked)
+ option1OnClicked()?.invoke()
+
+ clockPickerInteractor.setSelectedClock(FakeClockPickerRepository.CLOCK_ID_0)
+ assertThat(isSliderEnabled()).isTrue()
+
+ // We make the condition that CLOCK_ID_0 is not reactive to tone
+ clockPickerInteractor.setSelectedClock(FakeClockPickerRepository.CLOCK_ID_3)
+ assertThat(isSliderEnabled()).isFalse()
+ }
}
diff --git a/tests/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModelTest.kt b/tests/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModelTest.kt
index 6442609..63334f2 100644
--- a/tests/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModelTest.kt
+++ b/tests/src/com/android/customization/picker/notifications/ui/viewmodel/NotificationSectionViewModelTest.kt
@@ -84,18 +84,14 @@
@Test
fun `toggles back and forth`() =
testScope.runTest {
- val subtitleStringResId = collectLastValue(underTest.subtitleStringResourceId)
val isSwitchOn = collectLastValue(underTest.isSwitchOn)
- val initialSubtitleStringRes = subtitleStringResId()
val initialIsSwitchOn = isSwitchOn()
underTest.onClicked()
- assertThat(subtitleStringResId()).isNotEqualTo(initialSubtitleStringRes)
assertThat(isSwitchOn()).isNotEqualTo(initialIsSwitchOn)
underTest.onClicked()
- assertThat(subtitleStringResId()).isEqualTo(initialSubtitleStringRes)
assertThat(isSwitchOn()).isEqualTo(initialIsSwitchOn)
}
}
diff --git a/tests/src/com/android/customization/testing/TestCustomizationInjector.kt b/tests/src/com/android/customization/testing/TestCustomizationInjector.kt
deleted file mode 100644
index b49e654..0000000
--- a/tests/src/com/android/customization/testing/TestCustomizationInjector.kt
+++ /dev/null
@@ -1,289 +0,0 @@
-package com.android.customization.testing
-
-import android.app.Activity
-import android.content.Context
-import android.text.TextUtils
-import androidx.fragment.app.FragmentActivity
-import com.android.customization.model.color.ColorCustomizationManager
-import com.android.customization.model.color.ColorOptionsProvider
-import com.android.customization.model.theme.OverlayManagerCompat
-import com.android.customization.model.theme.ThemeBundleProvider
-import com.android.customization.model.theme.ThemeManager
-import com.android.customization.module.CustomizationInjector
-import com.android.customization.module.CustomizationPreferences
-import com.android.customization.module.ThemesUserEventLogger
-import com.android.customization.picker.clock.data.repository.ClockRegistryProvider
-import com.android.customization.picker.clock.data.repository.FakeClockPickerRepository
-import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
-import com.android.customization.picker.clock.ui.view.ClockViewFactory
-import com.android.customization.picker.clock.ui.viewmodel.ClockCarouselViewModel
-import com.android.customization.picker.clock.ui.viewmodel.ClockSectionViewModel
-import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
-import com.android.customization.picker.color.data.repository.ColorPickerRepository
-import com.android.customization.picker.color.data.repository.ColorPickerRepositoryImpl
-import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
-import com.android.customization.picker.color.domain.interactor.ColorPickerSnapshotRestorer
-import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
-import com.android.customization.picker.quickaffordance.data.repository.KeyguardQuickAffordancePickerRepository
-import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor
-import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordanceSnapshotRestorer
-import com.android.systemui.shared.clocks.ClockRegistry
-import com.android.systemui.shared.customization.data.content.CustomizationProviderClient
-import com.android.systemui.shared.customization.data.content.CustomizationProviderClientImpl
-import com.android.wallpaper.config.BaseFlags
-import com.android.wallpaper.model.WallpaperColorsViewModel
-import com.android.wallpaper.module.DrawableLayerResolver
-import com.android.wallpaper.module.PackageStatusNotifier
-import com.android.wallpaper.module.UserEventLogger
-import com.android.wallpaper.picker.customization.data.content.WallpaperClientImpl
-import com.android.wallpaper.picker.customization.data.repository.WallpaperRepository
-import com.android.wallpaper.picker.customization.domain.interactor.WallpaperInteractor
-import com.android.wallpaper.picker.undo.domain.interactor.SnapshotRestorer
-import com.android.wallpaper.testing.TestInjector
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.GlobalScope
-
-/** Test implementation of the dependency injector. */
-class TestCustomizationInjector : TestInjector(), CustomizationInjector {
- private var customizationPreferences: CustomizationPreferences? = null
- private var themeManager: ThemeManager? = null
- private var packageStatusNotifier: PackageStatusNotifier? = null
- private var drawableLayerResolver: DrawableLayerResolver? = null
- private var userEventLogger: UserEventLogger? = null
- private var wallpaperInteractor: WallpaperInteractor? = null
- private var keyguardQuickAffordancePickerInteractor: KeyguardQuickAffordancePickerInteractor? =
- null
- private var flags: BaseFlags? = null
- private var customizationProviderClient: CustomizationProviderClient? = null
- private var keyguardQuickAffordanceSnapshotRestorer: KeyguardQuickAffordanceSnapshotRestorer? =
- null
- private var clockRegistry: ClockRegistry? = null
- private var clockPickerInteractor: ClockPickerInteractor? = null
- private var clockSectionViewModel: ClockSectionViewModel? = null
- private var clockViewFactory: ClockViewFactory? = null
- private var colorPickerRepository: ColorPickerRepository? = null
- private var colorPickerInteractor: ColorPickerInteractor? = null
- private var colorPickerViewModelFactory: ColorPickerViewModel.Factory? = null
- private var colorPickerSnapshotRestorer: ColorPickerSnapshotRestorer? = null
- private var colorCustomizationManager: ColorCustomizationManager? = null
- private var clockCarouselViewModel: ClockCarouselViewModel? = null
- private var clockSettingsViewModelFactory: ClockSettingsViewModel.Factory? = null
-
- override fun getCustomizationPreferences(context: Context): CustomizationPreferences {
- return customizationPreferences
- ?: TestDefaultCustomizationPreferences(context).also { customizationPreferences = it }
- }
-
- override fun getThemeManager(
- provider: ThemeBundleProvider,
- activity: FragmentActivity,
- overlayManagerCompat: OverlayManagerCompat,
- logger: ThemesUserEventLogger
- ): ThemeManager {
- return themeManager
- ?: TestThemeManager(provider, activity, overlayManagerCompat, logger).also {
- themeManager = it
- }
- }
-
- override fun getPackageStatusNotifier(context: Context): PackageStatusNotifier {
- return packageStatusNotifier
- ?: TestPackageStatusNotifier().also {
- packageStatusNotifier = TestPackageStatusNotifier()
- }
- }
-
- override fun getDrawableLayerResolver(): DrawableLayerResolver {
- return drawableLayerResolver
- ?: TestDrawableLayerResolver().also { drawableLayerResolver = it }
- }
-
- override fun getUserEventLogger(context: Context): UserEventLogger {
- return userEventLogger ?: TestThemesUserEventLogger().also { userEventLogger = it }
- }
-
- override fun getWallpaperInteractor(context: Context): WallpaperInteractor {
- return wallpaperInteractor
- ?: WallpaperInteractor(
- repository =
- WallpaperRepository(
- scope = GlobalScope,
- client = WallpaperClientImpl(context = context),
- backgroundDispatcher = Dispatchers.IO,
- ),
- shouldHandleReload = {
- TextUtils.equals(
- getColorCustomizationManager(context).currentColorSource,
- ColorOptionsProvider.COLOR_SOURCE_PRESET
- )
- }
- )
- .also { wallpaperInteractor = it }
- }
-
- override fun getKeyguardQuickAffordancePickerInteractor(
- context: Context
- ): KeyguardQuickAffordancePickerInteractor {
- return keyguardQuickAffordancePickerInteractor
- ?: createCustomizationProviderClient(context).also {
- keyguardQuickAffordancePickerInteractor = it
- }
- }
-
- private fun createCustomizationProviderClient(
- context: Context
- ): KeyguardQuickAffordancePickerInteractor {
- val client: CustomizationProviderClient =
- CustomizationProviderClientImpl(context, Dispatchers.IO)
- return KeyguardQuickAffordancePickerInteractor(
- KeyguardQuickAffordancePickerRepository(client, Dispatchers.IO),
- client
- ) {
- getKeyguardQuickAffordanceSnapshotRestorer(context)
- }
- }
-
- override fun getFlags(): BaseFlags {
- return flags ?: object : BaseFlags() {}.also { flags = it }
- }
-
- override fun getSnapshotRestorers(context: Context): Map<Int, SnapshotRestorer> {
- val restorers: MutableMap<Int, SnapshotRestorer> = HashMap()
- restorers[KEY_QUICK_AFFORDANCE_SNAPSHOT_RESTORER] =
- getKeyguardQuickAffordanceSnapshotRestorer(context)
- restorers[KEY_COLOR_PICKER_SNAPSHOT_RESTORER] =
- getColorPickerSnapshotRestorer(context, getWallpaperColorsViewModel())
- return restorers
- }
-
- /** Returns the [CustomizationProviderClient]. */
- private fun getKeyguardQuickAffordancePickerProviderClient(
- context: Context
- ): CustomizationProviderClient {
- return customizationProviderClient
- ?: CustomizationProviderClientImpl(context, Dispatchers.IO).also {
- customizationProviderClient = it
- }
- }
-
- private fun getKeyguardQuickAffordanceSnapshotRestorer(
- context: Context
- ): KeyguardQuickAffordanceSnapshotRestorer {
- return keyguardQuickAffordanceSnapshotRestorer
- ?: KeyguardQuickAffordanceSnapshotRestorer(
- getKeyguardQuickAffordancePickerInteractor(context),
- getKeyguardQuickAffordancePickerProviderClient(context)
- )
- .also { keyguardQuickAffordanceSnapshotRestorer = it }
- }
-
- override fun getClockRegistry(context: Context): ClockRegistry {
- return clockRegistry
- ?: ClockRegistryProvider(context, GlobalScope, Dispatchers.Main, Dispatchers.IO)
- .get()
- .also { clockRegistry = it }
- }
-
- override fun getClockPickerInteractor(context: Context): ClockPickerInteractor {
- return clockPickerInteractor
- ?: ClockPickerInteractor(FakeClockPickerRepository()).also {
- clockPickerInteractor = it
- }
- }
-
- override fun getClockSectionViewModel(context: Context): ClockSectionViewModel {
- return clockSectionViewModel
- ?: ClockSectionViewModel(context, getClockPickerInteractor(context)).also {
- clockSectionViewModel = it
- }
- }
-
- private fun getColorPickerRepository(
- context: Context,
- wallpaperColorsViewModel: WallpaperColorsViewModel,
- ): ColorPickerRepository {
- return colorPickerRepository
- ?: ColorPickerRepositoryImpl(
- wallpaperColorsViewModel,
- getColorCustomizationManager(context)
- )
- }
-
- override fun getColorPickerInteractor(
- context: Context,
- wallpaperColorsViewModel: WallpaperColorsViewModel,
- ): ColorPickerInteractor {
- return colorPickerInteractor
- ?: ColorPickerInteractor(
- repository = getColorPickerRepository(context, wallpaperColorsViewModel),
- snapshotRestorer = {
- getColorPickerSnapshotRestorer(context, wallpaperColorsViewModel)
- },
- )
- .also { colorPickerInteractor = it }
- }
-
- override fun getColorPickerViewModelFactory(
- context: Context,
- wallpaperColorsViewModel: WallpaperColorsViewModel,
- ): ColorPickerViewModel.Factory {
- return colorPickerViewModelFactory
- ?: ColorPickerViewModel.Factory(
- context,
- getColorPickerInteractor(context, wallpaperColorsViewModel),
- )
- .also { colorPickerViewModelFactory = it }
- }
-
- private fun getColorPickerSnapshotRestorer(
- context: Context,
- wallpaperColorsViewModel: WallpaperColorsViewModel
- ): ColorPickerSnapshotRestorer {
- return colorPickerSnapshotRestorer
- ?: ColorPickerSnapshotRestorer(
- getColorPickerInteractor(context, wallpaperColorsViewModel)
- )
- .also { colorPickerSnapshotRestorer = it }
- }
-
- private fun getColorCustomizationManager(context: Context): ColorCustomizationManager {
- return colorCustomizationManager
- ?: ColorCustomizationManager.getInstance(context, OverlayManagerCompat(context)).also {
- colorCustomizationManager = it
- }
- }
-
- override fun getClockCarouselViewModel(context: Context): ClockCarouselViewModel {
- return clockCarouselViewModel
- ?: ClockCarouselViewModel(getClockPickerInteractor(context)).also {
- clockCarouselViewModel = it
- }
- }
-
- override fun getClockViewFactory(activity: Activity): ClockViewFactory {
- return clockViewFactory
- ?: ClockViewFactory(activity, getClockRegistry(activity)).also { clockViewFactory = it }
- }
-
- override fun getClockSettingsViewModelFactory(
- context: Context,
- wallpaperColorsViewModel: WallpaperColorsViewModel,
- ): ClockSettingsViewModel.Factory {
- return clockSettingsViewModelFactory
- ?: ClockSettingsViewModel.Factory(
- context,
- getClockPickerInteractor(context),
- getColorPickerInteractor(
- context,
- wallpaperColorsViewModel,
- ),
- )
- .also { clockSettingsViewModelFactory = it }
- }
-
- companion object {
- private const val KEY_QUICK_AFFORDANCE_SNAPSHOT_RESTORER = 1
- private const val KEY_COLOR_PICKER_SNAPSHOT_RESTORER =
- KEY_QUICK_AFFORDANCE_SNAPSHOT_RESTORER + 1
- }
-}
diff --git a/tests/src/com/android/customization/testing/TestThemesUserEventLogger.java b/tests/src/com/android/customization/testing/TestThemesUserEventLogger.java
index 9250a86..2bb2082 100644
--- a/tests/src/com/android/customization/testing/TestThemesUserEventLogger.java
+++ b/tests/src/com/android/customization/testing/TestThemesUserEventLogger.java
@@ -1,6 +1,5 @@
package com.android.customization.testing;
-import com.android.customization.model.clock.Clockface;
import com.android.customization.model.color.ColorOption;
import com.android.customization.model.grid.GridOption;
import com.android.customization.model.theme.ThemeBundle;
@@ -28,16 +27,6 @@
}
@Override
- public void logClockSelected(Clockface clock) {
- // Do nothing.
- }
-
- @Override
- public void logClockApplied(Clockface clock) {
- // Do nothing.
- }
-
- @Override
public void logGridSelected(GridOption grid) {
// Do nothing.
}