From 1af6c8ee2c24165e8bd5a6557fdd8de9767f1031 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Mon, 17 Jul 2023 10:43:05 -0300 Subject: [PATCH] Use new transactional methods in FeedViewModel --- .../briar/desktop/blog/FeedViewModel.kt | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/FeedViewModel.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/FeedViewModel.kt index c66f2b2f63..ff663fc29f 100644 --- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/FeedViewModel.kt +++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/FeedViewModel.kt @@ -129,8 +129,8 @@ class FeedViewModel @Inject constructor( @UiExecutor fun createBlogPost(text: String) { val parentPost = selectedPost.value - runOnDbThread { - val author = identityManager.localAuthor + runOnDbThreadWithTransaction(false) { txn -> + val author = identityManager.getLocalAuthor(txn) val blog = blogManager.getPersonalBlog(author) if (parentPost == null) { val p = blogPostFactory.createBlogPost( @@ -140,10 +140,10 @@ class FeedViewModel @Inject constructor( author, text, ) - blogManager.addLocalPost(p) + blogManager.addLocalPost(txn, p) } else { val comment = text.takeIf { it.isNotBlank() } - blogManager.addLocalComment(author, blog.id, comment, parentPost.header) + blogManager.addLocalComment(txn, author, blog.id, comment, parentPost.header) } } _selectedPost.value = null @@ -151,9 +151,9 @@ class FeedViewModel @Inject constructor( @UiExecutor fun markPostsRead(postIds: List<MessageId>) { - runOnDbThread { + runOnDbThreadWithTransaction(false) { txn -> postIds.forEach { id -> - blogManager.setReadFlag(id, true) + blogManager.setReadFlag(txn, id, true) } } } @@ -189,12 +189,13 @@ class FeedViewModel @Inject constructor( item.id } if (readIds.isNotEmpty()) { - runOnDbThread { + runOnDbThreadWithTransaction(false) { txn -> readIds.forEach { id -> - blogManager.setReadFlag(id, false) + blogManager.setReadFlag(txn, id, false) + } + txn.attach { + eventBus.broadcast(BlogPostsReadEvent(readIds.size)) } - // TODO introduce Transaction for BlogManager#setReadFlag() and attach event there - eventBus.broadcast(BlogPostsReadEvent(readIds.size)) } _posts.replaceIf({ it.id in readIds }) { when (it) { -- GitLab