summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Kyunglyul Hyun <klhyun@google.com> 2020-06-25 19:11:18 +0900
committer Kyunglyul Hyun <klhyun@google.com> 2020-06-25 19:16:45 +0900
commitf19e811c88de5378faae008fe0556ed938adb0b0 (patch)
treec3f8d06c4c81e45cf6387eedb637e36cdcbccc03
parent10f788d8e299aad787775c771b006b2e3f0977a2 (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.java7
-rw-r--r--services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java15
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,