Итак, у меня есть эта функция в репозитории.
fun getFeaturedLive() : MutableLiveData<Resource<Prod>> {
val res = MutableLiveData<Resource<Prod>>()
res.value = Resource.loading(null) //status = loading, data = null, message - null
client.request({
it.getOnlineProduct(param1, param2, param3)
},{//executes on success return from server
res.value!!.status = Status.SUCCESS
res.value!!.data = it
},{//executes on error return from server
res.value!!.status = Status.ERROR
res.value!!.message = it.message
true //error handled
})
return res
}
Res возвращается, и после этого, когда приходит ответ от сервера, запускается функция успеха, которая изменяет данные и статус
Теперь в моем методе onViewCreated я получил что-то вроде этого
viewmodel.prodLive.observe(this, Observer {
if (it.status == Status.ERROR) errAlert(it.message)
if( it.status == Status.SUCCESS) initList(prodList, it.data)
if (it.status == Status.LOADING) log("loading ...")
})
Сервер возвращает этот продукт, вызывается функция onsuccess и модифицируются liveata, но наблюдатель не видит его.Как мне изменить код так, чтобы наблюдатель реагировал на изменение данных?Я новичок в LiveData, поэтому, если у вас есть какие-либо другие предложения, я рад их услышать
Это в моей модели просмотра
var prodLive = MutableLiveData<Resource<Prod>>()
private set
fun init(){
prodLive = Rep.getFeaturedLive()
}