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

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

Introduce reordering functionality in media composable

This CL only reorder media when reordering is allowed. There is still an issue in the transition between QS and QQS as media carousel remembers the page in each location.

Flag: com.android.systemui.media_controls_in_compose
Bug: 397989775
Test: Checked UI.
Change-Id: I6d27539f326ac93d418980d4a85b3c2d4ddfb465
parent e60d1401
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -75,6 +75,8 @@ interface MediaInteractor {

    /** Open media settings. */
    fun openMediaSettings()

    fun reorderMedia()
}

@SysUISingleton
@@ -106,6 +108,10 @@ constructor(
        activityStarter.startActivity(settingsIntent, true)
    }

    override fun reorderMedia() {
        repository.reorderMedia()
    }

    private fun toMediaSessionModel(dataModel: MediaDataModel): MediaSessionModel {
        return object : MediaSessionModel {
            override val key
+3 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import com.android.systemui.media.remedia.shared.model.MediaColorScheme
import com.android.systemui.media.remedia.shared.model.MediaSessionState
import com.android.systemui.plugins.FalsingManager
import com.android.systemui.res.R
import com.android.systemui.statusbar.notification.collection.provider.VisualStabilityProvider
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
@@ -54,6 +55,7 @@ class MediaViewModel
constructor(
    private val interactor: MediaInteractor,
    private val falsingSystem: MediaFalsingSystem,
    val visualStabilityProvider: VisualStabilityProvider,
    @Assisted private val context: Context,
    @Assisted private val carouselVisibility: MediaCarouselVisibility,
) : ExclusiveActivatable() {
@@ -309,6 +311,7 @@ constructor(
    }

    override suspend fun onActivated(): Nothing {
        visualStabilityProvider.addPersistentReorderingAllowedListener { interactor.reorderMedia() }
        awaitCancellation()
    }

+2 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import com.android.systemui.media.remedia.domain.interactor.mediaInteractor
import com.android.systemui.media.remedia.ui.viewmodel.MediaCarouselVisibility
import com.android.systemui.media.remedia.ui.viewmodel.MediaViewModel
import com.android.systemui.media.remedia.ui.viewmodel.mediaFalsingSystem
import com.android.systemui.statusbar.notification.collection.provider.visualStabilityProvider

val Kosmos.mediaViewModelFactory by
    Kosmos.Fixture {
@@ -33,6 +34,7 @@ val Kosmos.mediaViewModelFactory by
                return MediaViewModel(
                    interactor = mediaInteractor,
                    falsingSystem = mediaFalsingSystem,
                    visualStabilityProvider = visualStabilityProvider,
                    context = context,
                    carouselVisibility = carouselVisibility,
                )