Android Volley RxJava - Multiple Requests

I have something like that:

public void function sendPhotosAndSave (ArrayList<Photo> photos) {

     // Iterate through all photos
     // Send a POST request using volley for each photo
     // Alert when all photos sended

     // ????
     .subscribe(new Subscriber<Boolean>() {
            @Override
            public void onCompleted() {
                // Save
            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onNext(Boolean aBoolean) {

            }
        });

}

I need to send all photos (Multipart/POST) and then send a save request.

How do i iterate the photos requests using RxJava and known when it's done?

Upvotes: 1

Views: 1065

Answers (1)

AndroidEx
AndroidEx

Reputation: 15824

You can do something like this:

    public void sendPhotosAndSave(List<Photo> photos) {
        Observable.from(photos)
                .flatMap(photo -> sendRequest(photo).subscribeOn(Schedulers.io()))
                .subscribe(new Subscriber<Boolean>() {
                    @Override
                    public void onCompleted() {
                        // Save
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onNext(Boolean aBoolean) {

                    }
                });
    }

    private Observable<Boolean> sendRequest(Photo photo) {
        return Observable.just(/*your request logic*/);
    }

Upvotes: 1

Related Questions