mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-02-07 06:12:56 -05:00
fix: unread message count not updating when opening conversations (#2239)
This commit is contained in:
@@ -225,17 +225,15 @@ private fun UpdateUnreadCount(
|
||||
messages: List<Message>,
|
||||
onUnreadChanged: (Long) -> Unit,
|
||||
) {
|
||||
val unreadIndex by remember { derivedStateOf { messages.indexOfLast { !it.read } } }
|
||||
val firstVisibleItemIndex by remember { derivedStateOf { listState.firstVisibleItemIndex } }
|
||||
|
||||
if (unreadIndex != -1 && firstVisibleItemIndex != -1 && firstVisibleItemIndex <= unreadIndex) {
|
||||
LaunchedEffect(firstVisibleItemIndex, unreadIndex) {
|
||||
snapshotFlow { listState.firstVisibleItemIndex }
|
||||
.debounce(timeoutMillis = 500L)
|
||||
.collectLatest { index ->
|
||||
val lastVisibleItem = messages[index]
|
||||
onUnreadChanged(lastVisibleItem.receivedTime)
|
||||
LaunchedEffect(messages) {
|
||||
snapshotFlow { listState.firstVisibleItemIndex }
|
||||
.debounce(timeoutMillis = 500L)
|
||||
.collectLatest { index ->
|
||||
val lastUnreadIndex = messages.indexOfLast { !it.read }
|
||||
if (lastUnreadIndex != -1 && index <= lastUnreadIndex && index < messages.size) {
|
||||
val visibleMessage = messages[index]
|
||||
onUnreadChanged(visibleMessage.receivedTime)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user