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

Commit c75f3115 authored by Vidhi Shah's avatar Vidhi Shah
Browse files

Plumb suggested device details from MediaRepository to MediaInteractor.


Bug: 409098192
Flag: com.android.systemui.media_controls_in_compose
Test: Will be tested once SysUI compose migration lands.
Change-Id: I187371fee3dce579bb0fed31f25de33edb1bad60
parent fef35050
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -288,6 +288,7 @@ class MediaRepositoryTest : SysuiTestCase() {
            isResume = resumption,
            resumeAction = resumeAction,
            isExplicit = isExplicit,
            suggestionData = mediaModel.suggestionData,
        )
    }

+3 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import com.android.systemui.common.shared.model.Icon
import com.android.systemui.media.controls.shared.model.MediaButton
import com.android.systemui.media.controls.shared.model.MediaDeviceData
import com.android.systemui.media.controls.shared.model.MediaNotificationAction
import com.android.systemui.media.controls.shared.model.SuggestionData
import com.android.systemui.media.remedia.shared.model.MediaColorScheme
import com.android.systemui.media.remedia.shared.model.MediaSessionState

@@ -68,4 +69,6 @@ data class MediaDataModel(
    /** Action that should be performed to restart a non active session. */
    val resumeAction: Runnable?,
    val isExplicit: Boolean,
    /** Device suggestions data */
    val suggestionData: SuggestionData?,
)
+1 −0
Original line number Diff line number Diff line
@@ -235,6 +235,7 @@ constructor(
                isResume = resumption,
                resumeAction = resumeAction,
                isExplicit = isExplicit,
                suggestionData = suggestionData,
            )
        }
    }
+15 −1
Original line number Diff line number Diff line
@@ -22,14 +22,17 @@ import android.provider.Settings
import androidx.compose.ui.graphics.ImageBitmap
import androidx.compose.ui.graphics.asImageBitmap
import com.android.internal.logging.InstanceId
import com.android.settingslib.media.LocalMediaManager.MediaDeviceState
import com.android.systemui.biometrics.Utils.toBitmap
import com.android.systemui.common.shared.model.ContentDescription
import com.android.systemui.common.shared.model.Icon
import com.android.systemui.common.shared.model.asIcon
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.media.controls.domain.pipeline.MediaDataProcessor
import com.android.systemui.media.controls.domain.pipeline.getNotificationActions
import com.android.systemui.media.controls.shared.model.MediaAction
import com.android.systemui.media.controls.shared.model.SuggestionData
import com.android.systemui.media.remedia.data.model.MediaDataModel
import com.android.systemui.media.remedia.data.repository.MediaRepository
import com.android.systemui.media.remedia.domain.model.MediaActionModel
@@ -150,7 +153,7 @@ constructor(
                    }

            override val suggestedOutputDevice: MediaOutputDeviceModel?
                get() = TODO("Not yet implemented")
                get() = dataModel.suggestionData?.toDeviceModel()

            override val actionButtonLayout: MediaCardActionButtonLayout
                get() =
@@ -214,6 +217,17 @@ constructor(
        } ?: MediaActionModel.None
    }

    private fun SuggestionData.toDeviceModel(): MediaOutputDeviceModel? {
        if (suggestedMediaDeviceData == null) {
            return null
        }
        return MediaOutputDeviceModel(
            suggestedMediaDeviceData.name,
            suggestedMediaDeviceData.icon.asIcon(),
            suggestedMediaDeviceData.connectionState == MediaDeviceState.STATE_CONNECTING,
        )
    }

    companion object {
        private val settingsIntent: Intent = Intent(Settings.ACTION_MEDIA_CONTROLS_SETTINGS)
    }