in app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowPresenter.java [65:111]
public void loadMyWorkflows() {
checkViewAttached();
getMvpView().showProgressbar(true);
compositeDisposable.clear();
compositeDisposable.add(mDataManager.getMyWorkflows(mDataManager.getPreferencesHelper()
.getUserID(), getQueryOptions())
.flatMap(new Function<User, ObservableSource<Workflow>>() {
@Override
public ObservableSource<Workflow> apply(User user) throws Exception {
if (user.getWorkflows().getWorkflowList() != null && user.getWorkflows()
.getWorkflowList().size() != 0) {
return Observable.fromIterable(user.getWorkflows().getWorkflowList())
.concatMap(new Function<Workflow,
ObservableSource<Workflow>>() {
@Override
public ObservableSource<Workflow> apply(Workflow workflow)
throws Exception {
return mDataManager.getDetailWorkflow(workflow.getId(),
getWorkflowQueryOptions());
}
});
} else {
return Observable.empty();
}
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribeWith(new DisposableObserver<Workflow>() {
@Override
public void onNext(Workflow workflow) {
getMvpView().showWorkflow(workflow);
}
@Override
public void onError(Throwable e) {
getMvpView().showErrorSnackBar("Server Error! Try after sometime");
Log.e(LOG_TAG, "onError: ", e);
}
@Override
public void onComplete() {
getMvpView().showProgressbar(false);
getMvpView().checkWorkflowSize();
}
}));
}