From 6bbd5558ef4d77ae65832d47deb82bb20b8ec22f Mon Sep 17 00:00:00 2001 From: timhypeng Date: Mon, 17 Feb 2020 14:53:45 +0800 Subject: [PATCH] Add getSelectedMediaDevice() API for output switcher - To get the device list that has been selected to current media. Bug: 146813761 Test: build pass Change-Id: I39b0e23148dfd13914e882ccb2a95073c6e9b00b --- .../settingslib/media/InfoMediaManager.java | 28 +++++++++++++++++++ .../settingslib/media/LocalMediaManager.java | 9 ++++++ 2 files changed, 37 insertions(+) diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java index 5ff88ac4140fc..f69e4f5d76894 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java @@ -192,6 +192,34 @@ public class InfoMediaManager extends MediaManager { return deviceList; } + /** + * Get the MediaDevice list that has been selected to current media. + * + * @return list of MediaDevice + */ + List getSelectedMediaDevice() { + final List deviceList = new ArrayList<>(); + if (TextUtils.isEmpty(mPackageName)) { + Log.w(TAG, "getSelectedMediaDevice() package name is null or empty!"); + return deviceList; + } + + final RoutingSessionInfo info = getRoutingSessionInfo(); + if (info != null) { + for (MediaRoute2Info route : mRouterManager.getControllerForSession(info) + .getSelectedRoutes()) { + deviceList.add(new InfoMediaDevice(mContext, mRouterManager, + route, mPackageName)); + } + return deviceList; + } + + Log.w(TAG, "getSelectedMediaDevice() cannot found selectable MediaDevice from : " + + mPackageName); + + return deviceList; + } + /** * Adjust the volume of {@link android.media.RoutingSessionInfo}. * diff --git a/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java index fc373a5a09214..617da6e0fcd04 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java @@ -281,6 +281,15 @@ public class LocalMediaManager implements BluetoothCallback { return mInfoMediaManager.getSelectableMediaDevice(); } + /** + * Get the MediaDevice list that has been selected to current media. + * + * @return list of MediaDevice + */ + public List getSelectedMediaDevice() { + return mInfoMediaManager.getSelectedMediaDevice(); + } + /** * Adjust the volume of session. *