Merge "Use route name for output switcher chip" into sc-v2-dev am: db4082c251
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16202436 Change-Id: I49ab2038cb3bae8b888ef1162d2108fd7e6b7e9b
This commit is contained in:
@@ -109,11 +109,9 @@ class MediaDeviceManager @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@MainThread
|
@MainThread
|
||||||
private fun processDevice(key: String, oldKey: String?, device: MediaDevice?) {
|
private fun processDevice(key: String, oldKey: String?, device: MediaDeviceData?) {
|
||||||
val enabled = device != null
|
|
||||||
val data = MediaDeviceData(enabled, device?.iconWithoutBackground, device?.name)
|
|
||||||
listeners.forEach {
|
listeners.forEach {
|
||||||
it.onMediaDeviceChanged(key, oldKey, data)
|
it.onMediaDeviceChanged(key, oldKey, device)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,7 +133,7 @@ class MediaDeviceManager @Inject constructor(
|
|||||||
get() = controller?.sessionToken
|
get() = controller?.sessionToken
|
||||||
private var started = false
|
private var started = false
|
||||||
private var playbackType = PLAYBACK_TYPE_UNKNOWN
|
private var playbackType = PLAYBACK_TYPE_UNKNOWN
|
||||||
private var current: MediaDevice? = null
|
private var current: MediaDeviceData? = null
|
||||||
set(value) {
|
set(value) {
|
||||||
if (!started || value != field) {
|
if (!started || value != field) {
|
||||||
field = value
|
field = value
|
||||||
@@ -201,15 +199,13 @@ class MediaDeviceManager @Inject constructor(
|
|||||||
|
|
||||||
@WorkerThread
|
@WorkerThread
|
||||||
private fun updateCurrent() {
|
private fun updateCurrent() {
|
||||||
val device = localMediaManager.getCurrentConnectedDevice()
|
val device = localMediaManager.currentConnectedDevice
|
||||||
controller?.let {
|
val route = controller?.let { mr2manager.getRoutingSessionForMediaController(it)}
|
||||||
val route = mr2manager.getRoutingSessionForMediaController(it)
|
|
||||||
// If we get a null route, then don't trust the device. Just set to null to disable the
|
// If we have a controller but get a null route, then don't trust the device
|
||||||
// output switcher chip.
|
val enabled = device != null && (controller == null || route != null)
|
||||||
current = if (route != null) device else null
|
val name = route?.name?.toString() ?: device?.name
|
||||||
} ?: run {
|
current = MediaDeviceData(enabled, device?.iconWithoutBackground, name)
|
||||||
current = device
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ public class MediaControlPanelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
private lateinit var session: MediaSession
|
private lateinit var session: MediaSession
|
||||||
private val device = MediaDeviceData(true, null, DEVICE_NAME)
|
private val device = MediaDeviceData(true, null, DEVICE_NAME)
|
||||||
private val disabledDevice = MediaDeviceData(false, null, null)
|
private val disabledDevice = MediaDeviceData(false, null, "Disabled Device")
|
||||||
|
|
||||||
@JvmField @Rule val mockito = MockitoJUnit.rule()
|
@JvmField @Rule val mockito = MockitoJUnit.rule()
|
||||||
|
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ private const val PACKAGE = "PKG"
|
|||||||
private const val SESSION_KEY = "SESSION_KEY"
|
private const val SESSION_KEY = "SESSION_KEY"
|
||||||
private const val SESSION_TITLE = "SESSION_TITLE"
|
private const val SESSION_TITLE = "SESSION_TITLE"
|
||||||
private const val DEVICE_NAME = "DEVICE_NAME"
|
private const val DEVICE_NAME = "DEVICE_NAME"
|
||||||
|
private const val REMOTE_DEVICE_NAME = "REMOTE_DEVICE_NAME"
|
||||||
private const val USER_ID = 0
|
private const val USER_ID = 0
|
||||||
|
|
||||||
private fun <T> eq(value: T): T = Mockito.eq(value) ?: value
|
private fun <T> eq(value: T): T = Mockito.eq(value) ?: value
|
||||||
@@ -195,8 +196,6 @@ public class MediaDeviceManagerTest : SysuiTestCase() {
|
|||||||
// THEN the device should be disabled
|
// THEN the device should be disabled
|
||||||
val data = captureDeviceData(KEY)
|
val data = captureDeviceData(KEY)
|
||||||
assertThat(data.enabled).isFalse()
|
assertThat(data.enabled).isFalse()
|
||||||
assertThat(data.name).isNull()
|
|
||||||
assertThat(data.icon).isNull()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -262,6 +261,20 @@ public class MediaDeviceManagerTest : SysuiTestCase() {
|
|||||||
verify(listener).onKeyRemoved(eq(KEY))
|
verify(listener).onKeyRemoved(eq(KEY))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun deviceNameFromMR2RouteInfo() {
|
||||||
|
// GIVEN that MR2Manager returns a valid routing session
|
||||||
|
whenever(route.name).thenReturn(REMOTE_DEVICE_NAME)
|
||||||
|
// WHEN a notification is added
|
||||||
|
manager.onMediaDataLoaded(KEY, null, mediaData)
|
||||||
|
fakeBgExecutor.runAllReady()
|
||||||
|
fakeFgExecutor.runAllReady()
|
||||||
|
// THEN it uses the route name (instead of device name)
|
||||||
|
val data = captureDeviceData(KEY)
|
||||||
|
assertThat(data.enabled).isTrue()
|
||||||
|
assertThat(data.name).isEqualTo(REMOTE_DEVICE_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun deviceDisabledWhenMR2ReturnsNullRouteInfo() {
|
fun deviceDisabledWhenMR2ReturnsNullRouteInfo() {
|
||||||
// GIVEN that MR2Manager returns null for routing session
|
// GIVEN that MR2Manager returns null for routing session
|
||||||
@@ -273,8 +286,6 @@ public class MediaDeviceManagerTest : SysuiTestCase() {
|
|||||||
// THEN the device is disabled
|
// THEN the device is disabled
|
||||||
val data = captureDeviceData(KEY)
|
val data = captureDeviceData(KEY)
|
||||||
assertThat(data.enabled).isFalse()
|
assertThat(data.enabled).isFalse()
|
||||||
assertThat(data.name).isNull()
|
|
||||||
assertThat(data.icon).isNull()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -294,8 +305,6 @@ public class MediaDeviceManagerTest : SysuiTestCase() {
|
|||||||
// THEN the device is disabled
|
// THEN the device is disabled
|
||||||
val data = captureDeviceData(KEY)
|
val data = captureDeviceData(KEY)
|
||||||
assertThat(data.enabled).isFalse()
|
assertThat(data.enabled).isFalse()
|
||||||
assertThat(data.name).isNull()
|
|
||||||
assertThat(data.icon).isNull()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -315,8 +324,6 @@ public class MediaDeviceManagerTest : SysuiTestCase() {
|
|||||||
// THEN the device is disabled
|
// THEN the device is disabled
|
||||||
val data = captureDeviceData(KEY)
|
val data = captureDeviceData(KEY)
|
||||||
assertThat(data.enabled).isFalse()
|
assertThat(data.enabled).isFalse()
|
||||||
assertThat(data.name).isNull()
|
|
||||||
assertThat(data.icon).isNull()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user