From fa3d0eff2d666a8ec4b247299007e6b2b4125720 Mon Sep 17 00:00:00 2001 From: Hyundo Moon Date: Mon, 13 Apr 2020 00:27:44 +0900 Subject: [PATCH] Do not check router's permission on requests from MediaRouter2Manager In order to allow getting the session creation requests from MediaRouter2Manager, this CL moves the permission check to inside requestCreateSessionWithRouter2Locked(). Bug: 153811416 Test: Builds successfully Change-Id: Ief4b7f4bb73404bcf81427d19e3a753c7d78ec5b --- .../server/media/MediaRouter2ServiceImpl.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java index c3413e8d2934b..ed9caab13c889 100644 --- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java @@ -622,6 +622,16 @@ class MediaRouter2ServiceImpl { 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); routerRecord.mUserRecord.mHandler.sendMessage( obtainMessage(UserHandler::requestCreateSessionOnHandler, @@ -1272,15 +1282,6 @@ class MediaRouter2ServiceImpl { toOriginalRequestId(uniqueRequestId)); 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 = new SessionCreationRequest(routerRecord, uniqueRequestId, route, managerRecord);