Use correct generics type bounds for TransferListener in MediaSources.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=203260699
This commit is contained in:
tonihei 2018-07-04 03:58:23 -07:00 committed by Oliver Woodman
parent 2237603a4d
commit abb4d6ff70
16 changed files with 27 additions and 19 deletions

View File

@ -80,7 +80,7 @@ public final class ImaAdsMediaSource extends BaseMediaSource implements SourceIn
public void prepareSourceInternal( public void prepareSourceInternal(
final ExoPlayer player, final ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
adsMediaSource.prepareSource( adsMediaSource.prepareSource(
player, isTopLevelSource, /* listener= */ this, mediaTransferListener); player, isTopLevelSource, /* listener= */ this, mediaTransferListener);
} }

View File

@ -19,6 +19,7 @@ import android.os.Handler;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Assertions;
import java.util.ArrayList; import java.util.ArrayList;
@ -60,7 +61,7 @@ public abstract class BaseMediaSource implements MediaSource {
protected abstract void prepareSourceInternal( protected abstract void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener); @Nullable TransferListener<? super DataSource> mediaTransferListener);
/** /**
* Releases the source. This method is called exactly once after each call to {@link * Releases the source. This method is called exactly once after each call to {@link
@ -146,7 +147,7 @@ public abstract class BaseMediaSource implements MediaSource {
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
SourceInfoRefreshListener listener, SourceInfoRefreshListener listener,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
Assertions.checkArgument(this.player == null || this.player == player); Assertions.checkArgument(this.player == null || this.player == player);
sourceInfoListeners.add(listener); sourceInfoListeners.add(listener);
if (this.player == null) { if (this.player == null) {

View File

@ -21,6 +21,7 @@ import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.upstream.Allocator; import com.google.android.exoplayer2.upstream.Allocator;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Assertions;
import java.io.IOException; import java.io.IOException;
@ -215,7 +216,7 @@ public final class ClippingMediaSource extends CompositeMediaSource<Void> {
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener); super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener);
prepareChildSource(/* id= */ null, mediaSource); prepareChildSource(/* id= */ null, mediaSource);
} }

View File

@ -20,7 +20,7 @@ import android.support.annotation.CallSuper;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.source.MediaSourceEventListener.MediaLoadData; import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.util.Util;
@ -38,7 +38,7 @@ public abstract class CompositeMediaSource<T> extends BaseMediaSource {
private @Nullable ExoPlayer player; private @Nullable ExoPlayer player;
private @Nullable Handler eventHandler; private @Nullable Handler eventHandler;
private @Nullable TransferListener<?> mediaTransferListener; private @Nullable TransferListener<? super DataSource> mediaTransferListener;
/** Create composite media source without child sources. */ /** Create composite media source without child sources. */
protected CompositeMediaSource() { protected CompositeMediaSource() {
@ -50,7 +50,7 @@ public abstract class CompositeMediaSource<T> extends BaseMediaSource {
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
this.player = player; this.player = player;
this.mediaTransferListener = mediaTransferListener; this.mediaTransferListener = mediaTransferListener;
eventHandler = new Handler(); eventHandler = new Handler();

View File

@ -26,6 +26,7 @@ import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.source.ConcatenatingMediaSource.MediaSourceHolder; import com.google.android.exoplayer2.source.ConcatenatingMediaSource.MediaSourceHolder;
import com.google.android.exoplayer2.source.ShuffleOrder.DefaultShuffleOrder; import com.google.android.exoplayer2.source.ShuffleOrder.DefaultShuffleOrder;
import com.google.android.exoplayer2.upstream.Allocator; import com.google.android.exoplayer2.upstream.Allocator;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.util.Util;
@ -377,7 +378,7 @@ public class ConcatenatingMediaSource extends CompositeMediaSource<MediaSourceHo
public final synchronized void prepareSourceInternal( public final synchronized void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener); super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener);
this.player = player; this.player = player;
playerApplicationHandler = new Handler(player.getApplicationLooper()); playerApplicationHandler = new Handler(player.getApplicationLooper());

View File

@ -348,7 +348,7 @@ public final class ExtractorMediaSource extends BaseMediaSource
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
notifySourceInfoRefreshed(timelineDurationUs, /* isSeekable= */ false); notifySourceInfoRefreshed(timelineDurationUs, /* isSeekable= */ false);
} }

View File

@ -22,6 +22,7 @@ import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.source.ShuffleOrder.UnshuffledShuffleOrder; import com.google.android.exoplayer2.source.ShuffleOrder.UnshuffledShuffleOrder;
import com.google.android.exoplayer2.upstream.Allocator; import com.google.android.exoplayer2.upstream.Allocator;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Assertions;
@ -64,7 +65,7 @@ public final class LoopingMediaSource extends CompositeMediaSource<Void> {
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener); super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener);
prepareChildSource(/* id= */ null, childSource); prepareChildSource(/* id= */ null, childSource);
} }

