kopia lustrzana https://github.com/meshtastic/Meshtastic-Android
fix: unread message count not updating when opening conversations (#2239)
rodzic
9b041b8819
commit
40807bc69a
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue