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

Commit 46a3fd66 authored by Vidhi Shah's avatar Vidhi Shah Committed by Android (Google) Code Review
Browse files

Merge "Plumb suggested device details from MediaRepository to MediaInteractor." into main

parents f8f9d338 c75f3115
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)
    }