вообще лучше код показывайте, так не видно и непонятно что у вас
fun getResultBasedOnQuery(query: EditText) {
val disposable = getObservableQuery(query)
.filter { it.isNotEmpty() }
.subscribeOn(Schedulers.io())
.debounce(1, TimeUnit.SECONDS)
.switchMap {
api.getTranslate(
Constants.API_KEY,
it,
"${repository.currentLangIn}-${repository.currentLangOut}",
Constants.FORMAT
)
}
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(getObserver())
disposables.add(disposable)
}
private fun getObservableQuery(query: EditText): Observable<String> {
val publishSubject = PublishSubject.create<String>()
query.addTextChangedListener {
publishSubject.onNext(it.toString())
}
return publishSubject
}
private fun getObserver(): DisposableObserver<Translation> {
return object : DisposableObserver<Translation>() {
override fun onNext(t: Translation) {
viewState.showTranslation(convertArrayToString(t.text))
}
override fun onError(e: Throwable) {
viewState.showTranslation(e.toString())
}
override fun onComplete() {
}
}
}