package org.wikipedia.dataclient.okhttp; import android.net.Uri; import android.os.SystemClock; import com.facebook.imagepipeline.backends.okhttp3.OkHttpNetworkFetcher; import java.util.concurrent.Executor; import okhttp3.Call; import okhttp3.OkHttpClient; import okhttp3.Request; public class CacheableOkHttpNetworkFetcher extends OkHttpNetworkFetcher { public CacheableOkHttpNetworkFetcher(OkHttpClient okHttpClient) { super(okHttpClient); } public CacheableOkHttpNetworkFetcher(Call.Factory callFactory, Executor cancellationExecutor) { super(callFactory, cancellationExecutor); } @Override public void fetch(OkHttpNetworkFetchState fetchState, Callback callback) { // Identical to the super except that caching is not forbidden fetchState.submitTime = SystemClock.elapsedRealtime(); final Uri uri = fetchState.getUri(); try { Request request = new Request.Builder() .url(uri.toString()) .get() .build(); fetchWithRequest(fetchState, callback, request); } catch (Exception e) { // handle error while creating the request callback.onFailure(e); } } }