Merge "Disable landscape mode for picker" into main
diff --git a/res/layout/customization_option_entry_themed_icons.xml b/res/layout/customization_option_entry_themed_icons.xml
index d10f9e9..cf46f7e 100644
--- a/res/layout/customization_option_entry_themed_icons.xml
+++ b/res/layout/customization_option_entry_themed_icons.xml
@@ -33,21 +33,8 @@
         android:layout_marginEnd="@dimen/customization_option_entry_text_margin_end"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintEnd_toStartOf="@+id/option_entry_switch"
-        app:layout_constraintBottom_toTopOf="@+id/option_entry_description"
         app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintVertical_chainStyle="packed" />
-
-    <TextView
-        android:id="@+id/option_entry_description"
-        style="@style/CustomizationOptionEntrySubtitleTextStyle"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:layout_marginEnd="@dimen/customization_option_entry_text_margin_end"
-        android:text="@string/beta_title"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toStartOf="@+id/option_entry_switch"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/option_entry_title" />
+        app:layout_constraintBottom_toBottomOf="parent" />
 
     <com.google.android.material.materialswitch.MaterialSwitch
         android:id="@+id/option_entry_switch"
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 16de478..a71afa3 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -146,7 +146,7 @@
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"Mostrar las notificaciones en la pantalla de bloqueo"</string>
     <string name="lock_screen_notifications_section_title" msgid="906673283764252102">"Notific. en pantalla de bloqueo"</string>
     <string name="lock_screen_notifications_section_description" msgid="3321937285144466046">"Administra cómo aparecen las notificaciones y qué mostrar"</string>
-    <string name="more_settings_section_title" msgid="6854797937797818510">"Más opciones de pant. de bloqueo"</string>
+    <string name="more_settings_section_title" msgid="6854797937797818510">"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>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 367e560..691bc2b 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -146,7 +146,7 @@
     <string name="show_notifications_on_lock_screen" msgid="4157744243084646720">"نمایش اعلان‌ها در صفحه قفل"</string>
     <string name="lock_screen_notifications_section_title" msgid="906673283764252102">"اعلان‌ها در صفحه قفل"</string>
     <string name="lock_screen_notifications_section_description" msgid="3321937285144466046">"مدیریت کردن نحوه نشان داده شدن اعلان‌ها و آنچه نشان داده می‌شود"</string>
-    <string name="more_settings_section_title" msgid="6854797937797818510">"تنظیمات دیگر صفحه قفل"</string>
+    <string name="more_settings_section_title" msgid="6854797937797818510">"تنظیمات بیشتر صفحه قفل"</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>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index e9826d4..577eb55 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -119,7 +119,7 @@
     <string name="beta_title" msgid="8703819523760746458">"Beta"</string>
     <string name="gird_picker_entry_content_description" msgid="9087651470212293439">"Schimbă grila de aplicații"</string>
     <string name="wallpaper_color_tab" msgid="1447926591721403840">"Culori de fundal"</string>
-    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Culori pictograme, text etc. asortate cu imaginea de fundal"</string>
+    <string name="wallpaper_color_subheader" msgid="4044464573669965670">"Pictograme, text etc. în culoarea imaginii de fundal"</string>
     <string name="wallpaper_color_title" msgid="5687965239180986458">"Culoarea imaginii de fundal"</string>
     <string name="preset_color_tab" msgid="3133391839341329314">"Culori de bază"</string>
     <string name="preset_color_tab_2" msgid="1444107326712562538">"Alte culori"</string>
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 7fcfd9c..4f96f69 100644
--- a/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
+++ b/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
@@ -56,7 +56,7 @@
                 scrollBackwardCallback = {
                     // Callback code for scrolling backward
                     carouselView.transitionToPrevious()
-                }
+                },
             )
         lifecycleOwner.lifecycleScope.launch {
             lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
@@ -71,7 +71,13 @@
                             },
                             isTwoPaneAndSmallWidth = isTwoPaneAndSmallWidth,
                         )
