Skip to content

Commit

Permalink
Use mediaId as contentId if available
Browse files Browse the repository at this point in the history
This is to be consistent with what cast `QueueMediaItem` is doing. If a contentId is
not available the contentUrl is used as the ID.

#minor-release

PiperOrigin-RevId: 459133323
  • Loading branch information
marcbaechinger authored and rohitjoins committed Jul 7, 2022
1 parent bbbb009 commit 84c801a
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,14 @@ public MediaQueueItem toMediaQueueItem(MediaItem mediaItem) {
if (mediaItem.mediaMetadata.trackNumber != null) {
metadata.putInt(MediaMetadata.KEY_TRACK_NUMBER, mediaItem.mediaMetadata.trackNumber);
}

String contentUrl = mediaItem.localConfiguration.uri.toString();
String contentId =
mediaItem.mediaId.equals(MediaItem.DEFAULT_MEDIA_ID) ? contentUrl : mediaItem.mediaId;
MediaInfo mediaInfo =
new MediaInfo.Builder(mediaItem.localConfiguration.uri.toString())
new MediaInfo.Builder(contentId)
.setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
.setContentType(mediaItem.localConfiguration.mimeType)
.setContentUrl(contentUrl)
.setMetadata(metadata)
.setCustomData(getCustomData(mediaItem))
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ public void serialize_deserialize_complete() {
MediaItem.Builder builder = new MediaItem.Builder();
MediaItem item =
builder
.setMediaId("fooBar")
.setUri(Uri.parse("http://example.com"))
.setMediaMetadata(MediaMetadata.EMPTY)
.setMimeType(MimeTypes.APPLICATION_MPD)
Expand All @@ -66,4 +67,45 @@ public void serialize_deserialize_complete() {

assertThat(reconstructedItem).isEqualTo(item);
}

@Test
public void toMediaQueueItem_nonDefaultMediaId_usedAsContentId() {
MediaItem.Builder builder = new MediaItem.Builder();
MediaItem item =
builder
.setMediaId("fooBar")
.setUri("http://example.com")
.setMimeType(MimeTypes.APPLICATION_MPD)
.build();

DefaultMediaItemConverter converter = new DefaultMediaItemConverter();
MediaQueueItem queueItem = converter.toMediaQueueItem(item);

assertThat(queueItem.getMedia().getContentId()).isEqualTo("fooBar");
}

@Test
public void toMediaQueueItem_defaultMediaId_uriAsContentId() {
DefaultMediaItemConverter converter = new DefaultMediaItemConverter();
MediaItem mediaItem =
new MediaItem.Builder()
.setUri("http://example.com")
.setMimeType(MimeTypes.APPLICATION_MPD)
.build();

MediaQueueItem queueItem = converter.toMediaQueueItem(mediaItem);

assertThat(queueItem.getMedia().getContentId()).isEqualTo("http://example.com");

MediaItem secondMediaItem =
new MediaItem.Builder()
.setMediaId(MediaItem.DEFAULT_MEDIA_ID)
.setUri("http://example.com")
.setMimeType(MimeTypes.APPLICATION_MPD)
.build();

MediaQueueItem secondQueueItem = converter.toMediaQueueItem(secondMediaItem);

assertThat(secondQueueItem.getMedia().getContentId()).isEqualTo("http://example.com");
}
}

0 comments on commit 84c801a

Please sign in to comment.