Loading media/java/android/media/MediaRouter2Manager.java +29 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.content.Context; import android.os.Handler; import android.os.RemoteException; import android.os.ServiceManager; import android.text.TextUtils; import android.util.Log; import com.android.internal.annotations.GuardedBy; Loading Loading @@ -171,6 +172,34 @@ public class MediaRouter2Manager { return routes; } /** * Gets the list of routes that are actively used by {@link MediaRouter2}. */ @NonNull public List<MediaRoute2Info> getActiveRoutes() { List<MediaRoute2Info> routes = new ArrayList<>(); synchronized (mRoutesLock) { for (MediaRoute2Info route : mRoutes.values()) { if (!TextUtils.isEmpty(route.getClientPackageName())) { routes.add(route); } } } return routes; } /** * Gets the list of discovered routes */ @NonNull public List<MediaRoute2Info> getAllRoutes() { List<MediaRoute2Info> routes = new ArrayList<>(); synchronized (mRoutesLock) { routes.addAll(mRoutes.values()); } return routes; } /** * Selects media route for the specified package name. * Loading media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouterManagerTest.java +31 −0 Original line number Diff line number Diff line Loading @@ -256,6 +256,37 @@ public class MediaRouterManagerTest { } } @Test public void testGetActiveRoutes() throws Exception { CountDownLatch latch = new CountDownLatch(1); CountDownLatch latch2 = new CountDownLatch(1); Map<String, MediaRoute2Info> routes = waitAndGetRoutesWithManager(CATEGORIES_ALL); addRouterCallback(new MediaRouter2.Callback()); addManagerCallback(new MediaRouter2Manager.Callback() { @Override public void onRouteSelected(String packageName, MediaRoute2Info route) { if (TextUtils.equals(mPackageName, packageName) && route != null && TextUtils.equals(route.getId(), ROUTE_ID1)) { latch.countDown(); } } }); assertEquals(0, mManager.getActiveRoutes().size()); mManager.selectRoute(mPackageName, routes.get(ROUTE_ID1)); latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS); assertEquals(1, mManager.getActiveRoutes().size()); awaitOnRouteChangedManager( () -> mManager.unselectRoute(mPackageName), ROUTE_ID1, route -> TextUtils.equals(route.getClientPackageName(), null)); assertEquals(0, mManager.getActiveRoutes().size()); } /** * Tests selecting and unselecting routes of a single provider. */ Loading Loading
media/java/android/media/MediaRouter2Manager.java +29 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.content.Context; import android.os.Handler; import android.os.RemoteException; import android.os.ServiceManager; import android.text.TextUtils; import android.util.Log; import com.android.internal.annotations.GuardedBy; Loading Loading @@ -171,6 +172,34 @@ public class MediaRouter2Manager { return routes; } /** * Gets the list of routes that are actively used by {@link MediaRouter2}. */ @NonNull public List<MediaRoute2Info> getActiveRoutes() { List<MediaRoute2Info> routes = new ArrayList<>(); synchronized (mRoutesLock) { for (MediaRoute2Info route : mRoutes.values()) { if (!TextUtils.isEmpty(route.getClientPackageName())) { routes.add(route); } } } return routes; } /** * Gets the list of discovered routes */ @NonNull public List<MediaRoute2Info> getAllRoutes() { List<MediaRoute2Info> routes = new ArrayList<>(); synchronized (mRoutesLock) { routes.addAll(mRoutes.values()); } return routes; } /** * Selects media route for the specified package name. * Loading
media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouterManagerTest.java +31 −0 Original line number Diff line number Diff line Loading @@ -256,6 +256,37 @@ public class MediaRouterManagerTest { } } @Test public void testGetActiveRoutes() throws Exception { CountDownLatch latch = new CountDownLatch(1); CountDownLatch latch2 = new CountDownLatch(1); Map<String, MediaRoute2Info> routes = waitAndGetRoutesWithManager(CATEGORIES_ALL); addRouterCallback(new MediaRouter2.Callback()); addManagerCallback(new MediaRouter2Manager.Callback() { @Override public void onRouteSelected(String packageName, MediaRoute2Info route) { if (TextUtils.equals(mPackageName, packageName) && route != null && TextUtils.equals(route.getId(), ROUTE_ID1)) { latch.countDown(); } } }); assertEquals(0, mManager.getActiveRoutes().size()); mManager.selectRoute(mPackageName, routes.get(ROUTE_ID1)); latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS); assertEquals(1, mManager.getActiveRoutes().size()); awaitOnRouteChangedManager( () -> mManager.unselectRoute(mPackageName), ROUTE_ID1, route -> TextUtils.equals(route.getClientPackageName(), null)); assertEquals(0, mManager.getActiveRoutes().size()); } /** * Tests selecting and unselecting routes of a single provider. */ Loading