Как использовать Callback?
У меня есть слушатель внутри адаптера. При зажатии элемента - происходит запрос на сервер. Как мне реализовать обновление данных в адаптере после запроса на сервер? viewholder.bind
fun bind(listItem: Comment) {
itemView.setOnLongClickListener {
if (pref.getToken() == null)
showDialog()
if (pref.getToken() != null) {
mService = Common.retrofitServices
mService.patchCommentById(
listItem.id,
pref.getToken()!!,
createJsonRequestBody("approved_comment" to (!listItem.approved_comment).toString())
)?.enqueue(object : Callback<Comment> {
override fun onResponse(call: Call<Comment>, response: Response<Comment>) {
ivHasApproved.setImageResource(if ((response.body() as Comment).approved_comment) R.drawable.ic_baseline_check_24 else R.drawable.ic_baseline_clear_24)
}
override fun onFailure(call: Call<Comment>, t: Throwable) {
Log.e("retrofit-module", "attempt to approve has been crashed: $t")
}
})
}
return@setOnLongClickListener true
}
}
функция из активити, где заполняю адаптер
private fun getAllCommentsList() {
mService.getCommentsByPostId(post.id).enqueue(object : Callback<MutableList<Comment>> {
override fun onResponse(
call: Call<MutableList<Comment>>,
response: Response<MutableList<Comment>>
) {
adapter = CommentListAdapter(response.body() as MutableList<Comment>)
adapter.setHasStableIds(true)
adapter.notifyDataSetChanged()
activity_post_rv_comments.adapter = adapter
}
override fun onFailure(call: Call<MutableList<Comment>>, t: Throwable) {
Log.e("retrofit-module", "comments bad request: $t")
}
})
}