diff options
| author | 2020-06-25 19:11:18 +0900 | |
|---|---|---|
| committer | 2020-06-25 19:16:45 +0900 | |
| commit | f19e811c88de5378faae008fe0556ed938adb0b0 (patch) | |
| tree | c3f8d06c4c81e45cf6387eedb637e36cdcbccc03 | |
| parent | 10f788d8e299aad787775c771b006b2e3f0977a2 (diff) | |
Don't check selectedRoutes of created sesions
There are cases that a newly create session does not contain
the requested route. (e.g. static group)
This CL removes check that disallowed those cases.
Bug: 159881597
Test: Run CTS, atest mediaroutertest and manually
using support v7 demos, which is edited to call
notifySessionCreated with member routes selected
Change-Id: I30741d2f3587d0fa9ee5a10fdb8fab9e0d82c721
| -rw-r--r-- | media/java/android/media/MediaRouter2.java | 7 | ||||
| -rw-r--r-- | services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java | 15 |
2 files changed, 1 insertions, 21 deletions
diff --git a/media/java/android/media/MediaRouter2.java b/media/java/android/media/MediaRouter2.java index f22222d10ad8..ff52a1abc6f4 100644 --- a/media/java/android/media/MediaRouter2.java +++ b/media/java/android/media/MediaRouter2.java @@ -663,13 +663,6 @@ public final class MediaRouter2 { if (sessionInfo == null) { notifyTransferFailure(requestedRoute); return; - } else if (!sessionInfo.getSelectedRoutes().contains(requestedRoute.getId())) { - Log.w(TAG, "The session does not contain the requested route. " - + "(requestedRouteId=" + requestedRoute.getId() - + ", actualRoutes=" + sessionInfo.getSelectedRoutes() - + ")"); - notifyTransferFailure(requestedRoute); - return; } else if (!TextUtils.equals(requestedRoute.getProviderId(), sessionInfo.getProviderId())) { Log.w(TAG, "The session's provider ID does not match the requested route's. " diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java index cc9503995ad9..875bfdffafcd 100644 --- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java @@ -1555,7 +1555,6 @@ class MediaRouter2ServiceImpl { long managerRequestId = (matchingRequest == null) ? MediaRoute2ProviderService.REQUEST_ID_NONE : matchingRequest.mManagerRequestId; - // Managers should know created session even if it's not requested. notifySessionCreatedToManagers(managerRequestId, sessionInfo); if (matchingRequest == null) { @@ -1575,18 +1574,6 @@ class MediaRouter2ServiceImpl { + "session=" + matchingRequest.mOldSession); } - String originalRouteId = matchingRequest.mRoute.getId(); - RouterRecord routerRecord = matchingRequest.mRouterRecord; - - if (!sessionInfo.getSelectedRoutes().contains(originalRouteId)) { - Slog.w(TAG, "Created session doesn't match the original request." - + " originalRouteId=" + originalRouteId - + ", uniqueRequestId=" + uniqueRequestId + ", sessionInfo=" + sessionInfo); - notifySessionCreationFailedToRouter(matchingRequest.mRouterRecord, - toOriginalRequestId(uniqueRequestId)); - return; - } - // Succeeded if (sessionInfo.isSystemSession() && !matchingRequest.mRouterRecord.mHasModifyAudioRoutingPermission) { @@ -1597,7 +1584,7 @@ class MediaRouter2ServiceImpl { notifySessionCreatedToRouter(matchingRequest.mRouterRecord, toOriginalRequestId(uniqueRequestId), sessionInfo); } - mSessionToRouterMap.put(sessionInfo.getId(), routerRecord); + mSessionToRouterMap.put(sessionInfo.getId(), matchingRequest.mRouterRecord); } private void onSessionInfoChangedOnHandler(@NonNull MediaRoute2Provider provider, |