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

Commit a6bf9b66 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Promote setRouteVolume from SystemAPI to public API" into main

parents 2170c304 5f4ded9a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -24567,6 +24567,7 @@ package android.media {
    method @FlaggedApi("com.android.media.flags.enable_screen_off_scanning") @NonNull public android.media.MediaRouter2.ScanToken requestScan(@NonNull android.media.MediaRouter2.ScanRequest);
    method public void setOnGetControllerHintsListener(@Nullable android.media.MediaRouter2.OnGetControllerHintsListener);
    method public void setRouteListingPreference(@Nullable android.media.RouteListingPreference);
    method @FlaggedApi("com.android.media.flags.enable_privileged_routing_for_media_routing_control") @RequiresPermission(anyOf={android.Manifest.permission.MEDIA_CONTENT_CONTROL, android.Manifest.permission.MEDIA_ROUTING_CONTROL}) public void setRouteVolume(@NonNull android.media.MediaRoute2Info, int);
    method public boolean showSystemOutputSwitcher();
    method public void stop();
    method public void transferTo(@NonNull android.media.MediaRoute2Info);
+0 −1
Original line number Diff line number Diff line
@@ -7125,7 +7125,6 @@ package android.media {
  public final class MediaRouter2 {
    method @NonNull public java.util.List<android.media.MediaRoute2Info> getAllRoutes();
    method @Nullable public String getClientPackageName();
    method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void setRouteVolume(@NonNull android.media.MediaRoute2Info, int);
    method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void startScan();
    method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void stopScan();
    method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void transfer(@NonNull android.media.MediaRouter2.RoutingController, @NonNull android.media.MediaRoute2Info);
+18 −9
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static com.android.internal.util.function.pooled.PooledLambda.obtainMessa
import static com.android.media.flags.Flags.FLAG_ENABLE_BUILT_IN_SPEAKER_ROUTE_SUITABILITY_STATUSES;
import static com.android.media.flags.Flags.FLAG_ENABLE_CROSS_USER_ROUTING_IN_MEDIA_ROUTER2;
import static com.android.media.flags.Flags.FLAG_ENABLE_GET_TRANSFERABLE_ROUTES;
import static com.android.media.flags.Flags.FLAG_ENABLE_PRIVILEGED_ROUTING_FOR_MEDIA_ROUTING_CONTROL;
import static com.android.media.flags.Flags.FLAG_ENABLE_RLP_CALLBACKS_IN_MEDIA_ROUTER2;
import static com.android.media.flags.Flags.FLAG_ENABLE_SCREEN_OFF_SCANNING;

@@ -989,17 +990,24 @@ public final class MediaRouter2 {
    }

    /**
     * Requests a volume change for the route asynchronously.
     * It may have no effect if the route is currently not selected.
     * Sets the volume for a specific route.
     *
     * <p>This will be no-op for non-system media routers.
     * <p>The call may have no effect if the route is currently not selected.
     *
     * <p>This method is only supported by {@link #getInstance(Context, String) proxy MediaRouter2
     * instances}. Use {@link RoutingController#setVolume(int) RoutingController#setVolume(int)}
     * instead for {@link #getInstance(Context) local MediaRouter2 instances}.</p>
     *
     * @param volume The new volume value between 0 and {@link MediaRoute2Info#getVolumeMax}.
     * @see #getInstance(Context, String)
     * @hide
     * @throws UnsupportedOperationException If called on a {@link #getInstance(Context) local
     * router instance}.
     */
    @SystemApi
    @RequiresPermission(Manifest.permission.MEDIA_CONTENT_CONTROL)
    @FlaggedApi(FLAG_ENABLE_PRIVILEGED_ROUTING_FOR_MEDIA_ROUTING_CONTROL)
    @RequiresPermission(
            anyOf = {
                Manifest.permission.MEDIA_CONTENT_CONTROL,
                Manifest.permission.MEDIA_ROUTING_CONTROL
            })
    public void setRouteVolume(@NonNull MediaRoute2Info route, int volume) {
        Objects.requireNonNull(route, "route must not be null");

@@ -3464,10 +3472,11 @@ public final class MediaRouter2 {
            return result;
        }

        /** No-op. Local routers cannot modify the volume of specific routes. */
        /** Local routers cannot modify the volume of specific routes. */
        @Override
        public void setRouteVolume(MediaRoute2Info route, int volume) {
            // Do nothing.
            throw new UnsupportedOperationException(
                    "setRouteVolume is only supported by proxy routers. See javadoc.");
            // If this API needs to be public, use IMediaRouterService#setRouteVolumeWithRouter2()
        }