Merge "Add a unique ID to MediaDeviceData" into tm-dev

This commit is contained in:
Justin Weir
2022-05-24 18:38:58 +00:00
committed by Android (Google) Code Review
2 changed files with 7 additions and 3 deletions

View File

@@ -212,5 +212,8 @@ data class MediaDeviceData
val name: CharSequence?, val name: CharSequence?,
/** Optional intent to override the default output switcher for this control */ /** Optional intent to override the default output switcher for this control */
val intent: PendingIntent? = null val intent: PendingIntent? = null,
/** Unique id for this device */
val id: String? = null
) )

View File

@@ -155,7 +155,8 @@ class MediaDeviceManager @Inject constructor(
private var playbackType = PLAYBACK_TYPE_UNKNOWN private var playbackType = PLAYBACK_TYPE_UNKNOWN
private var current: MediaDeviceData? = null private var current: MediaDeviceData? = null
set(value) { set(value) {
if (!started || value != field) { val hasSameId = value?.id != null && value.id == field?.id
if (!started || (!hasSameId && value != field)) {
field = value field = value
fgExecutor.execute { fgExecutor.execute {
processDevice(key, oldKey, value) processDevice(key, oldKey, value)
@@ -263,7 +264,7 @@ class MediaDeviceManager @Inject constructor(
// If we have a controller but get a null route, then don't trust the device // If we have a controller but get a null route, then don't trust the device
val enabled = device != null && (controller == null || route != null) val enabled = device != null && (controller == null || route != null)
val name = route?.name?.toString() ?: device?.name val name = route?.name?.toString() ?: device?.name
current = MediaDeviceData(enabled, device?.iconWithoutBackground, name) current = MediaDeviceData(enabled, device?.iconWithoutBackground, name, id = device?.id)
} }
} }
} }