ursus
03/10/2020, 3:22 AMAdam Powell
03/10/2020, 3:28 AMursus
03/10/2020, 3:38 AMursus
03/10/2020, 3:52 AMursus
03/10/2020, 4:09 AMAdam Powell
03/10/2020, 1:43 PMAdam Powell
03/10/2020, 1:44 PMcodeslubber
03/12/2020, 2:40 AMcodeslubber
03/12/2020, 2:40 AMursus
03/14/2020, 12:31 AMcodeslubber
03/14/2020, 12:53 AMursus
03/15/2020, 2:24 PMcodeslubber
03/15/2020, 4:02 PMursus
03/15/2020, 4:21 PMAdam Powell
03/15/2020, 4:34 PMursus
03/15/2020, 4:45 PMursus
03/15/2020, 4:47 PMursus
03/15/2020, 4:53 PMViewModel {
var state: State
init {
db.foosObservable()
.map { foos -> foos.map { Item(it.title, expandedOrCollapsed = false) }}
.subscribe {
sync(state.items, it)
}
}
private fun sync(currentItems: List<Item>, newItems: List<Item>) {
// update the titles, but preserve the expandedOrCollapsed of current items
}
data class State(val items: List<Item>)
data class Item(val title: String, val expandedOrCollapsed: Boolean)
}
ursus
03/15/2020, 4:55 PMsync
happen on main or offthread?codeslubber
03/15/2020, 5:34 PMAdam Powell
03/15/2020, 5:37 PM@Model
and MutableState<T>
) help with the latter but you're still responsible for the former.Adam Powell
03/15/2020, 5:38 PMursus
03/15/2020, 5:40 PMAdam Powell
03/15/2020, 5:40 PMAdam Powell
03/15/2020, 5:41 PM