diff --git a/app/src/main/java/com/hippo/ehviewer/EhApplication.java b/app/src/main/java/com/hippo/ehviewer/EhApplication.java index 777c6e1ee..e35693c73 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhApplication.java +++ b/app/src/main/java/com/hippo/ehviewer/EhApplication.java @@ -67,6 +67,7 @@ import java.util.HashMap; import java.util.List; import java.util.concurrent.TimeUnit; +import okhttp3.Cache; import okhttp3.OkHttpClient; public class EhApplication extends RecordingApplication { @@ -88,6 +89,7 @@ public class EhApplication extends RecordingApplication { private EhClient mEhClient; private EhProxySelector mEhProxySelector; private OkHttpClient mOkHttpClient; + private Cache mOkHttpCache; private ImageBitmapHelper mImageBitmapHelper; private Conaco mConaco; private LruCache mGalleryDetailCache; @@ -137,6 +139,7 @@ public class EhApplication extends RecordingApplication { .writeTimeout(5, TimeUnit.SECONDS) .callTimeout(10, TimeUnit.SECONDS) .cookieJar(getEhCookieStore(application)) + .cache(getOkHttpCache(application)) .dns(new EhDns(application)) .proxySelector(getEhProxySelector(application)) .build(); @@ -144,6 +147,15 @@ public class EhApplication extends RecordingApplication { return application.mOkHttpClient; } + @NonNull + public static Cache getOkHttpCache(@NonNull Context context) { + EhApplication application = ((EhApplication) context.getApplicationContext()); + if (application.mOkHttpCache == null) { + application.mOkHttpCache = new Cache(new File(application.getCacheDir(), "http_cache"), 50L * 1024L * 1024L); + } + return application.mOkHttpCache; + } + @NonNull public static ImageBitmapHelper getImageBitmapHelper(@NonNull Context context) { EhApplication application = ((EhApplication) context.getApplicationContext()); diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhDns.java b/app/src/main/java/com/hippo/ehviewer/client/EhDns.java index 7af0da90c..2191b98ae 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhDns.java +++ b/app/src/main/java/com/hippo/ehviewer/client/EhDns.java @@ -61,7 +61,7 @@ public class EhDns implements Dns { public EhDns(Context context) { hosts = EhApplication.getHosts(context); DnsOverHttps.Builder builder = new DnsOverHttps.Builder() - .client(new OkHttpClient.Builder().build()) + .client(new OkHttpClient.Builder().cache(EhApplication.getOkHttpCache(context)).build()) .url(HttpUrl.get("https://cloudflare-dns.com/dns-query")); try { builder.bootstrapDnsHosts(InetAddress.getByName("162.159.36.1"),