Bir geri dönüştürücü görünümünü dizeyle filtreleyecek ve ayrıca yerel Realm db'yi denetleyecek ve sonradan bir düzeltme isteğinde bulunacak bir Rx Arama görünümü uygulamak istiyorum. tüm sonuçları çoğaltmadan birleştirir ?? Yani, başka bir deyişle: Bir arama görünümünde metin değiştirme olayı üzerinde, bir ağ isteği, bir db sorgusu yapmak için giriş dizesini kullanmak ve yinelenen sonuçlar olmadan birleştirmek istiyorumBir sorgulayıcı ile bir geri dönüştürücü görünümünü filtreleyecek bir Rx Arama görünümü nasıl oluşturulur
Bu benim ilk kodum:
RxSearchView.queryTextChanges(searchView)
.filter(charSequence -> !TextUtils.isEmpty(charSequence))
.throttleLast(100, TimeUnit.MILLISECONDS)
.debounce(200, TimeUnit.MILLISECONDS)
.onBackpressureLatest()
.flatMap(charSequence -> userListPresenter.search(charSequence))
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.onErrorResumeNext(Observable.empty())
.subscribe((Action1) response -> userListPresenter.showSearchResult((List<UserModel>) response));
userListPresenter.search (charSequence)) yinelenmemiş birleştirilmiş tepkisinin gözlemlenebilir dönmelidir sayesinde :)
userListPresenter.search (charSequence)):
Observable.create(subscriber -> {
if (Utils.isNetworkAvailable(getContext())) {
if (!subscriber.isUnsubscribed()) {
subscriber.onNext(restApi.search(query));
subscriber.onCompleted();
}
}).mergeWith(
Observable.create(subscriber -> {
if (!subscriber.isUnsubscribed()) {
subscriber.onNext(realmManager.getWhere(query));
subscriber.onCompleted();
}
})).collect(HashSet::new, HashSet::add)
.flatMap(Observable::from);