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

Commit c28371cc authored by Michael Mikhail's avatar Michael Mikhail
Browse files

Add media composable to communal

Flag: com.android.systemui.media_controls_in_compose
Bug: 397989775
Test: Build, ui checked.
Change-Id: I27f0ffecb8dfe0b61ccdffb4d68a828f71f156ad
parent fa3ddb3a
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -207,6 +207,10 @@ 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.media.remedia.ui.compose.MediaUiBehavior
import com.android.systemui.media.remedia.ui.viewmodel.MediaCarouselVisibility
import com.android.systemui.res.R
import com.android.systemui.scene.shared.flag.SceneContainerFlag
import com.android.systemui.statusbar.phone.SystemUIDialogFactory
@@ -1826,6 +1830,23 @@ private fun Umo(
                mediaHost = viewModel.mediaHost,
                carouselController = viewModel.mediaCarouselController,
            )
        } else if (Flags.mediaControlsInCompose()) {
            Media(
                viewModelFactory = viewModel.mediaViewModelFactory,
                presentationStyle = MediaPresentationStyle.Large,
                behavior =
                    MediaUiBehavior(
                        isCarouselDismissible = false,
                        isCarouselScrollingEnabled = false,
                        carouselVisibility = MediaCarouselVisibility.WhenAnyCardIsActive,
                    ),
                modifier =
                    modifier.background(
                        MaterialTheme.colorScheme.primary,
                        RoundedCornerShape(dimensionResource(R.dimen.notification_corner_radius)),
                    ),
                onDismissed = { viewModel.mediaCarouselInteractor.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,
        )
    }

+4 −0
Original line number Diff line number Diff line
@@ -28,8 +28,10 @@ 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.viewmodel.MediaViewModel
import com.android.systemui.util.kotlin.BooleanFlowOperators.anyOf
import com.android.systemui.util.kotlin.BooleanFlowOperators.not
import kotlinx.coroutines.flow.Flow
@@ -44,6 +46,8 @@ abstract class BaseCommunalViewModel(
    private val communalInteractor: CommunalInteractor,
    val mediaHost: MediaHost,
    val mediaCarouselController: MediaCarouselController,
    val mediaViewModelFactory: MediaViewModel.Factory,
    val mediaCarouselInteractor: MediaCarouselInteractor,
) {
    val currentScene: StateFlow<SceneKey> = communalSceneInteractor.currentScene

+6 −0
Original line number Diff line number Diff line
@@ -47,9 +47,11 @@ 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
@@ -87,12 +89,16 @@ constructor(
    private val packageManager: PackageManager,
    @Named(LAUNCHER_PACKAGE) private val launcherPackage: String,
    mediaCarouselController: MediaCarouselController,
    mediaViewModelFactory: MediaViewModel.Factory,
    mediaCarouselInteractor: MediaCarouselInteractor,
) :
    BaseCommunalViewModel(
        communalSceneInteractor,
        communalInteractor,
        mediaHost,
        mediaCarouselController,
        mediaViewModelFactory,
        mediaCarouselInteractor,
    ) {

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