From 6a30af567f72b5c92d0ccc36889a87ddf3c4d622 Mon Sep 17 00:00:00 2001 From: krocard Date: Mon, 17 May 2021 14:33:05 +0100 Subject: [PATCH] Add Commands.Builder.addAllCommands for easy init MediaSession default command state contains all commands. To avoid having to update MediaSession when a command is added, allow to create a Commands.Builder that starts with all commands. PiperOrigin-RevId: 374183484 --- .../com/google/android/exoplayer2/Player.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/library/common/src/main/java/com/google/android/exoplayer2/Player.java b/library/common/src/main/java/com/google/android/exoplayer2/Player.java index 9f747bd3b2..898737ef28 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/Player.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/Player.java @@ -581,6 +581,33 @@ public interface Player { /** A builder for {@link Commands} instances. */ public static final class Builder { + @Command + private static final int[] SUPPORTED_COMMANDS = { + COMMAND_PLAY_PAUSE, + COMMAND_PREPARE_STOP, + COMMAND_SEEK_TO_DEFAULT_POSITION, + COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM, + COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, + COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, + COMMAND_SEEK_TO_MEDIA_ITEM, + COMMAND_SET_SPEED_AND_PITCH, + COMMAND_SET_SHUFFLE_MODE, + COMMAND_SET_REPEAT_MODE, + COMMAND_GET_CURRENT_MEDIA_ITEM, + COMMAND_GET_MEDIA_ITEMS, + COMMAND_GET_MEDIA_ITEMS_METADATA, + COMMAND_SET_MEDIA_ITEMS_METADATA, + COMMAND_CHANGE_MEDIA_ITEMS, + COMMAND_GET_AUDIO_ATTRIBUTES, + COMMAND_GET_VOLUME, + COMMAND_GET_DEVICE_VOLUME, + COMMAND_SET_VOLUME, + COMMAND_SET_DEVICE_VOLUME, + COMMAND_ADJUST_DEVICE_VOLUME, + COMMAND_SET_VIDEO_SURFACE, + COMMAND_GET_TEXT + }; + private final ExoFlags.Builder flagsBuilder; /** Creates a builder. */ @@ -642,6 +669,17 @@ public interface Player { return this; } + /** + * Adds all existing {@link Command commands}. + * + * @return This builder. + * @throws IllegalStateException If {@link #build()} has already been called. + */ + public Builder addAllCommands() { + flagsBuilder.addAll(SUPPORTED_COMMANDS); + return this; + } + /** * Removes a {@link Command}. *