Loading src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt +1 −2 Original line number Diff line number Diff line Loading @@ -52,7 +52,6 @@ import javax.inject.Inject import javax.inject.Singleton import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.launch @Singleton Loading Loading @@ -259,7 +258,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) { launch { combine( clockPickerViewModel.previewingClock.filterNotNull(), clockPickerViewModel.previewingClock, clockPickerViewModel.previewingClockSize, ) { clock, size -> clock to size Loading src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModel.kt +4 −2 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.mapLatest import kotlinx.coroutines.flow.shareIn import kotlinx.coroutines.flow.stateIn /** View model for the clock customization screen. */ Loading Loading @@ -120,8 +121,9 @@ constructor( val selectedClock = clockPickerInteractor.selectedClock val previewingClock = combine(overridingClock, selectedClock) { overridingClock, selectedClock -> overridingClock ?: selectedClock (overridingClock ?: selectedClock) } .shareIn(viewModelScope, SharingStarted.WhileSubscribed(), 1) data class ClockStyleModel(val thumbnail: Drawable, val showEditButton: StateFlow<Boolean>) Loading src/com/android/wallpaper/picker/common/preview/ui/binder/ThemePickerWorkspaceCallbackBinder.kt +52 −0 Original line number Diff line number Diff line Loading @@ -25,13 +25,21 @@ import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import com.android.customization.model.grid.DefaultShapeGridManager.Companion.COL_GRID_NAME import com.android.customization.model.grid.DefaultShapeGridManager.Companion.COL_SHAPE_KEY import com.android.customization.picker.clock.shared.ClockSize import com.android.customization.picker.clock.ui.view.ClockViewFactory import com.android.customization.picker.color.data.util.MaterialColorsGenerator import com.android.systemui.shared.keyguard.shared.model.KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_END import com.android.systemui.shared.keyguard.shared.model.KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.CLOCK_SIZE_DYNAMIC import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.CLOCK_SIZE_SMALL import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_CLOCK_SIZE import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_HIDE_SMART_SPACE import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_INITIALLY_SELECTED_SLOT_ID import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_QUICK_AFFORDANCE_ID import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_SLOT_ID import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_DEFAULT_PREVIEW import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_HIDE_SMART_SPACE import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_PREVIEW_CLOCK_SIZE import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_PREVIEW_QUICK_AFFORDANCE_SELECTED import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_SLOT_SELECTED import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_START_CUSTOMIZING_QUICK_AFFORDANCES Loading Loading @@ -60,6 +68,7 @@ constructor( colorUpdateViewModel: ColorUpdateViewModel, screen: Screen, lifecycleOwner: LifecycleOwner, clockViewFactory: ClockViewFactory, ) { defaultWorkspaceCallbackBinder.bind( workspaceCallback = workspaceCallback, Loading @@ -67,6 +76,7 @@ constructor( colorUpdateViewModel = colorUpdateViewModel, screen = screen, lifecycleOwner = lifecycleOwner, clockViewFactory = clockViewFactory, ) if (viewModel !is ThemePickerCustomizationOptionsViewModel) { Loading Loading @@ -135,6 +145,48 @@ constructor( } } } launch { combine( viewModel.clockPickerViewModel.previewingClock, viewModel.clockPickerViewModel.previewingClockSize, ::Pair, ) .collect { (previewingClock, previewingClockSize) -> val hideSmartspace = clockViewFactory .getController(previewingClock.clockId) .let { when (previewingClockSize) { ClockSize.DYNAMIC -> it.largeClock.config .hasCustomWeatherDataDisplay ClockSize.SMALL -> it.smallClock.config .hasCustomWeatherDataDisplay } } workspaceCallback.sendMessage( MESSAGE_ID_HIDE_SMART_SPACE, Bundle().apply { putBoolean(KEY_HIDE_SMART_SPACE, hideSmartspace) }, ) workspaceCallback.sendMessage( MESSAGE_ID_PREVIEW_CLOCK_SIZE, Bundle().apply { putString( KEY_CLOCK_SIZE, when (previewingClockSize) { ClockSize.DYNAMIC -> CLOCK_SIZE_DYNAMIC ClockSize.SMALL -> CLOCK_SIZE_SMALL }, ) }, ) } } } } Screen.HOME_SCREEN -> Loading Loading
src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt +1 −2 Original line number Diff line number Diff line Loading @@ -52,7 +52,6 @@ import javax.inject.Inject import javax.inject.Singleton import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.launch @Singleton Loading Loading @@ -259,7 +258,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) { launch { combine( clockPickerViewModel.previewingClock.filterNotNull(), clockPickerViewModel.previewingClock, clockPickerViewModel.previewingClockSize, ) { clock, size -> clock to size Loading
src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModel.kt +4 −2 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.mapLatest import kotlinx.coroutines.flow.shareIn import kotlinx.coroutines.flow.stateIn /** View model for the clock customization screen. */ Loading Loading @@ -120,8 +121,9 @@ constructor( val selectedClock = clockPickerInteractor.selectedClock val previewingClock = combine(overridingClock, selectedClock) { overridingClock, selectedClock -> overridingClock ?: selectedClock (overridingClock ?: selectedClock) } .shareIn(viewModelScope, SharingStarted.WhileSubscribed(), 1) data class ClockStyleModel(val thumbnail: Drawable, val showEditButton: StateFlow<Boolean>) Loading
src/com/android/wallpaper/picker/common/preview/ui/binder/ThemePickerWorkspaceCallbackBinder.kt +52 −0 Original line number Diff line number Diff line Loading @@ -25,13 +25,21 @@ import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import com.android.customization.model.grid.DefaultShapeGridManager.Companion.COL_GRID_NAME import com.android.customization.model.grid.DefaultShapeGridManager.Companion.COL_SHAPE_KEY import com.android.customization.picker.clock.shared.ClockSize import com.android.customization.picker.clock.ui.view.ClockViewFactory import com.android.customization.picker.color.data.util.MaterialColorsGenerator import com.android.systemui.shared.keyguard.shared.model.KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_END import com.android.systemui.shared.keyguard.shared.model.KeyguardQuickAffordanceSlots.SLOT_ID_BOTTOM_START import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.CLOCK_SIZE_DYNAMIC import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.CLOCK_SIZE_SMALL import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_CLOCK_SIZE import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_HIDE_SMART_SPACE import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_INITIALLY_SELECTED_SLOT_ID import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_QUICK_AFFORDANCE_ID import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.KEY_SLOT_ID import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_DEFAULT_PREVIEW import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_HIDE_SMART_SPACE import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_PREVIEW_CLOCK_SIZE import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_PREVIEW_QUICK_AFFORDANCE_SELECTED import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_SLOT_SELECTED import com.android.systemui.shared.quickaffordance.shared.model.KeyguardPreviewConstants.MESSAGE_ID_START_CUSTOMIZING_QUICK_AFFORDANCES Loading Loading @@ -60,6 +68,7 @@ constructor( colorUpdateViewModel: ColorUpdateViewModel, screen: Screen, lifecycleOwner: LifecycleOwner, clockViewFactory: ClockViewFactory, ) { defaultWorkspaceCallbackBinder.bind( workspaceCallback = workspaceCallback, Loading @@ -67,6 +76,7 @@ constructor( colorUpdateViewModel = colorUpdateViewModel, screen = screen, lifecycleOwner = lifecycleOwner, clockViewFactory = clockViewFactory, ) if (viewModel !is ThemePickerCustomizationOptionsViewModel) { Loading Loading @@ -135,6 +145,48 @@ constructor( } } } launch { combine( viewModel.clockPickerViewModel.previewingClock, viewModel.clockPickerViewModel.previewingClockSize, ::Pair, ) .collect { (previewingClock, previewingClockSize) -> val hideSmartspace = clockViewFactory .getController(previewingClock.clockId) .let { when (previewingClockSize) { ClockSize.DYNAMIC -> it.largeClock.config .hasCustomWeatherDataDisplay ClockSize.SMALL -> it.smallClock.config .hasCustomWeatherDataDisplay } } workspaceCallback.sendMessage( MESSAGE_ID_HIDE_SMART_SPACE, Bundle().apply { putBoolean(KEY_HIDE_SMART_SPACE, hideSmartspace) }, ) workspaceCallback.sendMessage( MESSAGE_ID_PREVIEW_CLOCK_SIZE, Bundle().apply { putString( KEY_CLOCK_SIZE, when (previewingClockSize) { ClockSize.DYNAMIC -> CLOCK_SIZE_DYNAMIC ClockSize.SMALL -> CLOCK_SIZE_SMALL }, ) }, ) } } } } Screen.HOME_SCREEN -> Loading