Voglio verificare se il cellulare è connesso a Internet prima di richiamare il mio servizio di rx retrofit. Se non connesso, voglio restituire una risposta falsa che contiene un errore.Modo corretto per gestire nessuna rete con Retrofit e RX-java
Mi sono concluso con la soluzione seguente, utilizzando defer(), ma penso che possa essere migliore, qualche suggerimento?
private Observable<Response> checkNetwork(Observable<Response> retrofitService) {
return Observable.defer(new Func0<Observable<Response>>() {
@Override
public Observable<Response> call() {
if (!isOnline()) {
return Observable.just(Response.error(R.string.error_no_network_label)));
}
return retrofitService;
}
});
}