Fix bug where SilenceMediaSource#getTag was always returning null.

SilenceMediaSource never overloaded MediaSource#getTag, and default behavior is to return null.

PiperOrigin-RevId: 314779832
This commit is contained in:
olly 2020-06-04 20:22:11 +01:00 committed by Oliver Woodman
parent 1dedd080a4
commit 08b0e08b69
3 changed files with 17 additions and 0 deletions

View File

@ -3,6 +3,7 @@
### dev-v2 (not yet released)
* Core library:
* Implement getTag for SilenceMediaSource.
* Add `Player.getTrackSelector` to access track selector from UI module.
* Added `TextComponent.getCurrentCues` because the current cues are no
longer forwarded to a new `TextOutput` in `SimpleExoPlayer`

View File

@ -151,6 +151,12 @@ public final class SilenceMediaSource extends BaseMediaSource {
return mediaItem;
}
@Nullable
@Override
public Object getTag() {
return Assertions.checkNotNull(mediaItem.playbackProperties).tag;
}
@Override
protected void releaseSourceInternal() {}

View File

@ -52,6 +52,16 @@ public class SilenceMediaSourceTest {
assertThat(mediaSource.getMediaItem().playbackProperties.tag).isEqualTo(tag);
}
@Test
public void builderSetTag_setsTagOfMediaSource() {
Object tag = new Object();
SilenceMediaSource mediaSource =
new SilenceMediaSource.Factory().setTag(tag).setDurationUs(1_000_000).createMediaSource();
assertThat(mediaSource.getMediaItem().playbackProperties.tag).isEqualTo(tag);
}
@Test
public void builder_setDurationUsNotCalled_throwsIllegalStateException() {
assertThrows(IllegalStateException.class, new SilenceMediaSource.Factory()::createMediaSource);