package io.coreflodev.openchat.common.network;
import android.content.Context;
import java.io.File;
import java.util.concurrent.TimeUnit;
import okhttp3.Cache;
import okhttp3.OkHttpClient;
import okhttp3.Request;
public class HttpService {
private static final String CACHE_DIR = "httpCache";
private OkHttpClient httpClient;
public HttpService(Context context) {
File httpCacheDirectory = new File(context.getCacheDir(), CACHE_DIR);
Cache cache = new Cache(httpCacheDirectory, 10 * 1024 * 1024);
httpClient = new OkHttpClient.Builder()
.cache(cache)
.connectTimeout(5, TimeUnit.SECONDS)
.addInterceptor(chain -> {
try {
return chain.proceed(chain.request());
} catch (Exception e) {
Request offlineRequest = chain.request().newBuilder()
.header("Cache-Control", "public, only-if-cached, max-stale=" + 60 * 60 * 24)
.build();
return chain.proceed(offlineRequest);
}
})
.build();
}
public OkHttpClient getHttpClient() {
return httpClient;
}
}