Java 类com.facebook.imagepipeline.producers.BaseProducerContextCallbacks 实例源码

项目:GitHub    文件:VolleyNetworkFetcher.java   
@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);
}
项目:GongXianSheng    文件:ElnImageDownloaderFetcher.java   
@Override
public void fetch(final FetchState fetchState, final Callback callback) {
    final Future<?> future = mExecutorService.submit(
            new Runnable() {
                @Override
                public void run() {
                    HttpURLConnection connection = null;
                    Uri uri = fetchState.getUri();
                    String scheme = uri.getScheme();
                    String uriString = fetchState.getUri().toString();
                    while (true) {
                        String nextUriString;
                        String nextScheme;
                        InputStream is;
                        try {
                            connection = createConnection(uriString);
                            nextUriString = connection.getHeaderField("Location");
                            nextScheme = (nextUriString == null) ? null : Uri.parse(nextUriString).getScheme();
                            if (nextUriString == null || nextScheme.equals(scheme)) {
                                is = connection.getInputStream();
                                callback.onResponse(is, -1);
                                break;
                            }
                            uriString = nextUriString;
                            scheme = nextScheme;
                        } catch (Exception e) {
                            callback.onFailure(e);
                            break;
                        } finally {
                            if (connection != null) {
                                connection.disconnect();
                            }
                        }
                    }

                }
            });
    fetchState.getContext().addCallbacks(
            new BaseProducerContextCallbacks() {
                @Override
                public void onCancellationRequested() {
                    if (future.cancel(false)) {
                        callback.onCancellation();
                    }
                }
            });
}
项目:fresco    文件:VolleyNetworkFetcher.java   
@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);
}