Package com.castlabs.android.network
Class ModifierDataSourceFactory
- java.lang.Object
-
- com.castlabs.android.network.ModifierDataSourceFactory
-
- All Implemented Interfaces:
DataSourceFactory
,com.google.android.exoplayer2.upstream.DataSource.Factory
public class ModifierDataSourceFactory extends Object implements DataSourceFactory
Delegating data source factory that will trigger allRequestModifier
s registered with the player controller.Note that you usually do not have to use this class explicitly. The
PlayerController
will automatically create delegate instances for the different data request types.- Since:
- 4.1.2
-
-
Constructor Summary
Constructors Constructor Description ModifierDataSourceFactory(DataSourceFactory delegate, int type, List<RequestModifier> requestModifiers, List<ResponseModifier> responseListeners)
Create a new instance of this data source factoryModifierDataSourceFactory(DataSourceFactory delegate, int type, List<RequestModifier> requestModifiers, List<ResponseModifier> responseListeners, NetworkConfiguration networkConfiguration)
Create a new instance of this data source factory
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addHeaderParameter(String key, String value)
Adds a header parameter that will be added to each HTTP connection header that is generated with aDataSource
created by this factory.void
addQueryParameter(String key, String value)
Adds a query parameter that will be appended to each HTTP URL.void
clearHeaderParameters()
Removes all header parameters added previously withDataSourceFactory.addHeaderParameter(String, String)
.void
clearQueryParameters()
Removes all query parameters added previously withDataSourceFactory.addQueryParameter(String, String)
com.google.android.exoplayer2.upstream.DataSource
createDataSource()
com.google.android.exoplayer2.upstream.DataSource
createDataSource(int requestType)
Creates a data source for the given request typeMap<String,String>
getHeaderParameter()
Map<String,String>
getQueryParameter()
-
-
-
Constructor Detail
-
ModifierDataSourceFactory
public ModifierDataSourceFactory(@NonNull DataSourceFactory delegate, int type, @NonNull List<RequestModifier> requestModifiers, @NonNull List<ResponseModifier> responseListeners)
Create a new instance of this data source factory- Parameters:
delegate
- The delegate that this factory wraps aroundtype
- The request type that will be send to the request modifier plugin. Should be one ofRequest.DATA_TYPE_MANIFEST
,Request.DATA_TYPE_SEGMENT
, orRequest.DATA_TYPE_OTHER
requestModifiers
- The list of request modifier plugins
-
ModifierDataSourceFactory
public ModifierDataSourceFactory(@NonNull DataSourceFactory delegate, int type, @NonNull List<RequestModifier> requestModifiers, @NonNull List<ResponseModifier> responseListeners, @NonNull NetworkConfiguration networkConfiguration)
Create a new instance of this data source factory- Parameters:
delegate
- The delegate that this factory wraps aroundtype
- The request type that will be send to the request modifier plugin. Should be one ofRequest.DATA_TYPE_MANIFEST
,Request.DATA_TYPE_SEGMENT
, orRequest.DATA_TYPE_OTHER
requestModifiers
- The list of request modifier plugins
-
-
Method Detail
-
createDataSource
public com.google.android.exoplayer2.upstream.DataSource createDataSource()
- Specified by:
createDataSource
in interfacecom.google.android.exoplayer2.upstream.DataSource.Factory
-
createDataSource
public com.google.android.exoplayer2.upstream.DataSource createDataSource(int requestType)
Description copied from interface:DataSourceFactory
Creates a data source for the given request type- Specified by:
createDataSource
in interfaceDataSourceFactory
- Parameters:
requestType
- The request type- Returns:
- dataSource the data source
-
addHeaderParameter
public void addHeaderParameter(@NonNull String key, @NonNull String value)
Description copied from interface:DataSourceFactory
Adds a header parameter that will be added to each HTTP connection header that is generated with aDataSource
created by this factory. Note that you will need to call this before a call toDataSource.Factory.createDataSource()
in order to successfully add the parameter.- Specified by:
addHeaderParameter
in interfaceDataSourceFactory
- Parameters:
key
- the keyvalue
- the value or null to remove any previously added endtry with the given key
-
clearHeaderParameters
public void clearHeaderParameters()
Description copied from interface:DataSourceFactory
Removes all header parameters added previously withDataSourceFactory.addHeaderParameter(String, String)
.- Specified by:
clearHeaderParameters
in interfaceDataSourceFactory
-
addQueryParameter
public void addQueryParameter(@NonNull String key, @NonNull String value)
Description copied from interface:DataSourceFactory
Adds a query parameter that will be appended to each HTTP URL. Note that you will need to call this before a call toDataSource.Factory.createDataSource()
in order to successfully add the parameter.- Specified by:
addQueryParameter
in interfaceDataSourceFactory
- Parameters:
key
- the keyvalue
- the value or null to remove any previously added entry with the given key
-
clearQueryParameters
public void clearQueryParameters()
Description copied from interface:DataSourceFactory
Removes all query parameters added previously withDataSourceFactory.addQueryParameter(String, String)
- Specified by:
clearQueryParameters
in interfaceDataSourceFactory
-
getHeaderParameter
@NonNull public Map<String,String> getHeaderParameter()
- Specified by:
getHeaderParameter
in interfaceDataSourceFactory
- Returns:
- A non-null map of all registered header parameter
-
getQueryParameter
@NonNull public Map<String,String> getQueryParameter()
- Specified by:
getQueryParameter
in interfaceDataSourceFactory
- Returns:
- A non-null map of all registered query parameter
-
-