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

Commit 460ba3e6 authored by Kyunglyul Hyun's avatar Kyunglyul Hyun Committed by Automerger Merge Worker
Browse files

Merge "System routes are not automatically exposed" into rvc-dev am: c8f4a8a5

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11926262

Change-Id: I0fe1b249c9d186a98f6f68caba88e7642da705b3
parents 4d65a4c3 c8f4a8a5
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -226,7 +226,7 @@ public final class MediaRoute2Info implements Parcelable {
    public static final int TYPE_GROUP = 2000;

    /**
     * Media feature: Live audio.
     * Route feature: Live audio.
     * <p>
     * A route that supports live audio routing will allow the media audio stream
     * to be sent to supported destinations.  This can include internal speakers or
@@ -241,7 +241,7 @@ public final class MediaRoute2Info implements Parcelable {
    public static final String FEATURE_LIVE_AUDIO = "android.media.route.feature.LIVE_AUDIO";

    /**
     * Media feature: Live video.
     * Route feature: Live video.
     * <p>
     * A route that supports live video routing will allow a mirrored version
     * of the device's primary display or a customized
@@ -262,7 +262,14 @@ public final class MediaRoute2Info implements Parcelable {
    public static final String FEATURE_LIVE_VIDEO = "android.media.route.feature.LIVE_VIDEO";

    /**
     * Media feature: Remote playback.
     * Route feature: Local playback.
     * @hide
     */
    public static final String FEATURE_LOCAL_PLAYBACK =
            "android.media.route.feature.LOCAL_PLAYBACK";

    /**
     * Route feature: Remote playback.
     * <p>
     * A route that supports remote playback routing will allow an application to send
     * requests to play content remotely to supported destinations.
@@ -283,7 +290,7 @@ public final class MediaRoute2Info implements Parcelable {
            "android.media.route.feature.REMOTE_PLAYBACK";

    /**
     * Media feature: Remote audio playback.
     * Route feature: Remote audio playback.
     * <p>
     * A route that supports remote audio playback routing will allow an application to send
     * requests to play audio content remotely to supported destinations.
@@ -295,7 +302,7 @@ public final class MediaRoute2Info implements Parcelable {
            "android.media.route.feature.REMOTE_AUDIO_PLAYBACK";

    /**
     * Media feature: Remote video playback.
     * Route feature: Remote video playback.
     * <p>
     * A route that supports remote video playback routing will allow an application to send
     * requests to play video content remotely to supported destinations.
+9 −19
Original line number Diff line number Diff line
@@ -151,7 +151,7 @@ public final class MediaRouter2 {
     *
     * @hide
     */
    public static boolean checkRouteListContainsRouteId(@NonNull List<MediaRoute2Info> routeList,
    static boolean checkRouteListContainsRouteId(@NonNull List<MediaRoute2Info> routeList,
            @NonNull String routeId) {
        for (MediaRoute2Info info : routeList) {
            if (TextUtils.equals(routeId, info.getId())) {
@@ -258,8 +258,6 @@ public final class MediaRouter2 {
     * Gets the unmodifiable list of {@link MediaRoute2Info routes} currently
     * known to the media router.
     * <p>
     * {@link MediaRoute2Info#isSystemRoute() System routes} such as phone speaker,
     * Bluetooth devices are always included in the list.
     * Please note that the list can be changed before callbacks are invoked.
     * </p>
     *
@@ -274,8 +272,7 @@ public final class MediaRouter2 {

                List<MediaRoute2Info> filteredRoutes = new ArrayList<>();
                for (MediaRoute2Info route : mRoutes.values()) {
                    if (route.isSystemRoute()
                            || route.hasAnyFeatures(mDiscoveryPreference.getPreferredFeatures())) {
                    if (route.hasAnyFeatures(mDiscoveryPreference.getPreferredFeatures())) {
                        filteredRoutes.add(route);
                    }
                }
@@ -526,8 +523,7 @@ public final class MediaRouter2 {
                if (!currentRoutesIds.contains(routeId)) {
                    // This route is removed while the callback is unregistered.
                    MediaRoute2Info route = mRoutes.get(routeId);
                    if (route.isSystemRoute()
                            || route.hasAnyFeatures(mDiscoveryPreference.getPreferredFeatures())) {
                    if (route.hasAnyFeatures(mDiscoveryPreference.getPreferredFeatures())) {
                        removedRoutes.add(mRoutes.get(routeId));
                    }
                }
@@ -537,16 +533,14 @@ public final class MediaRouter2 {
                if (mRoutes.containsKey(route.getId())) {
                    if (!route.equals(mRoutes.get(route.getId()))) {
                        // This route is changed while the callback is unregistered.
                        if (route.isSystemRoute()
                                || route.hasAnyFeatures(
                        if (route.hasAnyFeatures(
                                        mDiscoveryPreference.getPreferredFeatures())) {
                            changedRoutes.add(route);
                        }
                    }
                } else {
                    // This route is added while the callback is unregistered.
                    if (route.isSystemRoute()
                            || route.hasAnyFeatures(mDiscoveryPreference.getPreferredFeatures())) {
                    if (route.hasAnyFeatures(mDiscoveryPreference.getPreferredFeatures())) {
                        addedRoutes.add(route);
                    }
                }
@@ -582,8 +576,7 @@ public final class MediaRouter2 {
        synchronized (sRouterLock) {
            for (MediaRoute2Info route : routes) {
                mRoutes.put(route.getId(), route);
                if (route.isSystemRoute()
                        || route.hasAnyFeatures(mDiscoveryPreference.getPreferredFeatures())) {
                if (route.hasAnyFeatures(mDiscoveryPreference.getPreferredFeatures())) {
                    addedRoutes.add(route);
                }
            }
@@ -599,8 +592,7 @@ public final class MediaRouter2 {
        synchronized (sRouterLock) {
            for (MediaRoute2Info route : routes) {
                mRoutes.remove(route.getId());
                if (route.isSystemRoute()
                        || route.hasAnyFeatures(mDiscoveryPreference.getPreferredFeatures())) {
                if (route.hasAnyFeatures(mDiscoveryPreference.getPreferredFeatures())) {
                    removedRoutes.add(route);
                }
            }
@@ -616,8 +608,7 @@ public final class MediaRouter2 {
        synchronized (sRouterLock) {
            for (MediaRoute2Info route : routes) {
                mRoutes.put(route.getId(), route);
                if (route.isSystemRoute()
                        || route.hasAnyFeatures(mDiscoveryPreference.getPreferredFeatures())) {
                if (route.hasAnyFeatures(mDiscoveryPreference.getPreferredFeatures())) {
                    changedRoutes.add(route);
                }
            }
@@ -799,8 +790,7 @@ public final class MediaRouter2 {
    private List<MediaRoute2Info> filterRoutes(List<MediaRoute2Info> routes,
            RouteDiscoveryPreference discoveryRequest) {
        return routes.stream()
                .filter(route -> route.isSystemRoute()
                        || route.hasAnyFeatures(discoveryRequest.getPreferredFeatures()))
                .filter(route -> route.hasAnyFeatures(discoveryRequest.getPreferredFeatures()))
                .collect(Collectors.toList());
    }

+4 −16
Original line number Diff line number Diff line
@@ -165,20 +165,8 @@ public final class MediaRouter2Manager {
    public List<MediaRoute2Info> getAvailableRoutes(@NonNull String packageName) {
        Objects.requireNonNull(packageName, "packageName must not be null");

        List<MediaRoute2Info> routes = new ArrayList<>();

        List<String> preferredFeatures = mPreferredFeaturesMap.get(packageName);
        if (preferredFeatures == null) {
            preferredFeatures = Collections.emptyList();
        }
        synchronized (mRoutesLock) {
            for (MediaRoute2Info route : mRoutes.values()) {
                if (route.isSystemRoute() || route.hasAnyFeatures(preferredFeatures)) {
                    routes.add(route);
                }
            }
        }
        return routes;
        List<RoutingSessionInfo> sessions = getRoutingSessions(packageName);
        return getAvailableRoutesForRoutingSession(sessions.get(sessions.size() - 1));
    }

    /**
@@ -202,7 +190,7 @@ public final class MediaRouter2Manager {
        }
        synchronized (mRoutesLock) {
            for (MediaRoute2Info route : mRoutes.values()) {
                if (route.isSystemRoute() || route.hasAnyFeatures(preferredFeatures)
                if (route.hasAnyFeatures(preferredFeatures)
                        || sessionInfo.getSelectedRoutes().contains(route.getId())
                        || sessionInfo.getTransferableRoutes().contains(route.getId())) {
                    routes.add(route);
@@ -303,7 +291,7 @@ public final class MediaRouter2Manager {
    }

    /**
     * Gets the list of all discovered routes
     * Gets the list of all discovered routes.
     */
    @NonNull
    public List<MediaRoute2Info> getAllRoutes() {
+0 −3
Original line number Diff line number Diff line
@@ -97,7 +97,6 @@ public class MediaRouter2ManagerTest {

    public static final List<String> FEATURES_ALL = new ArrayList();
    public static final List<String> FEATURES_SPECIAL = new ArrayList();
    private static final List<String> FEATURES_LIVE_AUDIO = new ArrayList<>();

    static {
        FEATURES_ALL.add(FEATURE_SAMPLE);
@@ -105,8 +104,6 @@ public class MediaRouter2ManagerTest {
        FEATURES_ALL.add(FEATURE_LIVE_AUDIO);

        FEATURES_SPECIAL.add(FEATURE_SPECIAL);

        FEATURES_LIVE_AUDIO.add(FEATURE_LIVE_AUDIO);
    }

    @Before
+1 −0
Original line number Diff line number Diff line
@@ -286,6 +286,7 @@ class BluetoothRouteProvider {
        // Current volume will be set when connected.
        newBtRoute.route = new MediaRoute2Info.Builder(routeId, deviceName)
                .addFeature(MediaRoute2Info.FEATURE_LIVE_AUDIO)
                .addFeature(MediaRoute2Info.FEATURE_LOCAL_PLAYBACK)
                .setConnectionState(MediaRoute2Info.CONNECTION_STATE_DISCONNECTED)
                .setDescription(mContext.getResources().getText(
                        R.string.bluetooth_a2dp_audio_route_name).toString())
Loading