Таким образом, моя цель, как и в названии, состоит в том, чтобы передать API
результат ответа, бросающий метод onSuccess.run()
во фрагмент. Просто чтобы дать некоторый контекст, я начинаю делать такой метод в классе Manager, например:
override fun callUser(onSuccess:Runnable, onFailure:Runnable){
NetworkManager.instance.performCall(NetworkManager.REGISTRATION.verifyUser(id),
object : NetworkManager.OnRequestCallback<UserInfoResponse> {
override fun onSuccess(body: UserInfoResponse?) {
body?.data?.let {
onSuccess.run()
}
}
override fun onError(errorBody: String?) {
onFailure.run()
}
})
}
Затем я иду к фрагменту и вызываю метод выше, как это:
objectManager.callVerifyAdvisor(
Runnable {[On Success stuff },
Runnable {[On Error]}
}
Проблема в том, что, хотя я могу решить во фрагменте действия, которые я хочу выполнить в методах onSuccess()
и onFailure()
, я не могу получить API Results
для этого фрагмента, выполнив таким образом.
Так что моя идея - сделать что-то вроде [ Я использовал комментарии, чтобы указать важные разделы ]:
NetworkManager.instance.performCall(NetworkManager.REGISTRATION.verifyUser(id),
object : NetworkManager.OnRequestCallback<UserInfoResponse> {
override fun onSuccess(body: UserInfoResponse?) {
body?.data?.let {
it.userName // I get this from api response
onSuccess.run()
}
}
override fun onError(errorBody: String?) {
onFailure.run()
}
})
}
Тогда на моем фрагменте Я хочу что-то вроде этого:
objectManager.callVerifyAdvisor(
Runnable {[On Success stuff }, //receive here the it.userName
Runnable {[On Error]}
}
Может кто-нибудь дать какую-нибудь идею, как это сделать? Дополнительное примечание -> Я поместил kotlin на тег, потому что в нем есть что-то функциональное.