Я не очень знаком с SQLBrite, но createQuery
должен постоянно уведомлять об изменениях в базе данных.Если вы хотите получить значение только один раз, вы можете использовать оператор take()
.
fun BriteDatabase.selectDayTimelineRecord(dayTimestamp: Long) =
createQuery(table_timeline, selectWDayRecords(dayTimestamp))
.mapToOneOrDefault(StatItem(dayTimestamp, 0)) { cursor -> cursor.mapTimelineStat() }
.take(1)
Тогда ваша реализация concatMap
будет работать.