MediaRouter: Enable transfer for RCN case

Bug: 152950479
Test: Manually w/ support v7 demos, transfer a routing session
initiated by demo app via Output Switcher.

Change-Id: Ibd5d0a8ae46c71fbdd0f429888ae47ee40cde6f7
This commit is contained in:
Kyunglyul Hyun
2020-04-03 15:15:09 +09:00
parent 05a6fd9506
commit a69280beb8

View File

@@ -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. "