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

Commit 23e73a79 authored by Michael Mikhail's avatar Michael Mikhail
Browse files

Moving media host dependency to composables package

Since MediaHost is considered a view class. It should not be a
dependency of a view-model. It should be known to view classes which is
ShadeScene in this case. This CL moves the setting up code of MediaHost
to a view class.

Bug: 296122467
Test: atest SystemUITests
Test: manual
Flag: ACONFIG com.android.systemui.media_in_scene_container DEVELOPMENT
Change-Id: I2770cd5092a03e6332f8ac8e78ea0eef331f11af
parent fdbabfc4
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -42,7 +42,9 @@ import com.android.systemui.battery.BatteryMeterViewController
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.media.controls.ui.MediaCarouselController
import com.android.systemui.media.controls.ui.MediaHierarchyManager
import com.android.systemui.media.controls.ui.MediaHost
import com.android.systemui.media.controls.ui.MediaHostState
import com.android.systemui.media.controls.ui.composable.MediaCarousel
import com.android.systemui.media.dagger.MediaModule.QUICK_QS_PANEL
import com.android.systemui.notifications.ui.composable.NotificationScrollingStack
@@ -126,6 +128,12 @@ constructor(
            modifier = modifier,
        )

    init {
        mediaHost.expansion = MediaHostState.EXPANDED
        mediaHost.showsOnlyActiveMedia = true
        mediaHost.init(MediaHierarchyManager.LOCATION_QQS)
    }

    private fun destinationScenes(
        up: SceneKey,
    ): Map<UserAction, SceneModel> {
+0 −4
Original line number Diff line number Diff line
@@ -51,7 +51,6 @@ import com.android.systemui.keyguard.ui.viewmodel.KeyguardLongPressViewModel
import com.android.systemui.keyguard.ui.viewmodel.LockscreenSceneViewModel
import com.android.systemui.kosmos.testScope
import com.android.systemui.media.controls.pipeline.MediaDataManager
import com.android.systemui.media.controls.ui.MediaHost
import com.android.systemui.model.SysUiState
import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAsleepForTest
import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAwakeForTest
@@ -189,8 +188,6 @@ class SceneFrameworkIntegrationTest : SysuiTestCase() {

    @Mock private lateinit var mediaDataManager: MediaDataManager

    @Mock private lateinit var mediaHost: MediaHost

    private lateinit var emergencyAffordanceManager: EmergencyAffordanceManager
    private lateinit var telecomManager: TelecomManager

@@ -239,7 +236,6 @@ class SceneFrameworkIntegrationTest : SysuiTestCase() {
                qsSceneAdapter = qsFlexiglassAdapter,
                notifications = kosmos.notificationsPlaceholderViewModel,
                mediaDataManager = mediaDataManager,
                mediaHost = mediaHost,
            )

        kosmos.fakeDeviceEntryRepository.setUnlocked(false)
+0 −3
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ import com.android.systemui.flags.FakeFeatureFlagsClassic
import com.android.systemui.flags.Flags
import com.android.systemui.kosmos.testScope
import com.android.systemui.media.controls.pipeline.MediaDataManager
import com.android.systemui.media.controls.ui.MediaHost
import com.android.systemui.qs.ui.adapter.FakeQSSceneAdapter
import com.android.systemui.scene.domain.interactor.sceneInteractor
import com.android.systemui.scene.shared.model.SceneKey
@@ -90,7 +89,6 @@ class ShadeSceneViewModelTest : SysuiTestCase() {
    private lateinit var underTest: ShadeSceneViewModel

    @Mock private lateinit var mediaDataManager: MediaDataManager
    @Mock private lateinit var mediaHost: MediaHost

    @Before
    fun setUp() {
@@ -113,7 +111,6 @@ class ShadeSceneViewModelTest : SysuiTestCase() {
                qsSceneAdapter = qsFlexiglassAdapter,
                notifications = kosmos.notificationsPlaceholderViewModel,
                mediaDataManager = mediaDataManager,
                mediaHost = mediaHost,
            )
    }

+0 −12
Original line number Diff line number Diff line
@@ -20,15 +20,10 @@ import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor
import com.android.systemui.media.controls.pipeline.MediaDataManager
import com.android.systemui.media.controls.ui.MediaHierarchyManager
import com.android.systemui.media.controls.ui.MediaHost
import com.android.systemui.media.controls.ui.MediaHostState
import com.android.systemui.media.dagger.MediaModule
import com.android.systemui.qs.ui.adapter.QSSceneAdapter
import com.android.systemui.scene.shared.model.SceneKey
import com.android.systemui.statusbar.notification.stack.ui.viewmodel.NotificationsPlaceholderViewModel
import javax.inject.Inject
import javax.inject.Named
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
@@ -46,7 +41,6 @@ constructor(
    val shadeHeaderViewModel: ShadeHeaderViewModel,
    val notifications: NotificationsPlaceholderViewModel,
    val mediaDataManager: MediaDataManager,
    @Named(MediaModule.QUICK_QS_PANEL) private val mediaHost: MediaHost,
) {
    /** The key of the scene we should switch to when swiping up. */
    val upDestinationSceneKey: StateFlow<SceneKey> =
@@ -83,12 +77,6 @@ constructor(
        }
    }

    init {
        mediaHost.expansion = MediaHostState.EXPANDED
        mediaHost.showsOnlyActiveMedia = true
        mediaHost.init(MediaHierarchyManager.LOCATION_QQS)
    }

    fun isMediaVisible(): Boolean {
        // TODO(b/296122467): handle updates to carousel visibility while scene is still visible
        return mediaDataManager.hasActiveMediaOrRecommendation()