@Override public Observable<Boolean> updateGroupList(List<GroupList> groupLists) { final Observable<Boolean> localResult = mGroupManageLocalDataSource.updateGroupList(groupLists); Observable<Boolean> remoteResult = mGroupManageRemoteDataSource.updateGroupList(groupLists); return remoteResult.flatMap( new Function<Boolean, Observable<Boolean>>() { @Override public Observable<Boolean> apply(Boolean isSuccess) { if (isSuccess) { return localResult; } return ObservableHelper.just(false); } }); }