brandonmcansh
07/28/2020, 2:42 PMZach Klippenstein (he/him) [MOD]
07/28/2020, 2:44 PMList or MutableList?brandonmcansh
07/28/2020, 2:45 PMbrandonmcansh
07/28/2020, 2:45 PMZach Klippenstein (he/him) [MOD]
07/28/2020, 2:47 PMFlow<List<T>> and you want to do something like val currentList = listFlow.collectAsState(null)?brandonmcansh
07/28/2020, 2:47 PMbrandonmcansh
07/28/2020, 2:47 PMbrandonmcansh
07/28/2020, 2:48 PMJohn O'Reilly
07/28/2020, 2:50 PMFlow<T>.collectAsState() extension function (wasn't sure if maybe that's what was being referred to by collectAsState reference above?)Zach Klippenstein (he/him) [MOD]
07/28/2020, 2:50 PMval listFlow: Flow<List<T>> = …
val currentList: List<T>? = listFlow.collectAsState(null)
if (currentList == null) {
LoadingUI()
} else {
LazyColumnItems(currentList)
}Zach Klippenstein (he/him) [MOD]
07/28/2020, 2:51 PMbrandonmcansh
07/28/2020, 2:51 PMbrandonmcansh
07/28/2020, 2:51 PMZach Klippenstein (he/him) [MOD]
07/28/2020, 2:51 PMStateFlow, you don’t need to provide the initial value yourselfbrandonmcansh
07/28/2020, 2:53 PMbrandonmcansh
07/28/2020, 2:53 PMbrandonmcansh
07/28/2020, 3:06 PM@Composable
internal fun BookmarkList(
padding: Modifier,
loadBookmarks: State<List<Bookmark>>
) {
with(loadBookmarks) {
ScrollableColumn(modifier = padding) {
LazyColumnItems(value) { bookmark ->
BookmarkCard(bookmark = bookmark) { editRequest ->
}
}
}
}
}brandonmcansh
07/28/2020, 3:06 PMbrandonmcansh
07/28/2020, 3:06 PM@Composable
private fun AppContent(
navigationViewModel: NavigationViewModel,
bookmarkViewModel: BookmarkViewModel
) {
Surface(color = MaterialTheme.colors.background) {
when (val screen = navigationViewModel.currentScreen) {
Screen.Home -> {
Crossfade(screen) {
HomeScreen(
navigateTo = navigationViewModel::navigateTo,
loadBookmarks = bookmarkViewModel.loadAll()
)
}
}
}
}
}brandonmcansh
07/28/2020, 3:07 PMZach Klippenstein (he/him) [MOD]
07/28/2020, 3:07 PMbrandonmcansh
07/28/2020, 3:08 PMZach Klippenstein (he/him) [MOD]
07/28/2020, 3:09 PMthis a State i think makes this code harder to read. I’ve never seen any compose code do this, and i don’t see any this references in that snippet so are you even using it?Zach Klippenstein (he/him) [MOD]
07/28/2020, 3:09 PMbrandonmcansh
07/28/2020, 3:10 PMvalue passed to LazyColumnItemsbrandonmcansh
07/28/2020, 3:10 PMZach Klippenstein (he/him) [MOD]
07/28/2020, 3:11 PMbrandonmcansh
07/28/2020, 3:11 PMbrandonmcansh
07/28/2020, 3:11 PMbrandonmcansh
07/28/2020, 3:12 PMZach Klippenstein (he/him) [MOD]
07/28/2020, 3:12 PMState val loadAnything is confusing to me. The name “load*” reads like a verb, like it’s a function that performs a “load” action, but a state is more of a noun.brandonmcansh
07/28/2020, 3:12 PMbrandonmcansh
07/28/2020, 3:12 PMZach Klippenstein (he/him) [MOD]
07/28/2020, 3:13 PM