diff options
5 files changed, 19 insertions, 80 deletions
diff --git a/media/java/android/media/IMediaRouter2.aidl b/media/java/android/media/IMediaRouter2.aidl index e2dddad274e1..85bc8efe2750 100644 --- a/media/java/android/media/IMediaRouter2.aidl +++ b/media/java/android/media/IMediaRouter2.aidl @@ -36,6 +36,5 @@ oneway interface IMediaRouter2 { * Call MediaRouterService#requestCreateSessionWithRouter2 to pass the result. */ void requestCreateSessionByManager(long uniqueRequestId, in RoutingSessionInfo oldSession, - in MediaRoute2Info route, in UserHandle transferInitiatorUserHandle, - in String transferInitiatorPackageName); + in MediaRoute2Info route); } diff --git a/media/java/android/media/IMediaRouterService.aidl b/media/java/android/media/IMediaRouterService.aidl index 63cb94516739..efbf8da6d17c 100644 --- a/media/java/android/media/IMediaRouterService.aidl +++ b/media/java/android/media/IMediaRouterService.aidl @@ -64,8 +64,7 @@ interface IMediaRouterService { void requestCreateSessionWithRouter2(IMediaRouter2 router, int requestId, long managerRequestId, in RoutingSessionInfo oldSession, in MediaRoute2Info route, - in @nullable Bundle sessionHints, in UserHandle transferInitiatorUserHandle, - in String transferInitiatorPackageName); + in @nullable Bundle sessionHints); void selectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); void deselectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); void transferToRouteWithRouter2(IMediaRouter2 router, String sessionId, diff --git a/media/java/android/media/MediaRouter2.java b/media/java/android/media/MediaRouter2.java index 7ddf11e41a41..679e8a1b95e6 100644 --- a/media/java/android/media/MediaRouter2.java +++ b/media/java/android/media/MediaRouter2.java @@ -991,9 +991,7 @@ public final class MediaRouter2 { void requestCreateController( @NonNull RoutingController controller, @NonNull MediaRoute2Info route, - long managerRequestId, - @NonNull UserHandle transferInitiatorUserHandle, - @NonNull String transferInitiatorPackageName) { + long managerRequestId) { final int requestId = mNextRequestId.getAndIncrement(); @@ -1022,9 +1020,7 @@ public final class MediaRouter2 { managerRequestId, controller.getRoutingSessionInfo(), route, - controllerHints, - transferInitiatorUserHandle, - transferInitiatorPackageName); + controllerHints); } catch (RemoteException ex) { Log.e(TAG, "createControllerForTransfer: " + "Failed to request for creating a controller.", ex); @@ -1366,11 +1362,7 @@ public final class MediaRouter2 { } void onRequestCreateControllerByManagerOnHandler( - RoutingSessionInfo oldSession, - MediaRoute2Info route, - long managerRequestId, - @NonNull UserHandle transferInitiatorUserHandle, - @NonNull String transferInitiatorPackageName) { + RoutingSessionInfo oldSession, MediaRoute2Info route, long managerRequestId) { Log.i( TAG, TextUtils.formatSimple( @@ -1387,8 +1379,7 @@ public final class MediaRouter2 { if (controller == null) { return; } - requestCreateController(controller, route, managerRequestId, transferInitiatorUserHandle, - transferInitiatorPackageName); + requestCreateController(controller, route, managerRequestId); } private List<MediaRoute2Info> getSortedRoutes( @@ -2423,20 +2414,14 @@ public final class MediaRouter2 { @Override public void requestCreateSessionByManager( - long managerRequestId, - RoutingSessionInfo oldSession, - MediaRoute2Info route, - UserHandle transferInitiatorUserHandle, - String transferInitiatorPackageName) { + long managerRequestId, RoutingSessionInfo oldSession, MediaRoute2Info route) { mHandler.sendMessage( obtainMessage( MediaRouter2::onRequestCreateControllerByManagerOnHandler, MediaRouter2.this, oldSession, route, - managerRequestId, - transferInitiatorUserHandle, - transferInitiatorPackageName)); + managerRequestId)); } } @@ -3581,12 +3566,7 @@ public final class MediaRouter2 { RoutingController controller = getCurrentController(); if (!controller.tryTransferWithinProvider(route)) { - requestCreateController( - controller, - route, - MANAGER_REQUEST_ID_NONE, - Process.myUserHandle(), - mContext.getPackageName()); + requestCreateController(controller, route, MANAGER_REQUEST_ID_NONE); } } diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java index e1f893953d66..c03497e629f0 100644 --- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java @@ -404,37 +404,17 @@ class MediaRouter2ServiceImpl { long managerRequestId, @NonNull RoutingSessionInfo oldSession, @NonNull MediaRoute2Info route, - Bundle sessionHints, - @Nullable UserHandle transferInitiatorUserHandle, - @Nullable String transferInitiatorPackageName) { + Bundle sessionHints) { Objects.requireNonNull(router, "router must not be null"); Objects.requireNonNull(oldSession, "oldSession must not be null"); Objects.requireNonNull(route, "route must not be null"); - synchronized (mLock) { - if (managerRequestId == MediaRoute2ProviderService.REQUEST_ID_NONE - || transferInitiatorUserHandle == null - || transferInitiatorPackageName == null) { - final IBinder binder = router.asBinder(); - final RouterRecord routerRecord = mAllRouterRecords.get(binder); - - transferInitiatorUserHandle = Binder.getCallingUserHandle(); - if (routerRecord != null) { - transferInitiatorPackageName = routerRecord.mPackageName; - } else { - transferInitiatorPackageName = mContext.getPackageName(); - } - } - } - final long token = Binder.clearCallingIdentity(); try { synchronized (mLock) { requestCreateSessionWithRouter2Locked( requestId, managerRequestId, - transferInitiatorUserHandle, - transferInitiatorPackageName, router, oldSession, route, @@ -1281,8 +1261,6 @@ class MediaRouter2ServiceImpl { private void requestCreateSessionWithRouter2Locked( int requestId, long managerRequestId, - @NonNull UserHandle transferInitiatorUserHandle, - @NonNull String transferInitiatorPackageName, @NonNull IMediaRouter2 router, @NonNull RoutingSessionInfo oldSession, @NonNull MediaRoute2Info route, @@ -1355,8 +1333,6 @@ class MediaRouter2ServiceImpl { userHandler, uniqueRequestId, managerRequestId, - transferInitiatorUserHandle, - transferInitiatorPackageName, routerRecord, oldSession, route, @@ -2695,11 +2671,7 @@ class MediaRouter2ServiceImpl { route = mSystemProvider.getDefaultRoute(); } routerRecord.mRouter.requestCreateSessionByManager( - uniqueRequestId, - oldSession, - route, - transferInitiatorUserHandle, - transferInitiatorPackageName); + uniqueRequestId, oldSession, route); } catch (RemoteException ex) { Slog.w(TAG, "getSessionHintsForCreatingSessionOnHandler: " + "Failed to request. Router probably died.", ex); @@ -2711,8 +2683,6 @@ class MediaRouter2ServiceImpl { private void requestCreateSessionWithRouter2OnHandler( long uniqueRequestId, long managerRequestId, - @NonNull UserHandle transferInitiatorUserHandle, - @NonNull String transferInitiatorPackageName, @NonNull RouterRecord routerRecord, @NonNull RoutingSessionInfo oldSession, @NonNull MediaRoute2Info route, @@ -2732,10 +2702,10 @@ class MediaRouter2ServiceImpl { managerRequestId, oldSession, route); mSessionCreationRequests.add(request); - int transferReason = RoutingSessionInfo.TRANSFER_REASON_APP; - if (managerRequestId != MediaRoute2ProviderService.REQUEST_ID_NONE) { - transferReason = RoutingSessionInfo.TRANSFER_REASON_SYSTEM_REQUEST; - } + int transferReason = + managerRequestId != MediaRoute2ProviderService.REQUEST_ID_NONE + ? RoutingSessionInfo.TRANSFER_REASON_SYSTEM_REQUEST + : RoutingSessionInfo.TRANSFER_REASON_APP; provider.requestCreateSession( uniqueRequestId, @@ -2743,8 +2713,8 @@ class MediaRouter2ServiceImpl { route.getOriginalId(), sessionHints, transferReason, - transferInitiatorUserHandle, - transferInitiatorPackageName); + UserHandle.of(routerRecord.mUserRecord.mUserId), + routerRecord.mPackageName); } // routerRecord can be null if the session is system's or RCN. diff --git a/services/core/java/com/android/server/media/MediaRouterService.java b/services/core/java/com/android/server/media/MediaRouterService.java index 064443ce7d10..192ac6287884 100644 --- a/services/core/java/com/android/server/media/MediaRouterService.java +++ b/services/core/java/com/android/server/media/MediaRouterService.java @@ -495,18 +495,9 @@ public final class MediaRouterService extends IMediaRouterService.Stub long managerRequestId, RoutingSessionInfo oldSession, MediaRoute2Info route, - Bundle sessionHints, - @Nullable UserHandle transferInitiatorUserHandle, - @Nullable String transferInitiatorPackageName) { + Bundle sessionHints) { mService2.requestCreateSessionWithRouter2( - router, - requestId, - managerRequestId, - oldSession, - route, - sessionHints, - transferInitiatorUserHandle, - transferInitiatorPackageName); + router, requestId, managerRequestId, oldSession, route, sessionHints); } // Binder call |