MutableLiveData не работает при вызове во второй раз - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть функция для получения данных с сервера и сохранения в базе данных, она отлично работает при первом вызове и получает данные, но во второй раз ничего не делает, не обновляя данные,

getWeatherinforFromRemote :

    var mutableLiveData : MutableLiveData<Remote> = MutableLiveData()

    call?.enqueue(object : Callback<Remote> {
        override fun onResponse(call: Call<Remote>, response: Response<Remote>) {
            if (response.isSuccessful) {
                modelDataSource.updateWeatherInfo(response.body())
                mutableLiveData?.value = response.body()
                //have some callback ^
            }
        }

        override fun onFailure(call: Call<Remote>, t: Throwable) {
            mutableLiveData?.postValue(null)
        }
    })

    return mutableLiveData
}

ViewModel:

var mutableLiveData : MutableLiveData<Remote>? = MutableLiveData()

constructor(repo : IRepository) : this() {
    this.repo = repo
    //when first time, in constructor
    mutableLiveData = repo.getWeatherinfoFromRemote("london, uk")
}

fun getData() : MutableLiveData<Remote>?{
    return mutableLiveData
}

//for the second time im calling this function from activity
fun getWeatherReport(){
    mutableLiveData = repo.getWeatherinfoFromRemote("california")
}
...