Commit ffdc17d0 by tonihei Committed by Oliver Woodman

Remove generic type parameter from TransferListener.

All known instances use DataSource as generic type and thus code can be simplified
by removing the generic type altogether.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=205798542
parent 9d0ec37e
Showing with 135 additions and 162 deletions
...@@ -22,7 +22,6 @@ import android.util.Log; ...@@ -22,7 +22,6 @@ import android.util.Log;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlayerLibraryInfo; import com.google.android.exoplayer2.ExoPlayerLibraryInfo;
import com.google.android.exoplayer2.upstream.BaseDataSource; import com.google.android.exoplayer2.upstream.BaseDataSource;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DataSourceException; import com.google.android.exoplayer2.upstream.DataSourceException;
import com.google.android.exoplayer2.upstream.DataSpec; import com.google.android.exoplayer2.upstream.DataSpec;
import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource;
...@@ -163,7 +162,7 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource { ...@@ -163,7 +162,7 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource {
CronetEngine cronetEngine, CronetEngine cronetEngine,
Executor executor, Executor executor,
Predicate<String> contentTypePredicate, Predicate<String> contentTypePredicate,
@Nullable TransferListener<? super DataSource> listener) { @Nullable TransferListener listener) {
this(cronetEngine, executor, contentTypePredicate, listener, DEFAULT_CONNECT_TIMEOUT_MILLIS, this(cronetEngine, executor, contentTypePredicate, listener, DEFAULT_CONNECT_TIMEOUT_MILLIS,
DEFAULT_READ_TIMEOUT_MILLIS, false, null, false); DEFAULT_READ_TIMEOUT_MILLIS, false, null, false);
} }
...@@ -188,7 +187,7 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource { ...@@ -188,7 +187,7 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource {
CronetEngine cronetEngine, CronetEngine cronetEngine,
Executor executor, Executor executor,
Predicate<String> contentTypePredicate, Predicate<String> contentTypePredicate,
@Nullable TransferListener<? super DataSource> listener, @Nullable TransferListener listener,
int connectTimeoutMs, int connectTimeoutMs,
int readTimeoutMs, int readTimeoutMs,
boolean resetTimeoutOnRedirects, boolean resetTimeoutOnRedirects,
...@@ -219,7 +218,7 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource { ...@@ -219,7 +218,7 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource {
CronetEngine cronetEngine, CronetEngine cronetEngine,
Executor executor, Executor executor,
Predicate<String> contentTypePredicate, Predicate<String> contentTypePredicate,
@Nullable TransferListener<? super DataSource> listener, @Nullable TransferListener listener,
int connectTimeoutMs, int connectTimeoutMs,
int readTimeoutMs, int readTimeoutMs,
boolean resetTimeoutOnRedirects, boolean resetTimeoutOnRedirects,
...@@ -234,7 +233,7 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource { ...@@ -234,7 +233,7 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource {
CronetEngine cronetEngine, CronetEngine cronetEngine,
Executor executor, Executor executor,
Predicate<String> contentTypePredicate, Predicate<String> contentTypePredicate,
@Nullable TransferListener<? super DataSource> listener, @Nullable TransferListener listener,
int connectTimeoutMs, int connectTimeoutMs,
int readTimeoutMs, int readTimeoutMs,
boolean resetTimeoutOnRedirects, boolean resetTimeoutOnRedirects,
......
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
package com.google.android.exoplayer2.ext.cronet; package com.google.android.exoplayer2.ext.cronet;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory; import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory;
import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource;
import com.google.android.exoplayer2.upstream.HttpDataSource.BaseFactory; import com.google.android.exoplayer2.upstream.HttpDataSource.BaseFactory;
...@@ -47,7 +46,7 @@ public final class CronetDataSourceFactory extends BaseFactory { ...@@ -47,7 +46,7 @@ public final class CronetDataSourceFactory extends BaseFactory {
private final CronetEngineWrapper cronetEngineWrapper; private final CronetEngineWrapper cronetEngineWrapper;
private final Executor executor; private final Executor executor;
private final Predicate<String> contentTypePredicate; private final Predicate<String> contentTypePredicate;
private final @Nullable TransferListener<? super DataSource> transferListener; private final @Nullable TransferListener transferListener;
private final int connectTimeoutMs; private final int connectTimeoutMs;
private final int readTimeoutMs; private final int readTimeoutMs;
private final boolean resetTimeoutOnRedirects; private final boolean resetTimeoutOnRedirects;
...@@ -224,7 +223,7 @@ public final class CronetDataSourceFactory extends BaseFactory { ...@@ -224,7 +223,7 @@ public final class CronetDataSourceFactory extends BaseFactory {
CronetEngineWrapper cronetEngineWrapper, CronetEngineWrapper cronetEngineWrapper,
Executor executor, Executor executor,
Predicate<String> contentTypePredicate, Predicate<String> contentTypePredicate,
@Nullable TransferListener<? super DataSource> transferListener, @Nullable TransferListener transferListener,
HttpDataSource.Factory fallbackFactory) { HttpDataSource.Factory fallbackFactory) {
this(cronetEngineWrapper, executor, contentTypePredicate, transferListener, this(cronetEngineWrapper, executor, contentTypePredicate, transferListener,
DEFAULT_CONNECT_TIMEOUT_MILLIS, DEFAULT_READ_TIMEOUT_MILLIS, false, fallbackFactory); DEFAULT_CONNECT_TIMEOUT_MILLIS, DEFAULT_READ_TIMEOUT_MILLIS, false, fallbackFactory);
...@@ -252,7 +251,7 @@ public final class CronetDataSourceFactory extends BaseFactory { ...@@ -252,7 +251,7 @@ public final class CronetDataSourceFactory extends BaseFactory {
CronetEngineWrapper cronetEngineWrapper, CronetEngineWrapper cronetEngineWrapper,
Executor executor, Executor executor,
Predicate<String> contentTypePredicate, Predicate<String> contentTypePredicate,
@Nullable TransferListener<? super DataSource> transferListener, @Nullable TransferListener transferListener,
String userAgent) { String userAgent) {
this(cronetEngineWrapper, executor, contentTypePredicate, transferListener, this(cronetEngineWrapper, executor, contentTypePredicate, transferListener,
DEFAULT_CONNECT_TIMEOUT_MILLIS, DEFAULT_READ_TIMEOUT_MILLIS, false, DEFAULT_CONNECT_TIMEOUT_MILLIS, DEFAULT_READ_TIMEOUT_MILLIS, false,
...@@ -281,7 +280,7 @@ public final class CronetDataSourceFactory extends BaseFactory { ...@@ -281,7 +280,7 @@ public final class CronetDataSourceFactory extends BaseFactory {
CronetEngineWrapper cronetEngineWrapper, CronetEngineWrapper cronetEngineWrapper,
Executor executor, Executor executor,
Predicate<String> contentTypePredicate, Predicate<String> contentTypePredicate,
@Nullable TransferListener<? super DataSource> transferListener, @Nullable TransferListener transferListener,
int connectTimeoutMs, int connectTimeoutMs,
int readTimeoutMs, int readTimeoutMs,
boolean resetTimeoutOnRedirects, boolean resetTimeoutOnRedirects,
...@@ -314,7 +313,7 @@ public final class CronetDataSourceFactory extends BaseFactory { ...@@ -314,7 +313,7 @@ public final class CronetDataSourceFactory extends BaseFactory {
CronetEngineWrapper cronetEngineWrapper, CronetEngineWrapper cronetEngineWrapper,
Executor executor, Executor executor,
Predicate<String> contentTypePredicate, Predicate<String> contentTypePredicate,
@Nullable TransferListener<? super DataSource> transferListener, @Nullable TransferListener transferListener,
int connectTimeoutMs, int connectTimeoutMs,
int readTimeoutMs, int readTimeoutMs,
boolean resetTimeoutOnRedirects, boolean resetTimeoutOnRedirects,
......
...@@ -32,7 +32,6 @@ import android.net.Uri; ...@@ -32,7 +32,6 @@ import android.net.Uri;
import android.os.ConditionVariable; import android.os.ConditionVariable;
import android.os.SystemClock; import android.os.SystemClock;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
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.HttpDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource;
import com.google.android.exoplayer2.upstream.HttpDataSource.HttpDataSourceException; import com.google.android.exoplayer2.upstream.HttpDataSource.HttpDataSourceException;
...@@ -87,7 +86,7 @@ public final class CronetDataSourceTest { ...@@ -87,7 +86,7 @@ public final class CronetDataSourceTest {
@Mock private UrlRequest.Builder mockUrlRequestBuilder; @Mock private UrlRequest.Builder mockUrlRequestBuilder;
@Mock private UrlRequest mockUrlRequest; @Mock private UrlRequest mockUrlRequest;
@Mock private Predicate<String> mockContentTypePredicate; @Mock private Predicate<String> mockContentTypePredicate;
@Mock private TransferListener<DataSource> mockTransferListener; @Mock private TransferListener mockTransferListener;
@Mock private Executor mockExecutor; @Mock private Executor mockExecutor;
@Mock private NetworkException mockNetworkException; @Mock private NetworkException mockNetworkException;
@Mock private CronetEngine mockCronetEngine; @Mock private CronetEngine mockCronetEngine;
......
...@@ -80,7 +80,7 @@ public final class ImaAdsMediaSource extends BaseMediaSource implements SourceIn ...@@ -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<? super DataSource> mediaTransferListener) { @Nullable TransferListener mediaTransferListener) {
adsMediaSource.prepareSource( adsMediaSource.prepareSource(
player, isTopLevelSource, /* listener= */ this, mediaTransferListener); player, isTopLevelSource, /* listener= */ this, mediaTransferListener);
} }
......
...@@ -21,7 +21,6 @@ import android.support.annotation.Nullable; ...@@ -21,7 +21,6 @@ import android.support.annotation.Nullable;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlayerLibraryInfo; import com.google.android.exoplayer2.ExoPlayerLibraryInfo;
import com.google.android.exoplayer2.upstream.BaseDataSource; import com.google.android.exoplayer2.upstream.BaseDataSource;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DataSourceException; import com.google.android.exoplayer2.upstream.DataSourceException;
import com.google.android.exoplayer2.upstream.DataSpec; import com.google.android.exoplayer2.upstream.DataSpec;
import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource;
...@@ -97,7 +96,7 @@ public class OkHttpDataSource extends BaseDataSource implements HttpDataSource { ...@@ -97,7 +96,7 @@ public class OkHttpDataSource extends BaseDataSource implements HttpDataSource {
@NonNull Call.Factory callFactory, @NonNull Call.Factory callFactory,
@Nullable String userAgent, @Nullable String userAgent,
@Nullable Predicate<String> contentTypePredicate, @Nullable Predicate<String> contentTypePredicate,
@Nullable TransferListener<? super DataSource> listener) { @Nullable TransferListener listener) {
this(callFactory, userAgent, contentTypePredicate, listener, null, null); this(callFactory, userAgent, contentTypePredicate, listener, null, null);
} }
...@@ -117,7 +116,7 @@ public class OkHttpDataSource extends BaseDataSource implements HttpDataSource { ...@@ -117,7 +116,7 @@ public class OkHttpDataSource extends BaseDataSource implements HttpDataSource {
@NonNull Call.Factory callFactory, @NonNull Call.Factory callFactory,
@Nullable String userAgent, @Nullable String userAgent,
@Nullable Predicate<String> contentTypePredicate, @Nullable Predicate<String> contentTypePredicate,
@Nullable TransferListener<? super DataSource> listener, @Nullable TransferListener listener,
@Nullable CacheControl cacheControl, @Nullable CacheControl cacheControl,
@Nullable RequestProperties defaultRequestProperties) { @Nullable RequestProperties defaultRequestProperties) {
super(/* isNetwork= */ true); super(/* isNetwork= */ true);
......
...@@ -17,7 +17,6 @@ package com.google.android.exoplayer2.ext.okhttp; ...@@ -17,7 +17,6 @@ package com.google.android.exoplayer2.ext.okhttp;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource;
import com.google.android.exoplayer2.upstream.HttpDataSource.BaseFactory; import com.google.android.exoplayer2.upstream.HttpDataSource.BaseFactory;
import com.google.android.exoplayer2.upstream.HttpDataSource.Factory; import com.google.android.exoplayer2.upstream.HttpDataSource.Factory;
...@@ -32,7 +31,7 @@ public final class OkHttpDataSourceFactory extends BaseFactory { ...@@ -32,7 +31,7 @@ public final class OkHttpDataSourceFactory extends BaseFactory {
@NonNull private final Call.Factory callFactory; @NonNull private final Call.Factory callFactory;
@Nullable private final String userAgent; @Nullable private final String userAgent;
@Nullable private final TransferListener<? super DataSource> listener; @Nullable private final TransferListener listener;
@Nullable private final CacheControl cacheControl; @Nullable private final CacheControl cacheControl;
/** /**
...@@ -63,8 +62,10 @@ public final class OkHttpDataSourceFactory extends BaseFactory { ...@@ -63,8 +62,10 @@ public final class OkHttpDataSourceFactory extends BaseFactory {
* @param userAgent An optional User-Agent string. * @param userAgent An optional User-Agent string.
* @param listener An optional listener. * @param listener An optional listener.
*/ */
public OkHttpDataSourceFactory(@NonNull Call.Factory callFactory, @Nullable String userAgent, public OkHttpDataSourceFactory(
@Nullable TransferListener<? super DataSource> listener) { @NonNull Call.Factory callFactory,
@Nullable String userAgent,
@Nullable TransferListener listener) {
this(callFactory, userAgent, listener, /* cacheControl= */ null); this(callFactory, userAgent, listener, /* cacheControl= */ null);
} }
...@@ -75,8 +76,10 @@ public final class OkHttpDataSourceFactory extends BaseFactory { ...@@ -75,8 +76,10 @@ public final class OkHttpDataSourceFactory extends BaseFactory {
* @param listener An optional listener. * @param listener An optional listener.
* @param cacheControl An optional {@link CacheControl} for setting the Cache-Control header. * @param cacheControl An optional {@link CacheControl} for setting the Cache-Control header.
*/ */
public OkHttpDataSourceFactory(@NonNull Call.Factory callFactory, @Nullable String userAgent, public OkHttpDataSourceFactory(
@Nullable TransferListener<? super DataSource> listener, @NonNull Call.Factory callFactory,
@Nullable String userAgent,
@Nullable TransferListener listener,
@Nullable CacheControl cacheControl) { @Nullable CacheControl cacheControl) {
this.callFactory = callFactory; this.callFactory = callFactory;
this.userAgent = userAgent; this.userAgent = userAgent;
......
...@@ -42,7 +42,7 @@ public final class RtmpDataSource extends BaseDataSource { ...@@ -42,7 +42,7 @@ public final class RtmpDataSource extends BaseDataSource {
} }
/** @param listener An optional listener. */ /** @param listener An optional listener. */
public RtmpDataSource(@Nullable TransferListener<? super DataSource> listener) { public RtmpDataSource(@Nullable TransferListener listener) {
super(/* isNetwork= */ true); super(/* isNetwork= */ true);
if (listener != null) { if (listener != null) {
addTransferListener(listener); addTransferListener(listener);
......
...@@ -25,14 +25,14 @@ import com.google.android.exoplayer2.upstream.TransferListener; ...@@ -25,14 +25,14 @@ import com.google.android.exoplayer2.upstream.TransferListener;
*/ */
public final class RtmpDataSourceFactory implements DataSource.Factory { public final class RtmpDataSourceFactory implements DataSource.Factory {
private final @Nullable TransferListener<? super DataSource> listener; private final @Nullable TransferListener listener;
public RtmpDataSourceFactory() { public RtmpDataSourceFactory() {
this(null); this(null);
} }
/** @param listener An optional listener. */ /** @param listener An optional listener. */
public RtmpDataSourceFactory(@Nullable TransferListener<? super DataSource> listener) { public RtmpDataSourceFactory(@Nullable TransferListener listener) {
this.listener = listener; this.listener = listener;
} }
......
...@@ -19,7 +19,6 @@ import android.os.Handler; ...@@ -19,7 +19,6 @@ 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;
...@@ -59,9 +58,7 @@ public abstract class BaseMediaSource implements MediaSource { ...@@ -59,9 +58,7 @@ public abstract class BaseMediaSource implements MediaSource {
* manifests and other data. * manifests and other data.
*/ */
protected abstract void prepareSourceInternal( protected abstract void prepareSourceInternal(
ExoPlayer player, ExoPlayer player, boolean isTopLevelSource, @Nullable TransferListener mediaTransferListener);
boolean isTopLevelSource,
@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
...@@ -147,7 +144,7 @@ public abstract class BaseMediaSource implements MediaSource { ...@@ -147,7 +144,7 @@ public abstract class BaseMediaSource implements MediaSource {
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
SourceInfoRefreshListener listener, SourceInfoRefreshListener listener,
@Nullable TransferListener<? super DataSource> mediaTransferListener) { @Nullable TransferListener 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) {
......
...@@ -21,7 +21,6 @@ import com.google.android.exoplayer2.C; ...@@ -21,7 +21,6 @@ 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;
...@@ -216,7 +215,7 @@ public final class ClippingMediaSource extends CompositeMediaSource<Void> { ...@@ -216,7 +215,7 @@ public final class ClippingMediaSource extends CompositeMediaSource<Void> {
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<? super DataSource> mediaTransferListener) { @Nullable TransferListener mediaTransferListener) {
super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener); super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener);
prepareChildSource(/* id= */ null, mediaSource); prepareChildSource(/* id= */ null, mediaSource);
} }
......
...@@ -20,7 +20,6 @@ import android.support.annotation.CallSuper; ...@@ -20,7 +20,6 @@ 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.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 +37,7 @@ public abstract class CompositeMediaSource<T> extends BaseMediaSource { ...@@ -38,7 +37,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<? super DataSource> mediaTransferListener; private @Nullable TransferListener mediaTransferListener;
/** Create composite media source without child sources. */ /** Create composite media source without child sources. */
protected CompositeMediaSource() { protected CompositeMediaSource() {
...@@ -50,7 +49,7 @@ public abstract class CompositeMediaSource<T> extends BaseMediaSource { ...@@ -50,7 +49,7 @@ public abstract class CompositeMediaSource<T> extends BaseMediaSource {
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<? super DataSource> mediaTransferListener) { @Nullable TransferListener mediaTransferListener) {
this.player = player; this.player = player;
this.mediaTransferListener = mediaTransferListener; this.mediaTransferListener = mediaTransferListener;
eventHandler = new Handler(); eventHandler = new Handler();
......
...@@ -26,7 +26,6 @@ import com.google.android.exoplayer2.Timeline; ...@@ -26,7 +26,6 @@ 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;
...@@ -376,7 +375,7 @@ public class ConcatenatingMediaSource extends CompositeMediaSource<MediaSourceHo ...@@ -376,7 +375,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<? super DataSource> mediaTransferListener) { @Nullable TransferListener 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());
......
...@@ -241,7 +241,7 @@ public final class ExtractorMediaSource extends BaseMediaSource ...@@ -241,7 +241,7 @@ public final class ExtractorMediaSource extends BaseMediaSource
private long timelineDurationUs; private long timelineDurationUs;
private boolean timelineIsSeekable; private boolean timelineIsSeekable;
private @Nullable TransferListener<? super DataSource> transferListener; private @Nullable TransferListener transferListener;
/** /**
* @param uri The {@link Uri} of the media stream. * @param uri The {@link Uri} of the media stream.
...@@ -347,7 +347,7 @@ public final class ExtractorMediaSource extends BaseMediaSource ...@@ -347,7 +347,7 @@ public final class ExtractorMediaSource extends BaseMediaSource
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<? super DataSource> mediaTransferListener) { @Nullable TransferListener mediaTransferListener) {
transferListener = mediaTransferListener; transferListener = mediaTransferListener;
notifySourceInfoRefreshed(timelineDurationUs, /* isSeekable= */ false); notifySourceInfoRefreshed(timelineDurationUs, /* isSeekable= */ false);
} }
......
...@@ -22,7 +22,6 @@ import com.google.android.exoplayer2.Player; ...@@ -22,7 +22,6 @@ 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;
...@@ -65,7 +64,7 @@ public final class LoopingMediaSource extends CompositeMediaSource<Void> { ...@@ -65,7 +64,7 @@ public final class LoopingMediaSource extends CompositeMediaSource<Void> {
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<? super DataSource> mediaTransferListener) { @Nullable TransferListener mediaTransferListener) {
super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener); super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener);
prepareChildSource(/* id= */ null, childSource); prepareChildSource(/* id= */ null, childSource);
} }
......
...@@ -21,7 +21,6 @@ import com.google.android.exoplayer2.C; ...@@ -21,7 +21,6 @@ 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;
...@@ -257,7 +256,7 @@ public interface MediaSource { ...@@ -257,7 +256,7 @@ public interface MediaSource {
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
SourceInfoRefreshListener listener, SourceInfoRefreshListener listener,
@Nullable TransferListener<? super DataSource> mediaTransferListener); @Nullable TransferListener mediaTransferListener);
/** /**
* Throws any pending error encountered while loading or refreshing source information. * Throws any pending error encountered while loading or refreshing source information.
......
...@@ -20,7 +20,6 @@ import android.support.annotation.Nullable; ...@@ -20,7 +20,6 @@ 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;
...@@ -102,7 +101,7 @@ public final class MergingMediaSource extends CompositeMediaSource<Integer> { ...@@ -102,7 +101,7 @@ public final class MergingMediaSource extends CompositeMediaSource<Integer> {
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<? super DataSource> mediaTransferListener) { @Nullable TransferListener 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]);
......
...@@ -49,7 +49,7 @@ import java.util.Arrays; ...@@ -49,7 +49,7 @@ import java.util.Arrays;
private final DataSpec dataSpec; private final DataSpec dataSpec;
private final DataSource.Factory dataSourceFactory; private final DataSource.Factory dataSourceFactory;
private final @Nullable TransferListener<? super DataSource> transferListener; private final @Nullable TransferListener transferListener;
private final int minLoadableRetryCount; private final int minLoadableRetryCount;
private final EventDispatcher eventDispatcher; private final EventDispatcher eventDispatcher;
private final TrackGroupArray tracks; private final TrackGroupArray tracks;
...@@ -70,7 +70,7 @@ import java.util.Arrays; ...@@ -70,7 +70,7 @@ import java.util.Arrays;
public SingleSampleMediaPeriod( public SingleSampleMediaPeriod(
DataSpec dataSpec, DataSpec dataSpec,
DataSource.Factory dataSourceFactory, DataSource.Factory dataSourceFactory,
@Nullable TransferListener<? super DataSource> transferListener, @Nullable TransferListener transferListener,
Format format, Format format,
long durationUs, long durationUs,
int minLoadableRetryCount, int minLoadableRetryCount,
......
...@@ -169,7 +169,7 @@ public final class SingleSampleMediaSource extends BaseMediaSource { ...@@ -169,7 +169,7 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
private final boolean treatLoadErrorsAsEndOfStream; private final boolean treatLoadErrorsAsEndOfStream;
private final Timeline timeline; private final Timeline timeline;
private @Nullable TransferListener<? super DataSource> transferListener; private @Nullable TransferListener transferListener;
/** /**
* @param uri The {@link Uri} of the media stream. * @param uri The {@link Uri} of the media stream.
...@@ -274,7 +274,7 @@ public final class SingleSampleMediaSource extends BaseMediaSource { ...@@ -274,7 +274,7 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<? super DataSource> mediaTransferListener) { @Nullable TransferListener mediaTransferListener) {
transferListener = mediaTransferListener; transferListener = mediaTransferListener;
refreshSourceInfo(timeline, /* manifest= */ null); refreshSourceInfo(timeline, /* manifest= */ null);
} }
......
...@@ -309,7 +309,7 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> { ...@@ -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<? super DataSource> mediaTransferListener) { @Nullable TransferListener 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();
......
...@@ -56,7 +56,7 @@ public final class AssetDataSource extends BaseDataSource { ...@@ -56,7 +56,7 @@ public final class AssetDataSource extends BaseDataSource {
* @param context A context. * @param context A context.
* @param listener An optional listener. * @param listener An optional listener.
*/ */
public AssetDataSource(Context context, @Nullable TransferListener<? super DataSource> listener) { public AssetDataSource(Context context, @Nullable TransferListener listener) {
super(/* isNetwork= */ false); super(/* isNetwork= */ false);
this.assetManager = context.getAssets(); this.assetManager = context.getAssets();
if (listener != null) { if (listener != null) {
......
...@@ -49,7 +49,7 @@ public interface BandwidthMeter { ...@@ -49,7 +49,7 @@ public interface BandwidthMeter {
* from data transfers. May be null, if no transfer listener is used. * from data transfers. May be null, if no transfer listener is used.
*/ */
@Nullable @Nullable
TransferListener<? super DataSource> getTransferListener(); TransferListener getTransferListener();
/** /**
* Adds an {@link EventListener} to be informed of bandwidth samples. * Adds an {@link EventListener} to be informed of bandwidth samples.
......
...@@ -29,7 +29,7 @@ import java.util.ArrayList; ...@@ -29,7 +29,7 @@ import java.util.ArrayList;
public abstract class BaseDataSource implements DataSource { public abstract class BaseDataSource implements DataSource {
private final boolean isNetwork; private final boolean isNetwork;
private final ArrayList<TransferListener<? super DataSource>> listeners; private final ArrayList<TransferListener> listeners;
private @Nullable DataSpec dataSpec; private @Nullable DataSpec dataSpec;
...@@ -44,7 +44,7 @@ public abstract class BaseDataSource implements DataSource { ...@@ -44,7 +44,7 @@ public abstract class BaseDataSource implements DataSource {
} }
@Override @Override
public final void addTransferListener(TransferListener<? super DataSource> transferListener) { public final void addTransferListener(TransferListener transferListener) {
listeners.add(transferListener); listeners.add(transferListener);
} }
......
...@@ -60,8 +60,7 @@ public final class ContentDataSource extends BaseDataSource { ...@@ -60,8 +60,7 @@ public final class ContentDataSource extends BaseDataSource {
* @param context A context. * @param context A context.
* @param listener An optional listener. * @param listener An optional listener.
*/ */
public ContentDataSource( public ContentDataSource(Context context, @Nullable TransferListener listener) {
Context context, @Nullable TransferListener<? super DataSource> listener) {
super(/* isNetwork= */ false); super(/* isNetwork= */ false);
this.resolver = context.getContentResolver(); this.resolver = context.getContentResolver();
if (listener != null) { if (listener != null) {
......
...@@ -44,7 +44,7 @@ public interface DataSource { ...@@ -44,7 +44,7 @@ public interface DataSource {
* *
* @param transferListener A {@link TransferListener}. * @param transferListener A {@link TransferListener}.
*/ */
default void addTransferListener(TransferListener<? super DataSource> transferListener) { default void addTransferListener(TransferListener transferListener) {
// TODO: Make non-default once all DataSources implement this method. // TODO: Make non-default once all DataSources implement this method.
} }
......
...@@ -26,7 +26,7 @@ import com.google.android.exoplayer2.util.SlidingPercentile; ...@@ -26,7 +26,7 @@ import com.google.android.exoplayer2.util.SlidingPercentile;
* Estimates bandwidth by listening to data transfers. The bandwidth estimate is calculated using a * Estimates bandwidth by listening to data transfers. The bandwidth estimate is calculated using a
* {@link SlidingPercentile} and is updated each time a transfer ends. * {@link SlidingPercentile} and is updated each time a transfer ends.
*/ */
public final class DefaultBandwidthMeter implements BandwidthMeter, TransferListener<Object> { public final class DefaultBandwidthMeter implements BandwidthMeter, TransferListener {
/** Default initial bitrate estimate in bits per second. */ /** Default initial bitrate estimate in bits per second. */
public static final long DEFAULT_INITIAL_BITRATE_ESTIMATE = 1_000_000; public static final long DEFAULT_INITIAL_BITRATE_ESTIMATE = 1_000_000;
...@@ -169,7 +169,7 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList ...@@ -169,7 +169,7 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList
} }
@Override @Override
public @Nullable TransferListener<? super DataSource> getTransferListener() { public @Nullable TransferListener getTransferListener() {
return this; return this;
} }
...@@ -184,12 +184,13 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList ...@@ -184,12 +184,13 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList
} }
@Override @Override
public void onTransferInitializing(Object source, DataSpec dataSpec, boolean isNetwork) { public void onTransferInitializing(DataSource source, DataSpec dataSpec, boolean isNetwork) {
// Do nothing. // Do nothing.
} }
@Override @Override
public synchronized void onTransferStart(Object source, DataSpec dataSpec, boolean isNetwork) { public synchronized void onTransferStart(
DataSource source, DataSpec dataSpec, boolean isNetwork) {
if (!isNetwork) { if (!isNetwork) {
return; return;
} }
...@@ -201,7 +202,7 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList ...@@ -201,7 +202,7 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList
@Override @Override
public synchronized void onBytesTransferred( public synchronized void onBytesTransferred(
Object source, DataSpec dataSpec, boolean isNetwork, int bytes) { DataSource source, DataSpec dataSpec, boolean isNetwork, int bytes) {
if (!isNetwork) { if (!isNetwork) {
return; return;
} }
...@@ -209,7 +210,7 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList ...@@ -209,7 +210,7 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList
} }
@Override @Override
public synchronized void onTransferEnd(Object source, DataSpec dataSpec, boolean isNetwork) { public synchronized void onTransferEnd(DataSource source, DataSpec dataSpec, boolean isNetwork) {
if (!isNetwork) { if (!isNetwork) {
return; return;
} }
......
...@@ -57,7 +57,7 @@ public final class DefaultDataSource implements DataSource { ...@@ -57,7 +57,7 @@ public final class DefaultDataSource implements DataSource {
private static final String SCHEME_RAW = RawResourceDataSource.RAW_RESOURCE_SCHEME; private static final String SCHEME_RAW = RawResourceDataSource.RAW_RESOURCE_SCHEME;
private final Context context; private final Context context;
private final List<TransferListener<? super DataSource>> transferListeners; private final List<TransferListener> transferListeners;
private final DataSource baseDataSource; private final DataSource baseDataSource;
// Lazily initialized. // Lazily initialized.
...@@ -81,7 +81,7 @@ public final class DefaultDataSource implements DataSource { ...@@ -81,7 +81,7 @@ public final class DefaultDataSource implements DataSource {
*/ */
public DefaultDataSource( public DefaultDataSource(
Context context, Context context,
@Nullable TransferListener<? super DataSource> listener, @Nullable TransferListener listener,
String userAgent, String userAgent,
boolean allowCrossProtocolRedirects) { boolean allowCrossProtocolRedirects) {
this(context, listener, userAgent, DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS, this(context, listener, userAgent, DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
...@@ -103,7 +103,7 @@ public final class DefaultDataSource implements DataSource { ...@@ -103,7 +103,7 @@ public final class DefaultDataSource implements DataSource {
*/ */
public DefaultDataSource( public DefaultDataSource(
Context context, Context context,
@Nullable TransferListener<? super DataSource> listener, @Nullable TransferListener listener,
String userAgent, String userAgent,
int connectTimeoutMillis, int connectTimeoutMillis,
int readTimeoutMillis, int readTimeoutMillis,
...@@ -123,9 +123,7 @@ public final class DefaultDataSource implements DataSource { ...@@ -123,9 +123,7 @@ public final class DefaultDataSource implements DataSource {
* content. This {@link DataSource} should normally support at least http(s). * content. This {@link DataSource} should normally support at least http(s).
*/ */
public DefaultDataSource( public DefaultDataSource(
Context context, Context context, @Nullable TransferListener listener, DataSource baseDataSource) {
@Nullable TransferListener<? super DataSource> listener,
DataSource baseDataSource) {
this.context = context.getApplicationContext(); this.context = context.getApplicationContext();
this.baseDataSource = Assertions.checkNotNull(baseDataSource); this.baseDataSource = Assertions.checkNotNull(baseDataSource);
transferListeners = new ArrayList<>(); transferListeners = new ArrayList<>();
...@@ -135,7 +133,7 @@ public final class DefaultDataSource implements DataSource { ...@@ -135,7 +133,7 @@ public final class DefaultDataSource implements DataSource {
} }
@Override @Override
public void addTransferListener(TransferListener<? super DataSource> transferListener) { public void addTransferListener(TransferListener transferListener) {
baseDataSource.addTransferListener(transferListener); baseDataSource.addTransferListener(transferListener);
transferListeners.add(transferListener); transferListeners.add(transferListener);
maybeAddListenerToDataSource(fileDataSource, transferListener); maybeAddListenerToDataSource(fileDataSource, transferListener);
...@@ -271,7 +269,7 @@ public final class DefaultDataSource implements DataSource { ...@@ -271,7 +269,7 @@ public final class DefaultDataSource implements DataSource {
} }
private void maybeAddListenerToDataSource( private void maybeAddListenerToDataSource(
@Nullable DataSource dataSource, TransferListener<? super DataSource> listener) { @Nullable DataSource dataSource, TransferListener listener) {
if (dataSource != null) { if (dataSource != null) {
dataSource.addTransferListener(listener); dataSource.addTransferListener(listener);
} }
......
...@@ -26,7 +26,7 @@ import com.google.android.exoplayer2.upstream.DataSource.Factory; ...@@ -26,7 +26,7 @@ import com.google.android.exoplayer2.upstream.DataSource.Factory;
public final class DefaultDataSourceFactory implements Factory { public final class DefaultDataSourceFactory implements Factory {
private final Context context; private final Context context;
private final @Nullable TransferListener<? super DataSource> listener; private final @Nullable TransferListener listener;
private final DataSource.Factory baseDataSourceFactory; private final DataSource.Factory baseDataSourceFactory;
/** /**
...@@ -43,7 +43,7 @@ public final class DefaultDataSourceFactory implements Factory { ...@@ -43,7 +43,7 @@ public final class DefaultDataSourceFactory implements Factory {
* @param listener An optional listener. * @param listener An optional listener.
*/ */
public DefaultDataSourceFactory( public DefaultDataSourceFactory(
Context context, String userAgent, @Nullable TransferListener<? super DataSource> listener) { Context context, String userAgent, @Nullable TransferListener listener) {
this(context, listener, new DefaultHttpDataSourceFactory(userAgent, listener)); this(context, listener, new DefaultHttpDataSourceFactory(userAgent, listener));
} }
...@@ -66,7 +66,7 @@ public final class DefaultDataSourceFactory implements Factory { ...@@ -66,7 +66,7 @@ public final class DefaultDataSourceFactory implements Factory {
*/ */
public DefaultDataSourceFactory( public DefaultDataSourceFactory(
Context context, Context context,
@Nullable TransferListener<? super DataSource> listener, @Nullable TransferListener listener,
DataSource.Factory baseDataSourceFactory) { DataSource.Factory baseDataSourceFactory) {
this.context = context.getApplicationContext(); this.context = context.getApplicationContext();
this.listener = listener; this.listener = listener;
......
...@@ -105,7 +105,7 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou ...@@ -105,7 +105,7 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou
public DefaultHttpDataSource( public DefaultHttpDataSource(
String userAgent, String userAgent,
@Nullable Predicate<String> contentTypePredicate, @Nullable Predicate<String> contentTypePredicate,
@Nullable TransferListener<? super DataSource> listener) { @Nullable TransferListener listener) {
this(userAgent, contentTypePredicate, listener, DEFAULT_CONNECT_TIMEOUT_MILLIS, this(userAgent, contentTypePredicate, listener, DEFAULT_CONNECT_TIMEOUT_MILLIS,
DEFAULT_READ_TIMEOUT_MILLIS); DEFAULT_READ_TIMEOUT_MILLIS);
} }
...@@ -124,7 +124,7 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou ...@@ -124,7 +124,7 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou
public DefaultHttpDataSource( public DefaultHttpDataSource(
String userAgent, String userAgent,
@Nullable Predicate<String> contentTypePredicate, @Nullable Predicate<String> contentTypePredicate,
@Nullable TransferListener<? super DataSource> listener, @Nullable TransferListener listener,
int connectTimeoutMillis, int connectTimeoutMillis,
int readTimeoutMillis) { int readTimeoutMillis) {
this(userAgent, contentTypePredicate, listener, connectTimeoutMillis, readTimeoutMillis, false, this(userAgent, contentTypePredicate, listener, connectTimeoutMillis, readTimeoutMillis, false,
...@@ -150,7 +150,7 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou ...@@ -150,7 +150,7 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou
public DefaultHttpDataSource( public DefaultHttpDataSource(
String userAgent, String userAgent,
@Nullable Predicate<String> contentTypePredicate, @Nullable Predicate<String> contentTypePredicate,
@Nullable TransferListener<? super DataSource> listener, @Nullable TransferListener listener,
int connectTimeoutMillis, int connectTimeoutMillis,
int readTimeoutMillis, int readTimeoutMillis,
boolean allowCrossProtocolRedirects, boolean allowCrossProtocolRedirects,
......
...@@ -23,7 +23,7 @@ import com.google.android.exoplayer2.upstream.HttpDataSource.Factory; ...@@ -23,7 +23,7 @@ import com.google.android.exoplayer2.upstream.HttpDataSource.Factory;
public final class DefaultHttpDataSourceFactory extends BaseFactory { public final class DefaultHttpDataSourceFactory extends BaseFactory {
private final String userAgent; private final String userAgent;
private final @Nullable TransferListener<? super DataSource> listener; private final @Nullable TransferListener listener;
private final int connectTimeoutMillis; private final int connectTimeoutMillis;
private final int readTimeoutMillis; private final int readTimeoutMillis;
private final boolean allowCrossProtocolRedirects; private final boolean allowCrossProtocolRedirects;
...@@ -50,8 +50,7 @@ public final class DefaultHttpDataSourceFactory extends BaseFactory { ...@@ -50,8 +50,7 @@ public final class DefaultHttpDataSourceFactory extends BaseFactory {
* @param listener An optional listener. * @param listener An optional listener.
* @see #DefaultHttpDataSourceFactory(String, TransferListener, int, int, boolean) * @see #DefaultHttpDataSourceFactory(String, TransferListener, int, int, boolean)
*/ */
public DefaultHttpDataSourceFactory( public DefaultHttpDataSourceFactory(String userAgent, @Nullable TransferListener listener) {
String userAgent, @Nullable TransferListener<? super DataSource> listener) {
this(userAgent, listener, DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS, this(userAgent, listener, DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
DefaultHttpDataSource.DEFAULT_READ_TIMEOUT_MILLIS, false); DefaultHttpDataSource.DEFAULT_READ_TIMEOUT_MILLIS, false);
} }
...@@ -90,7 +89,7 @@ public final class DefaultHttpDataSourceFactory extends BaseFactory { ...@@ -90,7 +89,7 @@ public final class DefaultHttpDataSourceFactory extends BaseFactory {
*/ */
public DefaultHttpDataSourceFactory( public DefaultHttpDataSourceFactory(
String userAgent, String userAgent,
@Nullable TransferListener<? super DataSource> listener, @Nullable TransferListener listener,
int connectTimeoutMillis, int connectTimeoutMillis,
int readTimeoutMillis, int readTimeoutMillis,
boolean allowCrossProtocolRedirects) { boolean allowCrossProtocolRedirects) {
......
...@@ -46,7 +46,7 @@ public final class FileDataSource extends BaseDataSource { ...@@ -46,7 +46,7 @@ public final class FileDataSource extends BaseDataSource {
} }
/** @param listener An optional listener. */ /** @param listener An optional listener. */
public FileDataSource(@Nullable TransferListener<? super DataSource> listener) { public FileDataSource(@Nullable TransferListener listener) {
super(/* isNetwork= */ false); super(/* isNetwork= */ false);
if (listener != null) { if (listener != null) {
addTransferListener(listener); addTransferListener(listener);
......
...@@ -22,13 +22,13 @@ import android.support.annotation.Nullable; ...@@ -22,13 +22,13 @@ import android.support.annotation.Nullable;
*/ */
public final class FileDataSourceFactory implements DataSource.Factory { public final class FileDataSourceFactory implements DataSource.Factory {
private final @Nullable TransferListener<? super DataSource> listener; private final @Nullable TransferListener listener;
public FileDataSourceFactory() { public FileDataSourceFactory() {
this(null); this(null);
} }
public FileDataSourceFactory(@Nullable TransferListener<? super DataSource> listener) { public FileDataSourceFactory(@Nullable TransferListener listener) {
this.listener = listener; this.listener = listener;
} }
......
...@@ -54,7 +54,7 @@ public final class PriorityDataSource implements DataSource { ...@@ -54,7 +54,7 @@ public final class PriorityDataSource implements DataSource {
} }
@Override @Override
public void addTransferListener(TransferListener<? super DataSource> transferListener) { public void addTransferListener(TransferListener transferListener) {
upstream.addTransferListener(transferListener); upstream.addTransferListener(transferListener);
} }
......
...@@ -81,8 +81,7 @@ public final class RawResourceDataSource extends BaseDataSource { ...@@ -81,8 +81,7 @@ public final class RawResourceDataSource extends BaseDataSource {
* @param context A context. * @param context A context.
* @param listener An optional listener. * @param listener An optional listener.
*/ */
public RawResourceDataSource( public RawResourceDataSource(Context context, @Nullable TransferListener listener) {
Context context, @Nullable TransferListener<? super DataSource> listener) {
super(/* isNetwork= */ false); super(/* isNetwork= */ false);
this.resources = context.getResources(); this.resources = context.getResources();
if (listener != null) { if (listener != null) {
......
...@@ -71,7 +71,7 @@ public final class StatsDataSource implements DataSource { ...@@ -71,7 +71,7 @@ public final class StatsDataSource implements DataSource {
} }
@Override @Override
public void addTransferListener(TransferListener<? super DataSource> transferListener) { public void addTransferListener(TransferListener transferListener) {
dataSource.addTransferListener(transferListener); dataSource.addTransferListener(transferListener);
} }
......
...@@ -44,7 +44,7 @@ public final class TeeDataSource implements DataSource { ...@@ -44,7 +44,7 @@ public final class TeeDataSource implements DataSource {
} }
@Override @Override
public void addTransferListener(TransferListener<? super DataSource> transferListener) { public void addTransferListener(TransferListener transferListener) {
upstream.addTransferListener(transferListener); upstream.addTransferListener(transferListener);
} }
......
...@@ -22,20 +22,20 @@ package com.google.android.exoplayer2.upstream; ...@@ -22,20 +22,20 @@ package com.google.android.exoplayer2.upstream;
* *
* <ol> * <ol>
* <li>Initializing the underlying resource (e.g. opening a HTTP connection). {@link * <li>Initializing the underlying resource (e.g. opening a HTTP connection). {@link
* #onTransferInitializing(Object, DataSpec, boolean)} is called before the initialization * #onTransferInitializing(DataSource, DataSpec, boolean)} is called before the initialization
* starts. * starts.
* <li>Starting the transfer after successfully initializing the resource. {@link * <li>Starting the transfer after successfully initializing the resource. {@link
* #onTransferStart(Object, DataSpec, boolean)} is called. Note that this only happens if the * #onTransferStart(DataSource, DataSpec, boolean)} is called. Note that this only happens if
* initialization was successful. * the initialization was successful.
* <li>Transferring data. {@link #onBytesTransferred(Object, DataSpec, boolean, int)} is called * <li>Transferring data. {@link #onBytesTransferred(DataSource, DataSpec, boolean, int)} is
* frequently during the transfer to indicate progress. * called frequently during the transfer to indicate progress.
* <li>Closing the transfer and the underlying resource. {@link #onTransferEnd(Object, DataSpec, * <li>Closing the transfer and the underlying resource. {@link #onTransferEnd(DataSource,
* boolean)} is called. Note that each {@link #onTransferStart(Object, DataSpec, boolean)} * DataSpec, boolean)} is called. Note that each {@link #onTransferStart(DataSource, DataSpec,
* will have exactly one corresponding call to {@link #onTransferEnd(Object, DataSpec, * boolean)} will have exactly one corresponding call to {@link #onTransferEnd(DataSource,
* boolean)}. * DataSpec, boolean)}.
* </ol> * </ol>
*/ */
public interface TransferListener<S> { public interface TransferListener {
/** /**
* Called when a transfer is being initialized. * Called when a transfer is being initialized.
...@@ -44,7 +44,7 @@ public interface TransferListener<S> { ...@@ -44,7 +44,7 @@ public interface TransferListener<S> {
* @param dataSpec Describes the data for which the transfer is initialized. * @param dataSpec Describes the data for which the transfer is initialized.
* @param isNetwork Whether the data is transferred through a network. * @param isNetwork Whether the data is transferred through a network.
*/ */
void onTransferInitializing(S source, DataSpec dataSpec, boolean isNetwork); void onTransferInitializing(DataSource source, DataSpec dataSpec, boolean isNetwork);
/** /**
* Called when a transfer starts. * Called when a transfer starts.
...@@ -53,7 +53,7 @@ public interface TransferListener<S> { ...@@ -53,7 +53,7 @@ public interface TransferListener<S> {
* @param dataSpec Describes the data being transferred. * @param dataSpec Describes the data being transferred.
* @param isNetwork Whether the data is transferred through a network. * @param isNetwork Whether the data is transferred through a network.
*/ */
void onTransferStart(S source, DataSpec dataSpec, boolean isNetwork); void onTransferStart(DataSource source, DataSpec dataSpec, boolean isNetwork);
/** /**
* Called incrementally during a transfer. * Called incrementally during a transfer.
...@@ -63,7 +63,8 @@ public interface TransferListener<S> { ...@@ -63,7 +63,8 @@ public interface TransferListener<S> {
* @param isNetwork Whether the data is transferred through a network. * @param isNetwork Whether the data is transferred through a network.
* @param bytesTransferred The number of bytes transferred since the previous call to this method * @param bytesTransferred The number of bytes transferred since the previous call to this method
*/ */
void onBytesTransferred(S source, DataSpec dataSpec, boolean isNetwork, int bytesTransferred); void onBytesTransferred(
DataSource source, DataSpec dataSpec, boolean isNetwork, int bytesTransferred);
/** /**
* Called when a transfer ends. * Called when a transfer ends.
...@@ -72,5 +73,5 @@ public interface TransferListener<S> { ...@@ -72,5 +73,5 @@ public interface TransferListener<S> {
* @param dataSpec Describes the data being transferred. * @param dataSpec Describes the data being transferred.
* @param isNetwork Whether the data is transferred through a network. * @param isNetwork Whether the data is transferred through a network.
*/ */
void onTransferEnd(S source, DataSpec dataSpec, boolean isNetwork); void onTransferEnd(DataSource source, DataSpec dataSpec, boolean isNetwork);
} }
...@@ -64,7 +64,7 @@ public final class UdpDataSource extends BaseDataSource { ...@@ -64,7 +64,7 @@ public final class UdpDataSource extends BaseDataSource {
private int packetRemaining; private int packetRemaining;
/** @param listener An optional listener. */ /** @param listener An optional listener. */
public UdpDataSource(@Nullable TransferListener<? super DataSource> listener) { public UdpDataSource(@Nullable TransferListener listener) {
this(listener, DEFAULT_MAX_PACKET_SIZE); this(listener, DEFAULT_MAX_PACKET_SIZE);
} }
...@@ -72,7 +72,7 @@ public final class UdpDataSource extends BaseDataSource { ...@@ -72,7 +72,7 @@ public final class UdpDataSource extends BaseDataSource {
* @param listener An optional listener. * @param listener An optional listener.
* @param maxPacketSize The maximum datagram packet size, in bytes. * @param maxPacketSize The maximum datagram packet size, in bytes.
*/ */
public UdpDataSource(@Nullable TransferListener<? super DataSource> listener, int maxPacketSize) { public UdpDataSource(@Nullable TransferListener listener, int maxPacketSize) {
this(listener, maxPacketSize, DEAFULT_SOCKET_TIMEOUT_MILLIS); this(listener, maxPacketSize, DEAFULT_SOCKET_TIMEOUT_MILLIS);
} }
...@@ -83,9 +83,7 @@ public final class UdpDataSource extends BaseDataSource { ...@@ -83,9 +83,7 @@ public final class UdpDataSource extends BaseDataSource {
* as an infinite timeout. * as an infinite timeout.
*/ */
public UdpDataSource( public UdpDataSource(
@Nullable TransferListener<? super DataSource> listener, @Nullable TransferListener listener, int maxPacketSize, int socketTimeoutMillis) {
int maxPacketSize,
int socketTimeoutMillis) {
super(/* isNetwork= */ true); super(/* isNetwork= */ true);
this.socketTimeoutMillis = socketTimeoutMillis; this.socketTimeoutMillis = socketTimeoutMillis;
packetBuffer = new byte[maxPacketSize]; packetBuffer = new byte[maxPacketSize];
......
...@@ -258,7 +258,7 @@ public final class CacheDataSource implements DataSource { ...@@ -258,7 +258,7 @@ public final class CacheDataSource implements DataSource {
} }
@Override @Override
public void addTransferListener(TransferListener<? super DataSource> transferListener) { public void addTransferListener(TransferListener transferListener) {
cacheReadDataSource.addTransferListener(transferListener); cacheReadDataSource.addTransferListener(transferListener);
upstreamDataSource.addTransferListener(transferListener); upstreamDataSource.addTransferListener(transferListener);
} }
......
...@@ -42,7 +42,7 @@ public final class AesCipherDataSource implements DataSource { ...@@ -42,7 +42,7 @@ public final class AesCipherDataSource implements DataSource {
} }
@Override @Override
public void addTransferListener(TransferListener<? super DataSource> transferListener) { public void addTransferListener(TransferListener transferListener) {
upstream.addTransferListener(transferListener); upstream.addTransferListener(transferListener);
} }
......
...@@ -45,7 +45,6 @@ import com.google.android.exoplayer2.testutil.FakeTrackSelection; ...@@ -45,7 +45,6 @@ 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;
...@@ -234,7 +233,7 @@ public final class ExoPlayerTest { ...@@ -234,7 +233,7 @@ public final class ExoPlayerTest {
public synchronized void prepareSourceInternal( public synchronized void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<? super DataSource> mediaTransferListener) { @Nullable TransferListener 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
...@@ -582,7 +581,7 @@ public final class ExoPlayerTest { ...@@ -582,7 +581,7 @@ public final class ExoPlayerTest {
TrackGroupArray trackGroupArray, TrackGroupArray trackGroupArray,
Allocator allocator, Allocator allocator,
EventDispatcher eventDispatcher, EventDispatcher eventDispatcher,
@Nullable TransferListener<? super DataSource> transferListener) { @Nullable TransferListener transferListener) {
FakeMediaPeriod mediaPeriod = new FakeMediaPeriod(trackGroupArray, eventDispatcher); FakeMediaPeriod mediaPeriod = new FakeMediaPeriod(trackGroupArray, eventDispatcher);
mediaPeriod.setSeekToUsOffset(10); mediaPeriod.setSeekToUsOffset(10);
return mediaPeriod; return mediaPeriod;
...@@ -617,7 +616,7 @@ public final class ExoPlayerTest { ...@@ -617,7 +616,7 @@ public final class ExoPlayerTest {
TrackGroupArray trackGroupArray, TrackGroupArray trackGroupArray,
Allocator allocator, Allocator allocator,
EventDispatcher eventDispatcher, EventDispatcher eventDispatcher,
@Nullable TransferListener<? super DataSource> transferListener) { @Nullable TransferListener transferListener) {
FakeMediaPeriod mediaPeriod = new FakeMediaPeriod(trackGroupArray, eventDispatcher); FakeMediaPeriod mediaPeriod = new FakeMediaPeriod(trackGroupArray, eventDispatcher);
mediaPeriod.setDiscontinuityPositionUs(10); mediaPeriod.setDiscontinuityPositionUs(10);
return mediaPeriod; return mediaPeriod;
...@@ -643,7 +642,7 @@ public final class ExoPlayerTest { ...@@ -643,7 +642,7 @@ public final class ExoPlayerTest {
TrackGroupArray trackGroupArray, TrackGroupArray trackGroupArray,
Allocator allocator, Allocator allocator,
EventDispatcher eventDispatcher, EventDispatcher eventDispatcher,
@Nullable TransferListener<? super DataSource> transferListener) { @Nullable TransferListener transferListener) {
FakeMediaPeriod mediaPeriod = new FakeMediaPeriod(trackGroupArray, eventDispatcher); FakeMediaPeriod mediaPeriod = new FakeMediaPeriod(trackGroupArray, eventDispatcher);
mediaPeriod.setDiscontinuityPositionUs(0); mediaPeriod.setDiscontinuityPositionUs(0);
return mediaPeriod; return mediaPeriod;
...@@ -880,7 +879,7 @@ public final class ExoPlayerTest { ...@@ -880,7 +879,7 @@ public final class ExoPlayerTest {
TrackGroupArray trackGroupArray, TrackGroupArray trackGroupArray,
Allocator allocator, Allocator allocator,
EventDispatcher eventDispatcher, EventDispatcher eventDispatcher,
@Nullable TransferListener<? super DataSource> transferListener) { @Nullable TransferListener transferListener) {
// Defer completing preparation of the period until playback parameters have been set. // Defer completing preparation of the period until playback parameters have been set.
fakeMediaPeriodHolder[0] = fakeMediaPeriodHolder[0] =
new FakeMediaPeriod(trackGroupArray, eventDispatcher, /* deferOnPrepared= */ true); new FakeMediaPeriod(trackGroupArray, eventDispatcher, /* deferOnPrepared= */ true);
......
...@@ -37,7 +37,6 @@ import com.google.android.exoplayer2.testutil.MediaSourceTestRunner; ...@@ -37,7 +37,6 @@ import com.google.android.exoplayer2.testutil.MediaSourceTestRunner;
import com.google.android.exoplayer2.testutil.RobolectricUtil; import com.google.android.exoplayer2.testutil.RobolectricUtil;
import com.google.android.exoplayer2.testutil.TimelineAsserts; import com.google.android.exoplayer2.testutil.TimelineAsserts;
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 org.junit.Before; import org.junit.Before;
...@@ -481,7 +480,7 @@ public final class ClippingMediaSourceTest { ...@@ -481,7 +480,7 @@ public final class ClippingMediaSourceTest {
TrackGroupArray trackGroupArray, TrackGroupArray trackGroupArray,
Allocator allocator, Allocator allocator,
EventDispatcher eventDispatcher, EventDispatcher eventDispatcher,
@Nullable TransferListener<? super DataSource> transferListener) { @Nullable TransferListener transferListener) {
eventDispatcher.downstreamFormatChanged( eventDispatcher.downstreamFormatChanged(
new MediaLoadData( new MediaLoadData(
C.DATA_TYPE_MEDIA, C.DATA_TYPE_MEDIA,
......
...@@ -117,7 +117,7 @@ public class BaseDataSourceTest { ...@@ -117,7 +117,7 @@ public class BaseDataSourceTest {
} }
} }
private static final class TestTransferListener implements TransferListener<DataSource> { private static final class TestTransferListener implements TransferListener {
public Object lastTransferInitializingSource; public Object lastTransferInitializingSource;
public DataSpec lastTransferInitializingDataSpec; public DataSpec lastTransferInitializingDataSpec;
......
...@@ -21,7 +21,6 @@ import com.google.android.exoplayer2.source.chunk.ChunkSource; ...@@ -21,7 +21,6 @@ import com.google.android.exoplayer2.source.chunk.ChunkSource;
import com.google.android.exoplayer2.source.dash.PlayerEmsgHandler.PlayerTrackEmsgHandler; import com.google.android.exoplayer2.source.dash.PlayerEmsgHandler.PlayerTrackEmsgHandler;
import com.google.android.exoplayer2.source.dash.manifest.DashManifest; import com.google.android.exoplayer2.source.dash.manifest.DashManifest;
import com.google.android.exoplayer2.trackselection.TrackSelection; import com.google.android.exoplayer2.trackselection.TrackSelection;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.LoaderErrorThrower; import com.google.android.exoplayer2.upstream.LoaderErrorThrower;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
...@@ -61,7 +60,7 @@ public interface DashChunkSource extends ChunkSource { ...@@ -61,7 +60,7 @@ public interface DashChunkSource extends ChunkSource {
boolean enableEventMessageTrack, boolean enableEventMessageTrack,
boolean enableCea608Track, boolean enableCea608Track,
@Nullable PlayerTrackEmsgHandler playerEmsgHandler, @Nullable PlayerTrackEmsgHandler playerEmsgHandler,
@Nullable TransferListener<? super DataSource> transferListener); @Nullable TransferListener transferListener);
} }
/** /**
......
...@@ -42,7 +42,6 @@ import com.google.android.exoplayer2.source.dash.manifest.Period; ...@@ -42,7 +42,6 @@ import com.google.android.exoplayer2.source.dash.manifest.Period;
import com.google.android.exoplayer2.source.dash.manifest.Representation; import com.google.android.exoplayer2.source.dash.manifest.Representation;
import com.google.android.exoplayer2.trackselection.TrackSelection; import com.google.android.exoplayer2.trackselection.TrackSelection;
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.LoaderErrorThrower; import com.google.android.exoplayer2.upstream.LoaderErrorThrower;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.MimeTypes;
...@@ -62,7 +61,7 @@ import java.util.List; ...@@ -62,7 +61,7 @@ import java.util.List;
/* package */ final int id; /* package */ final int id;
private final DashChunkSource.Factory chunkSourceFactory; private final DashChunkSource.Factory chunkSourceFactory;
private final @Nullable TransferListener<? super DataSource> transferListener; private final @Nullable TransferListener transferListener;
private final int minLoadableRetryCount; private final int minLoadableRetryCount;
private final long elapsedRealtimeOffset; private final long elapsedRealtimeOffset;
private final LoaderErrorThrower manifestLoaderErrorThrower; private final LoaderErrorThrower manifestLoaderErrorThrower;
...@@ -89,7 +88,7 @@ import java.util.List; ...@@ -89,7 +88,7 @@ import java.util.List;
DashManifest manifest, DashManifest manifest,
int periodIndex, int periodIndex,
DashChunkSource.Factory chunkSourceFactory, DashChunkSource.Factory chunkSourceFactory,
@Nullable TransferListener<? super DataSource> transferListener, @Nullable TransferListener transferListener,
int minLoadableRetryCount, int minLoadableRetryCount,
EventDispatcher eventDispatcher, EventDispatcher eventDispatcher,
long elapsedRealtimeOffset, long elapsedRealtimeOffset,
......
...@@ -344,7 +344,7 @@ public final class DashMediaSource extends BaseMediaSource { ...@@ -344,7 +344,7 @@ public final class DashMediaSource extends BaseMediaSource {
private DataSource dataSource; private DataSource dataSource;
private Loader loader; private Loader loader;
private @Nullable TransferListener<? super DataSource> mediaTransferListener; private @Nullable TransferListener mediaTransferListener;
private IOException manifestFatalError; private IOException manifestFatalError;
private Handler handler; private Handler handler;
...@@ -596,7 +596,7 @@ public final class DashMediaSource extends BaseMediaSource { ...@@ -596,7 +596,7 @@ public final class DashMediaSource extends BaseMediaSource {
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<? super DataSource> mediaTransferListener) { @Nullable TransferListener mediaTransferListener) {
this.mediaTransferListener = mediaTransferListener; this.mediaTransferListener = mediaTransferListener;
if (sideloadedManifest) { if (sideloadedManifest) {
processManifest(false); processManifest(false);
......
...@@ -89,7 +89,7 @@ public class DefaultDashChunkSource implements DashChunkSource { ...@@ -89,7 +89,7 @@ public class DefaultDashChunkSource implements DashChunkSource {
boolean enableEventMessageTrack, boolean enableEventMessageTrack,
boolean enableCea608Track, boolean enableCea608Track,
@Nullable PlayerTrackEmsgHandler playerEmsgHandler, @Nullable PlayerTrackEmsgHandler playerEmsgHandler,
@Nullable TransferListener<? super DataSource> transferListener) { @Nullable TransferListener transferListener) {
DataSource dataSource = dataSourceFactory.createDataSource(); DataSource dataSource = dataSourceFactory.createDataSource();
if (transferListener != null) { if (transferListener != null) {
dataSource.addTransferListener(transferListener); dataSource.addTransferListener(transferListener);
......
...@@ -65,7 +65,7 @@ import javax.crypto.spec.SecretKeySpec; ...@@ -65,7 +65,7 @@ import javax.crypto.spec.SecretKeySpec;
} }
@Override @Override
public void addTransferListener(TransferListener<? super DataSource> transferListener) { public void addTransferListener(TransferListener transferListener) {
upstream.addTransferListener(transferListener); upstream.addTransferListener(transferListener);
} }
......
...@@ -129,7 +129,7 @@ import java.util.List; ...@@ -129,7 +129,7 @@ import java.util.List;
HlsPlaylistTracker playlistTracker, HlsPlaylistTracker playlistTracker,
HlsUrl[] variants, HlsUrl[] variants,
HlsDataSourceFactory dataSourceFactory, HlsDataSourceFactory dataSourceFactory,
@Nullable TransferListener<? super DataSource> mediaTransferListener, @Nullable TransferListener mediaTransferListener,
TimestampAdjusterProvider timestampAdjusterProvider, TimestampAdjusterProvider timestampAdjusterProvider,
List<Format> muxedCaptionFormats) { List<Format> muxedCaptionFormats) {
this.extractorFactory = extractorFactory; this.extractorFactory = extractorFactory;
......
...@@ -55,7 +55,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper ...@@ -55,7 +55,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
private final HlsExtractorFactory extractorFactory; private final HlsExtractorFactory extractorFactory;
private final HlsPlaylistTracker playlistTracker; private final HlsPlaylistTracker playlistTracker;
private final HlsDataSourceFactory dataSourceFactory; private final HlsDataSourceFactory dataSourceFactory;
private final @Nullable TransferListener<? super DataSource> mediaTransferListener; private final @Nullable TransferListener mediaTransferListener;
private final LoadErrorHandlingPolicy<Chunk> chunkLoadErrorHandlingPolicy; private final LoadErrorHandlingPolicy<Chunk> chunkLoadErrorHandlingPolicy;
private final int minLoadableRetryCount; private final int minLoadableRetryCount;
private final EventDispatcher eventDispatcher; private final EventDispatcher eventDispatcher;
...@@ -94,7 +94,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper ...@@ -94,7 +94,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
HlsExtractorFactory extractorFactory, HlsExtractorFactory extractorFactory,
HlsPlaylistTracker playlistTracker, HlsPlaylistTracker playlistTracker,
HlsDataSourceFactory dataSourceFactory, HlsDataSourceFactory dataSourceFactory,
@Nullable TransferListener<? super DataSource> mediaTransferListener, @Nullable TransferListener mediaTransferListener,
LoadErrorHandlingPolicy<Chunk> chunkLoadErrorHandlingPolicy, LoadErrorHandlingPolicy<Chunk> chunkLoadErrorHandlingPolicy,
int minLoadableRetryCount, int minLoadableRetryCount,
EventDispatcher eventDispatcher, EventDispatcher eventDispatcher,
......
...@@ -287,7 +287,7 @@ public final class HlsMediaSource extends BaseMediaSource ...@@ -287,7 +287,7 @@ public final class HlsMediaSource extends BaseMediaSource
private final HlsPlaylistTracker playlistTracker; private final HlsPlaylistTracker playlistTracker;
private final @Nullable Object tag; private final @Nullable Object tag;
private @Nullable TransferListener<? super DataSource> mediaTransferListener; private @Nullable TransferListener mediaTransferListener;
/** /**
* @param manifestUri The {@link Uri} of the HLS manifest. * @param manifestUri The {@link Uri} of the HLS manifest.
...@@ -402,7 +402,7 @@ public final class HlsMediaSource extends BaseMediaSource ...@@ -402,7 +402,7 @@ public final class HlsMediaSource extends BaseMediaSource
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<? super DataSource> mediaTransferListener) { @Nullable TransferListener mediaTransferListener) {
this.mediaTransferListener = mediaTransferListener; this.mediaTransferListener = mediaTransferListener;
EventDispatcher eventDispatcher = createEventDispatcher(/* mediaPeriodId= */ null); EventDispatcher eventDispatcher = createEventDispatcher(/* mediaPeriodId= */ null);
playlistTracker.start(manifestUri, eventDispatcher, /* listener= */ this); playlistTracker.start(manifestUri, eventDispatcher, /* listener= */ this);
......
...@@ -61,7 +61,7 @@ public class DefaultSsChunkSource implements SsChunkSource { ...@@ -61,7 +61,7 @@ public class DefaultSsChunkSource implements SsChunkSource {
int elementIndex, int elementIndex,
TrackSelection trackSelection, TrackSelection trackSelection,
TrackEncryptionBox[] trackEncryptionBoxes, TrackEncryptionBox[] trackEncryptionBoxes,
@Nullable TransferListener<? super DataSource> transferListener) { @Nullable TransferListener transferListener) {
DataSource dataSource = dataSourceFactory.createDataSource(); DataSource dataSource = dataSourceFactory.createDataSource();
if (transferListener != null) { if (transferListener != null) {
dataSource.addTransferListener(transferListener); dataSource.addTransferListener(transferListener);
......
...@@ -20,7 +20,6 @@ import com.google.android.exoplayer2.extractor.mp4.TrackEncryptionBox; ...@@ -20,7 +20,6 @@ import com.google.android.exoplayer2.extractor.mp4.TrackEncryptionBox;
import com.google.android.exoplayer2.source.chunk.ChunkSource; import com.google.android.exoplayer2.source.chunk.ChunkSource;
import com.google.android.exoplayer2.source.smoothstreaming.manifest.SsManifest; import com.google.android.exoplayer2.source.smoothstreaming.manifest.SsManifest;
import com.google.android.exoplayer2.trackselection.TrackSelection; import com.google.android.exoplayer2.trackselection.TrackSelection;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.LoaderErrorThrower; import com.google.android.exoplayer2.upstream.LoaderErrorThrower;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
...@@ -50,7 +49,7 @@ public interface SsChunkSource extends ChunkSource { ...@@ -50,7 +49,7 @@ public interface SsChunkSource extends ChunkSource {
int streamElementIndex, int streamElementIndex,
TrackSelection trackSelection, TrackSelection trackSelection,
TrackEncryptionBox[] trackEncryptionBoxes, TrackEncryptionBox[] trackEncryptionBoxes,
@Nullable TransferListener<? super DataSource> transferListener); @Nullable TransferListener transferListener);
} }
/** /**
......
...@@ -32,7 +32,6 @@ import com.google.android.exoplayer2.source.smoothstreaming.manifest.SsManifest; ...@@ -32,7 +32,6 @@ import com.google.android.exoplayer2.source.smoothstreaming.manifest.SsManifest;
import com.google.android.exoplayer2.source.smoothstreaming.manifest.SsManifest.ProtectionElement; import com.google.android.exoplayer2.source.smoothstreaming.manifest.SsManifest.ProtectionElement;
import com.google.android.exoplayer2.trackselection.TrackSelection; import com.google.android.exoplayer2.trackselection.TrackSelection;
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.LoaderErrorThrower; import com.google.android.exoplayer2.upstream.LoaderErrorThrower;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
import java.io.IOException; import java.io.IOException;
...@@ -47,7 +46,7 @@ import java.util.ArrayList; ...@@ -47,7 +46,7 @@ import java.util.ArrayList;
private static final int INITIALIZATION_VECTOR_SIZE = 8; private static final int INITIALIZATION_VECTOR_SIZE = 8;
private final SsChunkSource.Factory chunkSourceFactory; private final SsChunkSource.Factory chunkSourceFactory;
private final @Nullable TransferListener<? super DataSource> transferListener; private final @Nullable TransferListener transferListener;
private final LoaderErrorThrower manifestLoaderErrorThrower; private final LoaderErrorThrower manifestLoaderErrorThrower;
private final int minLoadableRetryCount; private final int minLoadableRetryCount;
private final EventDispatcher eventDispatcher; private final EventDispatcher eventDispatcher;
...@@ -65,7 +64,7 @@ import java.util.ArrayList; ...@@ -65,7 +64,7 @@ import java.util.ArrayList;
public SsMediaPeriod( public SsMediaPeriod(
SsManifest manifest, SsManifest manifest,
SsChunkSource.Factory chunkSourceFactory, SsChunkSource.Factory chunkSourceFactory,
@Nullable TransferListener<? super DataSource> transferListener, @Nullable TransferListener transferListener,
CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory, CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory,
int minLoadableRetryCount, int minLoadableRetryCount,
EventDispatcher eventDispatcher, EventDispatcher eventDispatcher,
......
...@@ -295,7 +295,7 @@ public final class SsMediaSource extends BaseMediaSource ...@@ -295,7 +295,7 @@ public final class SsMediaSource extends BaseMediaSource
private DataSource manifestDataSource; private DataSource manifestDataSource;
private Loader manifestLoader; private Loader manifestLoader;
private LoaderErrorThrower manifestLoaderErrorThrower; private LoaderErrorThrower manifestLoaderErrorThrower;
private @Nullable TransferListener<? super DataSource> mediaTransferListener; private @Nullable TransferListener mediaTransferListener;
private long manifestLoadStartTimestamp; private long manifestLoadStartTimestamp;
private SsManifest manifest; private SsManifest manifest;
...@@ -477,7 +477,7 @@ public final class SsMediaSource extends BaseMediaSource ...@@ -477,7 +477,7 @@ public final class SsMediaSource extends BaseMediaSource
public void prepareSourceInternal( public void prepareSourceInternal(
ExoPlayer player, ExoPlayer player,
boolean isTopLevelSource, boolean isTopLevelSource,
@Nullable TransferListener<? super DataSource> mediaTransferListener) { @Nullable TransferListener mediaTransferListener) {
this.mediaTransferListener = mediaTransferListener; this.mediaTransferListener = mediaTransferListener;
if (sideloadedManifest) { if (sideloadedManifest) {
manifestLoaderErrorThrower = new LoaderErrorThrower.Dummy(); manifestLoaderErrorThrower = new LoaderErrorThrower.Dummy();
......
...@@ -307,8 +307,8 @@ public final class DashTestRunner { ...@@ -307,8 +307,8 @@ public final class DashTestRunner {
} }
@Override @Override
protected MediaSource buildSource(HostActivity host, String userAgent, protected MediaSource buildSource(
TransferListener<? super DataSource> mediaTransferListener) { HostActivity host, String userAgent, TransferListener mediaTransferListener) {
DataSource.Factory manifestDataSourceFactory = dataSourceFactory != null DataSource.Factory manifestDataSourceFactory = dataSourceFactory != null
? dataSourceFactory : new DefaultDataSourceFactory(host, userAgent); ? dataSourceFactory : new DefaultDataSourceFactory(host, userAgent);
DataSource.Factory mediaDataSourceFactory = dataSourceFactory != null DataSource.Factory mediaDataSourceFactory = dataSourceFactory != null
......
...@@ -41,7 +41,6 @@ import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection; ...@@ -41,7 +41,6 @@ import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection;
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector; import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
import com.google.android.exoplayer2.trackselection.MappingTrackSelector; import com.google.android.exoplayer2.trackselection.MappingTrackSelector;
import com.google.android.exoplayer2.upstream.BandwidthMeter; import com.google.android.exoplayer2.upstream.BandwidthMeter;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter; import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
import com.google.android.exoplayer2.util.Clock; import com.google.android.exoplayer2.util.Clock;
...@@ -377,8 +376,8 @@ public abstract class ExoHostedTest ...@@ -377,8 +376,8 @@ public abstract class ExoHostedTest
} }
@SuppressWarnings("unused") @SuppressWarnings("unused")
protected abstract MediaSource buildSource(HostActivity host, String userAgent, protected abstract MediaSource buildSource(
TransferListener<? super DataSource> mediaTransferListener); HostActivity host, String userAgent, TransferListener mediaTransferListener);
@SuppressWarnings("unused") @SuppressWarnings("unused")
protected void onPlayerErrorInternal(ExoPlaybackException error) { protected void onPlayerErrorInternal(ExoPlaybackException error) {
......
...@@ -25,7 +25,6 @@ import com.google.android.exoplayer2.source.TrackGroupArray; ...@@ -25,7 +25,6 @@ import com.google.android.exoplayer2.source.TrackGroupArray;
import com.google.android.exoplayer2.source.chunk.ChunkSampleStream; import com.google.android.exoplayer2.source.chunk.ChunkSampleStream;
import com.google.android.exoplayer2.trackselection.TrackSelection; import com.google.android.exoplayer2.trackselection.TrackSelection;
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.MimeTypes; import com.google.android.exoplayer2.util.MimeTypes;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -40,7 +39,7 @@ public class FakeAdaptiveMediaPeriod extends FakeMediaPeriod ...@@ -40,7 +39,7 @@ public class FakeAdaptiveMediaPeriod extends FakeMediaPeriod
private final Allocator allocator; private final Allocator allocator;
private final FakeChunkSource.Factory chunkSourceFactory; private final FakeChunkSource.Factory chunkSourceFactory;
private final @Nullable TransferListener<? super DataSource> transferListener; private final @Nullable TransferListener transferListener;
private final long durationUs; private final long durationUs;
private Callback callback; private Callback callback;
...@@ -53,7 +52,7 @@ public class FakeAdaptiveMediaPeriod extends FakeMediaPeriod ...@@ -53,7 +52,7 @@ public class FakeAdaptiveMediaPeriod extends FakeMediaPeriod
Allocator allocator, Allocator allocator,
FakeChunkSource.Factory chunkSourceFactory, FakeChunkSource.Factory chunkSourceFactory,
long durationUs, long durationUs,
@Nullable TransferListener<? super DataSource> transferListener) { @Nullable TransferListener transferListener) {
super(trackGroupArray, eventDispatcher); super(trackGroupArray, eventDispatcher);
this.allocator = allocator; this.allocator = allocator;
this.chunkSourceFactory = chunkSourceFactory; this.chunkSourceFactory = chunkSourceFactory;
......
...@@ -24,7 +24,6 @@ import com.google.android.exoplayer2.source.MediaSourceEventListener; ...@@ -24,7 +24,6 @@ import com.google.android.exoplayer2.source.MediaSourceEventListener;
import com.google.android.exoplayer2.source.MediaSourceEventListener.EventDispatcher; import com.google.android.exoplayer2.source.MediaSourceEventListener.EventDispatcher;
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.TransferListener; import com.google.android.exoplayer2.upstream.TransferListener;
/** /**
...@@ -53,7 +52,7 @@ public class FakeAdaptiveMediaSource extends FakeMediaSource { ...@@ -53,7 +52,7 @@ public class FakeAdaptiveMediaSource extends FakeMediaSource {
TrackGroupArray trackGroupArray, TrackGroupArray trackGroupArray,
Allocator allocator, Allocator allocator,
EventDispatcher eventDispatcher, EventDispatcher eventDispatcher,
@Nullable TransferListener<? super DataSource> transferListener) { @Nullable TransferListener transferListener) {
Period period = timeline.getPeriod(id.periodIndex, new Period()); Period period = timeline.getPeriod(id.periodIndex, new Period());
return new FakeAdaptiveMediaPeriod( return new FakeAdaptiveMediaPeriod(
trackGroupArray, trackGroupArray,
......
...@@ -57,7 +57,7 @@ public final class FakeChunkSource implements ChunkSource { ...@@ -57,7 +57,7 @@ public final class FakeChunkSource implements ChunkSource {
public FakeChunkSource createChunkSource( public FakeChunkSource createChunkSource(
TrackSelection trackSelection, TrackSelection trackSelection,
long durationUs, long durationUs,
@Nullable TransferListener<? super DataSource> transferListener) { @Nullable TransferListener transferListener) {
FakeAdaptiveDataSet dataSet = FakeAdaptiveDataSet dataSet =
dataSetFactory.createDataSet(trackSelection.getTrackGroup(), durationUs); dataSetFactory.createDataSet(trackSelection.getTrackGroup(), durationUs);
dataSourceFactory.setFakeDataSet(dataSet); dataSourceFactory.setFakeDataSet(dataSet);
......
...@@ -40,11 +40,11 @@ public class FakeDataSource extends BaseDataSource { ...@@ -40,11 +40,11 @@ public class FakeDataSource extends BaseDataSource {
*/ */
public static class Factory implements DataSource.Factory { public static class Factory implements DataSource.Factory {
protected final TransferListener<? super DataSource> transferListener; protected final TransferListener transferListener;
protected FakeDataSet fakeDataSet; protected FakeDataSet fakeDataSet;
protected boolean isNetwork; protected boolean isNetwork;
public Factory(@Nullable TransferListener<? super DataSource> transferListener) { public Factory(@Nullable TransferListener transferListener) {
this.transferListener = transferListener; this.transferListener = transferListener;
} }
...@@ -83,9 +83,7 @@ public class FakeDataSource extends BaseDataSource { ...@@ -83,9 +83,7 @@ public class FakeDataSource extends BaseDataSource {
} }
public FakeDataSource( public FakeDataSource(
FakeDataSet fakeDataSet, FakeDataSet fakeDataSet, @Nullable TransferListener transferListener, boolean isNetwork) {
@Nullable TransferListener<? super DataSource> transferListener,
boolean isNetwork) {
super(isNetwork); super(isNetwork);
Assertions.checkNotNull(fakeDataSet); Assertions.checkNotNull(fakeDataSet);
this.fakeDataSet = fakeDataSet; this.fakeDataSet = fakeDataSet;
......
...@@ -35,7 +35,6 @@ import com.google.android.exoplayer2.source.MediaSourceEventListener.MediaLoadDa ...@@ -35,7 +35,6 @@ 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;
...@@ -61,7 +60,7 @@ public class FakeMediaSource extends BaseMediaSource { ...@@ -61,7 +60,7 @@ public class FakeMediaSource extends BaseMediaSource {
private boolean preparedSource; private boolean preparedSource;
private boolean releasedSource; private boolean releasedSource;
private Handler sourceInfoRefreshHandler; private Handler sourceInfoRefreshHandler;
private @Nullable TransferListener<? super DataSource> transferListener; private @Nullable TransferListener transferListener;
/** /**
* Creates a {@link FakeMediaSource}. This media source creates {@link FakeMediaPeriod}s with a * Creates a {@link FakeMediaSource}. This media source creates {@link FakeMediaPeriod}s with a
...@@ -92,7 +91,7 @@ public class FakeMediaSource extends BaseMediaSource { ...@@ -92,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<? super DataSource> mediaTransferListener) { @Nullable TransferListener mediaTransferListener) {
assertThat(preparedSource).isFalse(); assertThat(preparedSource).isFalse();
transferListener = mediaTransferListener; transferListener = mediaTransferListener;
preparedSource = true; preparedSource = true;
...@@ -206,7 +205,7 @@ public class FakeMediaSource extends BaseMediaSource { ...@@ -206,7 +205,7 @@ public class FakeMediaSource extends BaseMediaSource {
TrackGroupArray trackGroupArray, TrackGroupArray trackGroupArray,
Allocator allocator, Allocator allocator,
EventDispatcher eventDispatcher, EventDispatcher eventDispatcher,
@Nullable TransferListener<? super DataSource> transferListener) { @Nullable TransferListener transferListener) {
return new FakeMediaPeriod(trackGroupArray, eventDispatcher); return new FakeMediaPeriod(trackGroupArray, eventDispatcher);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment