From 08b0e08b694da95c63451b756347c8f961a896f7 Mon Sep 17 00:00:00 2001 From: olly Date: Thu, 4 Jun 2020 20:22:11 +0100 Subject: [PATCH] Fix bug where SilenceMediaSource#getTag was always returning null. SilenceMediaSource never overloaded MediaSource#getTag, and default behavior is to return null. PiperOrigin-RevId: 314779832 --- RELEASENOTES.md | 1 + .../android/exoplayer2/source/SilenceMediaSource.java | 6 ++++++ .../exoplayer2/source/SilenceMediaSourceTest.java | 10 ++++++++++ 3 files changed, 17 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 5017ab3ec1..5632c84157 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -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` diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/SilenceMediaSource.java b/library/core/src/main/java/com/google/android/exoplayer2/source/SilenceMediaSource.java index 2753cfe8f5..a7669ae345 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/SilenceMediaSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/SilenceMediaSource.java @@ -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() {} diff --git a/library/core/src/test/java/com/google/android/exoplayer2/source/SilenceMediaSourceTest.java b/library/core/src/test/java/com/google/android/exoplayer2/source/SilenceMediaSourceTest.java index 66a1da0f00..d8a7727953 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/source/SilenceMediaSourceTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/source/SilenceMediaSourceTest.java @@ -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);