Skip to content
Snippets Groups Projects
Verified Commit e49d69be authored by Torsten Grote's avatar Torsten Grote
Browse files

Pull ThreadedConversationViewModel into ForumViewModel

parent e70d196d
No related branches found
No related tags found
1 merge request!240Forum List and Adding Forums
...@@ -67,7 +67,7 @@ fun ForumScreen( ...@@ -67,7 +67,7 @@ fun ForumScreen(
if (item == null) { if (item == null) {
NoForumSelected() NoForumSelected()
} else { } else {
GroupConversationScreen(item) GroupConversationScreen(viewModel.threadViewModel)
} }
} }
} }
......
...@@ -36,6 +36,7 @@ import org.briarproject.briar.desktop.viewmodel.asState ...@@ -36,6 +36,7 @@ import org.briarproject.briar.desktop.viewmodel.asState
import javax.inject.Inject import javax.inject.Inject
class ForumViewModel @Inject constructor( class ForumViewModel @Inject constructor(
val threadViewModel: ThreadedConversationViewModel,
private val forumManager: ForumManager, private val forumManager: ForumManager,
briarExecutors: BriarExecutors, briarExecutors: BriarExecutors,
lifecycleManager: LifecycleManager, lifecycleManager: LifecycleManager,
...@@ -95,6 +96,7 @@ class ForumViewModel @Inject constructor( ...@@ -95,6 +96,7 @@ class ForumViewModel @Inject constructor(
fun selectGroup(groupItem: GroupItem) { fun selectGroup(groupItem: GroupItem) {
_selectedGroupItem.value = groupItem _selectedGroupItem.value = groupItem
threadViewModel.setGroupItem(groupItem)
} }
fun isSelected(groupId: GroupId) = _selectedGroupItem.value?.id == groupId fun isSelected(groupId: GroupId) = _selectedGroupItem.value?.id == groupId
......
...@@ -41,7 +41,6 @@ import androidx.compose.material.Text ...@@ -41,7 +41,6 @@ import androidx.compose.material.Text
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.MoreVert import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment.Companion.BottomCenter import androidx.compose.ui.Alignment.Companion.BottomCenter
...@@ -55,19 +54,16 @@ import org.briarproject.briar.desktop.contact.ContactDropDown.State.MAIN ...@@ -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.Constants.HEADER_SIZE
import org.briarproject.briar.desktop.ui.HorizontalDivider import org.briarproject.briar.desktop.ui.HorizontalDivider
import org.briarproject.briar.desktop.utils.InternationalizationUtils.i18n import org.briarproject.briar.desktop.utils.InternationalizationUtils.i18n
import org.briarproject.briar.desktop.viewmodel.viewModel
@Composable @Composable
fun GroupConversationScreen( fun GroupConversationScreen(
groupItem: GroupItem, viewModel: ThreadedConversationViewModel,
viewModel: ThreadedConversationViewModel = viewModel(),
) { ) {
LaunchedEffect(groupItem) {
viewModel.setGroupItem(groupItem)
}
Scaffold( Scaffold(
topBar = { topBar = {
GroupConversationHeader(groupItem) { viewModel.deleteGroup(groupItem) } GroupConversationHeader(viewModel.groupItem) {
viewModel.deleteGroup(viewModel.groupItem)
}
}, },
content = { padding -> content = { padding ->
ThreadedConversationScreen( ThreadedConversationScreen(
...@@ -79,7 +75,7 @@ fun GroupConversationScreen( ...@@ -79,7 +75,7 @@ fun GroupConversationScreen(
}, },
bottomBar = { bottomBar = {
GroupInputComposable(viewModel.selectedPost.value) { text -> GroupInputComposable(viewModel.selectedPost.value) { text ->
viewModel.createPost(groupItem, text, viewModel.selectedPost.value?.id) viewModel.createPost(viewModel.groupItem, text, viewModel.selectedPost.value?.id)
} }
} }
) )
......
...@@ -69,7 +69,8 @@ class ThreadedConversationViewModel @Inject constructor( ...@@ -69,7 +69,8 @@ class ThreadedConversationViewModel @Inject constructor(
private val LOG = getLogger(ThreadedConversationViewModel::class.java) private val LOG = getLogger(ThreadedConversationViewModel::class.java)
} }
private lateinit var groupItem: GroupItem lateinit var groupItem: GroupItem
private set
private val _posts = mutableStateOf<PostsState>(Loading) private val _posts = mutableStateOf<PostsState>(Loading)
val posts = _posts.asState() val posts = _posts.asState()
......
...@@ -26,11 +26,11 @@ import org.briarproject.briar.desktop.contact.ContactListViewModel ...@@ -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.contact.add.remote.AddContactViewModel
import org.briarproject.briar.desktop.conversation.ConversationViewModel import org.briarproject.briar.desktop.conversation.ConversationViewModel
import org.briarproject.briar.desktop.forums.ForumViewModel 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.introduction.IntroductionViewModel
import org.briarproject.briar.desktop.login.StartupViewModel import org.briarproject.briar.desktop.login.StartupViewModel
import org.briarproject.briar.desktop.navigation.SidebarViewModel import org.briarproject.briar.desktop.navigation.SidebarViewModel
import org.briarproject.briar.desktop.privategroups.PrivateGroupListViewModel import org.briarproject.briar.desktop.privategroups.PrivateGroupListViewModel
import org.briarproject.briar.desktop.privategroups.ThreadedConversationViewModel
import org.briarproject.briar.desktop.settings.SettingsViewModel import org.briarproject.briar.desktop.settings.SettingsViewModel
import kotlin.reflect.KClass import kotlin.reflect.KClass
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment