Loading src/com/android/customization/picker/mode/data/repository/DarkModeRepository.kt +4 −12 Original line number Diff line number Diff line Loading @@ -18,11 +18,9 @@ package com.android.customization.picker.mode.data.repository import com.android.customization.picker.mode.shared.util.DarkModeUtil import com.android.wallpaper.system.PowerManagerWrapper import com.android.wallpaper.system.UiModeManagerWrapper import javax.inject.Inject import javax.inject.Singleton import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.map Loading @@ -31,7 +29,7 @@ class DarkModeRepository @Inject constructor( darkModeUtil: DarkModeUtil, private val uiModeManager: UiModeManagerWrapper, private val darkModeStateRepository: DarkModeStateRepository, private val powerManager: PowerManagerWrapper, ) { private val isPowerSaveMode = MutableStateFlow(powerManager.getIsPowerSaveMode() ?: false) Loading @@ -43,17 +41,11 @@ constructor( isPowerSaveMode.map { !it } } else flowOf(false) private val _isDarkMode = MutableStateFlow(uiModeManager.getIsNightModeActivated()) val isDarkMode = _isDarkMode.asStateFlow() val isDarkMode = darkModeStateRepository.isDarkMode fun setDarkModeActivated(isActive: Boolean) { uiModeManager.setNightModeActivated(isActive) refreshIsDarkModeActivated() } fun setIsDarkMode(isActive: Boolean) = darkModeStateRepository.setIsDarkMode(isActive) fun refreshIsDarkModeActivated() { _isDarkMode.value = uiModeManager.getIsNightModeActivated() } fun refreshIsDarkMode() = darkModeStateRepository.refreshIsDarkMode() fun refreshIsPowerSaveModeActivated() { powerManager.getIsPowerSaveMode()?.let { isPowerSaveMode.value = it } Loading src/com/android/customization/picker/mode/domain/interactor/DarkModeInteractor.kt +1 −1 Original line number Diff line number Diff line Loading @@ -25,5 +25,5 @@ class DarkModeInteractor @Inject constructor(private val repository: DarkModeRep val isEnabled = repository.isEnabled val isDarkMode = repository.isDarkMode fun setDarkModeActivated(isActive: Boolean) = repository.setDarkModeActivated(isActive) fun setIsDarkMode(isActive: Boolean) = repository.setIsDarkMode(isActive) } src/com/android/customization/picker/mode/shared/util/DarkModeLifecycleUtil.kt +0 −1 Original line number Diff line number Diff line Loading @@ -59,7 +59,6 @@ constructor( @Synchronized override fun onStart(owner: LifecycleOwner) { super.onStart(owner) darkModeRepository.refreshIsDarkModeActivated() darkModeRepository.refreshIsPowerSaveModeActivated() if (lifecycleOwner.lifecycle.currentState.isAtLeast(Lifecycle.State.STARTED)) { activityContext.registerReceiver( Loading src/com/android/customization/picker/mode/ui/binder/DarkModeBinder.kt +5 −1 Original line number Diff line number Diff line Loading @@ -54,7 +54,11 @@ object DarkModeBinder { } launch { viewModel.toggleDarkMode.collect { darkModeToggle.setOnCheckedChangeListener { _, _ -> it.invoke() } // Use onClickListener instead of onCheckedChangeListener to avoid the // potential cycle of: system value changes->the toggle isChecked value is // updated->the onCheckedChangeListener is called->the overriding value is // set. The overriding value should not be set by the system, only by user. darkModeToggle.setOnClickListener { _ -> it.invoke() } } } } Loading src/com/android/customization/picker/mode/ui/viewmodel/DarkModeViewModel.kt +5 −2 Original line number Diff line number Diff line Loading @@ -44,14 +44,17 @@ constructor(private val interactor: DarkModeInteractor, private val logger: Them val toggleDarkMode = combine(overridingIsDarkMode, isDarkMode) { override, current -> // Only set override if its value is different from current, else set to null { _overridingIsDarkMode.value = if (override == null) !current else null } { _overridingIsDarkMode.value = if (override == null || override == current) !current else null } } val onApply: Flow<(suspend () -> Unit)?> = combine(overridingIsDarkMode, isDarkMode, isEnabled) { override, current, isEnabled -> if (override != null && override != current && isEnabled) { { interactor.setDarkModeActivated(override) interactor.setIsDarkMode(override) logger.logDarkThemeApplied(override) } } else null Loading Loading
src/com/android/customization/picker/mode/data/repository/DarkModeRepository.kt +4 −12 Original line number Diff line number Diff line Loading @@ -18,11 +18,9 @@ package com.android.customization.picker.mode.data.repository import com.android.customization.picker.mode.shared.util.DarkModeUtil import com.android.wallpaper.system.PowerManagerWrapper import com.android.wallpaper.system.UiModeManagerWrapper import javax.inject.Inject import javax.inject.Singleton import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.map Loading @@ -31,7 +29,7 @@ class DarkModeRepository @Inject constructor( darkModeUtil: DarkModeUtil, private val uiModeManager: UiModeManagerWrapper, private val darkModeStateRepository: DarkModeStateRepository, private val powerManager: PowerManagerWrapper, ) { private val isPowerSaveMode = MutableStateFlow(powerManager.getIsPowerSaveMode() ?: false) Loading @@ -43,17 +41,11 @@ constructor( isPowerSaveMode.map { !it } } else flowOf(false) private val _isDarkMode = MutableStateFlow(uiModeManager.getIsNightModeActivated()) val isDarkMode = _isDarkMode.asStateFlow() val isDarkMode = darkModeStateRepository.isDarkMode fun setDarkModeActivated(isActive: Boolean) { uiModeManager.setNightModeActivated(isActive) refreshIsDarkModeActivated() } fun setIsDarkMode(isActive: Boolean) = darkModeStateRepository.setIsDarkMode(isActive) fun refreshIsDarkModeActivated() { _isDarkMode.value = uiModeManager.getIsNightModeActivated() } fun refreshIsDarkMode() = darkModeStateRepository.refreshIsDarkMode() fun refreshIsPowerSaveModeActivated() { powerManager.getIsPowerSaveMode()?.let { isPowerSaveMode.value = it } Loading
src/com/android/customization/picker/mode/domain/interactor/DarkModeInteractor.kt +1 −1 Original line number Diff line number Diff line Loading @@ -25,5 +25,5 @@ class DarkModeInteractor @Inject constructor(private val repository: DarkModeRep val isEnabled = repository.isEnabled val isDarkMode = repository.isDarkMode fun setDarkModeActivated(isActive: Boolean) = repository.setDarkModeActivated(isActive) fun setIsDarkMode(isActive: Boolean) = repository.setIsDarkMode(isActive) }
src/com/android/customization/picker/mode/shared/util/DarkModeLifecycleUtil.kt +0 −1 Original line number Diff line number Diff line Loading @@ -59,7 +59,6 @@ constructor( @Synchronized override fun onStart(owner: LifecycleOwner) { super.onStart(owner) darkModeRepository.refreshIsDarkModeActivated() darkModeRepository.refreshIsPowerSaveModeActivated() if (lifecycleOwner.lifecycle.currentState.isAtLeast(Lifecycle.State.STARTED)) { activityContext.registerReceiver( Loading
src/com/android/customization/picker/mode/ui/binder/DarkModeBinder.kt +5 −1 Original line number Diff line number Diff line Loading @@ -54,7 +54,11 @@ object DarkModeBinder { } launch { viewModel.toggleDarkMode.collect { darkModeToggle.setOnCheckedChangeListener { _, _ -> it.invoke() } // Use onClickListener instead of onCheckedChangeListener to avoid the // potential cycle of: system value changes->the toggle isChecked value is // updated->the onCheckedChangeListener is called->the overriding value is // set. The overriding value should not be set by the system, only by user. darkModeToggle.setOnClickListener { _ -> it.invoke() } } } } Loading
src/com/android/customization/picker/mode/ui/viewmodel/DarkModeViewModel.kt +5 −2 Original line number Diff line number Diff line Loading @@ -44,14 +44,17 @@ constructor(private val interactor: DarkModeInteractor, private val logger: Them val toggleDarkMode = combine(overridingIsDarkMode, isDarkMode) { override, current -> // Only set override if its value is different from current, else set to null { _overridingIsDarkMode.value = if (override == null) !current else null } { _overridingIsDarkMode.value = if (override == null || override == current) !current else null } } val onApply: Flow<(suspend () -> Unit)?> = combine(overridingIsDarkMode, isDarkMode, isEnabled) { override, current, isEnabled -> if (override != null && override != current && isEnabled) { { interactor.setDarkModeActivated(override) interactor.setIsDarkMode(override) logger.logDarkThemeApplied(override) } } else null Loading