From 225ad482b13f2c9c661f2bf70300cdf948597fdf Mon Sep 17 00:00:00 2001 From: bachinger Date: Sun, 21 Jul 2024 23:38:41 -0700 Subject: [PATCH] Add EXTRAS_KEY_DOWNLOAD_STATUS to MediaContants This was used in media1 `MediaItemDescription` to indicate the download status of a media item. When connected to a legacy `MediaBrowserServiceCompat` the Media3 browsers converts the legacy media item to a Media3 `MediaItem` and converts the extras of `MediaDescriptionCompat.extras` to `MediaMetadata.extras`. #cherrypick PiperOrigin-RevId: 654625502 --- .../media3/session/MediaConstants.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaConstants.java b/libraries/session/src/main/java/androidx/media3/session/MediaConstants.java index 12769dabbe..b98cbbac5e 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaConstants.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaConstants.java @@ -24,6 +24,7 @@ import androidx.media3.common.MediaMetadata; import androidx.media3.common.util.UnstableApi; import androidx.media3.session.MediaLibraryService.LibraryParams; import androidx.media3.session.MediaLibraryService.MediaLibrarySession; +import androidx.media3.session.legacy.MediaDescriptionCompat; import androidx.media3.session.legacy.PlaybackStateCompat; /** Constants that can be shared between media session and controller. */ @@ -495,5 +496,43 @@ public final class MediaConstants { /* package */ static final String ARGUMENT_CAPTIONING_ENABLED = "androidx.media3.session.ARGUMENT_CAPTIONING_ENABLED"; + /** + * {@link Bundle} key used as a long extra field to indicate the download status of the media + * item. The value should be one of the following: + * + * + */ + @UnstableApi + public static final String EXTRAS_KEY_DOWNLOAD_STATUS = + MediaDescriptionCompat.EXTRA_DOWNLOAD_STATUS; + + /** + * The extras value to indicate that the media item is not downloaded. Used with {@link + * #EXTRAS_KEY_DOWNLOAD_STATUS}. + */ + @UnstableApi + public static final long EXTRAS_VALUE_STATUS_NOT_DOWNLOADED = + MediaDescriptionCompat.STATUS_NOT_DOWNLOADED; + + /** + * The extras value to indicate that the media item is being downloaded. Used with {@link + * #EXTRAS_KEY_DOWNLOAD_STATUS}. + */ + @UnstableApi + public static final long EXTRAS_VALUE_STATUS_DOWNLOADING = + MediaDescriptionCompat.STATUS_DOWNLOADING; + + /** + * The extras value to indicate that the media item is downloaded for later offline playback. Used + * with {@link #EXTRAS_KEY_DOWNLOAD_STATUS}. + */ + @UnstableApi + public static final long EXTRAS_VALUE_STATUS_DOWNLOADED = + MediaDescriptionCompat.STATUS_DOWNLOADED; + private MediaConstants() {} }