conversationEntriesPaged
abstract fun conversationEntriesPaged(pageSize: Int = DEFAULT_PAGE_SIZE): Flow<Result<PagingData<ConversationEntry>>>
Returns a paginated stream of ConversationEntry objects for this conversation.
Uses Jetpack Paging 3 for efficient loading of large conversation histories. Entries are loaded incrementally as the user scrolls.
Return
A Flow of Result containing PagingData of conversation entries.
Parameters
pageSize
The number of entries per page. Defaults to DEFAULT_PAGE_SIZE.
Samples
val lazyPagingItems = remember {
conversationClient.conversationEntriesPaged()
.filterIsInstance<Result.Success<PagingData<ConversationEntry>>>()
.map { it.data }
}.collectAsLazyPagingItems()
LazyColumn {
if (lazyPagingItems.loadState.refresh == LoadState.Loading) {
item {
Text(
text = "Loading messages...",
modifier = Modifier.fillMaxWidth()
.wrapContentWidth(Alignment.CenterHorizontally)
)
}
}
items(count = lazyPagingItems.itemCount) { index ->
val entry = lazyPagingItems[index]
Text("Entry: $entry", fontSize = 16.sp)
}
if (lazyPagingItems.loadState.append == LoadState.Loading) {
item {
CircularProgressIndicator(
modifier = Modifier.fillMaxWidth()
.wrapContentWidth(Alignment.CenterHorizontally)
)
}
}
}Content copied to clipboard