From 2bfe8e3245c43e2a71718ed11d4a1b3e41ed6184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Budnik?= Date: Tue, 4 Jul 2023 14:30:01 +0000 Subject: [PATCH] Do not filter routes on privileged RoutingControllers With this change, privileged RoutingControllers will stop filtering routes by feature when providing selected, selectable, and deselectable routes, which should unify the behaviour between regular and privileged controllers. Test: atest MediaRouter2Test SystemMediaRouter2Test Bug: 289910189 Change-Id: Iae6fa3785ed79f6a8e78618868a21c472387604a --- media/java/android/media/MediaRouter2.java | 33 +++++++++------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/media/java/android/media/MediaRouter2.java b/media/java/android/media/MediaRouter2.java index 62af39ffcf986..f27a8dea737c4 100644 --- a/media/java/android/media/MediaRouter2.java +++ b/media/java/android/media/MediaRouter2.java @@ -1084,6 +1084,16 @@ public final class MediaRouter2 { return filteredRoutes; } + @NonNull + private List getRoutesWithIds(@NonNull List routeIds) { + synchronized (mLock) { + return routeIds.stream() + .map(mRoutes::get) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + } + } + private void notifyRoutesAdded(List routes) { for (RouteCallbackRecord record : mRouteCallbackRecords) { List filteredRoutes = @@ -1388,7 +1398,7 @@ public final class MediaRouter2 { synchronized (mControllerLock) { selectedRouteIds = mSessionInfo.getSelectedRoutes(); } - return mImpl.getRoutesWithIds(selectedRouteIds); + return getRoutesWithIds(selectedRouteIds); } /** @@ -1400,7 +1410,7 @@ public final class MediaRouter2 { synchronized (mControllerLock) { selectableRouteIds = mSessionInfo.getSelectableRoutes(); } - return mImpl.getRoutesWithIds(selectableRouteIds); + return getRoutesWithIds(selectableRouteIds); } /** @@ -1412,7 +1422,7 @@ public final class MediaRouter2 { synchronized (mControllerLock) { deselectableRouteIds = mSessionInfo.getDeselectableRoutes(); } - return mImpl.getRoutesWithIds(deselectableRouteIds); + return getRoutesWithIds(deselectableRouteIds); } /** @@ -1981,7 +1991,6 @@ public final class MediaRouter2 { boolean shouldNotifyStop, RoutingController controller); - List getRoutesWithIds(List routeIds); } /** @@ -2412,13 +2421,6 @@ public final class MediaRouter2 { releaseSession(controller.getRoutingSessionInfo()); } - @Override - public List getRoutesWithIds(List routeIds) { - return getRoutes().stream() - .filter(r -> routeIds.contains(r.getId())) - .collect(Collectors.toList()); - } - /** * Sets the routing session's {@linkplain RoutingSessionInfo#getClientPackageName() client * package name} to {@link #mClientPackageName} if empty and returns the session. @@ -3065,14 +3067,5 @@ public final class MediaRouter2 { } } - @Override - public List getRoutesWithIds(List routeIds) { - synchronized (mLock) { - return routeIds.stream() - .map(mRoutes::get) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - } - } } }