From 4cf90e32233e135b550673af3b6f1bc2d5dfbb5b Mon Sep 17 00:00:00 2001 From: tonihei Date: Fri, 27 Oct 2017 03:34:50 -0700 Subject: [PATCH] Fix listener in ImaAdsMediaSource. As MediaSource listeners now return the MediaSource in on SourceInfoRefreshed, we need to make sure that media sources wrapping another source don't just forward the listener, but also provide a listener wrapper. This allows to inject the wrapper source instance in the callback. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=173653307 --- .../exoplayer2/ext/ima/ImaAdsMediaSource.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaAdsMediaSource.java b/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaAdsMediaSource.java index c3574c414b..02aa4807a5 100644 --- a/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaAdsMediaSource.java +++ b/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaAdsMediaSource.java @@ -19,6 +19,7 @@ import android.os.Handler; import android.support.annotation.Nullable; import android.view.ViewGroup; import com.google.android.exoplayer2.ExoPlayer; +import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.source.MediaPeriod; import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.ads.AdsMediaSource; @@ -69,8 +70,15 @@ public final class ImaAdsMediaSource implements MediaSource { } @Override - public void prepareSource(final ExoPlayer player, boolean isTopLevelSource, Listener listener) { - adsMediaSource.prepareSource(player, isTopLevelSource, listener); + public void prepareSource(final ExoPlayer player, boolean isTopLevelSource, + final Listener listener) { + adsMediaSource.prepareSource(player, false, new Listener() { + @Override + public void onSourceInfoRefreshed(MediaSource source, Timeline timeline, + @Nullable Object manifest) { + listener.onSourceInfoRefreshed(ImaAdsMediaSource.this, timeline, manifest); + } + }); } @Override