diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumItem.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumItem.kt index c68fdc1d7ee09995f9f26a8bc24a61871d9f5083..266c7bc7c88bbbfaff0175f59a3d992802640e85 100644 --- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumItem.kt +++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumItem.kt @@ -55,4 +55,7 @@ data class ForumItem( unread = if (header.isRead) unread else unread + 1, timestamp = max(header.timestamp, this.timestamp) ) + + fun updateOnPostsRead(num: Int) = + copy(unread = unread - num) } diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumViewModel.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumViewModel.kt index 1e5c78569aa7fa45dd0882038972c99a82747f37..629bb298f4bf429f8a27059a98bff3d7b709fa47 100644 --- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumViewModel.kt +++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumViewModel.kt @@ -105,6 +105,10 @@ class ForumViewModel @Inject constructor( e is ForumPostReceivedEvent -> { updateItem(e.groupId) { it.updateOnPostReceived(e.header) } } + + e is ForumPostReadEvent -> { + updateItem(e.groupId) { it.updateOnPostsRead(e.numMarkedRead) } + } } }