li2
3/9/2018 - 11:36 AM

#

[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();
}