Loading src/com/android/customization/module/ThemePickerInjector.kt +3 −23 Original line number Original line Diff line number Diff line Loading @@ -61,8 +61,6 @@ import com.android.customization.picker.quickaffordance.data.repository.Keyguard import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordanceSnapshotRestorer import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordanceSnapshotRestorer import com.android.customization.picker.quickaffordance.ui.viewmodel.KeyguardQuickAffordancePickerViewModel import com.android.customization.picker.quickaffordance.ui.viewmodel.KeyguardQuickAffordancePickerViewModel import com.android.customization.picker.settings.data.repository.ColorContrastSectionRepository import com.android.customization.picker.settings.domain.interactor.ColorContrastSectionInteractor import com.android.customization.picker.settings.ui.viewmodel.ColorContrastSectionViewModel import com.android.customization.picker.settings.ui.viewmodel.ColorContrastSectionViewModel import com.android.systemui.shared.clocks.ClockRegistry import com.android.systemui.shared.clocks.ClockRegistry import com.android.systemui.shared.customization.data.content.CustomizationProviderClient import com.android.systemui.shared.customization.data.content.CustomizationProviderClient Loading Loading @@ -127,10 +125,10 @@ constructor( private var gridSnapshotRestorer: GridSnapshotRestorer? = null private var gridSnapshotRestorer: GridSnapshotRestorer? = null private var gridScreenViewModelFactory: GridScreenViewModel.Factory? = null private var gridScreenViewModelFactory: GridScreenViewModel.Factory? = null private var clockRegistryProvider: ClockRegistryProvider? = null private var clockRegistryProvider: ClockRegistryProvider? = null private var colorContrastSectionViewModelFactory: ColorContrastSectionViewModel.Factory? = null private var colorContrastSectionInteractor: ColorContrastSectionInteractor? = null @Inject lateinit var themesUserEventLogger: Lazy<ThemesUserEventLogger> @Inject lateinit var themesUserEventLogger: Lazy<ThemesUserEventLogger> @Inject lateinit var colorContrastSectionViewModelFactory: Lazy<ColorContrastSectionViewModel.Factory> override fun getCustomizationSections(activity: ComponentActivity): CustomizationSections { override fun getCustomizationSections(activity: ComponentActivity): CustomizationSections { val appContext = activity.applicationContext val appContext = activity.applicationContext Loading @@ -143,7 +141,7 @@ constructor( wallpaperColorsRepository = getWallpaperColorsRepository(), wallpaperColorsRepository = getWallpaperColorsRepository(), ), ), getKeyguardQuickAffordancePickerViewModelFactory(appContext), getKeyguardQuickAffordancePickerViewModelFactory(appContext), getColorContrastSectionViewModelFactory(), colorContrastSectionViewModelFactory.get(), getNotificationSectionViewModelFactory(appContext), getNotificationSectionViewModelFactory(appContext), getFlags(), getFlags(), getClockCarouselViewModelFactory( getClockCarouselViewModelFactory( Loading Loading @@ -235,24 +233,6 @@ constructor( .also { wallpaperInteractor = it } .also { wallpaperInteractor = it } } } private fun getColorContrastSectionInteractorImpl(): ColorContrastSectionInteractor { return ColorContrastSectionInteractor( ColorContrastSectionRepository(uiModeManager, bgDispatcher), ) } fun getColorContrastSectionInteractor(): ColorContrastSectionInteractor { return colorContrastSectionInteractor ?: getColorContrastSectionInteractorImpl().also { colorContrastSectionInteractor = it } } fun getColorContrastSectionViewModelFactory(): ColorContrastSectionViewModel.Factory { return colorContrastSectionViewModelFactory ?: ColorContrastSectionViewModel.Factory(getColorContrastSectionInteractor()).also { colorContrastSectionViewModelFactory = it } } override fun getKeyguardQuickAffordancePickerInteractor( override fun getKeyguardQuickAffordancePickerInteractor( context: Context context: Context ): KeyguardQuickAffordancePickerInteractor { ): KeyguardQuickAffordancePickerInteractor { Loading src/com/android/customization/picker/settings/data/repository/ColorContrastSectionRepository.kt +8 −2 Original line number Original line Diff line number Diff line Loading @@ -17,17 +17,23 @@ package com.android.customization.picker.settings.data.repository package com.android.customization.picker.settings.data.repository import android.app.UiModeManager import android.app.UiModeManager import com.android.wallpaper.picker.di.modules.BackgroundDispatcher import com.android.wallpaper.system.UiModeManagerWrapper import com.android.wallpaper.system.UiModeManagerWrapper import java.util.concurrent.Executor import java.util.concurrent.Executor import javax.inject.Inject import javax.inject.Singleton import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.asExecutor import kotlinx.coroutines.asExecutor import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.callbackFlow import kotlinx.coroutines.flow.callbackFlow class ColorContrastSectionRepository( @Singleton class ColorContrastSectionRepository @Inject constructor( uiModeManager: UiModeManagerWrapper, uiModeManager: UiModeManagerWrapper, private val bgDispatcher: CoroutineDispatcher @BackgroundDispatcher bgDispatcher: CoroutineDispatcher, ) { ) { var contrast: Flow<Float> = callbackFlow { var contrast: Flow<Float> = callbackFlow { val executor: Executor = bgDispatcher.asExecutor() val executor: Executor = bgDispatcher.asExecutor() Loading src/com/android/customization/picker/settings/domain/interactor/ColorContrastSectionInteractor.kt +6 −3 Original line number Original line Diff line number Diff line Loading @@ -17,10 +17,13 @@ package com.android.customization.picker.settings.domain.interactor package com.android.customization.picker.settings.domain.interactor import com.android.customization.picker.settings.data.repository.ColorContrastSectionRepository import com.android.customization.picker.settings.data.repository.ColorContrastSectionRepository import javax.inject.Inject import javax.inject.Singleton import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow class ColorContrastSectionInteractor( @Singleton colorContrastSectionRepository: ColorContrastSectionRepository class ColorContrastSectionInteractor ) { @Inject constructor(colorContrastSectionRepository: ColorContrastSectionRepository) { val contrast: Flow<Float> = colorContrastSectionRepository.contrast val contrast: Flow<Float> = colorContrastSectionRepository.contrast } } src/com/android/customization/picker/settings/ui/viewmodel/ColorContrastSectionViewModel.kt +6 −1 Original line number Original line Diff line number Diff line Loading @@ -22,6 +22,8 @@ import com.android.customization.picker.settings.domain.interactor.ColorContrast import com.android.themepicker.R import com.android.themepicker.R import com.android.wallpaper.picker.common.icon.ui.viewmodel.Icon import com.android.wallpaper.picker.common.icon.ui.viewmodel.Icon import com.android.wallpaper.picker.common.text.ui.viewmodel.Text import com.android.wallpaper.picker.common.text.ui.viewmodel.Text import javax.inject.Inject import javax.inject.Singleton import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map Loading Loading @@ -70,7 +72,10 @@ private constructor( HIGH(1f) HIGH(1f) } } class Factory( @Singleton class Factory @Inject constructor( private val colorContrastSectionInteractor: ColorContrastSectionInteractor, private val colorContrastSectionInteractor: ColorContrastSectionInteractor, ) : ViewModelProvider.Factory { ) : ViewModelProvider.Factory { override fun <T : ViewModel> create(modelClass: Class<T>): T { override fun <T : ViewModel> create(modelClass: Class<T>): T { Loading tests/common/Android.bp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ package { android_library { android_library { name: "ThemePickerTestLib", name: "ThemePickerTestLib", defaults: ["ThemePicker_defaults"], srcs: [ srcs: [ "src/**/*.java", "src/**/*.java", "src/**/*.kt", "src/**/*.kt", Loading Loading
src/com/android/customization/module/ThemePickerInjector.kt +3 −23 Original line number Original line Diff line number Diff line Loading @@ -61,8 +61,6 @@ import com.android.customization.picker.quickaffordance.data.repository.Keyguard import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordanceSnapshotRestorer import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordanceSnapshotRestorer import com.android.customization.picker.quickaffordance.ui.viewmodel.KeyguardQuickAffordancePickerViewModel import com.android.customization.picker.quickaffordance.ui.viewmodel.KeyguardQuickAffordancePickerViewModel import com.android.customization.picker.settings.data.repository.ColorContrastSectionRepository import com.android.customization.picker.settings.domain.interactor.ColorContrastSectionInteractor import com.android.customization.picker.settings.ui.viewmodel.ColorContrastSectionViewModel import com.android.customization.picker.settings.ui.viewmodel.ColorContrastSectionViewModel import com.android.systemui.shared.clocks.ClockRegistry import com.android.systemui.shared.clocks.ClockRegistry import com.android.systemui.shared.customization.data.content.CustomizationProviderClient import com.android.systemui.shared.customization.data.content.CustomizationProviderClient Loading Loading @@ -127,10 +125,10 @@ constructor( private var gridSnapshotRestorer: GridSnapshotRestorer? = null private var gridSnapshotRestorer: GridSnapshotRestorer? = null private var gridScreenViewModelFactory: GridScreenViewModel.Factory? = null private var gridScreenViewModelFactory: GridScreenViewModel.Factory? = null private var clockRegistryProvider: ClockRegistryProvider? = null private var clockRegistryProvider: ClockRegistryProvider? = null private var colorContrastSectionViewModelFactory: ColorContrastSectionViewModel.Factory? = null private var colorContrastSectionInteractor: ColorContrastSectionInteractor? = null @Inject lateinit var themesUserEventLogger: Lazy<ThemesUserEventLogger> @Inject lateinit var themesUserEventLogger: Lazy<ThemesUserEventLogger> @Inject lateinit var colorContrastSectionViewModelFactory: Lazy<ColorContrastSectionViewModel.Factory> override fun getCustomizationSections(activity: ComponentActivity): CustomizationSections { override fun getCustomizationSections(activity: ComponentActivity): CustomizationSections { val appContext = activity.applicationContext val appContext = activity.applicationContext Loading @@ -143,7 +141,7 @@ constructor( wallpaperColorsRepository = getWallpaperColorsRepository(), wallpaperColorsRepository = getWallpaperColorsRepository(), ), ), getKeyguardQuickAffordancePickerViewModelFactory(appContext), getKeyguardQuickAffordancePickerViewModelFactory(appContext), getColorContrastSectionViewModelFactory(), colorContrastSectionViewModelFactory.get(), getNotificationSectionViewModelFactory(appContext), getNotificationSectionViewModelFactory(appContext), getFlags(), getFlags(), getClockCarouselViewModelFactory( getClockCarouselViewModelFactory( Loading Loading @@ -235,24 +233,6 @@ constructor( .also { wallpaperInteractor = it } .also { wallpaperInteractor = it } } } private fun getColorContrastSectionInteractorImpl(): ColorContrastSectionInteractor { return ColorContrastSectionInteractor( ColorContrastSectionRepository(uiModeManager, bgDispatcher), ) } fun getColorContrastSectionInteractor(): ColorContrastSectionInteractor { return colorContrastSectionInteractor ?: getColorContrastSectionInteractorImpl().also { colorContrastSectionInteractor = it } } fun getColorContrastSectionViewModelFactory(): ColorContrastSectionViewModel.Factory { return colorContrastSectionViewModelFactory ?: ColorContrastSectionViewModel.Factory(getColorContrastSectionInteractor()).also { colorContrastSectionViewModelFactory = it } } override fun getKeyguardQuickAffordancePickerInteractor( override fun getKeyguardQuickAffordancePickerInteractor( context: Context context: Context ): KeyguardQuickAffordancePickerInteractor { ): KeyguardQuickAffordancePickerInteractor { Loading
src/com/android/customization/picker/settings/data/repository/ColorContrastSectionRepository.kt +8 −2 Original line number Original line Diff line number Diff line Loading @@ -17,17 +17,23 @@ package com.android.customization.picker.settings.data.repository package com.android.customization.picker.settings.data.repository import android.app.UiModeManager import android.app.UiModeManager import com.android.wallpaper.picker.di.modules.BackgroundDispatcher import com.android.wallpaper.system.UiModeManagerWrapper import com.android.wallpaper.system.UiModeManagerWrapper import java.util.concurrent.Executor import java.util.concurrent.Executor import javax.inject.Inject import javax.inject.Singleton import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.asExecutor import kotlinx.coroutines.asExecutor import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.callbackFlow import kotlinx.coroutines.flow.callbackFlow class ColorContrastSectionRepository( @Singleton class ColorContrastSectionRepository @Inject constructor( uiModeManager: UiModeManagerWrapper, uiModeManager: UiModeManagerWrapper, private val bgDispatcher: CoroutineDispatcher @BackgroundDispatcher bgDispatcher: CoroutineDispatcher, ) { ) { var contrast: Flow<Float> = callbackFlow { var contrast: Flow<Float> = callbackFlow { val executor: Executor = bgDispatcher.asExecutor() val executor: Executor = bgDispatcher.asExecutor() Loading
src/com/android/customization/picker/settings/domain/interactor/ColorContrastSectionInteractor.kt +6 −3 Original line number Original line Diff line number Diff line Loading @@ -17,10 +17,13 @@ package com.android.customization.picker.settings.domain.interactor package com.android.customization.picker.settings.domain.interactor import com.android.customization.picker.settings.data.repository.ColorContrastSectionRepository import com.android.customization.picker.settings.data.repository.ColorContrastSectionRepository import javax.inject.Inject import javax.inject.Singleton import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow class ColorContrastSectionInteractor( @Singleton colorContrastSectionRepository: ColorContrastSectionRepository class ColorContrastSectionInteractor ) { @Inject constructor(colorContrastSectionRepository: ColorContrastSectionRepository) { val contrast: Flow<Float> = colorContrastSectionRepository.contrast val contrast: Flow<Float> = colorContrastSectionRepository.contrast } }
src/com/android/customization/picker/settings/ui/viewmodel/ColorContrastSectionViewModel.kt +6 −1 Original line number Original line Diff line number Diff line Loading @@ -22,6 +22,8 @@ import com.android.customization.picker.settings.domain.interactor.ColorContrast import com.android.themepicker.R import com.android.themepicker.R import com.android.wallpaper.picker.common.icon.ui.viewmodel.Icon import com.android.wallpaper.picker.common.icon.ui.viewmodel.Icon import com.android.wallpaper.picker.common.text.ui.viewmodel.Text import com.android.wallpaper.picker.common.text.ui.viewmodel.Text import javax.inject.Inject import javax.inject.Singleton import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map Loading Loading @@ -70,7 +72,10 @@ private constructor( HIGH(1f) HIGH(1f) } } class Factory( @Singleton class Factory @Inject constructor( private val colorContrastSectionInteractor: ColorContrastSectionInteractor, private val colorContrastSectionInteractor: ColorContrastSectionInteractor, ) : ViewModelProvider.Factory { ) : ViewModelProvider.Factory { override fun <T : ViewModel> create(modelClass: Class<T>): T { override fun <T : ViewModel> create(modelClass: Class<T>): T { Loading
tests/common/Android.bp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ package { android_library { android_library { name: "ThemePickerTestLib", name: "ThemePickerTestLib", defaults: ["ThemePicker_defaults"], srcs: [ srcs: [ "src/**/*.java", "src/**/*.java", "src/**/*.kt", "src/**/*.kt", Loading