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
Delegating data source factory that will trigger all
RequestModifier
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
ConstructorDescriptionModifierDataSourceFactory
(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
Modifier and TypeMethodDescriptionvoid
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
Removes all header parameters added previously withDataSourceFactory.addHeaderParameter(String, String)
.void
Removes all query parameters added previously withDataSourceFactory.addQueryParameter(String, String)
com.google.android.exoplayer2.upstream.DataSource
com.google.android.exoplayer2.upstream.DataSource
createDataSource
(int requestType) Creates a data source for the given request type
-
Constructor Details
-
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 Details
-
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
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
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
- Specified by:
getHeaderParameter
in interfaceDataSourceFactory
- Returns:
- A non-null map of all registered header parameter
-
getQueryParameter
- Specified by:
getQueryParameter
in interfaceDataSourceFactory
- Returns:
- A non-null map of all registered query parameter
-