-                        carouselView.accessibilityDelegate = carouselAccessibilityDelegate
+                        // Only show accessibility action when there is >1 clock to choose from
+                        carouselView.accessibilityDelegate =
+                            if (allClocks.size > 1) {
+                                carouselAccessibilityDelegate
+                            } else {
+                                null
+                            }
                         screenPreviewClickView.setOnSideClickedListener { isStart ->
                             if (isStart) carouselView.scrollToPrevious()
                             else carouselView.scrollToNext()
diff --git a/src/com/android/customization/picker/clock/ui/view/ThemePickerClockViewFactory.kt b/src/com/android/customization/picker/clock/ui/view/ThemePickerClockViewFactory.kt
index c48d810..cd298fe 100644
--- a/src/com/android/customization/picker/clock/ui/view/ThemePickerClockViewFactory.kt
+++ b/src/com/android/customization/picker/clock/ui/view/ThemePickerClockViewFactory.kt
@@ -193,7 +193,7 @@
     private fun initClockController(clockId: String): ClockController? {
         val isWallpaperDark = isLockscreenWallpaperDark()
         return registry.createExampleClock(clockId)?.also { controller ->
-            controller.initialize(isWallpaperDark, 0f, 0f)
+            controller.initialize(isWallpaperDark, 0f, 0f, null)
 
             // Initialize large clock
             controller.largeClock.events.onFontSettingChanged(
diff --git a/src_override/com/android/wallpaper/modules/ThemePickerAppModule.kt b/src_override/com/android/wallpaper/modules/ThemePickerAppModule.kt
index 5f4da33..539f4f9 100644
--- a/src_override/com/android/wallpaper/modules/ThemePickerAppModule.kt
+++ b/src_override/com/android/wallpaper/modules/ThemePickerAppModule.kt
@@ -51,11 +51,13 @@
 import com.android.wallpaper.picker.category.domain.interactor.CategoryInteractor
 import com.android.wallpaper.picker.category.domain.interactor.CreativeCategoryInteractor
 import com.android.wallpaper.picker.category.domain.interactor.CuratedPhotosInteractor
+import com.android.wallpaper.picker.category.domain.interactor.OnDeviceWallpapersInteractor
 import com.android.wallpaper.picker.category.domain.interactor.ThirdPartyCategoryInteractor
 import com.android.wallpaper.picker.category.domain.interactor.implementations.CategoryInteractorImpl
 import com.android.wallpaper.picker.category.domain.interactor.implementations.CreativeCategoryInteractorImpl
 import com.android.wallpaper.picker.category.domain.interactor.implementations.DefaultCategoriesLoadingStatusInteractor
 import com.android.wallpaper.picker.category.domain.interactor.implementations.DefaultCuratedPhotosInteractorImpl
+import com.android.wallpaper.picker.category.domain.interactor.implementations.DefaultOnDeviceWallpapersInteractor
 import com.android.wallpaper.picker.category.domain.interactor.implementations.ThirdPartyCategoryInteractorImpl
 import com.android.wallpaper.picker.category.ui.view.providers.IndividualPickerFactory
 import com.android.wallpaper.picker.category.ui.view.providers.implementation.DefaultIndividualPickerFactory
@@ -141,6 +143,12 @@
 
     @Binds
     @Singleton
+    abstract fun bindOnDeviceWallpapersInteractor(
+        impl: DefaultOnDeviceWallpapersInteractor
+    ): OnDeviceWallpapersInteractor
+
+    @Binds
+    @Singleton
     abstract fun bindImageEffectDialogUtil(
         impl: DefaultImageEffectDialogUtil
     ): ImageEffectDialogUtil
diff --git a/tests/module/src/com/android/wallpaper/ThemePickerTestModule.kt b/tests/module/src/com/android/wallpaper/ThemePickerTestModule.kt
index 25a6d65..7b7f600 100644
--- a/tests/module/src/com/android/wallpaper/ThemePickerTestModule.kt
+++ b/tests/module/src/com/android/wallpaper/ThemePickerTestModule.kt
@@ -51,6 +51,7 @@
 import com.android.wallpaper.network.Requester
 import com.android.wallpaper.picker.category.domain.interactor.CategoryInteractor
 import com.android.wallpaper.picker.category.domain.interactor.CuratedPhotosInteractor
+import com.android.wallpaper.picker.category.domain.interactor.OnDeviceWallpapersInteractor
 import com.android.wallpaper.picker.category.domain.interactor.ThirdPartyCategoryInteractor
 import com.android.wallpaper.picker.category.ui.view.providers.IndividualPickerFactory
 import com.android.wallpaper.picker.category.ui.view.providers.implementation.DefaultIndividualPickerFactory
@@ -67,6 +68,7 @@
 import com.android.wallpaper.testing.FakeCategoryInteractor
 import com.android.wallpaper.testing.FakeCuratedPhotosInteractorImpl
 import com.android.wallpaper.testing.FakeDefaultRequester
+import com.android.wallpaper.testing.FakeOnDeviceWallpapersInteractor
 import com.android.wallpaper.testing.FakeThirdPartyCategoryInteractor
 import com.android.wallpaper.testing.FakeWallpaperCategoryWrapper
 import com.android.wallpaper.testing.TestPartnerProvider
@@ -156,6 +158,12 @@
 
     @Binds
     @Singleton
+    abstract fun bindOnDeviceWallpapersInteractor(
+        impl: FakeOnDeviceWallpapersInteractor
+    ): OnDeviceWallpapersInteractor
+
+    @Binds
+    @Singleton
     abstract fun providePartnerProvider(impl: TestPartnerProvider): PartnerProvider
 
     @Binds @Singleton abstract fun bindRequester(impl: FakeDefaultRequester): Requester
diff --git a/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt b/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt
index d6286a4..1c02756 100644
--- a/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt
+++ b/tests/robotests/src/com/android/customization/picker/clock/ui/FakeClockViewFactory.kt
@@ -6,6 +6,7 @@
 import com.android.customization.picker.clock.ui.view.ClockViewFactory
 import com.android.systemui.plugins.clocks.ClockConfig
 import com.android.systemui.plugins.clocks.ClockController
+import com.android.systemui.plugins.clocks.ClockEventListener
 import com.android.systemui.plugins.clocks.ClockEvents
 import com.android.systemui.plugins.clocks.ClockFaceController
 import com.android.systemui.plugins.clocks.ClockFontAxisSetting
@@ -29,8 +30,12 @@
         override val events: ClockEvents
             get() = TODO("Not yet implemented")
 
-        override fun initialize(isDarkTheme: Boolean, dozeFraction: Float, foldFraction: Float) =
-            TODO("Not yet implemented")
+        override fun initialize(
+            isDarkTheme: Boolean,
+            dozeFraction: Float,
+            foldFraction: Float,
+            clockListener: ClockEventListener?,
+        ) = TODO("Not yet implemented")
 
         override fun dump(pw: PrintWriter) = TODO("Not yet implemented")
     }