Merge "MediaRouter: Enable transfer for RCN case" into rvc-dev

This commit is contained in:
Kyunglyul Hyun
2020-04-08 06:09:48 +00:00
committed by Android (Google) Code Review

View File

@@ -808,7 +808,7 @@ class MediaRouter2ServiceImpl {
return; 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 RouterRecord routerRecord = managerRecord.mUserRecord.mHandler
.findRouterforSessionLocked(uniqueSessionId); .findRouterforSessionLocked(uniqueSessionId);
@@ -829,7 +829,7 @@ class MediaRouter2ServiceImpl {
return; 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 RouterRecord routerRecord = managerRecord.mUserRecord.mHandler
.findRouterforSessionLocked(uniqueSessionId); .findRouterforSessionLocked(uniqueSessionId);
@@ -850,7 +850,7 @@ class MediaRouter2ServiceImpl {
return; 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 RouterRecord routerRecord = managerRecord.mUserRecord.mHandler
.findRouterforSessionLocked(uniqueSessionId); .findRouterforSessionLocked(uniqueSessionId);
@@ -1232,7 +1232,7 @@ class MediaRouter2ServiceImpl {
route.getOriginalId(), sessionHints); 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, private void selectRouteOnHandler(long uniqueRequestId, @Nullable RouterRecord routerRecord,
@NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) { @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) {
if (!checkArgumentsForSessionControl(routerRecord, uniqueSessionId, route, if (!checkArgumentsForSessionControl(routerRecord, uniqueSessionId, route,
@@ -1250,7 +1250,7 @@ class MediaRouter2ServiceImpl {
route.getOriginalId()); 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, private void deselectRouteOnHandler(long uniqueRequestId,
@Nullable RouterRecord routerRecord, @Nullable RouterRecord routerRecord,
@NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) { @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) {
@@ -1270,7 +1270,7 @@ class MediaRouter2ServiceImpl {
route.getOriginalId()); 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, private void transferToRouteOnHandler(long uniqueRequestId,
@Nullable RouterRecord routerRecord, @Nullable RouterRecord routerRecord,
@NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) { @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) {
@@ -1289,6 +1289,8 @@ class MediaRouter2ServiceImpl {
route.getOriginalId()); 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, private boolean checkArgumentsForSessionControl(@Nullable RouterRecord routerRecord,
@NonNull String uniqueSessionId, @NonNull MediaRoute2Info route, @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route,
@NonNull String description) { @NonNull String description) {
@@ -1305,12 +1307,6 @@ class MediaRouter2ServiceImpl {
return true; 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); RouterRecord matchingRecord = mSessionToRouterMap.get(uniqueSessionId);
if (matchingRecord != routerRecord) { if (matchingRecord != routerRecord) {
Slog.w(TAG, "Ignoring " + description + " route from non-matching router. " Slog.w(TAG, "Ignoring " + description + " route from non-matching router. "