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