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

Commit 59cf6de3 authored by Santiago Seifert's avatar Santiago Seifert Committed by Android (Google) Code Review
Browse files

Merge "Simplify requestCreateSessionWithRouter2" into main

parents d891a643 783789a3
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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);
}
+1 −2
Original line number Diff line number Diff line
@@ -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,
+7 −27
Original line number Diff line number Diff line
@@ -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);
            }
        }

+8 −38
Original line number Diff line number Diff line
@@ -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.
+2 −11
Original line number Diff line number Diff line
@@ -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