Loading packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +23 −1 Original line number Original line Diff line number Diff line Loading @@ -170,6 +170,26 @@ public class InfoMediaManager extends MediaManager { return false; return false; } } /** * Release session to stop playing media on MediaDevice. */ boolean releaseSession() { if (TextUtils.isEmpty(mPackageName)) { Log.w(TAG, "releaseSession() package name is null or empty!"); return false; } final RoutingSessionInfo info = getRoutingSessionInfo(); if (info != null) { mRouterManager.getControllerForSession(info).release(); return true; } Log.w(TAG, "releaseSession() Ignoring release session : " + mPackageName); return false; } /** /** * Get the MediaDevice list that can be added to current media. * Get the MediaDevice list that can be added to current media. * * Loading Loading @@ -304,9 +324,11 @@ public class InfoMediaManager extends MediaManager { private void buildAllRoutes() { private void buildAllRoutes() { for (MediaRoute2Info route : mRouterManager.getAllRoutes()) { for (MediaRoute2Info route : mRouterManager.getAllRoutes()) { if (route.isSystemRoute()) { addMediaDevice(route); addMediaDevice(route); } } } } } private void buildAvailableRoutes() { private void buildAvailableRoutes() { for (MediaRoute2Info route : mRouterManager.getAvailableRoutes(mPackageName)) { for (MediaRoute2Info route : mRouterManager.getAvailableRoutes(mPackageName)) { Loading packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -281,6 +281,13 @@ public class LocalMediaManager implements BluetoothCallback { return mInfoMediaManager.getSelectableMediaDevice(); return mInfoMediaManager.getSelectableMediaDevice(); } } /** * Release session to stop playing media on MediaDevice. */ public boolean releaseSession() { return mInfoMediaManager.releaseSession(); } /** /** * Get the MediaDevice list that has been selected to current media. * Get the MediaDevice list that has been selected to current media. * * Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +22 −0 Original line number Original line Diff line number Diff line Loading @@ -96,6 +96,7 @@ public class InfoMediaManagerTest { final MediaRoute2Info info = mock(MediaRoute2Info.class); final MediaRoute2Info info = mock(MediaRoute2Info.class); when(info.getId()).thenReturn(TEST_ID); when(info.getId()).thenReturn(TEST_ID); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.isSystemRoute()).thenReturn(true); final List<MediaRoute2Info> routes = new ArrayList<>(); final List<MediaRoute2Info> routes = new ArrayList<>(); routes.add(info); routes.add(info); Loading Loading @@ -166,6 +167,7 @@ public class InfoMediaManagerTest { final MediaRoute2Info info = mock(MediaRoute2Info.class); final MediaRoute2Info info = mock(MediaRoute2Info.class); when(info.getId()).thenReturn(TEST_ID); when(info.getId()).thenReturn(TEST_ID); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.isSystemRoute()).thenReturn(true); final List<MediaRoute2Info> routes = new ArrayList<>(); final List<MediaRoute2Info> routes = new ArrayList<>(); routes.add(info); routes.add(info); Loading Loading @@ -221,6 +223,7 @@ public class InfoMediaManagerTest { final MediaRoute2Info info = mock(MediaRoute2Info.class); final MediaRoute2Info info = mock(MediaRoute2Info.class); when(info.getId()).thenReturn(TEST_ID); when(info.getId()).thenReturn(TEST_ID); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.isSystemRoute()).thenReturn(true); final List<MediaRoute2Info> routes = new ArrayList<>(); final List<MediaRoute2Info> routes = new ArrayList<>(); routes.add(info); routes.add(info); Loading Loading @@ -438,4 +441,23 @@ public class InfoMediaManagerTest { assertThat(mInfoMediaManager.getSessionVolume()).isEqualTo(-1); assertThat(mInfoMediaManager.getSessionVolume()).isEqualTo(-1); } } @Test public void releaseSession_packageNameIsNull_returnFalse() { mInfoMediaManager.mPackageName = null; assertThat(mInfoMediaManager.releaseSession()).isFalse(); } @Test public void releaseSession_removeSuccessfully_returnTrue() { final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>(); final RoutingSessionInfo info = mock(RoutingSessionInfo.class); routingSessionInfos.add(info); mShadowRouter2Manager.setRoutingSessions(routingSessionInfos); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); assertThat(mInfoMediaManager.releaseSession()).isTrue(); } } } Loading
packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +23 −1 Original line number Original line Diff line number Diff line Loading @@ -170,6 +170,26 @@ public class InfoMediaManager extends MediaManager { return false; return false; } } /** * Release session to stop playing media on MediaDevice. */ boolean releaseSession() { if (TextUtils.isEmpty(mPackageName)) { Log.w(TAG, "releaseSession() package name is null or empty!"); return false; } final RoutingSessionInfo info = getRoutingSessionInfo(); if (info != null) { mRouterManager.getControllerForSession(info).release(); return true; } Log.w(TAG, "releaseSession() Ignoring release session : " + mPackageName); return false; } /** /** * Get the MediaDevice list that can be added to current media. * Get the MediaDevice list that can be added to current media. * * Loading Loading @@ -304,9 +324,11 @@ public class InfoMediaManager extends MediaManager { private void buildAllRoutes() { private void buildAllRoutes() { for (MediaRoute2Info route : mRouterManager.getAllRoutes()) { for (MediaRoute2Info route : mRouterManager.getAllRoutes()) { if (route.isSystemRoute()) { addMediaDevice(route); addMediaDevice(route); } } } } } private void buildAvailableRoutes() { private void buildAvailableRoutes() { for (MediaRoute2Info route : mRouterManager.getAvailableRoutes(mPackageName)) { for (MediaRoute2Info route : mRouterManager.getAvailableRoutes(mPackageName)) { Loading
packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -281,6 +281,13 @@ public class LocalMediaManager implements BluetoothCallback { return mInfoMediaManager.getSelectableMediaDevice(); return mInfoMediaManager.getSelectableMediaDevice(); } } /** * Release session to stop playing media on MediaDevice. */ public boolean releaseSession() { return mInfoMediaManager.releaseSession(); } /** /** * Get the MediaDevice list that has been selected to current media. * Get the MediaDevice list that has been selected to current media. * * Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +22 −0 Original line number Original line Diff line number Diff line Loading @@ -96,6 +96,7 @@ public class InfoMediaManagerTest { final MediaRoute2Info info = mock(MediaRoute2Info.class); final MediaRoute2Info info = mock(MediaRoute2Info.class); when(info.getId()).thenReturn(TEST_ID); when(info.getId()).thenReturn(TEST_ID); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.isSystemRoute()).thenReturn(true); final List<MediaRoute2Info> routes = new ArrayList<>(); final List<MediaRoute2Info> routes = new ArrayList<>(); routes.add(info); routes.add(info); Loading Loading @@ -166,6 +167,7 @@ public class InfoMediaManagerTest { final MediaRoute2Info info = mock(MediaRoute2Info.class); final MediaRoute2Info info = mock(MediaRoute2Info.class); when(info.getId()).thenReturn(TEST_ID); when(info.getId()).thenReturn(TEST_ID); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.isSystemRoute()).thenReturn(true); final List<MediaRoute2Info> routes = new ArrayList<>(); final List<MediaRoute2Info> routes = new ArrayList<>(); routes.add(info); routes.add(info); Loading Loading @@ -221,6 +223,7 @@ public class InfoMediaManagerTest { final MediaRoute2Info info = mock(MediaRoute2Info.class); final MediaRoute2Info info = mock(MediaRoute2Info.class); when(info.getId()).thenReturn(TEST_ID); when(info.getId()).thenReturn(TEST_ID); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.isSystemRoute()).thenReturn(true); final List<MediaRoute2Info> routes = new ArrayList<>(); final List<MediaRoute2Info> routes = new ArrayList<>(); routes.add(info); routes.add(info); Loading Loading @@ -438,4 +441,23 @@ public class InfoMediaManagerTest { assertThat(mInfoMediaManager.getSessionVolume()).isEqualTo(-1); assertThat(mInfoMediaManager.getSessionVolume()).isEqualTo(-1); } } @Test public void releaseSession_packageNameIsNull_returnFalse() { mInfoMediaManager.mPackageName = null; assertThat(mInfoMediaManager.releaseSession()).isFalse(); } @Test public void releaseSession_removeSuccessfully_returnTrue() { final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>(); final RoutingSessionInfo info = mock(RoutingSessionInfo.class); routingSessionInfos.add(info); mShadowRouter2Manager.setRoutingSessions(routingSessionInfos); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); assertThat(mInfoMediaManager.releaseSession()).isTrue(); } } }