У меня есть два объекта живых данных, например, так:
private val _hours: MutableLiveData<MutableList<Hour>>
get() =
MutableLiveData<MutableList<Hour>>().apply {
value = HourRepo.getHours(getApplication())
}
private val _selectedHours: MutableLiveData<MutableList<Hour>>
get() =
MutableLiveData<MutableList<Hour>>().apply {
value = AppData.selectedHours
}
Я изменяю некоторые свойства этих значений LiveData следующим образом:
fun checkHour(hour: Hour) {
_hours.value?.find { it -> hour == it }?.isChecked =
!_hours.value?.find { it -> hour == it }?.isChecked!!
if (hour.isChecked) {
_selectedHours.value?.add(hour)
} else {
_selectedHours.value?.remove(hour)
}
_selectedHours.notifyObserver()
_hours.notifyObserver()
}
И я пытаюсь вызвать наблюдателя после этих изменяется с помощью этой функции расширения:
private fun <T> MutableLiveData<T>.notifyObserver() {
this.value = this.value
}
Однако наблюдатель не вызывается. Это код наблюдателя:
studentViewModel = (activity as Homepage).getViewModel()
studentViewModel.getHours(currentDay).observe(viewLifecycleOwner, Observer {
hourAdapter.submitList(it)
})
Я пытался искать ответы, но ничего не получалось. В чем может быть проблема?