Private
Public Access
1
0

Fix list updates (it was isEqual)

This commit is contained in:
2023-08-17 01:44:19 -07:00
parent 770bb496f5
commit 84e3a27c62
4 changed files with 8 additions and 8 deletions

View File

@@ -30,7 +30,7 @@ fun ConversationListScreen(
viewModel: ConversationListViewModel = hiltViewModel(), viewModel: ConversationListViewModel = hiltViewModel(),
onConversationSelected: (conversationID: String) -> Unit onConversationSelected: (conversationID: String) -> Unit
) { ) {
val conversations by viewModel.conversations.collectAsStateWithLifecycle(initialValue = listOf()) val conversations by viewModel.conversations.collectAsStateWithLifecycle(initialValue = emptyList())
ConversationListView(conversations = conversations, onConversationSelected = onConversationSelected) ConversationListView(conversations = conversations, onConversationSelected = onConversationSelected)
} }

View File

@@ -24,6 +24,9 @@ class ConversationListViewModel @Inject constructor(
} }
init { init {
// TODO: Is this the best place to put these?
// TODO: Need error handling (exceptions thrown below)
viewModelScope.launch { viewModelScope.launch {
repository.synchronize() repository.synchronize()
} }
@@ -31,11 +34,5 @@ class ConversationListViewModel @Inject constructor(
viewModelScope.launch { viewModelScope.launch {
repository.beginWatchingForUpdates(this) repository.beginWatchingForUpdates(this)
} }
viewModelScope.launch {
repository.conversationChanges.collect {
Log.v("ViewModel", "Got conversationChanges")
}
}
} }
} }

View File

@@ -41,7 +41,8 @@ data class Conversation(
date == o.date && date == o.date &&
participants == o.participants && participants == o.participants &&
displayName == o.displayName && displayName == o.displayName &&
unreadCount == o.unreadCount unreadCount == o.unreadCount &&
lastMessagePreview == o.lastMessagePreview
) )
} }

View File

@@ -7,6 +7,7 @@ import kotlinx.coroutines.cancel
import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import net.buzzert.kordophone.backend.db.CachedChatDatabase import net.buzzert.kordophone.backend.db.CachedChatDatabase
@@ -38,6 +39,7 @@ class ChatRepository(
// Changes Flow // Changes Flow
val conversationChanges: Flow<List<Conversation>> val conversationChanges: Flow<List<Conversation>>
get() = database.conversationChanges get() = database.conversationChanges
.onEach { Log.d(REPO_LOG, "Got database conversations changed") }
fun messagesChanged(conversation: Conversation): Flow<List<Message>> = fun messagesChanged(conversation: Conversation): Flow<List<Message>> =
database.messagesChanged(conversation) database.messagesChanged(conversation)