Merge changes Ibf61ba52,Ief4b7f4b into rvc-dev
* changes: Allow MediaRouter2Manager releasing the session created w/o request Do not check router's permission on requests from MediaRouter2Manager
This commit is contained in:
@@ -622,6 +622,16 @@ class MediaRouter2ServiceImpl {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (route.isSystemRoute() && !routerRecord.mHasModifyAudioRoutingPermission
|
||||||
|
&& !TextUtils.equals(route.getId(),
|
||||||
|
routerRecord.mUserRecord.mHandler.mSystemProvider.getDefaultRoute().getId())) {
|
||||||
|
Slog.w(TAG, "MODIFY_AUDIO_ROUTING permission is required to transfer to"
|
||||||
|
+ route);
|
||||||
|
routerRecord.mUserRecord.mHandler.notifySessionCreationFailedToRouter(
|
||||||
|
routerRecord, requestId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
long uniqueRequestId = toUniqueRequestId(routerRecord.mRouterId, requestId);
|
long uniqueRequestId = toUniqueRequestId(routerRecord.mRouterId, requestId);
|
||||||
routerRecord.mUserRecord.mHandler.sendMessage(
|
routerRecord.mUserRecord.mHandler.sendMessage(
|
||||||
obtainMessage(UserHandler::requestCreateSessionOnHandler,
|
obtainMessage(UserHandler::requestCreateSessionOnHandler,
|
||||||
@@ -915,9 +925,6 @@ class MediaRouter2ServiceImpl {
|
|||||||
|
|
||||||
RouterRecord routerRecord = managerRecord.mUserRecord.mHandler
|
RouterRecord routerRecord = managerRecord.mUserRecord.mHandler
|
||||||
.findRouterforSessionLocked(uniqueSessionId);
|
.findRouterforSessionLocked(uniqueSessionId);
|
||||||
if (routerRecord == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId);
|
long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId);
|
||||||
managerRecord.mUserRecord.mHandler.sendMessage(
|
managerRecord.mUserRecord.mHandler.sendMessage(
|
||||||
@@ -1272,15 +1279,6 @@ class MediaRouter2ServiceImpl {
|
|||||||
toOriginalRequestId(uniqueRequestId));
|
toOriginalRequestId(uniqueRequestId));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (route.isSystemRoute() && !routerRecord.mHasModifyAudioRoutingPermission
|
|
||||||
&& !TextUtils.equals(route.getId(),
|
|
||||||
mSystemProvider.getDefaultRoute().getId())) {
|
|
||||||
Slog.w(TAG, "MODIFY_AUDIO_ROUTING permission is required to transfer to"
|
|
||||||
+ route);
|
|
||||||
notifySessionCreationFailedToRouter(routerRecord,
|
|
||||||
toOriginalRequestId(uniqueRequestId));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
SessionCreationRequest request =
|
SessionCreationRequest request =
|
||||||
new SessionCreationRequest(routerRecord, uniqueRequestId, route, managerRecord);
|
new SessionCreationRequest(routerRecord, uniqueRequestId, route, managerRecord);
|
||||||
@@ -1404,11 +1402,11 @@ class MediaRouter2ServiceImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void releaseSessionOnHandler(long uniqueRequestId,
|
private void releaseSessionOnHandler(long uniqueRequestId,
|
||||||
@NonNull RouterRecord routerRecord, @NonNull String uniqueSessionId) {
|
@Nullable RouterRecord routerRecord, @NonNull String uniqueSessionId) {
|
||||||
final RouterRecord matchingRecord = mSessionToRouterMap.get(uniqueSessionId);
|
final RouterRecord matchingRecord = mSessionToRouterMap.get(uniqueSessionId);
|
||||||
if (matchingRecord != routerRecord) {
|
if (matchingRecord != routerRecord) {
|
||||||
Slog.w(TAG, "Ignoring releasing session from non-matching router."
|
Slog.w(TAG, "Ignoring releasing session from non-matching router. packageName="
|
||||||
+ " packageName=" + routerRecord.mPackageName
|
+ (routerRecord == null ? null : routerRecord.mPackageName)
|
||||||
+ " uniqueSessionId=" + uniqueSessionId);
|
+ " uniqueSessionId=" + uniqueSessionId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user