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

Commit a8996bcd authored by Chris Poultney's avatar Chris Poultney
Browse files

Injects ColorContrastSection classes

Bug: 331594637
Flag: NA
Test: manually verified contrast flow still works
Change-Id: I5b7d7202b43e78d1888dee5dadc534af4002941e
parent 6bf62013
Loading
Loading
Loading
Loading
+3 −23
Original line number Diff line number Diff line
@@ -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.KeyguardQuickAffordanceSnapshotRestorer
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.systemui.shared.clocks.ClockRegistry
import com.android.systemui.shared.customization.data.content.CustomizationProviderClient
@@ -127,10 +125,10 @@ constructor(
    private var gridSnapshotRestorer: GridSnapshotRestorer? = null
    private var gridScreenViewModelFactory: GridScreenViewModel.Factory? = 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 colorContrastSectionViewModelFactory: Lazy<ColorContrastSectionViewModel.Factory>

    override fun getCustomizationSections(activity: ComponentActivity): CustomizationSections {
        val appContext = activity.applicationContext
@@ -143,7 +141,7 @@ constructor(
                        wallpaperColorsRepository = getWallpaperColorsRepository(),
                    ),
                    getKeyguardQuickAffordancePickerViewModelFactory(appContext),
                    getColorContrastSectionViewModelFactory(),
                    colorContrastSectionViewModelFactory.get(),
                    getNotificationSectionViewModelFactory(appContext),
                    getFlags(),
                    getClockCarouselViewModelFactory(
@@ -235,24 +233,6 @@ constructor(
                .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(
        context: Context
    ): KeyguardQuickAffordancePickerInteractor {
+8 −2
Original line number Diff line number Diff line
@@ -17,17 +17,23 @@
package com.android.customization.picker.settings.data.repository

import android.app.UiModeManager
import com.android.wallpaper.picker.di.modules.BackgroundDispatcher
import com.android.wallpaper.system.UiModeManagerWrapper
import java.util.concurrent.Executor
import javax.inject.Inject
import javax.inject.Singleton
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.asExecutor
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.callbackFlow

class ColorContrastSectionRepository(
@Singleton
class ColorContrastSectionRepository
@Inject
constructor(
    uiModeManager: UiModeManagerWrapper,
    private val bgDispatcher: CoroutineDispatcher
    @BackgroundDispatcher bgDispatcher: CoroutineDispatcher,
) {
    var contrast: Flow<Float> = callbackFlow {
        val executor: Executor = bgDispatcher.asExecutor()
+6 −3
Original line number Diff line number Diff line
@@ -17,10 +17,13 @@
package com.android.customization.picker.settings.domain.interactor

import com.android.customization.picker.settings.data.repository.ColorContrastSectionRepository
import javax.inject.Inject
import javax.inject.Singleton
import kotlinx.coroutines.flow.Flow

class ColorContrastSectionInteractor(
    colorContrastSectionRepository: ColorContrastSectionRepository
) {
@Singleton
class ColorContrastSectionInteractor
@Inject
constructor(colorContrastSectionRepository: ColorContrastSectionRepository) {
    val contrast: Flow<Float> = colorContrastSectionRepository.contrast
}
+6 −1
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@ import com.android.customization.picker.settings.domain.interactor.ColorContrast
import com.android.themepicker.R
import com.android.wallpaper.picker.common.icon.ui.viewmodel.Icon
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.map

@@ -70,7 +72,10 @@ private constructor(
        HIGH(1f)
    }

    class Factory(
    @Singleton
    class Factory
    @Inject
    constructor(
        private val colorContrastSectionInteractor: ColorContrastSectionInteractor,
    ) : ViewModelProvider.Factory {
        override fun <T : ViewModel> create(modelClass: Class<T>): T {
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ package {
android_library {
    name: "ThemePickerTestLib",

    defaults: ["ThemePicker_defaults"],
    srcs: [
        "src/**/*.java",
        "src/**/*.kt",
Loading