Loading src/com/android/customization/picker/mode/ui/viewmodel/DarkModeViewModel.kt +6 −3 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import dagger.hilt.android.scopes.ViewModelScoped import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.combine @ViewModelScoped Loading @@ -31,7 +32,8 @@ constructor(private val interactor: DarkModeInteractor, private val logger: Them private val isDarkMode = interactor.isDarkMode val isEnabled = interactor.isEnabled private val overridingIsDarkMode = MutableStateFlow<Boolean?>(null) private val _overridingIsDarkMode = MutableStateFlow<Boolean?>(null) val overridingIsDarkMode = _overridingIsDarkMode.asStateFlow() val previewingIsDarkMode = combine(overridingIsDarkMode, isDarkMode, isEnabled) { override, current, isEnabled -> if (isEnabled) { Loading @@ -41,7 +43,8 @@ constructor(private val interactor: DarkModeInteractor, private val logger: Them val toggleDarkMode = combine(overridingIsDarkMode, isDarkMode) { override, current -> { overridingIsDarkMode.value = override?.not() ?: !current } // Only set override if its value is different from current, else set to null { _overridingIsDarkMode.value = if (override == null) !current else null } } val onApply: Flow<(suspend () -> Unit)?> = Loading @@ -55,6 +58,6 @@ constructor(private val interactor: DarkModeInteractor, private val logger: Them } fun resetPreview() { overridingIsDarkMode.value = null _overridingIsDarkMode.value = null } } src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt +7 −4 Original line number Diff line number Diff line Loading @@ -238,6 +238,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO context: Context, clockHostView: View, viewModel: CustomizationPickerViewModel2, colorUpdateViewModel: ColorUpdateViewModel, lifecycleOwner: LifecycleOwner, clockViewFactory: ClockViewFactory, ) { Loading Loading @@ -295,12 +296,12 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO clockPickerViewModel.previewingSeedColor, clockPickerViewModel.previewingClock, clockPickerViewModel.previewingFontAxisMap, ::Triple, colorUpdateViewModel.systemColorsUpdated, ::Quadruple, ) .collect { triple -> val (color, clock, axisMap) = triple .collect { quadruple -> val (color, clock, axisMap, _) = quadruple clockViewFactory.updateColor(clock.clockId, color) val axisList = axisMap.map { ClockFontAxisSetting(it.key, it.value) } clockViewFactory.updateFontAxes(clock.clockId, axisList) } Loading @@ -308,4 +309,6 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO } } } data class Quadruple<A, B, C, D>(val first: A, val second: B, val third: C, val fourth: D) } src/com/android/wallpaper/picker/common/preview/ui/binder/ThemePickerWorkspaceCallbackBinder.kt +10 −4 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import com.android.wallpaper.customization.ui.util.ThemePickerCustomizationOptio import com.android.wallpaper.customization.ui.viewmodel.ThemePickerCustomizationOptionsViewModel import com.android.wallpaper.model.Screen import com.android.wallpaper.picker.common.preview.ui.binder.WorkspaceCallbackBinder.Companion.sendMessage import com.android.wallpaper.picker.customization.ui.viewmodel.ColorUpdateViewModel import com.android.wallpaper.picker.customization.ui.viewmodel.CustomizationOptionsViewModel import javax.inject.Inject import javax.inject.Singleton Loading @@ -56,12 +57,14 @@ constructor( override fun bind( workspaceCallback: Message, viewModel: CustomizationOptionsViewModel, colorUpdateViewModel: ColorUpdateViewModel, screen: Screen, lifecycleOwner: LifecycleOwner, ) { defaultWorkspaceCallbackBinder.bind( workspaceCallback = workspaceCallback, viewModel = viewModel, colorUpdateViewModel = colorUpdateViewModel, screen = screen, lifecycleOwner = lifecycleOwner, ) Loading Loading @@ -158,10 +161,11 @@ constructor( launch { combine( viewModel.colorPickerViewModel2.previewingColorOption, viewModel.darkModeViewModel.previewingIsDarkMode, ::Pair, viewModel.darkModeViewModel.overridingIsDarkMode, colorUpdateViewModel.systemColorsUpdated, ::Triple, ) .collect { (colorModel, darkMode) -> .collect { (colorModel, darkMode, _) -> val bundle = Bundle().apply { if (colorModel != null) { Loading @@ -174,8 +178,10 @@ constructor( putIntArray(KEY_COLOR_VALUES, colors) } if (darkMode != null) { putBoolean(KEY_DARK_MODE, darkMode) } } workspaceCallback.sendMessage(MESSAGE_ID_UPDATE_COLOR, bundle) } } Loading Loading
src/com/android/customization/picker/mode/ui/viewmodel/DarkModeViewModel.kt +6 −3 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import dagger.hilt.android.scopes.ViewModelScoped import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.combine @ViewModelScoped Loading @@ -31,7 +32,8 @@ constructor(private val interactor: DarkModeInteractor, private val logger: Them private val isDarkMode = interactor.isDarkMode val isEnabled = interactor.isEnabled private val overridingIsDarkMode = MutableStateFlow<Boolean?>(null) private val _overridingIsDarkMode = MutableStateFlow<Boolean?>(null) val overridingIsDarkMode = _overridingIsDarkMode.asStateFlow() val previewingIsDarkMode = combine(overridingIsDarkMode, isDarkMode, isEnabled) { override, current, isEnabled -> if (isEnabled) { Loading @@ -41,7 +43,8 @@ constructor(private val interactor: DarkModeInteractor, private val logger: Them val toggleDarkMode = combine(overridingIsDarkMode, isDarkMode) { override, current -> { overridingIsDarkMode.value = override?.not() ?: !current } // Only set override if its value is different from current, else set to null { _overridingIsDarkMode.value = if (override == null) !current else null } } val onApply: Flow<(suspend () -> Unit)?> = Loading @@ -55,6 +58,6 @@ constructor(private val interactor: DarkModeInteractor, private val logger: Them } fun resetPreview() { overridingIsDarkMode.value = null _overridingIsDarkMode.value = null } }
src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt +7 −4 Original line number Diff line number Diff line Loading @@ -238,6 +238,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO context: Context, clockHostView: View, viewModel: CustomizationPickerViewModel2, colorUpdateViewModel: ColorUpdateViewModel, lifecycleOwner: LifecycleOwner, clockViewFactory: ClockViewFactory, ) { Loading Loading @@ -295,12 +296,12 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO clockPickerViewModel.previewingSeedColor, clockPickerViewModel.previewingClock, clockPickerViewModel.previewingFontAxisMap, ::Triple, colorUpdateViewModel.systemColorsUpdated, ::Quadruple, ) .collect { triple -> val (color, clock, axisMap) = triple .collect { quadruple -> val (color, clock, axisMap, _) = quadruple clockViewFactory.updateColor(clock.clockId, color) val axisList = axisMap.map { ClockFontAxisSetting(it.key, it.value) } clockViewFactory.updateFontAxes(clock.clockId, axisList) } Loading @@ -308,4 +309,6 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO } } } data class Quadruple<A, B, C, D>(val first: A, val second: B, val third: C, val fourth: D) }
src/com/android/wallpaper/picker/common/preview/ui/binder/ThemePickerWorkspaceCallbackBinder.kt +10 −4 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import com.android.wallpaper.customization.ui.util.ThemePickerCustomizationOptio import com.android.wallpaper.customization.ui.viewmodel.ThemePickerCustomizationOptionsViewModel import com.android.wallpaper.model.Screen import com.android.wallpaper.picker.common.preview.ui.binder.WorkspaceCallbackBinder.Companion.sendMessage import com.android.wallpaper.picker.customization.ui.viewmodel.ColorUpdateViewModel import com.android.wallpaper.picker.customization.ui.viewmodel.CustomizationOptionsViewModel import javax.inject.Inject import javax.inject.Singleton Loading @@ -56,12 +57,14 @@ constructor( override fun bind( workspaceCallback: Message, viewModel: CustomizationOptionsViewModel, colorUpdateViewModel: ColorUpdateViewModel, screen: Screen, lifecycleOwner: LifecycleOwner, ) { defaultWorkspaceCallbackBinder.bind( workspaceCallback = workspaceCallback, viewModel = viewModel, colorUpdateViewModel = colorUpdateViewModel, screen = screen, lifecycleOwner = lifecycleOwner, ) Loading Loading @@ -158,10 +161,11 @@ constructor( launch { combine( viewModel.colorPickerViewModel2.previewingColorOption, viewModel.darkModeViewModel.previewingIsDarkMode, ::Pair, viewModel.darkModeViewModel.overridingIsDarkMode, colorUpdateViewModel.systemColorsUpdated, ::Triple, ) .collect { (colorModel, darkMode) -> .collect { (colorModel, darkMode, _) -> val bundle = Bundle().apply { if (colorModel != null) { Loading @@ -174,8 +178,10 @@ constructor( putIntArray(KEY_COLOR_VALUES, colors) } if (darkMode != null) { putBoolean(KEY_DARK_MODE, darkMode) } } workspaceCallback.sendMessage(MESSAGE_ID_UPDATE_COLOR, bundle) } } Loading