Display disconnected bluetooth devices only when local output device is available.
-If media app does not support cast->phone transferring, local output
audio device is unavailable. Disconnected bluetooth devices should be
also unavilable.
-These types are local output audio devices defined in MediaRoute2Info:
TYPE_BUILTIN_SPEAKER
TYPE_WIRED_HEADSET
TYPE_WIRED_HEADPHONES
TYPE_USB_DEVICE
TYPE_USB_HEADSET
TYPE_USB_ACCESSORY
TYPE_DOCK
TYPE_HDMI
-Update test case
Bug: 163095048
Test: make -j50 RunSettingsLibRoboTests
Change-Id: I0ceea496d677e514cce0e773a8731bb4eeff874d
(cherry picked from commit 254a0a2603)
This commit is contained in:
@@ -465,7 +465,16 @@ public class LocalMediaManager implements BluetoothCallback {
|
|||||||
synchronized (mMediaDevicesLock) {
|
synchronized (mMediaDevicesLock) {
|
||||||
mMediaDevices.clear();
|
mMediaDevices.clear();
|
||||||
mMediaDevices.addAll(devices);
|
mMediaDevices.addAll(devices);
|
||||||
mMediaDevices.addAll(buildDisconnectedBluetoothDevice());
|
// Add disconnected bluetooth devices only when phone output device is available.
|
||||||
|
for (MediaDevice device : devices) {
|
||||||
|
final int type = device.getDeviceType();
|
||||||
|
if (type == MediaDevice.MediaDeviceType.TYPE_USB_C_AUDIO_DEVICE
|
||||||
|
|| type == MediaDevice.MediaDeviceType.TYPE_3POINT5_MM_AUDIO_DEVICE
|
||||||
|
|| type == MediaDevice.MediaDeviceType.TYPE_PHONE_DEVICE) {
|
||||||
|
mMediaDevices.addAll(buildDisconnectedBluetoothDevice());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final MediaDevice infoMediaDevice = mInfoMediaManager.getCurrentConnectedDevice();
|
final MediaDevice infoMediaDevice = mInfoMediaManager.getCurrentConnectedDevice();
|
||||||
|
|||||||
@@ -585,6 +585,7 @@ public class LocalMediaManagerTest {
|
|||||||
when(device1.getId()).thenReturn(TEST_DEVICE_ID_1);
|
when(device1.getId()).thenReturn(TEST_DEVICE_ID_1);
|
||||||
when(device2.getId()).thenReturn(TEST_DEVICE_ID_2);
|
when(device2.getId()).thenReturn(TEST_DEVICE_ID_2);
|
||||||
when(device3.getId()).thenReturn(TEST_DEVICE_ID_3);
|
when(device3.getId()).thenReturn(TEST_DEVICE_ID_3);
|
||||||
|
when(device1.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_PHONE_DEVICE);
|
||||||
when(mLocalMediaManager.mPhoneDevice.getId()).thenReturn("test_phone_id");
|
when(mLocalMediaManager.mPhoneDevice.getId()).thenReturn("test_phone_id");
|
||||||
|
|
||||||
assertThat(mLocalMediaManager.mMediaDevices).hasSize(2);
|
assertThat(mLocalMediaManager.mMediaDevices).hasSize(2);
|
||||||
@@ -683,6 +684,7 @@ public class LocalMediaManagerTest {
|
|||||||
when(device1.getId()).thenReturn(TEST_DEVICE_ID_1);
|
when(device1.getId()).thenReturn(TEST_DEVICE_ID_1);
|
||||||
when(device2.getId()).thenReturn(TEST_DEVICE_ID_2);
|
when(device2.getId()).thenReturn(TEST_DEVICE_ID_2);
|
||||||
when(device3.getId()).thenReturn(TEST_DEVICE_ID_3);
|
when(device3.getId()).thenReturn(TEST_DEVICE_ID_3);
|
||||||
|
when(device1.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_PHONE_DEVICE);
|
||||||
when(mLocalMediaManager.mPhoneDevice.getId()).thenReturn("test_phone_id");
|
when(mLocalMediaManager.mPhoneDevice.getId()).thenReturn("test_phone_id");
|
||||||
|
|
||||||
assertThat(mLocalMediaManager.mMediaDevices).hasSize(2);
|
assertThat(mLocalMediaManager.mMediaDevices).hasSize(2);
|
||||||
|
|||||||
Reference in New Issue
Block a user