-
public interface NetworkFetcher<FETCH_STATE extends FetchState>Interface that specifies network fetcher used by the image pipeline.
It is strongly recommended that implementations use an Executor in their method to execute the network request on a different thread.
When the fetch from the network fails or is cancelled, the subclass is responsible for calling Callback methods. If these are not called, the pipeline will not know that the image fetch has failed and the application may not behave properly.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public interfaceNetworkFetcher.CallbackCallback used to inform the network fetch producer.
-
Method Summary
Modifier and Type Method Description abstract FETCH_STATEcreateFetchState(Consumer<EncodedImage> consumer, ProducerContext producerContext)Creates a new instance of the FetchState-derived object used to store state. abstract voidfetch(FETCH_STATE fetchState, NetworkFetcher.Callback callback)Initiates the network fetch and informs the producer when a response is received via theprovided callback. abstract booleanshouldPropagate(FETCH_STATE fetchState)Gets whether the intermediate results should be propagated. abstract voidonFetchCompletion(FETCH_STATE fetchState, int byteSize)Called after the fetch completes. abstract Map<String, String>getExtraMap(FETCH_STATE fetchState, int byteSize)Gets a map containing extra parameters to pass to the listeners. -
-
Method Detail
-
createFetchState
abstract FETCH_STATE createFetchState(Consumer<EncodedImage> consumer, ProducerContext producerContext)
Creates a new instance of the FetchState-derived object used to store state.
- Parameters:
consumer- the consumerproducerContext- the producer's context
-
fetch
abstract void fetch(FETCH_STATE fetchState, NetworkFetcher.Callback callback)
Initiates the network fetch and informs the producer when a response is received via theprovided callback.
- Parameters:
fetchState- the fetch-specific statecallback- the callback used to inform the network fetch producer
-
shouldPropagate
abstract boolean shouldPropagate(FETCH_STATE fetchState)
Gets whether the intermediate results should be propagated.
In addition to the requirements of this method, intermediate results are throttled sothat a maximum of one every 100 ms is propagated. This is to conserve CPU and other resources.
Not applicable if progressive rendering is disabled or not supported for this image.
- Parameters:
fetchState- the fetch-specific state
-
onFetchCompletion
abstract void onFetchCompletion(FETCH_STATE fetchState, int byteSize)
Called after the fetch completes.
Implementing this method is optional and is useful for instrumentation purposes.
- Parameters:
fetchState- the fetch-specific statebyteSize- size of the data in bytes
-
getExtraMap
@Nullable() abstract Map<String, String> getExtraMap(FETCH_STATE fetchState, int byteSize)
Gets a map containing extra parameters to pass to the listeners.
Returning map is optional and is useful for instrumentation purposes.
This map won't be modified by the caller.
- Parameters:
fetchState- the fetch-specific statebyteSize- size of the data in bytes
-
-
-
-