Skip to content

Instantly share code, notes, and snippets.

@rohmanhakim
Created January 8, 2017 14:26
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 rohmanhakim/41691012fff2cad34753a4f0270ad1bf to your computer and use it in GitHub Desktop.
Save rohmanhakim/41691012fff2cad34753a4f0270ad1bf to your computer and use it in GitHub Desktop.
Observable<Boolean> emailStream = RxTextView.textChanges(etEmail)
.map(new Func1<CharSequence, String>() {
@Override
public String call(CharSequence charSequence) {
return charSequence.toString();
}
})
.filter(new Func1<String, Boolean>() {
@Override
public Boolean call(String input) {
return input.length() > 3;
}
})
.debounce(100,TimeUnit.MILLISECONDS)
.flatMap(new Func1<String, Observable<Boolean>>() {
@Override
public Observable<Boolean> call(String input) {
return service.getEmails()
.flatMap(new Func1<List<String>, Observable<String>>() { // Mengubah stream of List<String> menjadi stream of String
@Override
public Observable<String> call(List<String> strings) {
return Observable.from(strings);
}
}).contains(input) // Cek apakah email di emit oleh stream sebelumnya
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment