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

Commit 7d535ad9 authored by Michael Mikhail's avatar Michael Mikhail
Browse files

Add dagger.lazy to mediaCarouselInteractor parameter

Flag: com.android.systemui.media_controls_in_compose
Bug: 397989775
Test: build
Change-Id: Id47185834171e9aa634fab065aacf0864f5e2e53
parent 9301bb86
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -207,6 +207,8 @@ import com.android.systemui.communal.widgets.SmartspaceAppWidgetHostView
import com.android.systemui.communal.widgets.WidgetConfigurator
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.media.controls.ui.composable.MediaCarousel
import com.android.systemui.media.remedia.ui.compose.Media
import com.android.systemui.media.remedia.ui.compose.MediaPresentationStyle
import com.android.systemui.res.R
import com.android.systemui.scene.shared.flag.SceneContainerFlag
import com.android.systemui.statusbar.phone.SystemUIDialogFactory
@@ -1826,6 +1828,18 @@ private fun Umo(
                mediaHost = viewModel.mediaHost,
                carouselController = viewModel.mediaCarouselController,
            )
        } else if (Flags.mediaControlsInCompose()) {
            Media(
                viewModelFactory = viewModel.mediaViewModelFactory,
                presentationStyle = MediaPresentationStyle.Large,
                behavior = viewModel.mediaUiBehavior,
                modifier =
                    modifier.background(
                        MaterialTheme.colorScheme.primary,
                        RoundedCornerShape(dimensionResource(R.dimen.notification_corner_radius)),
                    ),
                onDismissed = { viewModel.mediaCarouselInteractorLazy.get().onSwipeToDismiss() },
            )
        } else {
            UmoLegacy(viewModel, modifier)
        }
+4 −0
Original line number Diff line number Diff line
@@ -57,8 +57,10 @@ import com.android.systemui.kosmos.testDispatcher
import com.android.systemui.kosmos.testScope
import com.android.systemui.kosmos.useUnconfinedTestDispatcher
import com.android.systemui.log.logcatLogBuffer
import com.android.systemui.media.controls.domain.pipeline.interactor.mediaCarouselInteractor
import com.android.systemui.media.controls.ui.controller.mediaCarouselController
import com.android.systemui.media.controls.ui.view.MediaHost
import com.android.systemui.media.remedia.ui.viewmodel.factory.mediaViewModelFactory
import com.android.systemui.settings.fakeUserTracker
import com.android.systemui.statusbar.policy.keyguardStateController
import com.android.systemui.testKosmos
@@ -110,6 +112,8 @@ class CommunalEditModeViewModelTest : SysuiTestCase() {
                packageManager,
                WIDGET_PICKER_PACKAGE_NAME,
                kosmos.mediaCarouselController,
                kosmos.mediaViewModelFactory,
                { kosmos.mediaCarouselInteractor },
            )
        }

+4 −0
Original line number Diff line number Diff line
@@ -84,10 +84,12 @@ import com.android.systemui.kosmos.runTest
import com.android.systemui.kosmos.testDispatcher
import com.android.systemui.kosmos.testScope
import com.android.systemui.log.logcatLogBuffer
import com.android.systemui.media.controls.domain.pipeline.interactor.mediaCarouselInteractor
import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager
import com.android.systemui.media.controls.ui.controller.mediaCarouselController
import com.android.systemui.media.controls.ui.view.MediaCarouselScrollHandler
import com.android.systemui.media.controls.ui.view.MediaHost
import com.android.systemui.media.remedia.ui.viewmodel.factory.mediaViewModelFactory
import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAwakeForTest
import com.android.systemui.power.domain.interactor.powerInteractor
import com.android.systemui.scene.data.repository.Idle
@@ -174,6 +176,8 @@ class CommunalViewModelTest(flags: FlagsParameterization) : SysuiTestCase() {
            false,
            kosmos.communalSceneLogger,
            kosmos.falsingInteractor,
            kosmos.mediaViewModelFactory,
            { kosmos.mediaCarouselInteractor },
        )
    }

+15 −0
Original line number Diff line number Diff line
@@ -28,10 +28,15 @@ import com.android.systemui.communal.domain.model.CommunalContentModel
import com.android.systemui.communal.shared.model.EditModeState
import com.android.systemui.communal.widgets.WidgetConfigurator
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.media.controls.domain.pipeline.interactor.MediaCarouselInteractor
import com.android.systemui.media.controls.ui.controller.MediaCarouselController
import com.android.systemui.media.controls.ui.view.MediaHost
import com.android.systemui.media.remedia.ui.compose.MediaUiBehavior
import com.android.systemui.media.remedia.ui.viewmodel.MediaCarouselVisibility
import com.android.systemui.media.remedia.ui.viewmodel.MediaViewModel
import com.android.systemui.util.kotlin.BooleanFlowOperators.anyOf
import com.android.systemui.util.kotlin.BooleanFlowOperators.not
import dagger.Lazy
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
@@ -44,6 +49,8 @@ abstract class BaseCommunalViewModel(
    private val communalInteractor: CommunalInteractor,
    val mediaHost: MediaHost,
    val mediaCarouselController: MediaCarouselController,
    val mediaViewModelFactory: MediaViewModel.Factory,
    val mediaCarouselInteractorLazy: Lazy<MediaCarouselInteractor>,
) {
    val currentScene: StateFlow<SceneKey> = communalSceneInteractor.currentScene

@@ -79,6 +86,14 @@ abstract class BaseCommunalViewModel(
     */
    val glanceableTouchAvailable: Flow<Boolean> = anyOf(not(isTouchConsumed), isNestedScrolling)

    val mediaUiBehavior: MediaUiBehavior
        get() =
            MediaUiBehavior(
                isCarouselDismissible = false,
                isCarouselScrollingEnabled = false,
                carouselVisibility = MediaCarouselVisibility.WhenAnyCardIsActive,
            )

    /**
     * The up-to-date value of the grid scroll offset. persisted to interactor on
     * {@link #persistScrollPosition}
+7 −0
Original line number Diff line number Diff line
@@ -47,14 +47,17 @@ import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.log.LogBuffer
import com.android.systemui.log.core.Logger
import com.android.systemui.log.dagger.CommunalLog
import com.android.systemui.media.controls.domain.pipeline.interactor.MediaCarouselInteractor
import com.android.systemui.media.controls.ui.controller.MediaCarouselController
import com.android.systemui.media.controls.ui.view.MediaHost
import com.android.systemui.media.dagger.MediaModule
import com.android.systemui.media.remedia.ui.viewmodel.MediaViewModel
import com.android.systemui.res.R
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.statusbar.policy.KeyguardStateController
import com.android.systemui.util.kotlin.BooleanFlowOperators.allOf
import com.android.systemui.util.kotlin.BooleanFlowOperators.not
import dagger.Lazy
import javax.inject.Inject
import javax.inject.Named
import kotlinx.coroutines.CoroutineDispatcher
@@ -87,12 +90,16 @@ constructor(
    private val packageManager: PackageManager,
    @Named(LAUNCHER_PACKAGE) private val launcherPackage: String,
    mediaCarouselController: MediaCarouselController,
    mediaViewModelFactory: MediaViewModel.Factory,
    mediaCarouselInteractorLazy: Lazy<MediaCarouselInteractor>,
) :
    BaseCommunalViewModel(
        communalSceneInteractor,
        communalInteractor,
        mediaHost,
        mediaCarouselController,
        mediaViewModelFactory,
        mediaCarouselInteractorLazy,
    ) {

    private val logger = Logger(logBuffer, "CommunalEditModeViewModel")
Loading