From 6c39de497613cf503b2f12c4cd6b90635506d5df Mon Sep 17 00:00:00 2001 From: Kgothatso Ngako Date: Wed, 6 May 2026 02:59:07 +0200 Subject: [PATCH] Rename messages to direct messages --- .../compose/ui/composable/HomeScreen.kt | 17 ++++----- ...Model.kt => DirectMessageListViewModel.kt} | 38 +++++++------------ .../ui/view/state/DirectMessageListUIState.kt | 13 +++++++ .../ui/view/state/MessageListUIState.kt | 13 ------- 4 files changed, 34 insertions(+), 47 deletions(-) rename composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/{MessageListViewModel.kt => DirectMessageListViewModel.kt} (87%) create mode 100755 composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/state/DirectMessageListUIState.kt delete mode 100755 composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/state/MessageListUIState.kt diff --git a/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/composable/HomeScreen.kt b/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/composable/HomeScreen.kt index 5a03d26c..085b7c00 100644 --- a/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/composable/HomeScreen.kt +++ b/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/composable/HomeScreen.kt @@ -12,10 +12,10 @@ import ac.cord.auxiliary.compose.ui.theme.AuxTheme import ac.cord.auxiliary.compose.ui.view.model.FeedListViewModel import ac.cord.auxiliary.compose.ui.view.model.HomeScreenType import ac.cord.auxiliary.compose.ui.view.model.HomeViewModel -import ac.cord.auxiliary.compose.ui.view.model.MessageListViewModel +import ac.cord.auxiliary.compose.ui.view.model.DirectMessageListViewModel import ac.cord.auxiliary.compose.ui.view.state.FeedListUIState import ac.cord.auxiliary.compose.ui.view.state.HomeScreenUIState -import ac.cord.auxiliary.compose.ui.view.state.MessageListUIState +import ac.cord.auxiliary.compose.ui.view.state.DirectMessageListUIState import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer @@ -25,7 +25,6 @@ import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Create -import androidx.compose.material.icons.filled.Person import androidx.compose.material.icons.filled.Search import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi @@ -211,10 +210,10 @@ fun HomeScreen( } } HomeScreenType.Messages -> { - val messageListViewModel: MessageListViewModel = viewModel( + val directMessageListViewModel: DirectMessageListViewModel = viewModel( key = homeScreenTypeType.name, - factory = MessageListViewModel.factory( - initialMessageListUIState = MessageListUIState.Loading, + factory = DirectMessageListViewModel.factory( + initialDirectMessageListUIState = DirectMessageListUIState.Loading, publicKey = homeScreenUIState.profileWithFollowing.profile.publicKey, synchronizationFilter = homeScreenViewModel.getSynchronizationFilter( homeScreenTypeType, @@ -224,14 +223,14 @@ fun HomeScreen( ), ) - key(messageListViewModel.messageListUIState) { - messageListViewModel.RenderFeed( + key(directMessageListViewModel.directMessageListUIState) { + directMessageListViewModel.RenderFeed( onNavigateToEvent = onNavigateToEvent ) } key(true) { - messageListViewModel.initiate() + directMessageListViewModel.initiate() } } } diff --git a/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/MessageListViewModel.kt b/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/DirectMessageListViewModel.kt similarity index 87% rename from composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/MessageListViewModel.kt rename to composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/DirectMessageListViewModel.kt index e621f98f..4232120f 100755 --- a/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/MessageListViewModel.kt +++ b/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/DirectMessageListViewModel.kt @@ -1,30 +1,20 @@ package ac.cord.auxiliary.compose.ui.view.model import ac.cord.auxiliary.compose.database.model.NegentropySynchronizeRequest -import ac.cord.auxiliary.compose.database.model.NostrEvent -import ac.cord.auxiliary.compose.database.model.Profile -import ac.cord.auxiliary.compose.database.model.intermdiate.LocalProfileWithFollowing import ac.cord.auxiliary.compose.database.model.types.SynchronizationFilter import ac.cord.auxiliary.compose.nostr.Relays import ac.cord.auxiliary.compose.repository.NostrRepository -import ac.cord.auxiliary.compose.ui.composable.HomeScreen import ac.cord.auxiliary.compose.ui.composable.navigation.routes.Route -import ac.cord.auxiliary.compose.ui.theme.AuxTheme -import ac.cord.auxiliary.compose.ui.view.state.FollowingListUIState -import ac.cord.auxiliary.compose.ui.view.state.HomeScreenUIState -import ac.cord.auxiliary.compose.ui.view.state.MessageListUIState +import ac.cord.auxiliary.compose.ui.view.state.DirectMessageListUIState import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items import androidx.compose.material3.Card import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.LoadingIndicator -import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState @@ -34,7 +24,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider @@ -42,20 +31,19 @@ import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory import co.touchlab.kermit.Logger -import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.IO import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.launch -class MessageListViewModel( - initialMessageListUIState: MessageListUIState, +class DirectMessageListViewModel( + initialDirectMessageListUIState: DirectMessageListUIState, val publicKey: String, val synchronizationFilter: SynchronizationFilter, val nostrRepository: NostrRepository ): ViewModel() { val logger = Logger.withTag(TAG) - var messageListUIState: MessageListUIState by mutableStateOf(initialMessageListUIState) + var directMessageListUIState: DirectMessageListUIState by mutableStateOf(initialDirectMessageListUIState) private set val isSynchronizationPending: MutableState = mutableStateOf(false) @@ -72,8 +60,8 @@ class MessageListViewModel( nostrRepository.observeProfileWithFollowing( publicKey ).collect { - messageListUIState = MessageListUIState.Loaded( - messageList = emptyList() + directMessageListUIState = DirectMessageListUIState.Loaded( + directMessageList = emptyList() ) } } @@ -120,8 +108,8 @@ class MessageListViewModel( modifier = Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally ) { - when (val feedListUIState = messageListUIState) { - MessageListUIState.Error -> { + when (val feedListUIState = directMessageListUIState) { + DirectMessageListUIState.Error -> { Column( modifier = Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally @@ -134,7 +122,7 @@ class MessageListViewModel( ) } } - is MessageListUIState.Loaded -> { + is DirectMessageListUIState.Loaded -> { Column( modifier = Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally, @@ -258,7 +246,7 @@ class MessageListViewModel( // } } - MessageListUIState.Loading -> { + DirectMessageListUIState.Loading -> { Column( modifier = Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally @@ -285,14 +273,14 @@ class MessageListViewModel( const val TAG = "MessageListViewModel" fun factory( - initialMessageListUIState: MessageListUIState = MessageListUIState.Loading, + initialDirectMessageListUIState: DirectMessageListUIState = DirectMessageListUIState.Loading, publicKey: String, synchronizationFilter: SynchronizationFilter, nostrRepository: NostrRepository, ): ViewModelProvider.Factory = viewModelFactory { initializer { - MessageListViewModel( - initialMessageListUIState = initialMessageListUIState, + DirectMessageListViewModel( + initialDirectMessageListUIState = initialDirectMessageListUIState, publicKey = publicKey, synchronizationFilter = synchronizationFilter, nostrRepository = nostrRepository diff --git a/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/state/DirectMessageListUIState.kt b/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/state/DirectMessageListUIState.kt new file mode 100755 index 00000000..bcfbd035 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/state/DirectMessageListUIState.kt @@ -0,0 +1,13 @@ +package ac.cord.auxiliary.compose.ui.view.state + +import ac.cord.auxiliary.compose.database.model.Profile + +sealed interface DirectMessageListUIState { + data class Loaded( + val directMessageList: List + ): DirectMessageListUIState + + data object Error: DirectMessageListUIState + data object Loading: DirectMessageListUIState +} + diff --git a/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/state/MessageListUIState.kt b/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/state/MessageListUIState.kt deleted file mode 100755 index 48812f48..00000000 --- a/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/state/MessageListUIState.kt +++ /dev/null @@ -1,13 +0,0 @@ -package ac.cord.auxiliary.compose.ui.view.state - -import ac.cord.auxiliary.compose.database.model.Profile - -sealed interface MessageListUIState { - data class Loaded( - val messageList: List - ): MessageListUIState - - data object Error: MessageListUIState - data object Loading: MessageListUIState -} -