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
This commit is contained in:
tonihei 2018-07-24 02:30:23 -07:00 committed by Oliver Woodman
parent 9d0ec37ead
commit ffdc17d0e0
61 changed files with 135 additions and 162 deletions

View File

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

View File

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

View File

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

View File

@ -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);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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);
}

View File

@ -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();

View File

@ -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());

View File

@ -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);
}

View File

@ -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);
}

View File

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

View File

@ -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]);

View File

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

View File

@ -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);
}

View File

@ -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();

View File

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

View File

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

View File

@ -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);
}

View File

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

View File

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

View File

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

View File

@ -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);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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);
}

View File

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

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}

View File

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

View File

@ -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);
}

View File

@ -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);
}

View File

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

View File

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

View File

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

View File

@ -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);
}
/**

View File

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

View File

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

View File

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

View File

@ -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);
}

View File

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

View File

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

View File

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

View File

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

View File

@ -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);
}
/**

View File

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

View File

@ -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();

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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);
}