Skip to content

Instantly share code, notes, and snippets.

@IanField90
Last active February 3, 2023 16:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save IanField90/694ccd3f628f163aa76bcb4ddb19a3af to your computer and use it in GitHub Desktop.
Save IanField90/694ccd3f628f163aa76bcb4ddb19a3af to your computer and use it in GitHub Desktop.
Update using cache
@Override
public Observable<Void> onRefreshAction() {
return Observable.fromEmitter(emitter -> {
swipeRefreshLayout.setOnRefreshListener(() -> emitter.onNext(null));
emitter.setCancellation(() -> swipeRefreshLayout.setOnRefreshListener(null));
}, Emitter.BackpressureMode.ERROR).startWith((Void) null).map(ignored -> null);
}
addToUnsubscribe(view.onRefreshAction()
.doOnNext(ignored -> view.showRefreshing(true))
.switchMap(ignored -> articlesRepository
.latestFintechArticles()
.subscribeOn(ioScheduler)
.observeOn(uiScheduler)
.doOnError(throwable -> {
view.showRefreshing(false);
view.showRefreshingError();
})
.onErrorResumeNext(throwable -> {
Log.e("ArticlesPresenter", "Error refreshing articles", throwable);
return Observable.empty();
}))
.observeOn(uiScheduler)
.doOnNext(ignored -> view.showRefreshing(false))
.subscribe(view::showArticles));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment