Уберите переменную LiveData в вашем ViewModel
и наблюдайте за ней в своем представлении (активность, фрагмент), а когда ваш couroutine
завершит публикацию возвращаемого значения запроса вставки в переменную LiveData
, которая затем может сообщить ваше мнение.
Таким образом, вы не ждете завершения запроса вставки, а просто запускаете запрос и наблюдаете LiveData
, который информирует вас о результате.
В вашей ViewModel
// Declare LiveData variable
val rowsInserted: MutableLiveData<Int> = MutableLiveData()
//Update your coroutine
fun insert(collectionItem: CollectionItem) = viewModelScope.launch {
val result = repository.insertCollectionItem(collectionItem)
rowsInserted.postValue(result)
}
И наблюдайте LiveData в вашей активности, чтобы получить результат вставки
viewModel.rowsInserted.observe(this, Observer {
Log.d(TAG, "$it rows inserted");
}
)