Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e6bd8505 authored by Hyundo Moon's avatar Hyundo Moon Committed by Android (Google) Code Review
Browse files

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
parents 35f960df 1f066685
Loading
Loading
Loading
Loading
+13 −15
Original line number Diff line number Diff line
@@ -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,
@@ -915,9 +925,6 @@ class MediaRouter2ServiceImpl {

        RouterRecord routerRecord = managerRecord.mUserRecord.mHandler
                .findRouterforSessionLocked(uniqueSessionId);
        if (routerRecord == null) {
            return;
        }

        long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId);
        managerRecord.mUserRecord.mHandler.sendMessage(
@@ -1272,15 +1279,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);
@@ -1404,11 +1402,11 @@ class MediaRouter2ServiceImpl {
        }

        private void releaseSessionOnHandler(long uniqueRequestId,
                @NonNull RouterRecord routerRecord, @NonNull String uniqueSessionId) {
                @Nullable RouterRecord routerRecord, @NonNull String uniqueSessionId) {
            final RouterRecord matchingRecord = mSessionToRouterMap.get(uniqueSessionId);
            if (matchingRecord != routerRecord) {
                Slog.w(TAG, "Ignoring releasing session from non-matching router."
                        + " packageName=" + routerRecord.mPackageName
                Slog.w(TAG, "Ignoring releasing session from non-matching router. packageName="
                        + (routerRecord == null ? null : routerRecord.mPackageName)
                        + " uniqueSessionId=" + uniqueSessionId);
                return;
            }