mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
fix: unread message count not updating when opening conversations (#2239)
This commit is contained in:
parent
9b041b8819
commit
40807bc69a
1 changed files with 9 additions and 11 deletions
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue