Commit 38248af5 by tonihei Committed by Marc Baechinger

Add RequestMetadata to MediaItem

These fields can be used to transport additional request properties
when the requester doesn't know the details needed for the actual
playback (i.e. the LocalConfiguration).

PiperOrigin-RevId: 451857093
parent 84efc5e8
...@@ -19,7 +19,9 @@ import static com.google.common.truth.Truth.assertThat; ...@@ -19,7 +19,9 @@ import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertThrows;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.MediaItem.RequestMetadata;
import com.google.android.exoplayer2.offline.StreamKey; import com.google.android.exoplayer2.offline.StreamKey;
import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.MimeTypes;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
...@@ -582,6 +584,24 @@ public class MediaItemTest { ...@@ -582,6 +584,24 @@ public class MediaItemTest {
} }
@Test @Test
public void builder_setRequestMetadata_setsRequestMetadata() {
Bundle extras = new Bundle();
extras.putString("key", "value");
RequestMetadata requestMetadata =
new RequestMetadata.Builder()
.setMediaUri(Uri.parse("http://test.test"))
.setSearchQuery("Play media!")
.setExtras(extras)
.build();
MediaItem mediaItem =
new MediaItem.Builder().setMediaId("mediaID").setRequestMetadata(requestMetadata).build();
assertThat(mediaItem.requestMetadata).isEqualTo(requestMetadata);
assertThat(mediaItem.requestMetadata.extras.getString("key")).isEqualTo("value");
}
@Test
@SuppressWarnings("deprecation") // Testing deprecated setter methods @SuppressWarnings("deprecation") // Testing deprecated setter methods
public void buildUpon_individualSetters_equalsToOriginal() { public void buildUpon_individualSetters_equalsToOriginal() {
MediaItem mediaItem = MediaItem mediaItem =
...@@ -679,6 +699,11 @@ public class MediaItemTest { ...@@ -679,6 +699,11 @@ public class MediaItemTest {
.setLabel("label") .setLabel("label")
.setId("id") .setId("id")
.build())) .build()))
.setRequestMetadata(
new RequestMetadata.Builder()
.setMediaUri(Uri.parse("http://test.test"))
.setSearchQuery("search")
.build())
.setTag(new Object()) .setTag(new Object())
.build(); .build();
...@@ -706,6 +731,11 @@ public class MediaItemTest { ...@@ -706,6 +731,11 @@ public class MediaItemTest {
.setClipRelativeToDefaultPosition(true) .setClipRelativeToDefaultPosition(true)
.setClipRelativeToLiveWindow(true) .setClipRelativeToLiveWindow(true)
.setClipStartsAtKeyFrame(true) .setClipStartsAtKeyFrame(true)
.setRequestMetadata(
new RequestMetadata.Builder()
.setMediaUri(Uri.parse("http://test.test"))
.setSearchQuery("search")
.build())
.build(); .build();
assertThat(mediaItem.localConfiguration).isNull(); assertThat(mediaItem.localConfiguration).isNull();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment