Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 62643ed0 authored by George Lin's avatar George Lin
Browse files

[TP] Clock carousel on clock settings screen

Overlay the clock carousel on the lock screen preview on the clock
settings screen

Test: Manuel test that the clock carousel shows on the clock settings
screen
Bug: 262924055

Change-Id: Ie495b5c7bf62c8531af391250e015fdb5c2f842d
parent 47698608
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -24,7 +24,9 @@ import androidx.lifecycle.ViewModelProvider
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 @@ class ClockSettingsFragment : AppbarFragment() {
            )
            .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,
            )
+2 −2
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ import androidx.lifecycle.lifecycleScope
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 @@ class ClockSectionController(
                    (InjectorProvider.getInjector() as ThemePickerInjector)
                        .getClockSectionViewModel(context, registry),
                lifecycleOwner = lifecycleOwner
            ) { navigationController.navigateTo(ClockCustomDemoFragment()) }
            ) { navigationController.navigateTo(ClockSettingsFragment()) }
        }
        return view
    }
+2 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ package com.android.customization.picker.preview.ui.section
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 @@ class PreviewWithClockCarouselSectionController(
        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)