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

Commit d8bbe3b0 authored by George Lin's avatar George Lin Committed by Android (Google) Code Review
Browse files

Merge "Fix SurfaceControlViewHost holding surface view (4/4)" into main

parents ad48b0ed f1d39384
Loading
Loading
Loading
Loading
+136 −121
Original line number Diff line number Diff line
@@ -19,6 +19,10 @@ package com.android.wallpaper.picker.common.preview.ui.binder
import android.os.Bundle
import android.os.Message
import androidx.core.os.bundleOf
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import com.android.customization.model.grid.DefaultShapeGridManager.Companion.COL_GRID_NAME
import com.android.customization.model.grid.DefaultShapeGridManager.Companion.COL_SHAPE_KEY
import com.android.customization.picker.clock.shared.ClockSize
@@ -47,7 +51,6 @@ import com.android.wallpaper.picker.customization.ui.viewmodel.ColorUpdateViewMo
import com.android.wallpaper.picker.customization.ui.viewmodel.CustomizationOptionsViewModel
import javax.inject.Inject
import javax.inject.Singleton
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.launch

@@ -59,12 +62,13 @@ constructor(
    private val materialColorsGenerator: MaterialColorsGenerator,
) : WorkspaceCallbackBinder {

    override suspend fun bind(
    override fun bind(
        workspaceCallback: Message,
        viewModel: CustomizationOptionsViewModel,
        colorUpdateViewModel: ColorUpdateViewModel,
        screen: Screen,
        clockViewFactory: ClockViewFactory,
        lifecycleOwner: LifecycleOwner,
    ) {
        defaultWorkspaceCallbackBinder.bind(
            workspaceCallback = workspaceCallback,
@@ -72,6 +76,7 @@ constructor(
            colorUpdateViewModel = colorUpdateViewModel,
            screen = screen,
            clockViewFactory = clockViewFactory,
            lifecycleOwner = lifecycleOwner,
        )

        if (viewModel !is ThemePickerCustomizationOptionsViewModel) {
@@ -82,7 +87,8 @@ constructor(

        when (screen) {
            Screen.LOCK_SCREEN ->
                coroutineScope {
                lifecycleOwner.lifecycleScope.launch {
                    lifecycleOwner.repeatOnLifecycle(Lifecycle.State.CREATED) {
                        launch {
                            viewModel.selectedOption.collect {
                                when (it) {
@@ -106,7 +112,8 @@ constructor(
                        }

                        launch {
                        viewModel.keyguardQuickAffordancePickerViewModel2.selectedSlotId.collect {
                            viewModel.keyguardQuickAffordancePickerViewModel2.selectedSlotId
                                .collect {
                                    workspaceCallback.sendMessage(
                                        MESSAGE_ID_SLOT_SELECTED,
                                        Bundle().apply { putString(KEY_SLOT_ID, it) },
@@ -115,7 +122,8 @@ constructor(
                        }

                        launch {
                        viewModel.keyguardQuickAffordancePickerViewModel2.previewingQuickAffordances
                            viewModel.keyguardQuickAffordancePickerViewModel2
                                .previewingQuickAffordances
                                .collect {
                                    it[SLOT_ID_BOTTOM_START]?.let {
                                        workspaceCallback.sendMessage(
@@ -146,12 +154,16 @@ constructor(
                                )
                                .collect { (previewingClock, previewingClockSize) ->
                                    val hideSmartspace =
                                    clockViewFactory.getController(previewingClock.clockId)?.let {
                                        clockViewFactory
                                            .getController(previewingClock.clockId)
                                            ?.let {
                                                when (previewingClockSize) {
                                                    ClockSize.DYNAMIC ->
                                                it.largeClock.config.hasCustomWeatherDataDisplay
                                                        it.largeClock.config
                                                            .hasCustomWeatherDataDisplay
                                                    ClockSize.SMALL ->
                                                it.smallClock.config.hasCustomWeatherDataDisplay
                                                        it.smallClock.config
                                                            .hasCustomWeatherDataDisplay
                                                }
                                            } ?: false
                                    workspaceCallback.sendMessage(
@@ -176,8 +188,10 @@ constructor(
                                }
                        }
                    }
                }
            Screen.HOME_SCREEN ->
                coroutineScope {
                lifecycleOwner.lifecycleScope.launch {
                    lifecycleOwner.repeatOnLifecycle(Lifecycle.State.CREATED) {
                        launch {
                            viewModel.appIconPickerViewModel.previewingShapeKey.collect {
                                workspaceCallback.sendMessage(
@@ -234,6 +248,7 @@ constructor(
                    }
                }
        }
    }

    companion object {
        const val MESSAGE_ID_UPDATE_SHAPE = 2586