From 9aa1e75f78f984cb39b77ac50fca0db0fade1dcb Mon Sep 17 00:00:00 2001 From: Adam Comella Date: Thu, 6 Oct 2016 22:36:39 -0700 Subject: [PATCH 1/2] Split OkHttpNetworkFetcher's fetch method to make part of it reusable Subclasses overriding the fetch method might want to reuse some of its functionality. This change splits the fetch method to make this reusability possible. --- .../okhttp3/OkHttpNetworkFetcher.java | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/imagepipeline-backends/imagepipeline-okhttp3/src/main/java/com/facebook/imagepipeline/backends/okhttp3/OkHttpNetworkFetcher.java b/imagepipeline-backends/imagepipeline-okhttp3/src/main/java/com/facebook/imagepipeline/backends/okhttp3/OkHttpNetworkFetcher.java index 845ab5e58d..59d79c827a 100644 --- a/imagepipeline-backends/imagepipeline-okhttp3/src/main/java/com/facebook/imagepipeline/backends/okhttp3/OkHttpNetworkFetcher.java +++ b/imagepipeline-backends/imagepipeline-okhttp3/src/main/java/com/facebook/imagepipeline/backends/okhttp3/OkHttpNetworkFetcher.java @@ -73,15 +73,8 @@ public OkHttpNetworkFetchState createFetchState( return new OkHttpNetworkFetchState(consumer, context); } - @Override - public void fetch(final OkHttpNetworkFetchState fetchState, final Callback callback) { - fetchState.submitTime = SystemClock.elapsedRealtime(); - final Uri uri = fetchState.getUri(); - final Request request = new Request.Builder() - .cacheControl(new CacheControl.Builder().noStore().build()) - .url(uri.toString()) - .get() - .build(); + protected void fetchWithRequest(final OkHttpNetworkFetchState fetchState, final Callback callback, + final Request request) { final Call call = mOkHttpClient.newCall(request); fetchState.getContext().addCallbacks( @@ -109,9 +102,9 @@ public void onResponse(Call call, Response response) throws IOException { try { if (!response.isSuccessful()) { handleException( - call, - new IOException("Unexpected HTTP code " + response), - callback); + call, + new IOException("Unexpected HTTP code " + response), + callback); return; } @@ -138,6 +131,18 @@ public void onFailure(Call call, IOException e) { }); } + @Override + public void fetch(final OkHttpNetworkFetchState fetchState, final Callback callback) { + fetchState.submitTime = SystemClock.elapsedRealtime(); + final Uri uri = fetchState.getUri(); + final Request request = new Request.Builder() + .cacheControl(new CacheControl.Builder().noStore().build()) + .url(uri.toString()) + .get() + .build(); + fetchWithRequest(fetchState, callback, request); + } + @Override public void onFetchCompletion(OkHttpNetworkFetchState fetchState, int byteSize) { fetchState.fetchCompleteTime = SystemClock.elapsedRealtime(); From 5c444cd7fccc6aad8c2fa28bcf96bd5c788f8dda Mon Sep 17 00:00:00 2001 From: Adam Comella Date: Fri, 7 Oct 2016 11:43:40 -0700 Subject: [PATCH 2/2] Tweaked formatting based on PR feedback - Moved protected method fetchWithRequest to be below the public methods - Reformated fetchWithRequest to put each argument in its signature on a separate line. --- .../okhttp3/OkHttpNetworkFetcher.java | 58 ++++++++++--------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/imagepipeline-backends/imagepipeline-okhttp3/src/main/java/com/facebook/imagepipeline/backends/okhttp3/OkHttpNetworkFetcher.java b/imagepipeline-backends/imagepipeline-okhttp3/src/main/java/com/facebook/imagepipeline/backends/okhttp3/OkHttpNetworkFetcher.java index 59d79c827a..0bccc25354 100644 --- a/imagepipeline-backends/imagepipeline-okhttp3/src/main/java/com/facebook/imagepipeline/backends/okhttp3/OkHttpNetworkFetcher.java +++ b/imagepipeline-backends/imagepipeline-okhttp3/src/main/java/com/facebook/imagepipeline/backends/okhttp3/OkHttpNetworkFetcher.java @@ -73,7 +73,36 @@ public OkHttpNetworkFetchState createFetchState( return new OkHttpNetworkFetchState(consumer, context); } - protected void fetchWithRequest(final OkHttpNetworkFetchState fetchState, final Callback callback, + @Override + public void fetch(final OkHttpNetworkFetchState fetchState, final Callback callback) { + fetchState.submitTime = SystemClock.elapsedRealtime(); + final Uri uri = fetchState.getUri(); + final Request request = new Request.Builder() + .cacheControl(new CacheControl.Builder().noStore().build()) + .url(uri.toString()) + .get() + .build(); + fetchWithRequest(fetchState, callback, request); + } + + @Override + public void onFetchCompletion(OkHttpNetworkFetchState fetchState, int byteSize) { + fetchState.fetchCompleteTime = SystemClock.elapsedRealtime(); + } + + @Override + public Map getExtraMap(OkHttpNetworkFetchState fetchState, int byteSize) { + Map extraMap = new HashMap<>(4); + extraMap.put(QUEUE_TIME, Long.toString(fetchState.responseTime - fetchState.submitTime)); + extraMap.put(FETCH_TIME, Long.toString(fetchState.fetchCompleteTime - fetchState.responseTime)); + extraMap.put(TOTAL_TIME, Long.toString(fetchState.fetchCompleteTime - fetchState.submitTime)); + extraMap.put(IMAGE_SIZE, Integer.toString(byteSize)); + return extraMap; + } + + protected void fetchWithRequest( + final OkHttpNetworkFetchState fetchState, + final Callback callback, final Request request) { final Call call = mOkHttpClient.newCall(request); @@ -131,33 +160,6 @@ public void onFailure(Call call, IOException e) { }); } - @Override - public void fetch(final OkHttpNetworkFetchState fetchState, final Callback callback) { - fetchState.submitTime = SystemClock.elapsedRealtime(); - final Uri uri = fetchState.getUri(); - final Request request = new Request.Builder() - .cacheControl(new CacheControl.Builder().noStore().build()) - .url(uri.toString()) - .get() - .build(); - fetchWithRequest(fetchState, callback, request); - } - - @Override - public void onFetchCompletion(OkHttpNetworkFetchState fetchState, int byteSize) { - fetchState.fetchCompleteTime = SystemClock.elapsedRealtime(); - } - - @Override - public Map getExtraMap(OkHttpNetworkFetchState fetchState, int byteSize) { - Map extraMap = new HashMap<>(4); - extraMap.put(QUEUE_TIME, Long.toString(fetchState.responseTime - fetchState.submitTime)); - extraMap.put(FETCH_TIME, Long.toString(fetchState.fetchCompleteTime - fetchState.responseTime)); - extraMap.put(TOTAL_TIME, Long.toString(fetchState.fetchCompleteTime - fetchState.submitTime)); - extraMap.put(IMAGE_SIZE, Integer.toString(byteSize)); - return extraMap; - } - /** * Handles exceptions. *