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

Commit d0519206 authored by Derek Jedral's avatar Derek Jedral Committed by Android (Google) Code Review
Browse files

Merge "Add onDeviceSuggestionUiVisible API" into main

parents 56523df8 c45d9e47
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -40,4 +40,5 @@ oneway interface IMediaRouter2 {
        in MediaRoute2Info route);
    void notifyDeviceSuggestionsUpdated(String suggestingPackageName,
        in List<SuggestedDeviceInfo> suggestions);
    void notifyDeviceSuggestionRequested();
}
+1 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ oneway interface IMediaRouter2Manager {
            in @nullable RouteListingPreference routeListingPreference);
    void notifyDeviceSuggestionsUpdated(String packageName, String suggestingPackageName,
            in @nullable List<SuggestedDeviceInfo> suggestedDeviceInfo);
    void notifyDeviceSuggestionRequested();
    void notifyRoutesUpdated(in List<MediaRoute2Info> routes);
    void notifyRequestFailed(int requestId, int reason);
    void invalidateInstance();
+1 −0
Original line number Diff line number Diff line
@@ -107,4 +107,5 @@ interface IMediaRouterService {
            in @nullable List<SuggestedDeviceInfo> suggestedDeviceInfo);
    @nullable Map<String, List<SuggestedDeviceInfo>> getDeviceSuggestionsWithManager(
            IMediaRouter2Manager manager);
    void onDeviceSuggestionRequestedWithManager(IMediaRouter2Manager manager);
}
+57 −0
Original line number Diff line number Diff line
@@ -904,6 +904,17 @@ public final class MediaRouter2 {
        return mImpl.getDeviceSuggestions();
    }

    /**
     * Notifies other suggestion providers that a suggestion has been requested. Calling this method
     * on local routers is a no-op.
     *
     * @hide
     */
    @FlaggedApi(FLAG_ENABLE_SUGGESTED_DEVICE_API)
    public void notifyDeviceSuggestionRequested() {
        mImpl.notifyDeviceSuggestionRequested();
    }

    /**
     * Returns the current {@link RouteListingPreference} of the target router.
     *
@@ -1602,6 +1613,13 @@ public final class MediaRouter2 {
        }
    }

    private void notifyCallbacksDeviceSuggestionRequested() {
        for (DeviceSuggestionsCallbackRecord record : mDeviceSuggestionsCallbackRecords) {
            record.mExecutor.execute(
                    () -> record.mDeviceSuggestionsCallback.onSuggestionRequested());
        }
    }

    private void notifyTransfer(RoutingController oldController, RoutingController newController) {
        for (TransferCallbackRecord record : mTransferCallbackRecords) {
            record.mExecutor.execute(
@@ -1669,6 +1687,9 @@ public final class MediaRouter2 {
        void onSuggestionUpdated(
                @NonNull String suggestingPackageName,
                @Nullable List<SuggestedDeviceInfo> suggestedDeviceInfo);

        /** Called when a router requests a suggestion from suggestion providers. */
        void onSuggestionRequested();
    }

    /** Callback for receiving events about media route discovery. */
@@ -2588,6 +2609,14 @@ public final class MediaRouter2 {
                            suggestions));
        }

        @Override
        public void notifyDeviceSuggestionRequested() {
            mHandler.sendMessage(
                    obtainMessage(
                            MediaRouter2::notifyCallbacksDeviceSuggestionRequested,
                            MediaRouter2.this));
        }

        @Override
        public void requestCreateSessionByManager(
                long managerRequestId, RoutingSessionInfo oldSession, MediaRoute2Info route) {
@@ -2635,6 +2664,8 @@ public final class MediaRouter2 {
        @Nullable
        Map<String, List<SuggestedDeviceInfo>> getDeviceSuggestions();

        void notifyDeviceSuggestionRequested();

        boolean showSystemOutputSwitcher();

        List<MediaRoute2Info> getAllRoutes();
@@ -2857,6 +2888,15 @@ public final class MediaRouter2 {
            }
        }

        @Override
        public void notifyDeviceSuggestionRequested() {
            try {
                mMediaRouterService.onDeviceSuggestionRequestedWithManager(mClient);
            } catch (RemoteException ex) {
                throw ex.rethrowFromSystemServer();
            }
        }

        @Override
        public boolean showSystemOutputSwitcher() {
            try {
@@ -3484,6 +3524,10 @@ public final class MediaRouter2 {
            notifyDeviceSuggestionsUpdated(suggestingPackageName, suggestedDeviceInfo);
        }

        private void notifyDeviceSuggestionRequestedHandler() {
            notifyCallbacksDeviceSuggestionRequested();
        }

        private void onRequestFailedOnHandler(int requestId, int reason) {
            MediaRouter2Manager.TransferRequest matchingRequest = null;
            for (MediaRouter2Manager.TransferRequest request : mTransferRequests) {
@@ -3591,6 +3635,14 @@ public final class MediaRouter2 {
                                deviceSuggestions));
            }

            @Override
            public void notifyDeviceSuggestionRequested() {
                mHandler.sendMessage(
                        obtainMessage(
                                ProxyMediaRouter2Impl::notifyDeviceSuggestionRequestedHandler,
                                ProxyMediaRouter2Impl.this));
            }

            @Override
            public void notifyRoutesUpdated(List<MediaRoute2Info> routes) {
                mHandler.sendMessage(
@@ -3778,6 +3830,11 @@ public final class MediaRouter2 {
            }
        }

        @Override
        public void notifyDeviceSuggestionRequested() {
            // no-op, local routers can not call this method.
        }

        @Override
        public boolean showSystemOutputSwitcher() {
            synchronized (mLock) {
+5 −0
Original line number Diff line number Diff line
@@ -1145,6 +1145,11 @@ public final class MediaRouter2Manager {
            // MediaRouter2Manager doesn't support device suggestions
        }

        @Override
        public void notifyDeviceSuggestionRequested() {
            // MediaRouter2Manager doesn't support device suggestions
        }

        @Override
        public void notifyRoutesUpdated(List<MediaRoute2Info> routes) {
            mHandler.sendMessage(
Loading