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

Commit bce80aee authored by Catherine Liang's avatar Catherine Liang Committed by Android (Google) Code Review
Browse files

Merge "Fix other colors loading" into main

parents 2f6c3c04 b8e48270
Loading
Loading
Loading
Loading
+10 −7
Original line number Diff line number Diff line
@@ -117,16 +117,19 @@ class ColorProvider(private val context: Context, stubPackageName: String) :
        }

        scope.launch {
            // Wait for the previous preset color loading job to finish before evaluating whether to
            // start a new one
            loaderJob?.join()
            if (presetColorBundles == null || reload) {
                loaderJob = launch {
                    try {
                    loaderJob = launch { loadPreset(isNewPickerUi) }
                        loadPreset(isNewPickerUi)
                        callback?.onOptionsLoaded(buildFinalList(isNewPickerUi))
                    } catch (e: Throwable) {
                        colorsAvailable = false
                        callback?.onError(e)
                    return@launch
                    }
                callback?.onOptionsLoaded(buildFinalList(isNewPickerUi))
                }
            } else {
                callback?.onOptionsLoaded(buildFinalList(isNewPickerUi))
            }
+46 −54
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.suspendCancellableCoroutine

// TODO (b/262924623): refactor to remove dependency on ColorCustomizationManager & ColorOption
@@ -58,9 +57,6 @@ constructor(

    override val colorOptions: Flow<Map<ColorType, List<ColorOptionModel>>> =
        combine(homeWallpaperColors, lockWallpaperColors) { homeColors, lockColors ->
                homeColors to lockColors
            }
            .map { (homeColors, lockColors) ->
            suspendCancellableCoroutine { continuation ->
                if (
                    homeColors is WallpaperColorsModel.Loading ||
@@ -78,17 +74,13 @@ constructor(
                }
                val homeColorsLoaded = homeColors as WallpaperColorsModel.Loaded
                val lockColorsLoaded = lockColors as WallpaperColorsModel.Loaded
                    colorManager.setWallpaperColors(
                        homeColorsLoaded.colors,
                        lockColorsLoaded.colors,
                    )
                colorManager.setWallpaperColors(homeColorsLoaded.colors, lockColorsLoaded.colors)
                colorManager.fetchOptions(
                    object : CustomizationManager.OptionsFetchedListener<ColorOption?> {
                        override fun onOptionsLoaded(options: MutableList<ColorOption?>?) {
                            val wallpaperColorOptions: MutableList<ColorOptionModel> =
                                mutableListOf()
                                val presetColorOptions: MutableList<ColorOptionModel> =
                                    mutableListOf()
                            val presetColorOptions: MutableList<ColorOptionModel> = mutableListOf()
                            options?.forEach { option ->
                                when ((option as ColorOptionImpl).type) {
                                    ColorType.WALLPAPER_COLOR ->
+1 −2
Original line number Diff line number Diff line
@@ -78,8 +78,7 @@ constructor(
            .map { (_, colors) -> colors }

    override val colorOptions: Flow<Map<ColorType, List<ColorOption>>> =
        combine(homeWallpaperColors, lockWallpaperColors, ::Pair)
            .map { (homeColors, lockColors) ->
        combine(homeWallpaperColors, lockWallpaperColors) { homeColors, lockColors ->
                suspendCancellableCoroutine { continuation ->
                    colorManager.setWallpaperColors(homeColors, lockColors)
                    colorManager.fetchOptions(