From 8c35d00752120ef91dad1ffd2d3cb8d0f5d4434f Mon Sep 17 00:00:00 2001 From: timhypeng Date: Wed, 12 Aug 2020 13:03:39 +0800 Subject: 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 254a0a2603a539c4b4fd2eec12bbec874553ee37) --- .../src/com/android/settingslib/media/LocalMediaManager.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'packages/SettingsLib/src') diff --git a/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java index 9d06c8467e41..72a6074ff89c 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java @@ -465,7 +465,16 @@ public class LocalMediaManager implements BluetoothCallback { synchronized (mMediaDevicesLock) { mMediaDevices.clear(); 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(); -- cgit v1.2.3