use of com.android.volley.RequestQueue.RequestFilter in project fresco by facebook.
the class VolleyNetworkFetcher method fetch.
@Override
public void fetch(final VolleyNetworkFetchState fetchState, final Callback callback) {
fetchState.submitTime = SystemClock.elapsedRealtime();
final RawRequest request = new RawRequest(fetchState.getUri().toString(), new Response.Listener<byte[]>() {
@Override
public void onResponse(byte[] bytes) {
fetchState.responseTime = SystemClock.uptimeMillis();
try {
InputStream is = new ByteArrayInputStream(bytes);
callback.onResponse(is, bytes.length);
} catch (IOException e) {
callback.onFailure(e);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
callback.onFailure(volleyError);
}
});
fetchState.getContext().addCallbacks(new BaseProducerContextCallbacks() {
@Override
public void onCancellationRequested() {
mRequestQueue.cancelAll(new RequestFilter() {
@Override
public boolean apply(Request<?> candidate) {
return candidate != null && request.getSequence() == candidate.getSequence();
}
});
}
});
mRequestQueue.add(request);
}
Aggregations