View File

@ -21,6 +21,7 @@ import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.upstream.Allocator; import com.google.android.exoplayer2.upstream.Allocator;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
import java.io.IOException; import java.io.IOException;
@ -221,7 +222,7 @@ public interface MediaSource {
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
SourceInfoRefreshListener listener, SourceInfoRefreshListener listener,
@Nullable TransferListener<?> mediaTransferListener); @Nullable TransferListener<? super DataSource> mediaTransferListener);
/** /**
* Throws any pending error encountered while loading or refreshing source information. * Throws any pending error encountered while loading or refreshing source information.

View File

@ -20,6 +20,7 @@ import android.support.annotation.Nullable;
import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.upstream.Allocator; import com.google.android.exoplayer2.upstream.Allocator;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
import java.io.IOException; import java.io.IOException;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
@ -101,7 +102,7 @@ public final class MergingMediaSource extends CompositeMediaSource<Integer> {
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener); super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener);
for (int i = 0; i < mediaSources.length; i++) { for (int i = 0; i < mediaSources.length; i++) {
prepareChildSource(i, mediaSources[i]); prepareChildSource(i, mediaSources[i]);

View File

@ -272,7 +272,7 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
refreshSourceInfo(timeline, /* manifest= */ null); refreshSourceInfo(timeline, /* manifest= */ null);
} }

View File

@ -309,7 +309,7 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> {
public void prepareSourceInternal( public void prepareSourceInternal(
final ExoPlayer player, final ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener); super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener);
Assertions.checkArgument(isTopLevelSource); Assertions.checkArgument(isTopLevelSource);
final ComponentListener componentListener = new ComponentListener(); final ComponentListener componentListener = new ComponentListener();

View File

@ -45,6 +45,7 @@ import com.google.android.exoplayer2.testutil.FakeTrackSelection;
import com.google.android.exoplayer2.testutil.FakeTrackSelector; import com.google.android.exoplayer2.testutil.FakeTrackSelector;
import com.google.android.exoplayer2.testutil.RobolectricUtil; import com.google.android.exoplayer2.testutil.RobolectricUtil;
import com.google.android.exoplayer2.upstream.Allocator; import com.google.android.exoplayer2.upstream.Allocator;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
@ -233,7 +234,7 @@ public final class ExoPlayerTest {
public synchronized void prepareSourceInternal( public synchronized void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener); super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener);
// We've queued a source info refresh on the playback thread's event queue. Allow the // We've queued a source info refresh on the playback thread's event queue. Allow the
// test thread to prepare the player with the third source, and block this thread (the // test thread to prepare the player with the third source, and block this thread (the

View File

@ -549,7 +549,7 @@ public final class DashMediaSource extends BaseMediaSource {
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
if (sideloadedManifest) { if (sideloadedManifest) {
processManifest(false); processManifest(false);
} else { } else {

View File

@ -371,7 +371,7 @@ public final class HlsMediaSource extends BaseMediaSource
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
EventDispatcher eventDispatcher = createEventDispatcher(/* mediaPeriodId= */ null); EventDispatcher eventDispatcher = createEventDispatcher(/* mediaPeriodId= */ null);
playlistTracker.start(manifestUri, eventDispatcher, /* listener= */ this); playlistTracker.start(manifestUri, eventDispatcher, /* listener= */ this);
} }

View File

@ -466,7 +466,7 @@ public final class SsMediaSource extends BaseMediaSource
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
if (sideloadedManifest) { if (sideloadedManifest) {
manifestLoaderErrorThrower = new LoaderErrorThrower.Dummy(); manifestLoaderErrorThrower = new LoaderErrorThrower.Dummy();
processManifest(); processManifest();

View File

@ -35,6 +35,7 @@ import com.google.android.exoplayer2.source.MediaSourceEventListener.MediaLoadDa
import com.google.android.exoplayer2.source.TrackGroup; import com.google.android.exoplayer2.source.TrackGroup;
import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.source.TrackGroupArray;
import com.google.android.exoplayer2.upstream.Allocator; import com.google.android.exoplayer2.upstream.Allocator;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DataSpec; import com.google.android.exoplayer2.upstream.DataSpec;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Assertions;
@ -90,7 +91,7 @@ public class FakeMediaSource extends BaseMediaSource {
public synchronized void prepareSourceInternal( public synchronized void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<?> mediaTransferListener) { @Nullable TransferListener<? super DataSource> mediaTransferListener) {
assertThat(preparedSource).isFalse(); assertThat(preparedSource).isFalse();
preparedSource = true; preparedSource = true;
releasedSource = false; releasedSource = false;