Loading packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +27 −0 Original line number Diff line number Diff line Loading @@ -218,6 +218,33 @@ public class InfoMediaManager extends MediaManager { return deviceList; } /** * Get the MediaDevice list that can be removed from current media session. * * @return list of MediaDevice */ List<MediaDevice> getDeselectableMediaDevice() { final List<MediaDevice> deviceList = new ArrayList<>(); if (TextUtils.isEmpty(mPackageName)) { Log.d(TAG, "getDeselectableMediaDevice() package name is null or empty!"); return deviceList; } final RoutingSessionInfo info = getRoutingSessionInfo(); if (info != null) { for (MediaRoute2Info route : mRouterManager.getDeselectableRoutes(info)) { deviceList.add(new InfoMediaDevice(mContext, mRouterManager, route, mPackageName)); Log.d(TAG, route.getName() + " is deselectable for " + mPackageName); } return deviceList; } Log.d(TAG, "getDeselectableMediaDevice() cannot found deselectable MediaDevice from : " + mPackageName); return deviceList; } /** * Get the MediaDevice list that has been selected to current media. * Loading packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +9 −0 Original line number Diff line number Diff line Loading @@ -307,6 +307,15 @@ public class LocalMediaManager implements BluetoothCallback { return mInfoMediaManager.getSelectableMediaDevice(); } /** * Get the MediaDevice list that can be removed from current media session. * * @return list of MediaDevice */ public List<MediaDevice> getDeselectableMediaDevice() { return mInfoMediaManager.getDeselectableMediaDevice(); } /** * Release session to stop playing media on MediaDevice. */ Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -415,6 +415,31 @@ public class InfoMediaManagerTest { assertThat(mInfoMediaManager.getSelectableMediaDevice()).isEmpty(); } @Test public void getDeselectableMediaDevice_packageNameIsNull_returnFalse() { mInfoMediaManager.mPackageName = null; assertThat(mInfoMediaManager.getDeselectableMediaDevice()).isEmpty(); } @Test public void getDeselectableMediaDevice_checkList() { final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>(); final RoutingSessionInfo info = mock(RoutingSessionInfo.class); routingSessionInfos.add(info); final List<MediaRoute2Info> mediaRoute2Infos = new ArrayList<>(); final MediaRoute2Info mediaRoute2Info = mock(MediaRoute2Info.class); mediaRoute2Infos.add(mediaRoute2Info); mShadowRouter2Manager.setRoutingSessions(routingSessionInfos); mShadowRouter2Manager.setDeselectableRoutes(mediaRoute2Infos); when(mediaRoute2Info.getName()).thenReturn(TEST_NAME); final List<MediaDevice> mediaDevices = mInfoMediaManager.getDeselectableMediaDevice(); assertThat(mediaDevices.size()).isEqualTo(1); assertThat(mediaDevices.get(0).getName()).isEqualTo(TEST_NAME); } @Test public void adjustSessionVolume_routingSessionInfoIsNull_noCrash() { mInfoMediaManager.adjustSessionVolume(null, 10); Loading packages/SettingsLib/tests/robotests/testutils/com/android/settingslib/testutils/shadow/ShadowRouter2Manager.java +11 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.settingslib.testutils.shadow; import android.annotation.NonNull; import android.media.MediaRoute2Info; import android.media.MediaRouter2Manager; import android.media.RoutingSessionInfo; Loading @@ -31,6 +32,7 @@ public class ShadowRouter2Manager { private List<MediaRoute2Info> mAvailableRoutes; private List<MediaRoute2Info> mAllRoutes; private List<MediaRoute2Info> mDeselectableRoutes; private List<RoutingSessionInfo> mActiveSessions; private List<RoutingSessionInfo> mRoutingSessions; Loading Loading @@ -70,6 +72,15 @@ public class ShadowRouter2Manager { mRoutingSessions = infos; } @Implementation public List<MediaRoute2Info> getDeselectableRoutes(@NonNull RoutingSessionInfo sessionInfo) { return mDeselectableRoutes; } public void setDeselectableRoutes(List<MediaRoute2Info> routes) { mDeselectableRoutes = routes; } public static ShadowRouter2Manager getShadow() { return (ShadowRouter2Manager) Shadow.extract( MediaRouter2Manager.getInstance(RuntimeEnvironment.application)); Loading Loading
packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +27 −0 Original line number Diff line number Diff line Loading @@ -218,6 +218,33 @@ public class InfoMediaManager extends MediaManager { return deviceList; } /** * Get the MediaDevice list that can be removed from current media session. * * @return list of MediaDevice */ List<MediaDevice> getDeselectableMediaDevice() { final List<MediaDevice> deviceList = new ArrayList<>(); if (TextUtils.isEmpty(mPackageName)) { Log.d(TAG, "getDeselectableMediaDevice() package name is null or empty!"); return deviceList; } final RoutingSessionInfo info = getRoutingSessionInfo(); if (info != null) { for (MediaRoute2Info route : mRouterManager.getDeselectableRoutes(info)) { deviceList.add(new InfoMediaDevice(mContext, mRouterManager, route, mPackageName)); Log.d(TAG, route.getName() + " is deselectable for " + mPackageName); } return deviceList; } Log.d(TAG, "getDeselectableMediaDevice() cannot found deselectable MediaDevice from : " + mPackageName); return deviceList; } /** * Get the MediaDevice list that has been selected to current media. * Loading
packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +9 −0 Original line number Diff line number Diff line Loading @@ -307,6 +307,15 @@ public class LocalMediaManager implements BluetoothCallback { return mInfoMediaManager.getSelectableMediaDevice(); } /** * Get the MediaDevice list that can be removed from current media session. * * @return list of MediaDevice */ public List<MediaDevice> getDeselectableMediaDevice() { return mInfoMediaManager.getDeselectableMediaDevice(); } /** * Release session to stop playing media on MediaDevice. */ Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -415,6 +415,31 @@ public class InfoMediaManagerTest { assertThat(mInfoMediaManager.getSelectableMediaDevice()).isEmpty(); } @Test public void getDeselectableMediaDevice_packageNameIsNull_returnFalse() { mInfoMediaManager.mPackageName = null; assertThat(mInfoMediaManager.getDeselectableMediaDevice()).isEmpty(); } @Test public void getDeselectableMediaDevice_checkList() { final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>(); final RoutingSessionInfo info = mock(RoutingSessionInfo.class); routingSessionInfos.add(info); final List<MediaRoute2Info> mediaRoute2Infos = new ArrayList<>(); final MediaRoute2Info mediaRoute2Info = mock(MediaRoute2Info.class); mediaRoute2Infos.add(mediaRoute2Info); mShadowRouter2Manager.setRoutingSessions(routingSessionInfos); mShadowRouter2Manager.setDeselectableRoutes(mediaRoute2Infos); when(mediaRoute2Info.getName()).thenReturn(TEST_NAME); final List<MediaDevice> mediaDevices = mInfoMediaManager.getDeselectableMediaDevice(); assertThat(mediaDevices.size()).isEqualTo(1); assertThat(mediaDevices.get(0).getName()).isEqualTo(TEST_NAME); } @Test public void adjustSessionVolume_routingSessionInfoIsNull_noCrash() { mInfoMediaManager.adjustSessionVolume(null, 10); Loading
packages/SettingsLib/tests/robotests/testutils/com/android/settingslib/testutils/shadow/ShadowRouter2Manager.java +11 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.settingslib.testutils.shadow; import android.annotation.NonNull; import android.media.MediaRoute2Info; import android.media.MediaRouter2Manager; import android.media.RoutingSessionInfo; Loading @@ -31,6 +32,7 @@ public class ShadowRouter2Manager { private List<MediaRoute2Info> mAvailableRoutes; private List<MediaRoute2Info> mAllRoutes; private List<MediaRoute2Info> mDeselectableRoutes; private List<RoutingSessionInfo> mActiveSessions; private List<RoutingSessionInfo> mRoutingSessions; Loading Loading @@ -70,6 +72,15 @@ public class ShadowRouter2Manager { mRoutingSessions = infos; } @Implementation public List<MediaRoute2Info> getDeselectableRoutes(@NonNull RoutingSessionInfo sessionInfo) { return mDeselectableRoutes; } public void setDeselectableRoutes(List<MediaRoute2Info> routes) { mDeselectableRoutes = routes; } public static ShadowRouter2Manager getShadow() { return (ShadowRouter2Manager) Shadow.extract( MediaRouter2Manager.getInstance(RuntimeEnvironment.application)); Loading