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

Commit 8c35d007 authored by timhypeng's avatar timhypeng Committed by tim peng
Browse files

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 254a0a26)
parent 204479a0
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -465,7 +465,16 @@ public class LocalMediaManager implements BluetoothCallback {
            synchronized (mMediaDevicesLock) {
                mMediaDevices.clear();
                mMediaDevices.addAll(devices);
                // 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();
+2 −0
Original line number Diff line number Diff line
@@ -585,6 +585,7 @@ public class LocalMediaManagerTest {
        when(device1.getId()).thenReturn(TEST_DEVICE_ID_1);
        when(device2.getId()).thenReturn(TEST_DEVICE_ID_2);
        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");

        assertThat(mLocalMediaManager.mMediaDevices).hasSize(2);
@@ -683,6 +684,7 @@ public class LocalMediaManagerTest {
        when(device1.getId()).thenReturn(TEST_DEVICE_ID_1);
        when(device2.getId()).thenReturn(TEST_DEVICE_ID_2);
        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");

        assertThat(mLocalMediaManager.mMediaDevices).hasSize(2);