[Retrofit2: Network Error Handling & Response Caching] should show error messages when network error occurs. and cache the API response to show up the recent content when has no internet or slow in connection. #tags: android-network
// https://medium.com/@tsaha.cse/advanced-retrofit2-part-1-network-error-handling-response-caching-77483cf68620
private OkHttpClient provideOkHttpClient() {
OkHttpClient.Builder okhttpClientBuilder = new OkHttpClient.Builder();
okhttpClientBuilder.connectTimeout(30, TimeUnit.SECONDS);
okhttpClientBuilder.readTimeout(30, TimeUnit.SECONDS);
okhttpClientBuilder.writeTimeout(30, TimeUnit.SECONDS);
okhttpClientBuilder.addInterceptor(new NetworkConnectionInterceptor() {
@Override
public boolean isInternetAvailable() {
return App.this.isInternetAvailable();
}
@Override
public void onInternetUnavailable() {
if (mInternetConnectionListener != null) {
mInternetConnectionListener.onInternetUnavailable();
}
}
@Override
public void onCacheUnavailable() {
if (mInternetConnectionListener != null) {
mInternetConnectionListener.onCacheUnavailable();
}
}
});
return okhttpClientBuilder.build();
}