Skip to content

Instantly share code, notes, and snippets.

@rohans-doordash
Last active July 16, 2021 02:12
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 rohans-doordash/6daffe76b538bea24ee5989f6875ef0d to your computer and use it in GitHub Desktop.
Save rohans-doordash/6daffe76b538bea24ee5989f6875ef0d to your computer and use it in GitHub Desktop.
Fetch restaurants at a user's address by using RxJava
public Single<List<Restaurant>> getRestaurants(int userId) {
return ddApi.getUserInfo(userId).flapMap(user -> {
return ddApi.getAvailableRestaurants(user.defaultAddress.lat, user.defaultAddress.lng);
});
}
public class RestaurantFragment {
private CompositeDisposables disposables = new CompositeDisposables();
private RestaurantDataSource restaurantDataSource;
@Override
public void onResume() {
// subscribe to the Single returned by RestaurantApi
restaurantDataSource
.getRestaurants(userId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SingleObserver<Restaurant>() {
@Override
public void onSubscribe(Disposable d) {
disposables.add(d);
}
@Override
public void onSuccess(List<Restaurant> restaurants) {
// update the adapter with restaurants
}
@Override
public void onError(Throwable e) {
// display an error message
}
});
}
@Override
public void onPause() {
disposables.clear();
}
}
@samridh90
Copy link

samridh90 commented Nov 1, 2017

return ddApi.getUserInfo(userId).flapMap

Nit: it should be flatMap, not flapMap

@chanjungkim
Copy link

I think it must be CompositeDisposable not CompositeDisposable's'.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment