こんにちは私は、subscribeWith
で改造エラー処理のためにContextWrapper
を改造しました。私はhttps://blog.mindorks.com/rxjava2-and-retrofit2-error-handling-on-a-single-place-8daf720d42d6のような何かをしたいsubscribeWithでContextWrapperクラスを使用する方法
ApiHelperImpl().doServerLoginApiCall(email, password)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(CallbackWrapper<LoginResponse> {
})
以下のようにこれを使用しようとしています
abstract class CallbackWrapper<T : BaseResponse> : DisposableObserver<T>() {
protected abstract fun onSuccess(t: T)
override fun onNext(t: T) {
//You can return StatusCodes of different cases from your API and handle it here. I usually include these cases on BaseResponse and inherit it from every Response
onSuccess(t)
}
override fun onError(e: Throwable) {
when (e) {
is HttpException -> {
val responseBody = (e as HttpException).response().errorBody()
responseBody?.let {
// view?.onUnknownError(getErrorMessage(it))
}
}
is SocketTimeoutException -> {
// view?.onTimeout()
}
is IOException -> {
// view?.onNetworkError()
}
else -> {
e.message?.let {
// view?.onUnknownError(it)
}
}
}
}
override fun onComplete() {
}
private fun getErrorMessage(responseBody: ResponseBody): String {
val jsonObject = JSONObject(responseBody.string())
return jsonObject.getString(("message"))
}
}
はそれを行う方法を誰もが知っていますか?あなたのようにそれを呼び出す必要がありkotlin
にあなたはCallbackWrapper<LoginResponse>
後()
を置くことや抽象クラスをインスタンス化する必要が
あなたは '' subscribeWith(新しいCallbackWrapper(ビュー)にしてみてくださいました? –
mutantkeyboard
@mutantkeyboardもしあなたが私の 'CallbackWrapper'を見ると私はビューを持っていません –