Формулировка проблемы: Всякий раз, когда возникает ошибка запроса, я показываю панель закусок в пользовательском интерфейсе, на которой есть кнопка RETRY. При нажатии на кнопку повтора должен быть сделан такой же запрос. Я пробовал разные вещи, но безуспешно, это один фрагмент кода, который я пробовал только что.
In Presenter
private val _retryClickObserver: PublishSubject<Unit> = PublishSubject.create()
@VisibleForTesting
val retryClickObserver: PublishSubject<Unit> = _retryClickObserver
fun loadData() {
addSubscription(repository.getData()
.doOnSubscribe { view.showProgressBar() }
.doAfterTerminate { view.hideProgressBar() }
.retryWhen { observable ->
observable.zipWith(itemClickObserver.toFlowable(BackpressureStrategy.LATEST),
BiFunction<Throwable, Any, Any> { _: Throwable, Any -> Any
})
}
.subscribe({ handleResult(it) }, { handleError(it) }
)
)
}
In Fragment
override fun showErrorMessage() {
showSnackBar(rootLayout, R.string.try_again) {
presenter.retryClickObserver.onNext(Unit)
}
}
}
Пожалуйста, помогите, заранее спасибо.