diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java index b28350d51e9ea..bb6a5f6b22f73 100644 --- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java @@ -812,7 +812,7 @@ class MediaRouter2ServiceImpl { return; } - // Can be null if the session is system's. + // Can be null if the session is system's or RCN. RouterRecord routerRecord = managerRecord.mUserRecord.mHandler .findRouterforSessionLocked(uniqueSessionId); @@ -833,7 +833,7 @@ class MediaRouter2ServiceImpl { return; } - // Can be null if the session is system's. + // Can be null if the session is system's or RCN. RouterRecord routerRecord = managerRecord.mUserRecord.mHandler .findRouterforSessionLocked(uniqueSessionId); @@ -854,7 +854,7 @@ class MediaRouter2ServiceImpl { return; } - // Can be null if the session is system's. + // Can be null if the session is system's or RCN. RouterRecord routerRecord = managerRecord.mUserRecord.mHandler .findRouterforSessionLocked(uniqueSessionId); @@ -1251,7 +1251,7 @@ class MediaRouter2ServiceImpl { route.getOriginalId(), sessionHints); } - // routerRecord can be null if the session is system's. + // routerRecord can be null if the session is system's or RCN. private void selectRouteOnHandler(long uniqueRequestId, @Nullable RouterRecord routerRecord, @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) { if (!checkArgumentsForSessionControl(routerRecord, uniqueSessionId, route, @@ -1269,7 +1269,7 @@ class MediaRouter2ServiceImpl { route.getOriginalId()); } - // routerRecord can be null if the session is system's. + // routerRecord can be null if the session is system's or RCN. private void deselectRouteOnHandler(long uniqueRequestId, @Nullable RouterRecord routerRecord, @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) { @@ -1289,7 +1289,7 @@ class MediaRouter2ServiceImpl { route.getOriginalId()); } - // routerRecord can be null if the session is system's. + // routerRecord can be null if the session is system's or RCN. private void transferToRouteOnHandler(long uniqueRequestId, @Nullable RouterRecord routerRecord, @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) { @@ -1308,6 +1308,8 @@ class MediaRouter2ServiceImpl { route.getOriginalId()); } + // routerRecord is null if and only if the session is created without the request, which + // includes the system's session and RCN cases. private boolean checkArgumentsForSessionControl(@Nullable RouterRecord routerRecord, @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route, @NonNull String description) { @@ -1324,12 +1326,6 @@ class MediaRouter2ServiceImpl { return true; } - //TODO(b/152950479): Handle RCN case. - if (routerRecord == null) { - Slog.w(TAG, "Ignoring " + description + " route from unknown router."); - return false; - } - RouterRecord matchingRecord = mSessionToRouterMap.get(uniqueSessionId); if (matchingRecord != routerRecord) { Slog.w(TAG, "Ignoring " + description + " route from non-matching router. "