Fix list updates (it was isEqual)
This commit is contained in:
@@ -30,7 +30,7 @@ fun ConversationListScreen(
|
||||
viewModel: ConversationListViewModel = hiltViewModel(),
|
||||
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)
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,9 @@ class ConversationListViewModel @Inject constructor(
|
||||
}
|
||||
|
||||
init {
|
||||
// TODO: Is this the best place to put these?
|
||||
// TODO: Need error handling (exceptions thrown below)
|
||||
|
||||
viewModelScope.launch {
|
||||
repository.synchronize()
|
||||
}
|
||||
@@ -31,11 +34,5 @@ class ConversationListViewModel @Inject constructor(
|
||||
viewModelScope.launch {
|
||||
repository.beginWatchingForUpdates(this)
|
||||
}
|
||||
|
||||
viewModelScope.launch {
|
||||
repository.conversationChanges.collect {
|
||||
Log.v("ViewModel", "Got conversationChanges")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -41,7 +41,8 @@ data class Conversation(
|
||||
date == o.date &&
|
||||
participants == o.participants &&
|
||||
displayName == o.displayName &&
|
||||
unreadCount == o.unreadCount
|
||||
unreadCount == o.unreadCount &&
|
||||
lastMessagePreview == o.lastMessagePreview
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.channels.Channel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.collect
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import net.buzzert.kordophone.backend.db.CachedChatDatabase
|
||||
@@ -38,6 +39,7 @@ class ChatRepository(
|
||||
// Changes Flow
|
||||
val conversationChanges: Flow<List<Conversation>>
|
||||
get() = database.conversationChanges
|
||||
.onEach { Log.d(REPO_LOG, "Got database conversations changed") }
|
||||
|
||||
fun messagesChanged(conversation: Conversation): Flow<List<Message>> =
|
||||
database.messagesChanged(conversation)
|
||||
|
||||
Reference in New Issue
Block a user