Я наткнулся на такой код и у меня возник вопрос по этому поводу. В ViewModel переменная nights объявляется и форматируется следующим образом:
private val nights = database.getAllNights()
val nightsString = Transformations.map(nights) { nights ->
formatNights(nights, application.resources)
}
getAllNights () - это функция в Dao, которая выглядит так:
@Query("SELECT * FROM daily_sleep_quality_table ORDER BY nightId DESC")
fun getAllNights(): LiveData<List<SleepNight>>
getAllNights () не вызывается где-либо еще в коде, но что удивляет меня, наблюдатель LiveData больше нигде, несмотря на это отображаемый текст автоматически обновляется на экране каждый раз, когда я что-то добавляю в базу данных с помощью кнопки:
android:text="@{sleepTrackerViewModel.nightsString}" />
Достаточно ли этого только в Kotlin и SQLite, чтобы возвращать живые данные в Dao, и вам это не нужно наблюдатель? И если вам это нужно, когда?