Rename misleading COMMAND_GET/SET_MEDIA_ITEMS_METADATA

The setter command is only used for setPlaylistMetadata and can
be named COMMAND_SET_PLAYLIST_METADATA. The getter commnad is
used to access getMediaMetadata and getPlaylistMetadata and can
be better named COMMAND_GET_METADATA to reflect this usage.

PiperOrigin-RevId: 523673286
This commit is contained in:
tonihei 2023-04-12 13:29:39 +01:00 committed by Rohit Singh
parent affc237055
commit c5baf2388c
22 changed files with 74 additions and 60 deletions

View File

@ -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`

View File

@ -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 {

View File

@ -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,

View File

@ -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();

View File

@ -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 {
* <li>{@link #COMMAND_SET_REPEAT_MODE}
* <li>{@link #COMMAND_GET_CURRENT_MEDIA_ITEM}
* <li>{@link #COMMAND_GET_TIMELINE}
* <li>{@link #COMMAND_GET_MEDIA_ITEMS_METADATA}
* <li>{@link #COMMAND_SET_MEDIA_ITEMS_METADATA}
* <li>{@link #COMMAND_GET_METADATA}
* <li>{@link #COMMAND_SET_PLAYLIST_METADATA}
* <li>{@link #COMMAND_SET_MEDIA_ITEM}
* <li>{@link #COMMAND_CHANGE_MEDIA_ITEMS}
* <li>{@link #COMMAND_GET_AUDIO_ATTRIBUTES}
@ -1447,6 +1447,7 @@ public interface Player {
*/
// @Target list includes both 'default' targets and TYPE_USE, to ensure backwards compatibility
// with Kotlin usages from before TYPE_USE was added.
@SuppressWarnings("deprecation") // Listing deprecated constants.
@Documented
@Retention(RetentionPolicy.SOURCE)
@Target({FIELD, METHOD, PARAMETER, LOCAL_VARIABLE, TYPE_USE})
@ -1470,7 +1471,9 @@ public interface Player {
COMMAND_GET_CURRENT_MEDIA_ITEM,
COMMAND_GET_TIMELINE,
COMMAND_GET_MEDIA_ITEMS_METADATA,
COMMAND_GET_METADATA,
COMMAND_SET_MEDIA_ITEMS_METADATA,
COMMAND_SET_PLAYLIST_METADATA,
COMMAND_SET_MEDIA_ITEM,
COMMAND_CHANGE_MEDIA_ITEMS,
COMMAND_GET_AUDIO_ATTRIBUTES,
@ -1682,6 +1685,11 @@ public interface Player {
*/
int COMMAND_GET_TIMELINE = 17;
/**
* @deprecated Use {@link #COMMAND_GET_METADATA} instead.
*/
@Deprecated int COMMAND_GET_MEDIA_ITEMS_METADATA = 18;
/**
* Command to get metadata related to the playlist and current {@link MediaItem}.
*
@ -1693,8 +1701,12 @@ public interface Player {
* <li>{@link #getPlaylistMetadata()}
* </ul>
*/
// TODO(b/263132691): Rename this to COMMAND_GET_METADATA
int COMMAND_GET_MEDIA_ITEMS_METADATA = 18;
int COMMAND_GET_METADATA = 18;
/**
* @deprecated Use {@link #COMMAND_SET_PLAYLIST_METADATA} instead.
*/
@Deprecated int COMMAND_SET_MEDIA_ITEMS_METADATA = 19;
/**
* Command to set the playlist metadata.
@ -1702,8 +1714,7 @@ public interface Player {
* <p>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.
*
* <p>This method must only be called if {@link #COMMAND_GET_MEDIA_ITEMS_METADATA} is {@linkplain
* <p>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.
*
* <p>This method must only be called if {@link #COMMAND_GET_MEDIA_ITEMS_METADATA} is {@linkplain
* <p>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}.
*
* <p>This method must only be called if {@link #COMMAND_SET_MEDIA_ITEMS_METADATA} is {@linkplain
* <p>This method must only be called if {@link #COMMAND_SET_PLAYLIST_METADATA} is {@linkplain
* #getAvailableCommands() available}.
*/
void setPlaylistMetadata(MediaMetadata mediaMetadata);

View File

@ -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}.
*
* <p>Will only be called if {@link Player#COMMAND_SET_MEDIA_ITEMS_METADATA} is available.
* <p>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");
}
/**

View File

@ -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();

View File

@ -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,

View File

@ -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,

View File

@ -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))

View File

@ -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;
}

View File

@ -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)));
}

View File

@ -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);

View File

@ -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);

View File

@ -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:

View File

@ -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();
}

View File

@ -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));

View File

@ -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));
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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();

View File

@ -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);