From e49d69be0a0c43934f61986a3f70428fad7347bc Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Mon, 26 Sep 2022 08:44:10 -0300 Subject: [PATCH] Pull ThreadedConversationViewModel into ForumViewModel --- .../briar/desktop/forums/ForumScreen.kt | 2 +- .../briar/desktop/forums/ForumViewModel.kt | 2 ++ .../desktop/forums/GroupConversationScreen.kt | 14 +++++--------- .../forums/ThreadedConversationViewModel.kt | 3 ++- .../briar/desktop/viewmodel/ViewModelModule.kt | 2 +- 5 files changed, 11 insertions(+), 12 deletions(-) diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumScreen.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumScreen.kt index 1175483492..e38203b3af 100644 --- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumScreen.kt +++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumScreen.kt @@ -67,7 +67,7 @@ fun ForumScreen( if (item == null) { NoForumSelected() } else { - GroupConversationScreen(item) + GroupConversationScreen(viewModel.threadViewModel) } } } 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 9b05d6db6c..2fbe3812af 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 @@ -36,6 +36,7 @@ import org.briarproject.briar.desktop.viewmodel.asState import javax.inject.Inject class ForumViewModel @Inject constructor( + val threadViewModel: ThreadedConversationViewModel, private val forumManager: ForumManager, briarExecutors: BriarExecutors, lifecycleManager: LifecycleManager, @@ -95,6 +96,7 @@ class ForumViewModel @Inject constructor( fun selectGroup(groupItem: GroupItem) { _selectedGroupItem.value = groupItem + threadViewModel.setGroupItem(groupItem) } fun isSelected(groupId: GroupId) = _selectedGroupItem.value?.id == groupId diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/GroupConversationScreen.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/GroupConversationScreen.kt index 1eb22c9020..4fdb19682f 100644 --- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/GroupConversationScreen.kt +++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/GroupConversationScreen.kt @@ -41,7 +41,6 @@ import androidx.compose.material.Text import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.MoreVert import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Alignment.Companion.BottomCenter @@ -55,19 +54,16 @@ import org.briarproject.briar.desktop.contact.ContactDropDown.State.MAIN import org.briarproject.briar.desktop.ui.Constants.HEADER_SIZE import org.briarproject.briar.desktop.ui.HorizontalDivider import org.briarproject.briar.desktop.utils.InternationalizationUtils.i18n -import org.briarproject.briar.desktop.viewmodel.viewModel @Composable fun GroupConversationScreen( - groupItem: GroupItem, - viewModel: ThreadedConversationViewModel = viewModel(), + viewModel: ThreadedConversationViewModel, ) { - LaunchedEffect(groupItem) { - viewModel.setGroupItem(groupItem) - } Scaffold( topBar = { - GroupConversationHeader(groupItem) { viewModel.deleteGroup(groupItem) } + GroupConversationHeader(viewModel.groupItem) { + viewModel.deleteGroup(viewModel.groupItem) + } }, content = { padding -> ThreadedConversationScreen( @@ -79,7 +75,7 @@ fun GroupConversationScreen( }, bottomBar = { GroupInputComposable(viewModel.selectedPost.value) { text -> - viewModel.createPost(groupItem, text, viewModel.selectedPost.value?.id) + viewModel.createPost(viewModel.groupItem, text, viewModel.selectedPost.value?.id) } } ) 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 bea6fc19a3..c7acadc5ca 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 @@ -69,7 +69,8 @@ class ThreadedConversationViewModel @Inject constructor( private val LOG = getLogger(ThreadedConversationViewModel::class.java) } - private lateinit var groupItem: GroupItem + lateinit var groupItem: GroupItem + private set private val _posts = mutableStateOf<PostsState>(Loading) val posts = _posts.asState() diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/viewmodel/ViewModelModule.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/viewmodel/ViewModelModule.kt index 45797f9d8f..bcb4353996 100644 --- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/viewmodel/ViewModelModule.kt +++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/viewmodel/ViewModelModule.kt @@ -26,11 +26,11 @@ import org.briarproject.briar.desktop.contact.ContactListViewModel import org.briarproject.briar.desktop.contact.add.remote.AddContactViewModel import org.briarproject.briar.desktop.conversation.ConversationViewModel import org.briarproject.briar.desktop.forums.ForumViewModel -import org.briarproject.briar.desktop.forums.ThreadedConversationViewModel import org.briarproject.briar.desktop.introduction.IntroductionViewModel import org.briarproject.briar.desktop.login.StartupViewModel import org.briarproject.briar.desktop.navigation.SidebarViewModel import org.briarproject.briar.desktop.privategroups.PrivateGroupListViewModel +import org.briarproject.briar.desktop.privategroups.ThreadedConversationViewModel import org.briarproject.briar.desktop.settings.SettingsViewModel import kotlin.reflect.KClass -- GitLab