Для создания наблюдаемого потока из List<>
вы можете использовать оператор Observable.fromIterable
:
compositeDisposable.add(Observable.fromIterable(contents)
.flatMap(content -> {
return AppManagers.getContentManager()
.getScoreCardsAndUpdate(content.getId());
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(scoreCards -> {
...
}));
UPD :
Вы можете использовать zip
оператор для объединения контента с результатом getScoreCardsAndUpdate в пользовательском объекте:
class Result {
private String content;
private String result;
public Result(String content, String result) {
this.content = content;
this.result = result;
}
public String getContent() {
return content;
}
public String getResult() {
return result;
}
}
public Observable<String> getScoreCardsAndUpdate(String content) {
return Observable.just("result = " + content);
}
@Test
public void test() {
List<String> contents = Arrays.asList("1", "2", "3", "4");
Observable.fromIterable(contents)
.flatMap(content -> {
return Observable.zip(Observable.just(content),
getScoreCardsAndUpdate(content), Result::new);
})
.subscribe(scoreCards -> {
System.out.println("content = " + scoreCards.getContent() +
", " + scoreCards.getResult());
});
}