diff --git a/libraries/session/src/main/java/androidx/media3/session/CommandButton.java b/libraries/session/src/main/java/androidx/media3/session/CommandButton.java index 5d09a9daeb..a6fd0e159f 100644 --- a/libraries/session/src/main/java/androidx/media3/session/CommandButton.java +++ b/libraries/session/src/main/java/androidx/media3/session/CommandButton.java @@ -586,160 +586,6 @@ public final class CommandButton implements Bundleable { return new CommandButton( sessionCommand, playerCommand, icon, iconResId, iconUri, displayName, extras, enabled); } - - @DrawableRes - private static int getIconResIdForIconConstant(@Icon int icon) { - switch (icon) { - case ICON_PLAY: - return R.drawable.media3_icon_play; - case ICON_PAUSE: - return R.drawable.media3_icon_pause; - case ICON_STOP: - return R.drawable.media3_icon_stop; - case ICON_NEXT: - return R.drawable.media3_icon_next; - case ICON_PREVIOUS: - return R.drawable.media3_icon_previous; - case ICON_SKIP_FORWARD: - return R.drawable.media3_icon_skip_forward; - case ICON_SKIP_FORWARD_5: - return R.drawable.media3_icon_skip_forward_5; - case ICON_SKIP_FORWARD_10: - return R.drawable.media3_icon_skip_forward_10; - case ICON_SKIP_FORWARD_15: - return R.drawable.media3_icon_skip_forward_15; - case ICON_SKIP_FORWARD_30: - return R.drawable.media3_icon_skip_forward_30; - case ICON_SKIP_BACK: - return R.drawable.media3_icon_skip_back; - case ICON_SKIP_BACK_5: - return R.drawable.media3_icon_skip_back_5; - case ICON_SKIP_BACK_10: - return R.drawable.media3_icon_skip_back_10; - case ICON_SKIP_BACK_15: - return R.drawable.media3_icon_skip_back_15; - case ICON_SKIP_BACK_30: - return R.drawable.media3_icon_skip_back_30; - case ICON_FAST_FORWARD: - return R.drawable.media3_icon_fast_forward; - case ICON_REWIND: - return R.drawable.media3_icon_rewind; - case ICON_REPEAT_ALL: - return R.drawable.media3_icon_repeat_all; - case ICON_REPEAT_ONE: - return R.drawable.media3_icon_repeat_one; - case ICON_REPEAT_OFF: - return R.drawable.media3_icon_repeat_off; - case ICON_SHUFFLE_ON: - return R.drawable.media3_icon_shuffle_on; - case ICON_SHUFFLE_OFF: - return R.drawable.media3_icon_shuffle_off; - case ICON_SHUFFLE_STAR: - return R.drawable.media3_icon_shuffle_star; - case ICON_HEART_FILLED: - return R.drawable.media3_icon_heart_filled; - case ICON_HEART_UNFILLED: - return R.drawable.media3_icon_heart_unfilled; - case ICON_STAR_FILLED: - return R.drawable.media3_icon_star_filled; - case ICON_STAR_UNFILLED: - return R.drawable.media3_icon_star_unfilled; - case ICON_BOOKMARK_FILLED: - return R.drawable.media3_icon_bookmark_filled; - case ICON_BOOKMARK_UNFILLED: - return R.drawable.media3_icon_bookmark_unfilled; - case ICON_THUMB_UP_FILLED: - return R.drawable.media3_icon_thumb_up_filled; - case ICON_THUMB_UP_UNFILLED: - return R.drawable.media3_icon_thumb_up_unfilled; - case ICON_THUMB_DOWN_FILLED: - return R.drawable.media3_icon_thumb_down_filled; - case ICON_THUMB_DOWN_UNFILLED: - return R.drawable.media3_icon_thumb_down_unfilled; - case ICON_FLAG_FILLED: - return R.drawable.media3_icon_flag_filled; - case ICON_FLAG_UNFILLED: - return R.drawable.media3_icon_flag_unfilled; - case ICON_PLUS: - return R.drawable.media3_icon_plus; - case ICON_MINUS: - return R.drawable.media3_icon_minus; - case ICON_PLAYLIST_ADD: - return R.drawable.media3_icon_playlist_add; - case ICON_PLAYLIST_REMOVE: - return R.drawable.media3_icon_playlist_remove; - case ICON_QUEUE_ADD: - return R.drawable.media3_icon_queue_add; - case ICON_QUEUE_NEXT: - return R.drawable.media3_icon_queue_next; - case ICON_QUEUE_REMOVE: - return R.drawable.media3_icon_queue_remove; - case ICON_BLOCK: - return R.drawable.media3_icon_block; - case ICON_PLUS_CIRCLE_FILLED: - return R.drawable.media3_icon_plus_circle_filled; - case ICON_PLUS_CIRCLE_UNFILLED: - return R.drawable.media3_icon_plus_circle_unfilled; - case ICON_MINUS_CIRCLE_FILLED: - return R.drawable.media3_icon_minus_circle_filled; - case ICON_MINUS_CIRCLE_UNFILLED: - return R.drawable.media3_icon_minus_circle_unfilled; - case ICON_CHECK_CIRCLE_FILLED: - return R.drawable.media3_icon_check_circle_filled; - case ICON_CHECK_CIRCLE_UNFILLED: - return R.drawable.media3_icon_check_circle_unfilled; - case ICON_PLAYBACK_SPEED: - return R.drawable.media3_icon_playback_speed; - case ICON_PLAYBACK_SPEED_0_5: - return R.drawable.media3_icon_playback_speed_0_5; - case ICON_PLAYBACK_SPEED_0_8: - return R.drawable.media3_icon_playback_speed_0_8; - case ICON_PLAYBACK_SPEED_1_0: - return R.drawable.media3_icon_playback_speed_1_0; - case ICON_PLAYBACK_SPEED_1_2: - return R.drawable.media3_icon_playback_speed_1_2; - case ICON_PLAYBACK_SPEED_1_5: - return R.drawable.media3_icon_playback_speed_1_5; - case ICON_PLAYBACK_SPEED_1_8: - return R.drawable.media3_icon_playback_speed_1_8; - case ICON_PLAYBACK_SPEED_2_0: - return R.drawable.media3_icon_playback_speed_2_0; - case ICON_SETTINGS: - return R.drawable.media3_icon_settings; - case ICON_QUALITY: - return R.drawable.media3_icon_quality; - case ICON_SUBTITLES: - return R.drawable.media3_icon_subtitles; - case ICON_SUBTITLES_OFF: - return R.drawable.media3_icon_subtitles_off; - case ICON_CLOSED_CAPTIONS: - return R.drawable.media3_icon_closed_captions; - case ICON_CLOSED_CAPTIONS_OFF: - return R.drawable.media3_icon_closed_captions_off; - case ICON_SYNC: - return R.drawable.media3_icon_sync; - case ICON_SHARE: - return R.drawable.media3_icon_share; - case ICON_VOLUME_UP: - return R.drawable.media3_icon_volume_up; - case ICON_VOLUME_DOWN: - return R.drawable.media3_icon_volume_down; - case ICON_VOLUME_OFF: - return R.drawable.media3_icon_volume_off; - case ICON_ARTIST: - return R.drawable.media3_icon_artist; - case ICON_ALBUM: - return R.drawable.media3_icon_album; - case ICON_RADIO: - return R.drawable.media3_icon_radio; - case ICON_SIGNAL: - return R.drawable.media3_icon_signal; - case ICON_FEED: - return R.drawable.media3_icon_feed; - default: - return 0; - } - } } /** The session command of the button. Will be {@code null} if {@link #playerCommand} is set. */ @@ -986,4 +832,165 @@ public final class CommandButton implements Bundleable { .setEnabled(enabled) .build(); } + + /** + * Returns a drawable resource id for the given {@link Icon} constant. + * + * @param icon The {@link Icon}. + * @return The drawable resource if for the {@code icon}, or 0 if not found. + */ + @UnstableApi + @DrawableRes + public static int getIconResIdForIconConstant(@Icon int icon) { + switch (icon) { + case ICON_PLAY: + return R.drawable.media3_icon_play; + case ICON_PAUSE: + return R.drawable.media3_icon_pause; + case ICON_STOP: + return R.drawable.media3_icon_stop; + case ICON_NEXT: + return R.drawable.media3_icon_next; + case ICON_PREVIOUS: + return R.drawable.media3_icon_previous; + case ICON_SKIP_FORWARD: + return R.drawable.media3_icon_skip_forward; + case ICON_SKIP_FORWARD_5: + return R.drawable.media3_icon_skip_forward_5; + case ICON_SKIP_FORWARD_10: + return R.drawable.media3_icon_skip_forward_10; + case ICON_SKIP_FORWARD_15: + return R.drawable.media3_icon_skip_forward_15; + case ICON_SKIP_FORWARD_30: + return R.drawable.media3_icon_skip_forward_30; + case ICON_SKIP_BACK: + return R.drawable.media3_icon_skip_back; + case ICON_SKIP_BACK_5: + return R.drawable.media3_icon_skip_back_5; + case ICON_SKIP_BACK_10: + return R.drawable.media3_icon_skip_back_10; + case ICON_SKIP_BACK_15: + return R.drawable.media3_icon_skip_back_15; + case ICON_SKIP_BACK_30: + return R.drawable.media3_icon_skip_back_30; + case ICON_FAST_FORWARD: + return R.drawable.media3_icon_fast_forward; + case ICON_REWIND: + return R.drawable.media3_icon_rewind; + case ICON_REPEAT_ALL: + return R.drawable.media3_icon_repeat_all; + case ICON_REPEAT_ONE: + return R.drawable.media3_icon_repeat_one; + case ICON_REPEAT_OFF: + return R.drawable.media3_icon_repeat_off; + case ICON_SHUFFLE_ON: + return R.drawable.media3_icon_shuffle_on; + case ICON_SHUFFLE_OFF: + return R.drawable.media3_icon_shuffle_off; + case ICON_SHUFFLE_STAR: + return R.drawable.media3_icon_shuffle_star; + case ICON_HEART_FILLED: + return R.drawable.media3_icon_heart_filled; + case ICON_HEART_UNFILLED: + return R.drawable.media3_icon_heart_unfilled; + case ICON_STAR_FILLED: + return R.drawable.media3_icon_star_filled; + case ICON_STAR_UNFILLED: + return R.drawable.media3_icon_star_unfilled; + case ICON_BOOKMARK_FILLED: + return R.drawable.media3_icon_bookmark_filled; + case ICON_BOOKMARK_UNFILLED: + return R.drawable.media3_icon_bookmark_unfilled; + case ICON_THUMB_UP_FILLED: + return R.drawable.media3_icon_thumb_up_filled; + case ICON_THUMB_UP_UNFILLED: + return R.drawable.media3_icon_thumb_up_unfilled; + case ICON_THUMB_DOWN_FILLED: + return R.drawable.media3_icon_thumb_down_filled; + case ICON_THUMB_DOWN_UNFILLED: + return R.drawable.media3_icon_thumb_down_unfilled; + case ICON_FLAG_FILLED: + return R.drawable.media3_icon_flag_filled; + case ICON_FLAG_UNFILLED: + return R.drawable.media3_icon_flag_unfilled; + case ICON_PLUS: + return R.drawable.media3_icon_plus; + case ICON_MINUS: + return R.drawable.media3_icon_minus; + case ICON_PLAYLIST_ADD: + return R.drawable.media3_icon_playlist_add; + case ICON_PLAYLIST_REMOVE: + return R.drawable.media3_icon_playlist_remove; + case ICON_QUEUE_ADD: + return R.drawable.media3_icon_queue_add; + case ICON_QUEUE_NEXT: + return R.drawable.media3_icon_queue_next; + case ICON_QUEUE_REMOVE: + return R.drawable.media3_icon_queue_remove; + case ICON_BLOCK: + return R.drawable.media3_icon_block; + case ICON_PLUS_CIRCLE_FILLED: + return R.drawable.media3_icon_plus_circle_filled; + case ICON_PLUS_CIRCLE_UNFILLED: + return R.drawable.media3_icon_plus_circle_unfilled; + case ICON_MINUS_CIRCLE_FILLED: + return R.drawable.media3_icon_minus_circle_filled; + case ICON_MINUS_CIRCLE_UNFILLED: + return R.drawable.media3_icon_minus_circle_unfilled; + case ICON_CHECK_CIRCLE_FILLED: + return R.drawable.media3_icon_check_circle_filled; + case ICON_CHECK_CIRCLE_UNFILLED: + return R.drawable.media3_icon_check_circle_unfilled; + case ICON_PLAYBACK_SPEED: + return R.drawable.media3_icon_playback_speed; + case ICON_PLAYBACK_SPEED_0_5: + return R.drawable.media3_icon_playback_speed_0_5; + case ICON_PLAYBACK_SPEED_0_8: + return R.drawable.media3_icon_playback_speed_0_8; + case ICON_PLAYBACK_SPEED_1_0: + return R.drawable.media3_icon_playback_speed_1_0; + case ICON_PLAYBACK_SPEED_1_2: + return R.drawable.media3_icon_playback_speed_1_2; + case ICON_PLAYBACK_SPEED_1_5: + return R.drawable.media3_icon_playback_speed_1_5; + case ICON_PLAYBACK_SPEED_1_8: + return R.drawable.media3_icon_playback_speed_1_8; + case ICON_PLAYBACK_SPEED_2_0: + return R.drawable.media3_icon_playback_speed_2_0; + case ICON_SETTINGS: + return R.drawable.media3_icon_settings; + case ICON_QUALITY: + return R.drawable.media3_icon_quality; + case ICON_SUBTITLES: + return R.drawable.media3_icon_subtitles; + case ICON_SUBTITLES_OFF: + return R.drawable.media3_icon_subtitles_off; + case ICON_CLOSED_CAPTIONS: + return R.drawable.media3_icon_closed_captions; + case ICON_CLOSED_CAPTIONS_OFF: + return R.drawable.media3_icon_closed_captions_off; + case ICON_SYNC: + return R.drawable.media3_icon_sync; + case ICON_SHARE: + return R.drawable.media3_icon_share; + case ICON_VOLUME_UP: + return R.drawable.media3_icon_volume_up; + case ICON_VOLUME_DOWN: + return R.drawable.media3_icon_volume_down; + case ICON_VOLUME_OFF: + return R.drawable.media3_icon_volume_off; + case ICON_ARTIST: + return R.drawable.media3_icon_artist; + case ICON_ALBUM: + return R.drawable.media3_icon_album; + case ICON_RADIO: + return R.drawable.media3_icon_radio; + case ICON_SIGNAL: + return R.drawable.media3_icon_signal; + case ICON_FEED: + return R.drawable.media3_icon_feed; + default: + return 0; + } + } }