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 bc8ff410fe512a70e0fa602d2cd1b4c9cb9dcab7..3670303703bdce944844fb50e7fd122e5d9d685f 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 @@ -30,6 +30,7 @@ import org.briarproject.bramble.api.sync.GroupId import org.briarproject.bramble.api.sync.event.GroupAddedEvent import org.briarproject.bramble.api.sync.event.GroupRemovedEvent import org.briarproject.briar.api.forum.ForumManager +import org.briarproject.briar.api.forum.ForumPostHeader import org.briarproject.briar.api.forum.event.ForumPostReceivedEvent import org.briarproject.briar.desktop.threading.BriarExecutors import org.briarproject.briar.desktop.utils.clearAndAddAll @@ -79,6 +80,7 @@ class ForumViewModel @Inject constructor( override fun onInit() { super.onInit() + threadViewModel.forumViewModel = this loadGroups() } @@ -102,7 +104,6 @@ class ForumViewModel @Inject constructor( } e is ForumPostReceivedEvent -> { - // todo: better use equivalent to ConversationMessageTrackedEvent to update on new *own* posts as well updateItem(e.groupId) { it.updateOnPostReceived(e.header) } } } @@ -135,6 +136,10 @@ class ForumViewModel @Inject constructor( _filterBy.value = filter } + fun addOwnPost(header: ForumPostHeader) { + selectedGroupItem.value?.id?.let { id -> updateItem(id) { it.updateOnPostReceived(header) } } + } + private fun addItem(forumItem: ForumItem) = _fullForumList.add(forumItem) private fun updateItem(forumId: GroupId, update: (ForumItem) -> ForumItem) { diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ThreadedConversationViewModel.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ThreadedConversationViewModel.kt index ab917e57eb375e8456a2a71135a9453622813d8b..78ad948c82a4ff67175adf1cc637ec523a4f7073 100644 --- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ThreadedConversationViewModel.kt +++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ThreadedConversationViewModel.kt @@ -61,6 +61,8 @@ class ThreadedConversationViewModel @Inject constructor( private val LOG = getLogger(ThreadedConversationViewModel::class.java) } + lateinit var forumViewModel: ForumViewModel + lateinit var groupItem: GroupItem private set @@ -122,6 +124,7 @@ class ThreadedConversationViewModel @Inject constructor( runOnDbThreadWithTransaction(false) { txn -> val header = forumManager.addLocalPost(txn, post) txn.attach { + forumViewModel.addOwnPost(header) val item = ForumPostItem(header, text) addItem(item, item.id) // unselect post that we just replied to