Remove MediaMetadata.mediaUrl
This value only existed to allow setting media URLs from external sources (e.g. in a MediaController) so that a player can start playing this item. Now that we have MediaItem.RequestMetadata.mediaUrl we can remove this value from MediaMetadata because it's request metadata, not media metadata. PiperOrigin-RevId: 451857413
This commit is contained in:
parent
6b782d1011
commit
581c6b5429
@ -23,6 +23,9 @@
|
|||||||
`MediaSource.Factory.setLoadErrorHandlingPolicy`. Instances of
|
`MediaSource.Factory.setLoadErrorHandlingPolicy`. Instances of
|
||||||
`DefaultDrmSessionManagerProvider` and `DefaultLoadErrorHandlingPolicy`
|
`DefaultDrmSessionManagerProvider` and `DefaultLoadErrorHandlingPolicy`
|
||||||
can be passed explicitly if required.
|
can be passed explicitly if required.
|
||||||
|
* Add `MediaItem.RequestMetadata` to represent metadata needed to play
|
||||||
|
media when the exact `LocalConfiguration` is not known. Also remove
|
||||||
|
`MediaMetadata.mediaUrl` as this is now included in `RequestMetadata`.
|
||||||
* Track selection:
|
* Track selection:
|
||||||
* Flatten `TrackSelectionOverrides` class into `TrackSelectionParameters`,
|
* Flatten `TrackSelectionOverrides` class into `TrackSelectionParameters`,
|
||||||
and promote `TrackSelectionOverride` to a top level class.
|
and promote `TrackSelectionOverride` to a top level class.
|
||||||
|
@ -52,7 +52,6 @@ public final class MediaMetadata implements Bundleable {
|
|||||||
@Nullable private CharSequence displayTitle;
|
@Nullable private CharSequence displayTitle;
|
||||||
@Nullable private CharSequence subtitle;
|
@Nullable private CharSequence subtitle;
|
||||||
@Nullable private CharSequence description;
|
@Nullable private CharSequence description;
|
||||||
@Nullable private Uri mediaUri;
|
|
||||||
@Nullable private Rating userRating;
|
@Nullable private Rating userRating;
|
||||||
@Nullable private Rating overallRating;
|
@Nullable private Rating overallRating;
|
||||||
@Nullable private byte[] artworkData;
|
@Nullable private byte[] artworkData;
|
||||||
@ -88,7 +87,6 @@ public final class MediaMetadata implements Bundleable {
|
|||||||
this.displayTitle = mediaMetadata.displayTitle;
|
this.displayTitle = mediaMetadata.displayTitle;
|
||||||
this.subtitle = mediaMetadata.subtitle;
|
this.subtitle = mediaMetadata.subtitle;
|
||||||
this.description = mediaMetadata.description;
|
this.description = mediaMetadata.description;
|
||||||
this.mediaUri = mediaMetadata.mediaUri;
|
|
||||||
this.userRating = mediaMetadata.userRating;
|
this.userRating = mediaMetadata.userRating;
|
||||||
this.overallRating = mediaMetadata.overallRating;
|
this.overallRating = mediaMetadata.overallRating;
|
||||||
this.artworkData = mediaMetadata.artworkData;
|
this.artworkData = mediaMetadata.artworkData;
|
||||||
@ -161,12 +159,6 @@ public final class MediaMetadata implements Bundleable {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Sets the media {@link Uri}. */
|
|
||||||
public Builder setMediaUri(@Nullable Uri mediaUri) {
|
|
||||||
this.mediaUri = mediaUri;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Sets the user {@link Rating}. */
|
/** Sets the user {@link Rating}. */
|
||||||
public Builder setUserRating(@Nullable Rating userRating) {
|
public Builder setUserRating(@Nullable Rating userRating) {
|
||||||
this.userRating = userRating;
|
this.userRating = userRating;
|
||||||
@ -431,9 +423,6 @@ public final class MediaMetadata implements Bundleable {
|
|||||||
if (mediaMetadata.description != null) {
|
if (mediaMetadata.description != null) {
|
||||||
setDescription(mediaMetadata.description);
|
setDescription(mediaMetadata.description);
|
||||||
}
|
}
|
||||||
if (mediaMetadata.mediaUri != null) {
|
|
||||||
setMediaUri(mediaMetadata.mediaUri);
|
|
||||||
}
|
|
||||||
if (mediaMetadata.userRating != null) {
|
if (mediaMetadata.userRating != null) {
|
||||||
setUserRating(mediaMetadata.userRating);
|
setUserRating(mediaMetadata.userRating);
|
||||||
}
|
}
|
||||||
@ -636,8 +625,6 @@ public final class MediaMetadata implements Bundleable {
|
|||||||
@Nullable public final CharSequence subtitle;
|
@Nullable public final CharSequence subtitle;
|
||||||
/** Optional description. */
|
/** Optional description. */
|
||||||
@Nullable public final CharSequence description;
|
@Nullable public final CharSequence description;
|
||||||
/** Optional media {@link Uri}. */
|
|
||||||
@Nullable public final Uri mediaUri;
|
|
||||||
/** Optional user {@link Rating}. */
|
/** Optional user {@link Rating}. */
|
||||||
@Nullable public final Rating userRating;
|
@Nullable public final Rating userRating;
|
||||||
/** Optional overall {@link Rating}. */
|
/** Optional overall {@link Rating}. */
|
||||||
@ -722,7 +709,6 @@ public final class MediaMetadata implements Bundleable {
|
|||||||
this.displayTitle = builder.displayTitle;
|
this.displayTitle = builder.displayTitle;
|
||||||
this.subtitle = builder.subtitle;
|
this.subtitle = builder.subtitle;
|
||||||
this.description = builder.description;
|
this.description = builder.description;
|
||||||
this.mediaUri = builder.mediaUri;
|
|
||||||
this.userRating = builder.userRating;
|
this.userRating = builder.userRating;
|
||||||
this.overallRating = builder.overallRating;
|
this.overallRating = builder.overallRating;
|
||||||
this.artworkData = builder.artworkData;
|
this.artworkData = builder.artworkData;
|
||||||
@ -771,7 +757,6 @@ public final class MediaMetadata implements Bundleable {
|
|||||||
&& Util.areEqual(displayTitle, that.displayTitle)
|
&& Util.areEqual(displayTitle, that.displayTitle)
|
||||||
&& Util.areEqual(subtitle, that.subtitle)
|
&& Util.areEqual(subtitle, that.subtitle)
|
||||||
&& Util.areEqual(description, that.description)
|
&& Util.areEqual(description, that.description)
|
||||||
&& Util.areEqual(mediaUri, that.mediaUri)
|
|
||||||
&& Util.areEqual(userRating, that.userRating)
|
&& Util.areEqual(userRating, that.userRating)
|
||||||
&& Util.areEqual(overallRating, that.overallRating)
|
&& Util.areEqual(overallRating, that.overallRating)
|
||||||
&& Arrays.equals(artworkData, that.artworkData)
|
&& Arrays.equals(artworkData, that.artworkData)
|
||||||
@ -807,7 +792,6 @@ public final class MediaMetadata implements Bundleable {
|
|||||||
displayTitle,
|
displayTitle,
|
||||||
subtitle,
|
subtitle,
|
||||||
description,
|
description,
|
||||||
mediaUri,
|
|
||||||
userRating,
|
userRating,
|
||||||
overallRating,
|
overallRating,
|
||||||
Arrays.hashCode(artworkData),
|
Arrays.hashCode(artworkData),
|
||||||
@ -918,7 +902,6 @@ public final class MediaMetadata implements Bundleable {
|
|||||||
bundle.putCharSequence(keyForField(FIELD_DISPLAY_TITLE), displayTitle);
|
bundle.putCharSequence(keyForField(FIELD_DISPLAY_TITLE), displayTitle);
|
||||||
bundle.putCharSequence(keyForField(FIELD_SUBTITLE), subtitle);
|
bundle.putCharSequence(keyForField(FIELD_SUBTITLE), subtitle);
|
||||||
bundle.putCharSequence(keyForField(FIELD_DESCRIPTION), description);
|
bundle.putCharSequence(keyForField(FIELD_DESCRIPTION), description);
|
||||||
bundle.putParcelable(keyForField(FIELD_MEDIA_URI), mediaUri);
|
|
||||||
bundle.putByteArray(keyForField(FIELD_ARTWORK_DATA), artworkData);
|
bundle.putByteArray(keyForField(FIELD_ARTWORK_DATA), artworkData);
|
||||||
bundle.putParcelable(keyForField(FIELD_ARTWORK_URI), artworkUri);
|
bundle.putParcelable(keyForField(FIELD_ARTWORK_URI), artworkUri);
|
||||||
bundle.putCharSequence(keyForField(FIELD_WRITER), writer);
|
bundle.putCharSequence(keyForField(FIELD_WRITER), writer);
|
||||||
@ -992,7 +975,6 @@ public final class MediaMetadata implements Bundleable {
|
|||||||
.setDisplayTitle(bundle.getCharSequence(keyForField(FIELD_DISPLAY_TITLE)))
|
.setDisplayTitle(bundle.getCharSequence(keyForField(FIELD_DISPLAY_TITLE)))
|
||||||
.setSubtitle(bundle.getCharSequence(keyForField(FIELD_SUBTITLE)))
|
.setSubtitle(bundle.getCharSequence(keyForField(FIELD_SUBTITLE)))
|
||||||
.setDescription(bundle.getCharSequence(keyForField(FIELD_DESCRIPTION)))
|
.setDescription(bundle.getCharSequence(keyForField(FIELD_DESCRIPTION)))
|
||||||
.setMediaUri(bundle.getParcelable(keyForField(FIELD_MEDIA_URI)))
|
|
||||||
.setArtworkData(
|
.setArtworkData(
|
||||||
bundle.getByteArray(keyForField(FIELD_ARTWORK_DATA)),
|
bundle.getByteArray(keyForField(FIELD_ARTWORK_DATA)),
|
||||||
bundle.containsKey(keyForField(FIELD_ARTWORK_DATA_TYPE))
|
bundle.containsKey(keyForField(FIELD_ARTWORK_DATA_TYPE))
|
||||||
|
@ -41,7 +41,6 @@ public class MediaMetadataTest {
|
|||||||
assertThat(mediaMetadata.displayTitle).isNull();
|
assertThat(mediaMetadata.displayTitle).isNull();
|
||||||
assertThat(mediaMetadata.subtitle).isNull();
|
assertThat(mediaMetadata.subtitle).isNull();
|
||||||
assertThat(mediaMetadata.description).isNull();
|
assertThat(mediaMetadata.description).isNull();
|
||||||
assertThat(mediaMetadata.mediaUri).isNull();
|
|
||||||
assertThat(mediaMetadata.userRating).isNull();
|
assertThat(mediaMetadata.userRating).isNull();
|
||||||
assertThat(mediaMetadata.overallRating).isNull();
|
assertThat(mediaMetadata.overallRating).isNull();
|
||||||
assertThat(mediaMetadata.artworkData).isNull();
|
assertThat(mediaMetadata.artworkData).isNull();
|
||||||
@ -127,7 +126,6 @@ public class MediaMetadataTest {
|
|||||||
.setDisplayTitle("display title")
|
.setDisplayTitle("display title")
|
||||||
.setSubtitle("subtitle")
|
.setSubtitle("subtitle")
|
||||||
.setDescription("description")
|
.setDescription("description")
|
||||||
.setMediaUri(Uri.parse("https://www.google.com"))
|
|
||||||
.setUserRating(new HeartRating(false))
|
.setUserRating(new HeartRating(false))
|
||||||
.setOverallRating(new PercentageRating(87.4f))
|
.setOverallRating(new PercentageRating(87.4f))
|
||||||
.setArtworkData(
|
.setArtworkData(
|
||||||
|
@ -188,29 +188,33 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
|||||||
@Nullable String mediaId,
|
@Nullable String mediaId,
|
||||||
MediaMetadataCompat metadataCompat,
|
MediaMetadataCompat metadataCompat,
|
||||||
@RatingCompat.Style int ratingType) {
|
@RatingCompat.Style int ratingType) {
|
||||||
MediaItem.Builder mediaItemBuilder = new MediaItem.Builder();
|
MediaItem.Builder builder = new MediaItem.Builder();
|
||||||
|
|
||||||
if (mediaId != null) {
|
if (mediaId != null) {
|
||||||
mediaItemBuilder.setMediaId(mediaId);
|
builder.setMediaId(mediaId);
|
||||||
}
|
}
|
||||||
mediaItemBuilder.setMediaMetadata(convertToMediaMetadata(metadataCompat, ratingType));
|
@Nullable
|
||||||
|
String mediaUriString = metadataCompat.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_URI);
|
||||||
return mediaItemBuilder.build();
|
if (mediaUriString != null) {
|
||||||
|
builder.setRequestMetadata(
|
||||||
|
new MediaItem.RequestMetadata.Builder().setMediaUri(Uri.parse(mediaUriString)).build());
|
||||||
|
}
|
||||||
|
builder.setMediaMetadata(convertToMediaMetadata(metadataCompat, ratingType));
|
||||||
|
return builder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static MediaItem convertToMediaItem(
|
private static MediaItem convertToMediaItem(
|
||||||
MediaDescriptionCompat descriptionCompat, boolean browsable, boolean playable) {
|
MediaDescriptionCompat descriptionCompat, boolean browsable, boolean playable) {
|
||||||
MediaItem.Builder mediaItemBuilder = new MediaItem.Builder();
|
|
||||||
|
|
||||||
@Nullable String mediaId = descriptionCompat.getMediaId();
|
@Nullable String mediaId = descriptionCompat.getMediaId();
|
||||||
if (mediaId != null) {
|
return new MediaItem.Builder()
|
||||||
mediaItemBuilder.setMediaId(mediaId);
|
.setMediaId(mediaId == null ? MediaItem.DEFAULT_MEDIA_ID : mediaId)
|
||||||
}
|
.setRequestMetadata(
|
||||||
|
new MediaItem.RequestMetadata.Builder()
|
||||||
mediaItemBuilder.setMediaMetadata(
|
.setMediaUri(descriptionCompat.getMediaUri())
|
||||||
convertToMediaMetadata(descriptionCompat, RatingCompat.RATING_NONE, browsable, playable));
|
.build())
|
||||||
|
.setMediaMetadata(
|
||||||
return mediaItemBuilder.build();
|
convertToMediaMetadata(
|
||||||
|
descriptionCompat, RatingCompat.RATING_NONE, browsable, playable))
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Converts a list of {@link MediaBrowserCompat.MediaItem} to a list of {@link MediaItem}. */
|
/** Converts a list of {@link MediaBrowserCompat.MediaItem} to a list of {@link MediaItem}. */
|
||||||
@ -342,7 +346,7 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
|||||||
.setSubtitle(metadata.subtitle)
|
.setSubtitle(metadata.subtitle)
|
||||||
.setDescription(metadata.description)
|
.setDescription(metadata.description)
|
||||||
.setIconUri(metadata.artworkUri)
|
.setIconUri(metadata.artworkUri)
|
||||||
.setMediaUri(metadata.mediaUri)
|
.setMediaUri(item.requestMetadata.mediaUri)
|
||||||
.setExtras(extras)
|
.setExtras(extras)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
@ -381,7 +385,6 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
|||||||
.setSubtitle(descriptionCompat.getSubtitle())
|
.setSubtitle(descriptionCompat.getSubtitle())
|
||||||
.setDescription(descriptionCompat.getDescription())
|
.setDescription(descriptionCompat.getDescription())
|
||||||
.setArtworkUri(descriptionCompat.getIconUri())
|
.setArtworkUri(descriptionCompat.getIconUri())
|
||||||
.setMediaUri(descriptionCompat.getMediaUri())
|
|
||||||
.setUserRating(convertToRating(RatingCompat.newUnratedRating(ratingType)));
|
.setUserRating(convertToRating(RatingCompat.newUnratedRating(ratingType)));
|
||||||
|
|
||||||
@Nullable Bitmap iconBitmap = descriptionCompat.getIconBitmap();
|
@Nullable Bitmap iconBitmap = descriptionCompat.getIconBitmap();
|
||||||
@ -450,12 +453,6 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
|||||||
builder.setRecordingYear((int) year);
|
builder.setRecordingYear((int) year);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
|
||||||
String mediaUriString = metadataCompat.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_URI);
|
|
||||||
if (mediaUriString != null) {
|
|
||||||
builder.setMediaUri(Uri.parse(mediaUriString));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
String artworkUriString =
|
String artworkUriString =
|
||||||
getFirstString(
|
getFirstString(
|
||||||
@ -563,8 +560,10 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
|||||||
builder.putLong(MediaMetadataCompat.METADATA_KEY_YEAR, metadata.recordingYear);
|
builder.putLong(MediaMetadataCompat.METADATA_KEY_YEAR, metadata.recordingYear);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (metadata.mediaUri != null) {
|
if (mediaItem.requestMetadata.mediaUri != null) {
|
||||||
builder.putString(MediaMetadataCompat.METADATA_KEY_MEDIA_URI, metadata.mediaUri.toString());
|
builder.putString(
|
||||||
|
MediaMetadataCompat.METADATA_KEY_MEDIA_URI,
|
||||||
|
mediaItem.requestMetadata.mediaUri.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (metadata.artworkUri != null) {
|
if (metadata.artworkUri != null) {
|
||||||
|
@ -497,12 +497,12 @@ public class MediaBrowserServiceCompatCallbackWithMediaBrowserTest {
|
|||||||
MediaBrowserCompat.MediaItem browserItem, MediaItem commonItem) {
|
MediaBrowserCompat.MediaItem browserItem, MediaItem commonItem) {
|
||||||
assertThat(commonItem.mediaId).isEqualTo(browserItem.getMediaId());
|
assertThat(commonItem.mediaId).isEqualTo(browserItem.getMediaId());
|
||||||
MediaDescriptionCompat description = browserItem.getDescription();
|
MediaDescriptionCompat description = browserItem.getDescription();
|
||||||
|
assertThat(commonItem.requestMetadata.mediaUri).isEqualTo(description.getMediaUri());
|
||||||
MediaMetadata metadata = commonItem.mediaMetadata;
|
MediaMetadata metadata = commonItem.mediaMetadata;
|
||||||
assertThat(TextUtils.equals(metadata.title, description.getTitle())).isTrue();
|
assertThat(TextUtils.equals(metadata.title, description.getTitle())).isTrue();
|
||||||
assertThat(TextUtils.equals(metadata.subtitle, description.getSubtitle())).isTrue();
|
assertThat(TextUtils.equals(metadata.subtitle, description.getSubtitle())).isTrue();
|
||||||
assertThat(TextUtils.equals(metadata.description, description.getDescription())).isTrue();
|
assertThat(TextUtils.equals(metadata.description, description.getDescription())).isTrue();
|
||||||
assertThat(metadata.artworkUri).isEqualTo(description.getIconUri());
|
assertThat(metadata.artworkUri).isEqualTo(description.getIconUri());
|
||||||
assertThat(metadata.mediaUri).isEqualTo(description.getMediaUri());
|
|
||||||
assertThat(TestUtils.equals(metadata.extras, description.getExtras())).isTrue();
|
assertThat(TestUtils.equals(metadata.extras, description.getExtras())).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -979,7 +979,7 @@ public class MediaControllerCompatCallbackWithMediaSessionTest {
|
|||||||
assertThat(TextUtils.equals(description.getDescription(), mediaItem.mediaMetadata.description))
|
assertThat(TextUtils.equals(description.getDescription(), mediaItem.mediaMetadata.description))
|
||||||
.isTrue();
|
.isTrue();
|
||||||
assertThat(description.getIconUri()).isEqualTo(mediaItem.mediaMetadata.artworkUri);
|
assertThat(description.getIconUri()).isEqualTo(mediaItem.mediaMetadata.artworkUri);
|
||||||
assertThat(description.getMediaUri()).isEqualTo(mediaItem.mediaMetadata.mediaUri);
|
assertThat(description.getMediaUri()).isEqualTo(mediaItem.requestMetadata.mediaUri);
|
||||||
assertThat(TestUtils.equals(description.getExtras(), mediaItem.mediaMetadata.extras)).isTrue();
|
assertThat(TestUtils.equals(description.getExtras(), mediaItem.mediaMetadata.extras)).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -440,19 +440,16 @@ public class MediaControllerWithMediaSessionCompatTest {
|
|||||||
|
|
||||||
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
|
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
|
||||||
assertThat(timelineRef.get().getWindowCount()).isEqualTo(1);
|
assertThat(timelineRef.get().getWindowCount()).isEqualTo(1);
|
||||||
MediaMetadata metadata =
|
MediaItem mediaItem =
|
||||||
timelineRef
|
timelineRef.get().getWindow(/* windowIndex= */ 0, new Timeline.Window()).mediaItem;
|
||||||
.get()
|
MediaMetadata metadata = mediaItem.mediaMetadata;
|
||||||
.getWindow(/* windowIndex= */ 0, new Timeline.Window())
|
|
||||||
.mediaItem
|
|
||||||
.mediaMetadata;
|
|
||||||
assertThat(TextUtils.equals(metadata.title, testTitle)).isTrue();
|
assertThat(TextUtils.equals(metadata.title, testTitle)).isTrue();
|
||||||
assertThat(TextUtils.equals(metadata.subtitle, testSubtitle)).isTrue();
|
assertThat(TextUtils.equals(metadata.subtitle, testSubtitle)).isTrue();
|
||||||
assertThat(TextUtils.equals(metadata.description, testDescription)).isTrue();
|
assertThat(TextUtils.equals(metadata.description, testDescription)).isTrue();
|
||||||
assertThat(metadata.artworkUri).isEqualTo(testIconUri);
|
assertThat(metadata.artworkUri).isEqualTo(testIconUri);
|
||||||
if (Util.SDK_INT < 21 || Util.SDK_INT >= 23) {
|
if (Util.SDK_INT < 21 || Util.SDK_INT >= 23) {
|
||||||
// TODO(b/199055952): Test mediaUri for all API levels once the bug is fixed.
|
// TODO(b/199055952): Test mediaUri for all API levels once the bug is fixed.
|
||||||
assertThat(metadata.mediaUri).isEqualTo(testMediaUri);
|
assertThat(mediaItem.requestMetadata.mediaUri).isEqualTo(testMediaUri);
|
||||||
}
|
}
|
||||||
assertThat(TestUtils.equals(metadata.extras, testExtras)).isTrue();
|
assertThat(TestUtils.equals(metadata.extras, testExtras)).isTrue();
|
||||||
}
|
}
|
||||||
@ -536,13 +533,14 @@ public class MediaControllerWithMediaSessionCompatTest {
|
|||||||
session.setMetadata(metadataCompat);
|
session.setMetadata(metadataCompat);
|
||||||
|
|
||||||
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
|
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
|
||||||
assertThat(itemRef.get().mediaId).isEqualTo(testMediaId);
|
MediaItem mediaItem = itemRef.get();
|
||||||
MediaMetadata metadata = itemRef.get().mediaMetadata;
|
assertThat(mediaItem.mediaId).isEqualTo(testMediaId);
|
||||||
|
assertThat(mediaItem.requestMetadata.mediaUri).isEqualTo(Uri.parse(testMediaUri));
|
||||||
|
MediaMetadata metadata = mediaItem.mediaMetadata;
|
||||||
assertThat(TextUtils.equals(metadata.title, testTitle)).isTrue();
|
assertThat(TextUtils.equals(metadata.title, testTitle)).isTrue();
|
||||||
assertThat(TextUtils.equals(metadata.subtitle, testSubtitle)).isTrue();
|
assertThat(TextUtils.equals(metadata.subtitle, testSubtitle)).isTrue();
|
||||||
assertThat(TextUtils.equals(metadata.description, testDescription)).isTrue();
|
assertThat(TextUtils.equals(metadata.description, testDescription)).isTrue();
|
||||||
assertThat(metadata.artworkUri).isEqualTo(Uri.parse(testIconUri));
|
assertThat(metadata.artworkUri).isEqualTo(Uri.parse(testIconUri));
|
||||||
assertThat(metadata.mediaUri).isEqualTo(Uri.parse(testMediaUri));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -18,7 +18,6 @@ package androidx.media3.session;
|
|||||||
import static androidx.media3.test.session.common.CommonConstants.METADATA_ARTWORK_URI;
|
import static androidx.media3.test.session.common.CommonConstants.METADATA_ARTWORK_URI;
|
||||||
import static androidx.media3.test.session.common.CommonConstants.METADATA_DESCRIPTION;
|
import static androidx.media3.test.session.common.CommonConstants.METADATA_DESCRIPTION;
|
||||||
import static androidx.media3.test.session.common.CommonConstants.METADATA_EXTRAS;
|
import static androidx.media3.test.session.common.CommonConstants.METADATA_EXTRAS;
|
||||||
import static androidx.media3.test.session.common.CommonConstants.METADATA_MEDIA_URI;
|
|
||||||
import static androidx.media3.test.session.common.CommonConstants.METADATA_SUBTITLE;
|
import static androidx.media3.test.session.common.CommonConstants.METADATA_SUBTITLE;
|
||||||
import static androidx.media3.test.session.common.CommonConstants.METADATA_TITLE;
|
import static androidx.media3.test.session.common.CommonConstants.METADATA_TITLE;
|
||||||
import static androidx.media3.test.session.common.CommonConstants.SUPPORT_APP_PACKAGE_NAME;
|
import static androidx.media3.test.session.common.CommonConstants.SUPPORT_APP_PACKAGE_NAME;
|
||||||
@ -82,7 +81,6 @@ public final class MediaTestUtils {
|
|||||||
.setSubtitle(METADATA_SUBTITLE)
|
.setSubtitle(METADATA_SUBTITLE)
|
||||||
.setDescription(METADATA_DESCRIPTION)
|
.setDescription(METADATA_DESCRIPTION)
|
||||||
.setArtworkUri(METADATA_ARTWORK_URI)
|
.setArtworkUri(METADATA_ARTWORK_URI)
|
||||||
.setMediaUri(METADATA_MEDIA_URI)
|
|
||||||
.setExtras(METADATA_EXTRAS)
|
.setExtras(METADATA_EXTRAS)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
@ -66,6 +66,7 @@ import androidx.media3.common.util.UnstableApi;
|
|||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.session.MediaLibraryService.MediaLibrarySession;
|
import androidx.media3.session.MediaLibraryService.MediaLibrarySession;
|
||||||
import androidx.media3.session.MediaSession.ControllerInfo;
|
import androidx.media3.session.MediaSession.ControllerInfo;
|
||||||
|
import androidx.media3.test.session.common.CommonConstants;
|
||||||
import androidx.media3.test.session.common.TestHandler;
|
import androidx.media3.test.session.common.TestHandler;
|
||||||
import androidx.media3.test.session.common.TestUtils;
|
import androidx.media3.test.session.common.TestUtils;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
@ -440,6 +441,13 @@ public class MockMediaLibraryService extends MediaLibraryService {
|
|||||||
|
|
||||||
private static MediaItem createMediaItemWithMetadata(String mediaId) {
|
private static MediaItem createMediaItemWithMetadata(String mediaId) {
|
||||||
MediaMetadata mediaMetadata = MediaTestUtils.createMediaMetadata();
|
MediaMetadata mediaMetadata = MediaTestUtils.createMediaMetadata();
|
||||||
return new MediaItem.Builder().setMediaId(mediaId).setMediaMetadata(mediaMetadata).build();
|
return new MediaItem.Builder()
|
||||||
|
.setMediaId(mediaId)
|
||||||
|
.setRequestMetadata(
|
||||||
|
new MediaItem.RequestMetadata.Builder()
|
||||||
|
.setMediaUri(CommonConstants.METADATA_MEDIA_URI)
|
||||||
|
.build())
|
||||||
|
.setMediaMetadata(mediaMetadata)
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user