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 56dd310..d6657a8 100644
--- a/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
+++ b/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
@@ -24,7 +24,9 @@
 import androidx.lifecycle.get
 import androidx.lifecycle.lifecycleScope
 import com.android.customization.module.ThemePickerInjector
+import com.android.customization.picker.clock.ui.binder.ClockCarouselViewBinder
 import com.android.customization.picker.clock.ui.binder.ClockSettingsBinder
+import com.android.customization.picker.clock.ui.view.ClockCarouselView
 import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
 import com.android.wallpaper.R
 import com.android.wallpaper.model.WallpaperColorsViewModel
@@ -107,14 +109,23 @@
             )
             .show()
 
+        val carouselView: ClockCarouselView = view.requireViewById(R.id.clock_carousel_view)
         lifecycleScope.launch {
-            val clockRegistry =
+            val registry =
                 withContext(Dispatchers.IO) { injector.getClockRegistryProvider(context).get() }
+            val clockViewFactory = injector.getClockViewFactory(context, registry)
+            ClockCarouselViewBinder.bind(
+                    view = carouselView,
+                    viewModel = injector.getClockCarouselViewModel(context, registry),
+                    clockViewFactory = { clockId -> clockViewFactory.getView(clockId) },
+                    lifecycleOwner = this@ClockSettingsFragment,
+                )
+                .show()
             ClockSettingsBinder.bind(
                 view,
                 ClockSettingsViewModel(
                     context,
-                    injector.getClockPickerInteractor(context, clockRegistry)
+                    injector.getClockPickerInteractor(context, registry)
                 ),
                 this@ClockSettingsFragment,
             )
diff --git a/src/com/android/customization/picker/clock/ui/section/ClockSectionController.kt b/src/com/android/customization/picker/clock/ui/section/ClockSectionController.kt
index bd81719..e1982d7 100644
--- a/src/com/android/customization/picker/clock/ui/section/ClockSectionController.kt
+++ b/src/com/android/customization/picker/clock/ui/section/ClockSectionController.kt
@@ -22,7 +22,7 @@
 import com.android.customization.module.ThemePickerInjector
 import com.android.customization.picker.clock.data.repository.ClockRegistryProvider
 import com.android.customization.picker.clock.ui.binder.ClockSectionViewBinder
-import com.android.customization.picker.clock.ui.fragment.ClockCustomDemoFragment
+import com.android.customization.picker.clock.ui.fragment.ClockSettingsFragment
 import com.android.customization.picker.clock.ui.view.ClockSectionView
 import com.android.wallpaper.R
 import com.android.wallpaper.config.BaseFlags
@@ -60,7 +60,7 @@
                     (InjectorProvider.getInjector() as ThemePickerInjector)
                         .getClockSectionViewModel(context, registry),
                 lifecycleOwner = lifecycleOwner
-            ) { navigationController.navigateTo(ClockCustomDemoFragment()) }
+            ) { navigationController.navigateTo(ClockSettingsFragment()) }
         }
         return view
     }
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 f1319c6..6522d84 100644
--- a/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt
+++ b/src/com/android/customization/picker/preview/ui/section/PreviewWithClockCarouselSectionController.kt
@@ -20,6 +20,7 @@
 import android.app.Activity
 import android.content.Context
 import android.view.ViewStub
+import androidx.core.view.isGone
 import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.lifecycleScope
 import com.android.customization.picker.clock.data.repository.ClockRegistryProvider
@@ -67,6 +68,7 @@
         val carouselViewStub: ViewStub = view.requireViewById(R.id.clock_carousel_view_stub)
         carouselViewStub.layoutResource = R.layout.clock_carousel_view
         val carouselView: ClockCarouselView = carouselViewStub.inflate() as ClockCarouselView
+        carouselView.isGone = true
         lifecycleOwner.lifecycleScope.launch {
             val registry = withContext(Dispatchers.IO) { clockRegistryProvider.get() }
             val clockViewFactory = clockViewFactoryProvider.get(registry)
