I am learning Android and I am following some guides for Retrofit2 with RxJava and Dagger2.
Now I want to handle no internet connection case.
I've found this answer, which
seems to be elegant, but I do not understand how to apply it.
I've got some NetworkModule
, with OkHttpClient
provider.
I assume I need to create OkHttpClient.Builder
with interceptor. So it should look something like this: `
@Provides
@Singleton
OkHttpClient provideOkHttpClient(Cache cache) {
ConnectivityInterceptor ci = new ConnectivityInterceptor(networkObservable()));
OkHttpClient.Builder.addInterceptor(ci)
return builder.build();
}
private boolean networkObservable() {
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
return activeNetwork != null && activeNetwork.isConnectedOrConnecting();
}
This isn't working as I don't have Context
.
In which direction should I go - to try to obtain context there, or maybe I misunderstand the concept of observables?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…