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
This commit is contained in:
tonihei 2017-10-27 03:34:50 -07:00 committed by Oliver Woodman
parent 345084b8fe
commit 4cf90e3223

View file

@ -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