Наблюдатель LiveData не вызывается после выполнения изменения значения - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть два объекта живых данных, например, так:

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)
    })

Я пытался искать ответы, но ничего не получалось. В чем может быть проблема?

...