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 Original line Diff line number Diff line
@@ -36,6 +36,5 @@ oneway interface IMediaRouter2 {
     * Call MediaRouterService#requestCreateSessionWithRouter2 to pass the result.
     * Call MediaRouterService#requestCreateSessionWithRouter2 to pass the result.
     */
     */
    void requestCreateSessionByManager(long uniqueRequestId, in RoutingSessionInfo oldSession,
    void requestCreateSessionByManager(long uniqueRequestId, in RoutingSessionInfo oldSession,
        in MediaRoute2Info route, in UserHandle transferInitiatorUserHandle,
        in MediaRoute2Info route);
        in String transferInitiatorPackageName);
}
}
+1 −2
Original line number Original line Diff line number Diff line
@@ -64,8 +64,7 @@ interface IMediaRouterService {


    void requestCreateSessionWithRouter2(IMediaRouter2 router, int requestId, long managerRequestId,
    void requestCreateSessionWithRouter2(IMediaRouter2 router, int requestId, long managerRequestId,
            in RoutingSessionInfo oldSession, in MediaRoute2Info route,
            in RoutingSessionInfo oldSession, in MediaRoute2Info route,
            in @nullable Bundle sessionHints, in UserHandle transferInitiatorUserHandle,
            in @nullable Bundle sessionHints);
            in String transferInitiatorPackageName);
    void selectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route);
    void selectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route);
    void deselectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route);
    void deselectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route);
    void transferToRouteWithRouter2(IMediaRouter2 router, String sessionId,
    void transferToRouteWithRouter2(IMediaRouter2 router, String sessionId,
+7 −27
Original line number Original line Diff line number Diff line
@@ -991,9 +991,7 @@ public final class MediaRouter2 {
    void requestCreateController(
    void requestCreateController(
            @NonNull RoutingController controller,
            @NonNull RoutingController controller,
            @NonNull MediaRoute2Info route,
            @NonNull MediaRoute2Info route,
            long managerRequestId,
            long managerRequestId) {
            @NonNull UserHandle transferInitiatorUserHandle,
            @NonNull String transferInitiatorPackageName) {


        final int requestId = mNextRequestId.getAndIncrement();
        final int requestId = mNextRequestId.getAndIncrement();


@@ -1022,9 +1020,7 @@ public final class MediaRouter2 {
                        managerRequestId,
                        managerRequestId,
                        controller.getRoutingSessionInfo(),
                        controller.getRoutingSessionInfo(),
                        route,
                        route,
                        controllerHints,
                        controllerHints);
                        transferInitiatorUserHandle,
                        transferInitiatorPackageName);
            } catch (RemoteException ex) {
            } catch (RemoteException ex) {
                Log.e(TAG, "createControllerForTransfer: "
                Log.e(TAG, "createControllerForTransfer: "
                                + "Failed to request for creating a controller.", ex);
                                + "Failed to request for creating a controller.", ex);
@@ -1366,11 +1362,7 @@ public final class MediaRouter2 {
    }
    }


    void onRequestCreateControllerByManagerOnHandler(
    void onRequestCreateControllerByManagerOnHandler(
            RoutingSessionInfo oldSession,
            RoutingSessionInfo oldSession, MediaRoute2Info route, long managerRequestId) {
            MediaRoute2Info route,
            long managerRequestId,
            @NonNull UserHandle transferInitiatorUserHandle,
            @NonNull String transferInitiatorPackageName) {
        Log.i(
        Log.i(
                TAG,
                TAG,
                TextUtils.formatSimple(
                TextUtils.formatSimple(
@@ -1387,8 +1379,7 @@ public final class MediaRouter2 {
        if (controller == null) {
        if (controller == null) {
            return;
            return;
        }
        }
        requestCreateController(controller, route, managerRequestId, transferInitiatorUserHandle,
        requestCreateController(controller, route, managerRequestId);
                transferInitiatorPackageName);
    }
    }


    private List<MediaRoute2Info> getSortedRoutes(
    private List<MediaRoute2Info> getSortedRoutes(
@@ -2423,20 +2414,14 @@ public final class MediaRouter2 {


        @Override
        @Override
        public void requestCreateSessionByManager(
        public void requestCreateSessionByManager(
                long managerRequestId,
                long managerRequestId, RoutingSessionInfo oldSession, MediaRoute2Info route) {
                RoutingSessionInfo oldSession,
                MediaRoute2Info route,
                UserHandle transferInitiatorUserHandle,
                String transferInitiatorPackageName) {
            mHandler.sendMessage(
            mHandler.sendMessage(
                    obtainMessage(
                    obtainMessage(
                            MediaRouter2::onRequestCreateControllerByManagerOnHandler,
                            MediaRouter2::onRequestCreateControllerByManagerOnHandler,
                            MediaRouter2.this,
                            MediaRouter2.this,
                            oldSession,
                            oldSession,
                            route,
                            route,
                            managerRequestId,
                            managerRequestId));
                            transferInitiatorUserHandle,
                            transferInitiatorPackageName));
        }
        }
    }
    }


@@ -3581,12 +3566,7 @@ public final class MediaRouter2 {


            RoutingController controller = getCurrentController();
            RoutingController controller = getCurrentController();
            if (!controller.tryTransferWithinProvider(route)) {
            if (!controller.tryTransferWithinProvider(route)) {
                requestCreateController(
                requestCreateController(controller, route, MANAGER_REQUEST_ID_NONE);
                        controller,
                        route,
                        MANAGER_REQUEST_ID_NONE,
                        Process.myUserHandle(),
                        mContext.getPackageName());
            }
            }
        }
        }


+8 −38
Original line number Original line Diff line number Diff line
@@ -404,37 +404,17 @@ class MediaRouter2ServiceImpl {
            long managerRequestId,
            long managerRequestId,
            @NonNull RoutingSessionInfo oldSession,
            @NonNull RoutingSessionInfo oldSession,
            @NonNull MediaRoute2Info route,
            @NonNull MediaRoute2Info route,
            Bundle sessionHints,
            Bundle sessionHints) {
            @Nullable UserHandle transferInitiatorUserHandle,
            @Nullable String transferInitiatorPackageName) {
        Objects.requireNonNull(router, "router must not be null");
        Objects.requireNonNull(router, "router must not be null");
        Objects.requireNonNull(oldSession, "oldSession must not be null");
        Objects.requireNonNull(oldSession, "oldSession must not be null");
        Objects.requireNonNull(route, "route 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();
        final long token = Binder.clearCallingIdentity();
        try {
        try {
            synchronized (mLock) {
            synchronized (mLock) {
                requestCreateSessionWithRouter2Locked(
                requestCreateSessionWithRouter2Locked(
                        requestId,
                        requestId,
                        managerRequestId,
                        managerRequestId,
                        transferInitiatorUserHandle,
                        transferInitiatorPackageName,
                        router,
                        router,
                        oldSession,
                        oldSession,
                        route,
                        route,
@@ -1281,8 +1261,6 @@ class MediaRouter2ServiceImpl {
    private void requestCreateSessionWithRouter2Locked(
    private void requestCreateSessionWithRouter2Locked(
            int requestId,
            int requestId,
            long managerRequestId,
            long managerRequestId,
            @NonNull UserHandle transferInitiatorUserHandle,
            @NonNull String transferInitiatorPackageName,
            @NonNull IMediaRouter2 router,
            @NonNull IMediaRouter2 router,
            @NonNull RoutingSessionInfo oldSession,
            @NonNull RoutingSessionInfo oldSession,
            @NonNull MediaRoute2Info route,
            @NonNull MediaRoute2Info route,
@@ -1355,8 +1333,6 @@ class MediaRouter2ServiceImpl {
                        userHandler,
                        userHandler,
                        uniqueRequestId,
                        uniqueRequestId,
                        managerRequestId,
                        managerRequestId,
                        transferInitiatorUserHandle,
                        transferInitiatorPackageName,
                        routerRecord,
                        routerRecord,
                        oldSession,
                        oldSession,
                        route,
                        route,
@@ -2695,11 +2671,7 @@ class MediaRouter2ServiceImpl {
                    route = mSystemProvider.getDefaultRoute();
                    route = mSystemProvider.getDefaultRoute();
                }
                }
                routerRecord.mRouter.requestCreateSessionByManager(
                routerRecord.mRouter.requestCreateSessionByManager(
                        uniqueRequestId,
                        uniqueRequestId, oldSession, route);
                        oldSession,
                        route,
                        transferInitiatorUserHandle,
                        transferInitiatorPackageName);
            } catch (RemoteException ex) {
            } catch (RemoteException ex) {
                Slog.w(TAG, "getSessionHintsForCreatingSessionOnHandler: "
                Slog.w(TAG, "getSessionHintsForCreatingSessionOnHandler: "
                        + "Failed to request. Router probably died.", ex);
                        + "Failed to request. Router probably died.", ex);
@@ -2711,8 +2683,6 @@ class MediaRouter2ServiceImpl {
        private void requestCreateSessionWithRouter2OnHandler(
        private void requestCreateSessionWithRouter2OnHandler(
                long uniqueRequestId,
                long uniqueRequestId,
                long managerRequestId,
                long managerRequestId,
                @NonNull UserHandle transferInitiatorUserHandle,
                @NonNull String transferInitiatorPackageName,
                @NonNull RouterRecord routerRecord,
                @NonNull RouterRecord routerRecord,
                @NonNull RoutingSessionInfo oldSession,
                @NonNull RoutingSessionInfo oldSession,
                @NonNull MediaRoute2Info route,
                @NonNull MediaRoute2Info route,
@@ -2732,10 +2702,10 @@ class MediaRouter2ServiceImpl {
                            managerRequestId, oldSession, route);
                            managerRequestId, oldSession, route);
            mSessionCreationRequests.add(request);
            mSessionCreationRequests.add(request);


            int transferReason = RoutingSessionInfo.TRANSFER_REASON_APP;
            int transferReason =
            if (managerRequestId != MediaRoute2ProviderService.REQUEST_ID_NONE) {
                    managerRequestId != MediaRoute2ProviderService.REQUEST_ID_NONE
                transferReason = RoutingSessionInfo.TRANSFER_REASON_SYSTEM_REQUEST;
                            ? RoutingSessionInfo.TRANSFER_REASON_SYSTEM_REQUEST
            }
                            : RoutingSessionInfo.TRANSFER_REASON_APP;


            provider.requestCreateSession(
            provider.requestCreateSession(
                    uniqueRequestId,
                    uniqueRequestId,
@@ -2743,8 +2713,8 @@ class MediaRouter2ServiceImpl {
                    route.getOriginalId(),
                    route.getOriginalId(),
                    sessionHints,
                    sessionHints,
                    transferReason,
                    transferReason,
                    transferInitiatorUserHandle,
                    UserHandle.of(routerRecord.mUserRecord.mUserId),
                    transferInitiatorPackageName);
                    routerRecord.mPackageName);
        }
        }


        // routerRecord can be null if the session is system's or RCN.
        // routerRecord can be null if the session is system's or RCN.
+2 −11
Original line number Original line Diff line number Diff line
@@ -495,18 +495,9 @@ public final class MediaRouterService extends IMediaRouterService.Stub
            long managerRequestId,
            long managerRequestId,
            RoutingSessionInfo oldSession,
            RoutingSessionInfo oldSession,
            MediaRoute2Info route,
            MediaRoute2Info route,
            Bundle sessionHints,
            Bundle sessionHints) {
            @Nullable UserHandle transferInitiatorUserHandle,
            @Nullable String transferInitiatorPackageName) {
        mService2.requestCreateSessionWithRouter2(
        mService2.requestCreateSessionWithRouter2(
                router,
                router, requestId, managerRequestId, oldSession, route, sessionHints);
                requestId,
                managerRequestId,
                oldSession,
                route,
                sessionHints,
                transferInitiatorUserHandle,
                transferInitiatorPackageName);
    }
    }


    // Binder call
    // Binder call