diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 834d9496d5..dd0a0f3da1 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -30,6 +30,9 @@ objects that are dispatched by the dispatcher. * Rename `ExoTrackSelection.blacklist` to `excludeTrack` and `isBlacklisted` to `isTrackExcluded`. + * Deprecate `Player.COMMAND_GET_MEDIA_ITEMS_METADATA` and + `COMMAND_SET_MEDIA_ITEMS_METADATA`. Use `COMMAND_GET_METADATA` and + `COMMAND_SET_PLAYLIST_METADATA` instead. * Session: * Fix bug where multiple identical queue items published by a legacy `MediaSessionCompat` result in an exception in `MediaController` diff --git a/api.txt b/api.txt index 55917dd7f6..236f365c09 100644 --- a/api.txt +++ b/api.txt @@ -764,7 +764,8 @@ package androidx.media3.common { field public static final int COMMAND_GET_AUDIO_ATTRIBUTES = 21; // 0x15 field public static final int COMMAND_GET_CURRENT_MEDIA_ITEM = 16; // 0x10 field public static final int COMMAND_GET_DEVICE_VOLUME = 23; // 0x17 - field public static final int COMMAND_GET_MEDIA_ITEMS_METADATA = 18; // 0x12 + field @Deprecated public static final int COMMAND_GET_MEDIA_ITEMS_METADATA = 18; // 0x12 + field public static final int COMMAND_GET_METADATA = 18; // 0x12 field public static final int COMMAND_GET_TEXT = 28; // 0x1c field public static final int COMMAND_GET_TIMELINE = 17; // 0x11 field public static final int COMMAND_GET_TRACKS = 30; // 0x1e @@ -784,7 +785,8 @@ package androidx.media3.common { field public static final int COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM = 6; // 0x6 field public static final int COMMAND_SET_DEVICE_VOLUME = 25; // 0x19 field public static final int COMMAND_SET_MEDIA_ITEM = 31; // 0x1f - field public static final int COMMAND_SET_MEDIA_ITEMS_METADATA = 19; // 0x13 + field @Deprecated public static final int COMMAND_SET_MEDIA_ITEMS_METADATA = 19; // 0x13 + field public static final int COMMAND_SET_PLAYLIST_METADATA = 19; // 0x13 field public static final int COMMAND_SET_REPEAT_MODE = 15; // 0xf field public static final int COMMAND_SET_SHUFFLE_MODE = 14; // 0xe field public static final int COMMAND_SET_SPEED_AND_PITCH = 13; // 0xd @@ -853,7 +855,7 @@ package androidx.media3.common { field public static final int TIMELINE_CHANGE_REASON_SOURCE_UPDATE = 1; // 0x1 } - @IntDef({androidx.media3.common.Player.COMMAND_INVALID, androidx.media3.common.Player.COMMAND_PLAY_PAUSE, androidx.media3.common.Player.COMMAND_PREPARE, androidx.media3.common.Player.COMMAND_STOP, androidx.media3.common.Player.COMMAND_SEEK_TO_DEFAULT_POSITION, androidx.media3.common.Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT, androidx.media3.common.Player.COMMAND_SEEK_TO_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_BACK, androidx.media3.common.Player.COMMAND_SEEK_FORWARD, androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH, androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE, androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE, androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_GET_TIMELINE, androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS, androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES, androidx.media3.common.Player.COMMAND_GET_VOLUME, androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_VOLUME, androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_ADJUST_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_VIDEO_SURFACE, androidx.media3.common.Player.COMMAND_GET_TEXT, androidx.media3.common.Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS, androidx.media3.common.Player.COMMAND_GET_TRACKS, androidx.media3.common.Player.COMMAND_RELEASE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.Command { + @IntDef({androidx.media3.common.Player.COMMAND_INVALID, androidx.media3.common.Player.COMMAND_PLAY_PAUSE, androidx.media3.common.Player.COMMAND_PREPARE, androidx.media3.common.Player.COMMAND_STOP, androidx.media3.common.Player.COMMAND_SEEK_TO_DEFAULT_POSITION, androidx.media3.common.Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT, androidx.media3.common.Player.COMMAND_SEEK_TO_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_BACK, androidx.media3.common.Player.COMMAND_SEEK_FORWARD, androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH, androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE, androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE, androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_GET_TIMELINE, androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_GET_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_SET_PLAYLIST_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS, androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES, androidx.media3.common.Player.COMMAND_GET_VOLUME, androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_VOLUME, androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_ADJUST_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_VIDEO_SURFACE, androidx.media3.common.Player.COMMAND_GET_TEXT, androidx.media3.common.Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS, androidx.media3.common.Player.COMMAND_GET_TRACKS, androidx.media3.common.Player.COMMAND_RELEASE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.Command { } public static final class Player.Commands { diff --git a/libraries/cast/src/main/java/androidx/media3/cast/CastPlayer.java b/libraries/cast/src/main/java/androidx/media3/cast/CastPlayer.java index abf7796060..80a549c0de 100644 --- a/libraries/cast/src/main/java/androidx/media3/cast/CastPlayer.java +++ b/libraries/cast/src/main/java/androidx/media3/cast/CastPlayer.java @@ -104,8 +104,8 @@ public final class CastPlayer extends BasePlayer { COMMAND_SET_SPEED_AND_PITCH, COMMAND_GET_CURRENT_MEDIA_ITEM, COMMAND_GET_TIMELINE, - COMMAND_GET_MEDIA_ITEMS_METADATA, - COMMAND_SET_MEDIA_ITEMS_METADATA, + COMMAND_GET_METADATA, + COMMAND_SET_PLAYLIST_METADATA, COMMAND_SET_MEDIA_ITEM, COMMAND_CHANGE_MEDIA_ITEMS, COMMAND_GET_TRACKS, diff --git a/libraries/cast/src/test/java/androidx/media3/cast/CastPlayerTest.java b/libraries/cast/src/test/java/androidx/media3/cast/CastPlayerTest.java index ec0389d216..9b58996985 100644 --- a/libraries/cast/src/test/java/androidx/media3/cast/CastPlayerTest.java +++ b/libraries/cast/src/test/java/androidx/media3/cast/CastPlayerTest.java @@ -20,7 +20,7 @@ import static androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS; import static androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES; import static androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME; -import static androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA; +import static androidx.media3.common.Player.COMMAND_GET_METADATA; import static androidx.media3.common.Player.COMMAND_GET_TEXT; import static androidx.media3.common.Player.COMMAND_GET_TIMELINE; import static androidx.media3.common.Player.COMMAND_GET_VOLUME; @@ -37,7 +37,7 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS; import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME; import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM; -import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA; +import static androidx.media3.common.Player.COMMAND_SET_PLAYLIST_METADATA; import static androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE; import static androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE; import static androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH; @@ -1360,8 +1360,8 @@ public class CastPlayerTest { assertThat(castPlayer.isCommandAvailable(COMMAND_SET_REPEAT_MODE)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_GET_CURRENT_MEDIA_ITEM)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_GET_TIMELINE)).isTrue(); - assertThat(castPlayer.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)).isTrue(); - assertThat(castPlayer.isCommandAvailable(COMMAND_SET_MEDIA_ITEMS_METADATA)).isTrue(); + assertThat(castPlayer.isCommandAvailable(COMMAND_GET_METADATA)).isTrue(); + assertThat(castPlayer.isCommandAvailable(COMMAND_SET_PLAYLIST_METADATA)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_CHANGE_MEDIA_ITEMS)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_SET_MEDIA_ITEM)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_GET_AUDIO_ATTRIBUTES)).isFalse(); diff --git a/libraries/common/src/main/java/androidx/media3/common/Player.java b/libraries/common/src/main/java/androidx/media3/common/Player.java index fb445f4bb4..1a4f4f5cce 100644 --- a/libraries/common/src/main/java/androidx/media3/common/Player.java +++ b/libraries/common/src/main/java/androidx/media3/common/Player.java @@ -371,8 +371,8 @@ public interface Player { COMMAND_SET_REPEAT_MODE, COMMAND_GET_CURRENT_MEDIA_ITEM, COMMAND_GET_TIMELINE, - COMMAND_GET_MEDIA_ITEMS_METADATA, - COMMAND_SET_MEDIA_ITEMS_METADATA, + COMMAND_GET_METADATA, + COMMAND_SET_PLAYLIST_METADATA, COMMAND_SET_MEDIA_ITEM, COMMAND_CHANGE_MEDIA_ITEMS, COMMAND_GET_AUDIO_ATTRIBUTES, @@ -1428,8 +1428,8 @@ public interface Player { *
The {@link #setPlaylistMetadata(MediaMetadata)} method must only be called if this command * is {@linkplain #isCommandAvailable(int) available}. */ - // TODO(b/263132691): Rename this to COMMAND_SET_PLAYLIST_METADATA - int COMMAND_SET_MEDIA_ITEMS_METADATA = 19; + int COMMAND_SET_PLAYLIST_METADATA = 19; /** * Command to set a {@link MediaItem}. @@ -2582,7 +2593,7 @@ public interface Player { * Listener#onMetadata(Metadata)}. If a field is populated in the {@link MediaItem#mediaMetadata}, * it will be prioritised above the same field coming from static or timed metadata. * - *
This method must only be called if {@link #COMMAND_GET_MEDIA_ITEMS_METADATA} is {@linkplain + *
This method must only be called if {@link #COMMAND_GET_METADATA} is {@linkplain * #getAvailableCommands() available}. */ MediaMetadata getMediaMetadata(); @@ -2591,7 +2602,7 @@ public interface Player { * Returns the playlist {@link MediaMetadata}, as set by {@link * #setPlaylistMetadata(MediaMetadata)}, or {@link MediaMetadata#EMPTY} if not supported. * - *
This method must only be called if {@link #COMMAND_GET_MEDIA_ITEMS_METADATA} is {@linkplain + *
This method must only be called if {@link #COMMAND_GET_METADATA} is {@linkplain * #getAvailableCommands() available}. */ MediaMetadata getPlaylistMetadata(); @@ -2599,7 +2610,7 @@ public interface Player { /** * Sets the playlist {@link MediaMetadata}. * - *
This method must only be called if {@link #COMMAND_SET_MEDIA_ITEMS_METADATA} is {@linkplain + *
This method must only be called if {@link #COMMAND_SET_PLAYLIST_METADATA} is {@linkplain * #getAvailableCommands() available}. */ void setPlaylistMetadata(MediaMetadata mediaMetadata); diff --git a/libraries/common/src/main/java/androidx/media3/common/SimpleBasePlayer.java b/libraries/common/src/main/java/androidx/media3/common/SimpleBasePlayer.java index 0d6bcb7301..9ecb623582 100644 --- a/libraries/common/src/main/java/androidx/media3/common/SimpleBasePlayer.java +++ b/libraries/common/src/main/java/androidx/media3/common/SimpleBasePlayer.java @@ -2393,7 +2393,7 @@ public abstract class SimpleBasePlayer extends BasePlayer { verifyApplicationThreadAndInitState(); // Use a local copy to ensure the lambda below uses the current state value. State state = this.state; - if (!shouldHandleCommand(Player.COMMAND_SET_MEDIA_ITEMS_METADATA)) { + if (!shouldHandleCommand(Player.COMMAND_SET_PLAYLIST_METADATA)) { return; } updateStateForPendingOperation( @@ -2900,7 +2900,7 @@ public abstract class SimpleBasePlayer extends BasePlayer { /** * Handles calls to {@link Player#setPlaylistMetadata}. * - *
Will only be called if {@link Player#COMMAND_SET_MEDIA_ITEMS_METADATA} is available. + *
Will only be called if {@link Player#COMMAND_SET_PLAYLIST_METADATA} is available. * * @param playlistMetadata The requested {@linkplain MediaMetadata playlist metadata}. * @return A {@link ListenableFuture} indicating the completion of all immediate {@link State} @@ -2909,7 +2909,7 @@ public abstract class SimpleBasePlayer extends BasePlayer { @ForOverride protected ListenableFuture> handleSetPlaylistMetadata(MediaMetadata playlistMetadata) { throw new IllegalStateException( - "Missing implementation to handle COMMAND_SET_MEDIA_ITEMS_METADATA"); + "Missing implementation to handle COMMAND_SET_PLAYLIST_METADATA"); } /** diff --git a/libraries/common/src/test/java/androidx/media3/common/SimpleBasePlayerTest.java b/libraries/common/src/test/java/androidx/media3/common/SimpleBasePlayerTest.java index 5f0ea403a8..2c4aae495f 100644 --- a/libraries/common/src/test/java/androidx/media3/common/SimpleBasePlayerTest.java +++ b/libraries/common/src/test/java/androidx/media3/common/SimpleBasePlayerTest.java @@ -3060,7 +3060,7 @@ public class SimpleBasePlayerTest { .setAvailableCommands( new Commands.Builder() .addAllCommands() - .remove(Player.COMMAND_SET_MEDIA_ITEMS_METADATA) + .remove(Player.COMMAND_SET_PLAYLIST_METADATA) .build()) .build(); AtomicBoolean callForwarded = new AtomicBoolean(); diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java index b745901862..a237406f75 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java @@ -299,8 +299,8 @@ import java.util.concurrent.TimeoutException; COMMAND_SET_REPEAT_MODE, COMMAND_GET_CURRENT_MEDIA_ITEM, COMMAND_GET_TIMELINE, - COMMAND_GET_MEDIA_ITEMS_METADATA, - COMMAND_SET_MEDIA_ITEMS_METADATA, + COMMAND_GET_METADATA, + COMMAND_SET_PLAYLIST_METADATA, COMMAND_SET_MEDIA_ITEM, COMMAND_CHANGE_MEDIA_ITEMS, COMMAND_GET_TRACKS, diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java index 5c9cd47e10..df6cfc3d53 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java @@ -20,7 +20,7 @@ import static androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS; import static androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES; import static androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME; -import static androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA; +import static androidx.media3.common.Player.COMMAND_GET_METADATA; import static androidx.media3.common.Player.COMMAND_GET_TEXT; import static androidx.media3.common.Player.COMMAND_GET_TIMELINE; import static androidx.media3.common.Player.COMMAND_GET_TRACKS; @@ -39,7 +39,7 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS; import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME; import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM; -import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA; +import static androidx.media3.common.Player.COMMAND_SET_PLAYLIST_METADATA; import static androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE; import static androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE; import static androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH; @@ -9100,8 +9100,8 @@ public final class ExoPlayerTest { assertThat(player.isCommandAvailable(COMMAND_SET_REPEAT_MODE)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_GET_CURRENT_MEDIA_ITEM)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_GET_TIMELINE)).isTrue(); - assertThat(player.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)).isTrue(); - assertThat(player.isCommandAvailable(COMMAND_SET_MEDIA_ITEMS_METADATA)).isTrue(); + assertThat(player.isCommandAvailable(COMMAND_GET_METADATA)).isTrue(); + assertThat(player.isCommandAvailable(COMMAND_SET_PLAYLIST_METADATA)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_CHANGE_MEDIA_ITEMS)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_SET_MEDIA_ITEM)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_GET_AUDIO_ATTRIBUTES)).isTrue(); @@ -12416,8 +12416,8 @@ public final class ExoPlayerTest { COMMAND_SET_REPEAT_MODE, COMMAND_GET_CURRENT_MEDIA_ITEM, COMMAND_GET_TIMELINE, - COMMAND_GET_MEDIA_ITEMS_METADATA, - COMMAND_SET_MEDIA_ITEMS_METADATA, + COMMAND_GET_METADATA, + COMMAND_SET_PLAYLIST_METADATA, COMMAND_CHANGE_MEDIA_ITEMS, COMMAND_SET_MEDIA_ITEM, COMMAND_GET_AUDIO_ATTRIBUTES, diff --git a/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java b/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java index b6c487fcd2..ef453b7cc7 100644 --- a/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java +++ b/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java @@ -319,7 +319,7 @@ public class DefaultMediaNotificationProvider implements MediaNotification.Provi mediaStyle.setShowActionsInCompactView(compactViewIndices); // Set metadata info in the notification. - if (player.isCommandAvailable(Player.COMMAND_GET_MEDIA_ITEMS_METADATA)) { + if (player.isCommandAvailable(Player.COMMAND_GET_METADATA)) { MediaMetadata metadata = player.getMediaMetadata(); builder .setContentTitle(getNotificationContentTitle(metadata)) diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java index 25f45b6ba2..a5ec2e4f22 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplBase.java @@ -831,7 +831,7 @@ import org.checkerframework.checker.nullness.qual.NonNull; @Override public void setPlaylistMetadata(MediaMetadata playlistMetadata) { - if (!isPlayerCommandAvailable(Player.COMMAND_SET_MEDIA_ITEMS_METADATA)) { + if (!isPlayerCommandAvailable(Player.COMMAND_SET_PLAYLIST_METADATA)) { return; } diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java index 3c0b27a775..2057dbf34d 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java @@ -30,7 +30,7 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS; import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME; import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM; -import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA; +import static androidx.media3.common.Player.COMMAND_SET_PLAYLIST_METADATA; import static androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE; import static androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE; import static androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH; @@ -1049,7 +1049,7 @@ import java.util.concurrent.ExecutionException; queueSessionTaskWithPlayerCommand( caller, sequenceNumber, - COMMAND_SET_MEDIA_ITEMS_METADATA, + COMMAND_SET_PLAYLIST_METADATA, sendSessionResultSuccess(player -> player.setPlaylistMetadata(playlistMetadata))); } diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaUtils.java b/libraries/session/src/main/java/androidx/media3/session/MediaUtils.java index 0e10dbc2db..e5860268f2 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaUtils.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaUtils.java @@ -22,7 +22,7 @@ import static androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS; import static androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES; import static androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME; -import static androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA; +import static androidx.media3.common.Player.COMMAND_GET_METADATA; import static androidx.media3.common.Player.COMMAND_GET_TIMELINE; import static androidx.media3.common.Player.COMMAND_PLAY_PAUSE; import static androidx.media3.common.Player.COMMAND_PREPARE; @@ -1148,7 +1148,7 @@ import org.checkerframework.checker.nullness.compatqual.NullableType; playerCommandsBuilder.addAll( COMMAND_GET_DEVICE_VOLUME, COMMAND_GET_TIMELINE, - COMMAND_GET_MEDIA_ITEMS_METADATA, + COMMAND_GET_METADATA, COMMAND_GET_CURRENT_MEDIA_ITEM, COMMAND_GET_AUDIO_ATTRIBUTES, COMMAND_RELEASE); diff --git a/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java b/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java index 3c6bbc1f3b..feeb4dce69 100644 --- a/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java +++ b/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java @@ -829,7 +829,7 @@ import com.google.errorprone.annotations.CanIgnoreReturnValue; timeline.toBundleWithOneWindowOnly(sessionPositionInfo.positionInfo.mediaItemIndex)); } bundle.putBundle(FIELD_VIDEO_SIZE, videoSize.toBundle()); - if (availableCommands.contains(Player.COMMAND_GET_MEDIA_ITEMS_METADATA)) { + if (availableCommands.contains(Player.COMMAND_GET_METADATA)) { bundle.putBundle(FIELD_PLAYLIST_METADATA, playlistMetadata.toBundle()); } if (availableCommands.contains(Player.COMMAND_GET_VOLUME)) { @@ -851,7 +851,7 @@ import com.google.errorprone.annotations.CanIgnoreReturnValue; bundle.putInt(FIELD_PLAYBACK_STATE, playbackState); bundle.putBoolean(FIELD_IS_PLAYING, isPlaying); bundle.putBoolean(FIELD_IS_LOADING, isLoading); - if (availableCommands.contains(Player.COMMAND_GET_MEDIA_ITEMS_METADATA)) { + if (availableCommands.contains(Player.COMMAND_GET_METADATA)) { bundle.putBundle(FIELD_MEDIA_METADATA, mediaMetadata.toBundle()); } bundle.putLong(FIELD_SEEK_BACK_INCREMENT_MS, seekBackIncrementMs); diff --git a/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java b/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java index c4922f4b4f..fbb466ed6e 100644 --- a/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java +++ b/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java @@ -604,7 +604,7 @@ import java.util.List; } public MediaMetadata getPlaylistMetadataWithCommandCheck() { - return isCommandAvailable(Player.COMMAND_GET_MEDIA_ITEMS_METADATA) + return isCommandAvailable(Player.COMMAND_GET_METADATA) ? getPlaylistMetadata() : MediaMetadata.EMPTY; } @@ -811,9 +811,7 @@ import java.util.List; } public MediaMetadata getMediaMetadataWithCommandCheck() { - return isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA) - ? getMediaMetadata() - : MediaMetadata.EMPTY; + return isCommandAvailable(COMMAND_GET_METADATA) ? getMediaMetadata() : MediaMetadata.EMPTY; } @Override @@ -1155,7 +1153,7 @@ import java.util.List; case Player.COMMAND_GET_AUDIO_ATTRIBUTES: case Player.COMMAND_GET_CURRENT_MEDIA_ITEM: case Player.COMMAND_GET_DEVICE_VOLUME: - case Player.COMMAND_GET_MEDIA_ITEMS_METADATA: + case Player.COMMAND_GET_METADATA: case Player.COMMAND_GET_TEXT: case Player.COMMAND_GET_TIMELINE: case Player.COMMAND_GET_TRACKS: @@ -1163,7 +1161,7 @@ import java.util.List; case Player.COMMAND_INVALID: case Player.COMMAND_SEEK_TO_DEFAULT_POSITION: case Player.COMMAND_SET_DEVICE_VOLUME: - case Player.COMMAND_SET_MEDIA_ITEMS_METADATA: + case Player.COMMAND_SET_PLAYLIST_METADATA: case Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS: case Player.COMMAND_SET_VIDEO_SURFACE: case Player.COMMAND_SET_VOLUME: diff --git a/libraries/session/src/test/java/androidx/media3/session/DefaultMediaNotificationProviderTest.java b/libraries/session/src/test/java/androidx/media3/session/DefaultMediaNotificationProviderTest.java index 6866f25fc4..8aa7484a56 100644 --- a/libraries/session/src/test/java/androidx/media3/session/DefaultMediaNotificationProviderTest.java +++ b/libraries/session/src/test/java/androidx/media3/session/DefaultMediaNotificationProviderTest.java @@ -824,14 +824,14 @@ public class DefaultMediaNotificationProviderTest { return new ForwardingPlayer(new TestExoPlayerBuilder(context).build()) { @Override public boolean isCommandAvailable(int command) { - return isMetadataCommandAvailable || command != Player.COMMAND_GET_MEDIA_ITEMS_METADATA; + return isMetadataCommandAvailable || command != Player.COMMAND_GET_METADATA; } @Override public Commands getAvailableCommands() { Commands.Builder commandsBuilder = new Commands.Builder().addAllCommands(); if (!isMetadataCommandAvailable) { - commandsBuilder.remove(Player.COMMAND_GET_MEDIA_ITEMS_METADATA); + commandsBuilder.remove(Player.COMMAND_GET_METADATA); } return commandsBuilder.build(); } diff --git a/libraries/session/src/test/java/androidx/media3/session/PlayerInfoTest.java b/libraries/session/src/test/java/androidx/media3/session/PlayerInfoTest.java index 32ea6e18a5..8029205deb 100644 --- a/libraries/session/src/test/java/androidx/media3/session/PlayerInfoTest.java +++ b/libraries/session/src/test/java/androidx/media3/session/PlayerInfoTest.java @@ -476,7 +476,7 @@ public class PlayerInfoTest { playerInfo.toBundle( new Player.Commands.Builder() .addAllCommands() - .remove(Player.COMMAND_GET_MEDIA_ITEMS_METADATA) + .remove(Player.COMMAND_GET_METADATA) .build(), /* excludeTimeline= */ false, /* excludeTracks= */ false)); diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java index 38492052ef..b716f37bfb 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java @@ -23,7 +23,7 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME; import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM; -import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA; +import static androidx.media3.common.Player.COMMAND_SET_PLAYLIST_METADATA; import static androidx.media3.common.Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS; import static androidx.media3.session.MediaUtils.createPlayerCommandsWith; import static androidx.media3.session.MediaUtils.createPlayerCommandsWithout; @@ -136,7 +136,7 @@ public class MediaSessionPermissionTest { @Test public void setPlaylistMetadata() throws Exception { testOnCommandRequest( - COMMAND_SET_MEDIA_ITEMS_METADATA, + COMMAND_SET_PLAYLIST_METADATA, controller -> controller.setPlaylistMetadata(MediaMetadata.EMPTY)); } diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaUtilsTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaUtilsTest.java index e949c5669c..138405b1c1 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaUtilsTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaUtilsTest.java @@ -497,7 +497,7 @@ public final class MediaUtilsTest { Player.COMMAND_GET_TIMELINE, Player.COMMAND_GET_CURRENT_MEDIA_ITEM, Player.COMMAND_GET_DEVICE_VOLUME, - Player.COMMAND_GET_MEDIA_ITEMS_METADATA, + Player.COMMAND_GET_METADATA, Player.COMMAND_GET_AUDIO_ATTRIBUTES, Player.COMMAND_RELEASE); } diff --git a/libraries/ui/src/main/java/androidx/media3/ui/DefaultMediaDescriptionAdapter.java b/libraries/ui/src/main/java/androidx/media3/ui/DefaultMediaDescriptionAdapter.java index 85b5905d67..8bfdea9a5a 100644 --- a/libraries/ui/src/main/java/androidx/media3/ui/DefaultMediaDescriptionAdapter.java +++ b/libraries/ui/src/main/java/androidx/media3/ui/DefaultMediaDescriptionAdapter.java @@ -15,7 +15,7 @@ */ package androidx.media3.ui; -import static androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA; +import static androidx.media3.common.Player.COMMAND_GET_METADATA; import android.app.PendingIntent; import android.graphics.Bitmap; @@ -50,7 +50,7 @@ public final class DefaultMediaDescriptionAdapter implements MediaDescriptionAda @Override public CharSequence getCurrentContentTitle(Player player) { - if (!player.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)) { + if (!player.isCommandAvailable(COMMAND_GET_METADATA)) { return ""; } @Nullable CharSequence displayTitle = player.getMediaMetadata().displayTitle; @@ -71,7 +71,7 @@ public final class DefaultMediaDescriptionAdapter implements MediaDescriptionAda @Nullable @Override public CharSequence getCurrentContentText(Player player) { - if (!player.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)) { + if (!player.isCommandAvailable(COMMAND_GET_METADATA)) { return null; } @Nullable CharSequence artist = player.getMediaMetadata().artist; @@ -85,7 +85,7 @@ public final class DefaultMediaDescriptionAdapter implements MediaDescriptionAda @Nullable @Override public Bitmap getCurrentLargeIcon(Player player, BitmapCallback callback) { - if (!player.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)) { + if (!player.isCommandAvailable(COMMAND_GET_METADATA)) { return null; } @Nullable byte[] data = player.getMediaMetadata().artworkData; diff --git a/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java b/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java index 122dfe78b1..ebe6f44159 100644 --- a/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java +++ b/libraries/ui/src/main/java/androidx/media3/ui/PlayerView.java @@ -16,7 +16,7 @@ package androidx.media3.ui; import static androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM; -import static androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA; +import static androidx.media3.common.Player.COMMAND_GET_METADATA; import static androidx.media3.common.Player.COMMAND_GET_TEXT; import static androidx.media3.common.Player.COMMAND_GET_TIMELINE; import static androidx.media3.common.Player.COMMAND_GET_TRACKS; @@ -1382,7 +1382,7 @@ public class PlayerView extends FrameLayout implements AdViewProvider { @RequiresNonNull("artworkView") private boolean setArtworkFromMediaMetadata(Player player) { - if (!player.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)) { + if (!player.isCommandAvailable(COMMAND_GET_METADATA)) { return false; } MediaMetadata mediaMetadata = player.getMediaMetadata(); diff --git a/libraries/ui/src/test/java/androidx/media3/ui/DefaultMediaDescriptionAdapterTest.java b/libraries/ui/src/test/java/androidx/media3/ui/DefaultMediaDescriptionAdapterTest.java index 3f295789b0..fba90b4ad7 100644 --- a/libraries/ui/src/test/java/androidx/media3/ui/DefaultMediaDescriptionAdapterTest.java +++ b/libraries/ui/src/test/java/androidx/media3/ui/DefaultMediaDescriptionAdapterTest.java @@ -43,7 +43,7 @@ public class DefaultMediaDescriptionAdapterTest { PendingIntent.getActivity(context, 0, new Intent(), PendingIntent.FLAG_IMMUTABLE); DefaultMediaDescriptionAdapter adapter = new DefaultMediaDescriptionAdapter(pendingIntent); - when(player.isCommandAvailable(Player.COMMAND_GET_MEDIA_ITEMS_METADATA)).thenReturn(true); + when(player.isCommandAvailable(Player.COMMAND_GET_METADATA)).thenReturn(true); when(player.getMediaMetadata()).thenReturn(mediaMetadata); assertThat(adapter.createCurrentContentIntent(player)).isEqualTo(pendingIntent); @@ -63,7 +63,7 @@ public class DefaultMediaDescriptionAdapterTest { PendingIntent.getActivity(context, 0, new Intent(), PendingIntent.FLAG_IMMUTABLE); DefaultMediaDescriptionAdapter adapter = new DefaultMediaDescriptionAdapter(pendingIntent); - when(player.isCommandAvailable(Player.COMMAND_GET_MEDIA_ITEMS_METADATA)).thenReturn(false); + when(player.isCommandAvailable(Player.COMMAND_GET_METADATA)).thenReturn(false); when(player.getMediaMetadata()).thenReturn(mediaMetadata); assertThat(adapter.createCurrentContentIntent(player)).isEqualTo(pendingIntent);