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 7a10cd643883a0cbef15204220174d484061da8e..a2bd6d3b8cb050ca66be6b5a2d054a24d2638560 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 @@ -85,17 +85,8 @@ class ForumViewModel @Inject constructor( override fun eventOccurred(e: Event) { when { - e is GroupAddedEvent && e.group.clientId == ForumManager.CLIENT_ID -> { - runOnDbThreadWithTransaction(true) { txn -> - val item = ForumItem( - forum = forumManager.getForum(txn, e.group.id), - groupCount = forumManager.getGroupCount(txn, e.group.id), - ) - txn.attach { - addItem(item) - } - } - } + e is GroupAddedEvent && e.group.clientId == ForumManager.CLIENT_ID -> + onGroupAdded(e.group.id) e is GroupRemovedEvent && e.group.clientId == ForumManager.CLIENT_ID -> { removeItem(e.group.id) @@ -108,6 +99,16 @@ class ForumViewModel @Inject constructor( } } + private fun onGroupAdded(id: GroupId) = runOnDbThreadWithTransaction(true) { txn -> + val item = ForumItem( + forum = forumManager.getForum(txn, id), + groupCount = forumManager.getGroupCount(txn, id), + ) + txn.attach { + addItem(item) + } + } + fun createForum(name: String) = runOnDbThread { forumManager.addForum(name) } @@ -135,7 +136,7 @@ class ForumViewModel @Inject constructor( _filterBy.value = filter } - fun addOwnPost(header: ForumPostHeader) { + private fun addOwnPost(header: ForumPostHeader) { selectedGroupItem.value?.id?.let { id -> updateItem(id) { it.updateOnPostReceived(header) } } }