Loading media/java/android/media/MediaRouter2.java +1 −1 Original line number Diff line number Diff line Loading @@ -237,9 +237,9 @@ public final class MediaRouter2 { } catch (RemoteException ex) { Log.e(TAG, "Unable to unregister media router.", ex); } mStub = null; } mShouldUpdateRoutes = true; mStub = null; } } Loading media/java/android/media/MediaRouter2Manager.java +9 −7 Original line number Diff line number Diff line Loading @@ -147,14 +147,16 @@ public final class MediaRouter2Manager { } synchronized (sLock) { if (mCallbackRecords.size() == 0 && mClient != null) { if (mCallbackRecords.size() == 0) { if (mClient != null) { try { mMediaRouterService.unregisterManager(mClient); } catch (RemoteException ex) { Log.e(TAG, "Unable to unregister media router manager", ex); } //TODO: clear mRoutes? mClient = null; } mRoutes.clear(); mPreferredFeaturesMap.clear(); } } Loading media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java +50 −2 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import static com.android.mediaroutertest.StubMediaRoute2ProviderService.VOLUME_ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import android.content.Context; Loading Loading @@ -160,6 +161,7 @@ public class MediaRouter2ManagerTest { }); MediaRoute2Info routeToRemove = routes.get(ROUTE_ID2); assertNotNull(routeToRemove); StubMediaRoute2ProviderService sInstance = StubMediaRoute2ProviderService.getInstance(); Loading @@ -171,6 +173,52 @@ public class MediaRouter2ManagerTest { assertTrue(addedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); } @Test public void testGetRoutes_removedRoute_returnsCorrectRoutes() throws Exception { CountDownLatch addedLatch = new CountDownLatch(1); CountDownLatch removedLatch = new CountDownLatch(1); RouteCallback routeCallback = new RouteCallback() { // Used to ensure the removed route is added. @Override public void onRoutesAdded(List<MediaRoute2Info> routes) { if (removedLatch.getCount() > 0) { return; } addedLatch.countDown(); } @Override public void onRoutesRemoved(List<MediaRoute2Info> routes) { removedLatch.countDown(); } }; mRouter2.registerRouteCallback(mExecutor, routeCallback, new RouteDiscoveryPreference.Builder(FEATURES_ALL, true).build()); mRouteCallbacks.add(routeCallback); Map<String, MediaRoute2Info> routes = waitAndGetRoutesWithManager(FEATURES_ALL); MediaRoute2Info routeToRemove = routes.get(ROUTE_ID2); assertNotNull(routeToRemove); StubMediaRoute2ProviderService sInstance = StubMediaRoute2ProviderService.getInstance(); assertNotNull(sInstance); sInstance.removeRoute(ROUTE_ID2); // Wait until the route is removed. assertTrue(removedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); Map<String, MediaRoute2Info> newRoutes = waitAndGetRoutesWithManager(FEATURES_ALL); assertNull(newRoutes.get(ROUTE_ID2)); // Revert the removal. sInstance.addRoute(routeToRemove); assertTrue(addedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); mRouter2.unregisterRouteCallback(routeCallback); } /** * Tests if we get proper routes for application that has special route feature. */ Loading Loading @@ -475,8 +523,8 @@ public class MediaRouter2ManagerTest { MediaRouter2Manager.Callback managerCallback = new MediaRouter2Manager.Callback() { @Override public void onRoutesAdded(List<MediaRoute2Info> routes) { for (int i = 0; i < routes.size(); i++) { if (!routes.get(i).isSystemRoute()) { for (MediaRoute2Info route : routes) { if (!route.isSystemRoute()) { addedLatch.countDown(); break; } Loading media/tests/MediaRouter/src/com/android/mediaroutertest/StubMediaRoute2ProviderService.java +2 −2 Original line number Diff line number Diff line Loading @@ -65,9 +65,9 @@ public class StubMediaRoute2ProviderService extends MediaRoute2ProviderService { public static final String ROUTE_NAME_VARIABLE_VOLUME = "Variable Volume Route"; public static final String FEATURE_SAMPLE = "com.android.mediarouteprovider.FEATURE_SAMPLE"; "com.android.mediaroutertest.FEATURE_SAMPLE"; public static final String FEATURE_SPECIAL = "com.android.mediarouteprovider.FEATURE_SPECIAL"; "com.android.mediaroutertest..FEATURE_SPECIAL"; Map<String, MediaRoute2Info> mRoutes = new HashMap<>(); Map<String, String> mRouteIdToSessionId = new HashMap<>(); Loading Loading
media/java/android/media/MediaRouter2.java +1 −1 Original line number Diff line number Diff line Loading @@ -237,9 +237,9 @@ public final class MediaRouter2 { } catch (RemoteException ex) { Log.e(TAG, "Unable to unregister media router.", ex); } mStub = null; } mShouldUpdateRoutes = true; mStub = null; } } Loading
media/java/android/media/MediaRouter2Manager.java +9 −7 Original line number Diff line number Diff line Loading @@ -147,14 +147,16 @@ public final class MediaRouter2Manager { } synchronized (sLock) { if (mCallbackRecords.size() == 0 && mClient != null) { if (mCallbackRecords.size() == 0) { if (mClient != null) { try { mMediaRouterService.unregisterManager(mClient); } catch (RemoteException ex) { Log.e(TAG, "Unable to unregister media router manager", ex); } //TODO: clear mRoutes? mClient = null; } mRoutes.clear(); mPreferredFeaturesMap.clear(); } } Loading
media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java +50 −2 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import static com.android.mediaroutertest.StubMediaRoute2ProviderService.VOLUME_ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import android.content.Context; Loading Loading @@ -160,6 +161,7 @@ public class MediaRouter2ManagerTest { }); MediaRoute2Info routeToRemove = routes.get(ROUTE_ID2); assertNotNull(routeToRemove); StubMediaRoute2ProviderService sInstance = StubMediaRoute2ProviderService.getInstance(); Loading @@ -171,6 +173,52 @@ public class MediaRouter2ManagerTest { assertTrue(addedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); } @Test public void testGetRoutes_removedRoute_returnsCorrectRoutes() throws Exception { CountDownLatch addedLatch = new CountDownLatch(1); CountDownLatch removedLatch = new CountDownLatch(1); RouteCallback routeCallback = new RouteCallback() { // Used to ensure the removed route is added. @Override public void onRoutesAdded(List<MediaRoute2Info> routes) { if (removedLatch.getCount() > 0) { return; } addedLatch.countDown(); } @Override public void onRoutesRemoved(List<MediaRoute2Info> routes) { removedLatch.countDown(); } }; mRouter2.registerRouteCallback(mExecutor, routeCallback, new RouteDiscoveryPreference.Builder(FEATURES_ALL, true).build()); mRouteCallbacks.add(routeCallback); Map<String, MediaRoute2Info> routes = waitAndGetRoutesWithManager(FEATURES_ALL); MediaRoute2Info routeToRemove = routes.get(ROUTE_ID2); assertNotNull(routeToRemove); StubMediaRoute2ProviderService sInstance = StubMediaRoute2ProviderService.getInstance(); assertNotNull(sInstance); sInstance.removeRoute(ROUTE_ID2); // Wait until the route is removed. assertTrue(removedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); Map<String, MediaRoute2Info> newRoutes = waitAndGetRoutesWithManager(FEATURES_ALL); assertNull(newRoutes.get(ROUTE_ID2)); // Revert the removal. sInstance.addRoute(routeToRemove); assertTrue(addedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); mRouter2.unregisterRouteCallback(routeCallback); } /** * Tests if we get proper routes for application that has special route feature. */ Loading Loading @@ -475,8 +523,8 @@ public class MediaRouter2ManagerTest { MediaRouter2Manager.Callback managerCallback = new MediaRouter2Manager.Callback() { @Override public void onRoutesAdded(List<MediaRoute2Info> routes) { for (int i = 0; i < routes.size(); i++) { if (!routes.get(i).isSystemRoute()) { for (MediaRoute2Info route : routes) { if (!route.isSystemRoute()) { addedLatch.countDown(); break; } Loading
media/tests/MediaRouter/src/com/android/mediaroutertest/StubMediaRoute2ProviderService.java +2 −2 Original line number Diff line number Diff line Loading @@ -65,9 +65,9 @@ public class StubMediaRoute2ProviderService extends MediaRoute2ProviderService { public static final String ROUTE_NAME_VARIABLE_VOLUME = "Variable Volume Route"; public static final String FEATURE_SAMPLE = "com.android.mediarouteprovider.FEATURE_SAMPLE"; "com.android.mediaroutertest.FEATURE_SAMPLE"; public static final String FEATURE_SPECIAL = "com.android.mediarouteprovider.FEATURE_SPECIAL"; "com.android.mediaroutertest..FEATURE_SPECIAL"; Map<String, MediaRoute2Info> mRoutes = new HashMap<>(); Map<String, String> mRouteIdToSessionId = new HashMap<>(); Loading