I am using RxJava with retrofit to get data from an API then filtering the data with a for
loop in the onNext
Method. Is there any way not to use the for
loop and just use RxJava to filter or improve the code?
_subscriptions.add(
jamSpeakServiceApi.getAllWords()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<WordApi>>() {
@Override
public void onCompleted() {
Log.d("retroffit Completed", "Completed");
}
@Override
public void onError(Throwable e) {
Log.d("retroffit error", e.toString());
}
@Override
public void onNext(List<WordApi> wordApis) {
/*Observable.from(wordApis)
.filter(s -> Word.getWordFormDatabase(s.getWord()) != null)
.filter(s -> s.getCountry().toLowerCase().equals("jamaica"))
.filter(s -> Word.getWordLikeFormDatabase(s.getWord()) != null)
.subscribe();*/
for (WordApi x: wordApis){
if(x.getCountry().toLowerCase().equals("jamaica")== true){
Word.saveWordFromApi(x);
Log.d(x.getWord(),x.getWord());
}
}
}
})
);