From 2f452627e853093dd699ea4c540640d5635fded4 Mon Sep 17 00:00:00 2001 From: ialokim <ialokim@mailbox.org> Date: Sat, 30 Oct 2021 16:03:23 +0200 Subject: [PATCH] use new Briar core event to update contact list --- briar | 2 +- .../briar/desktop/contact/ContactItem.kt | 10 ++++------ .../briar/desktop/contact/ContactListViewModel.kt | 13 ++++--------- .../ConversationMessageToBeSentEvent.kt | 13 ------------- .../desktop/conversation/ConversationViewModel.kt | 1 - 5 files changed, 9 insertions(+), 30 deletions(-) delete mode 100644 src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationMessageToBeSentEvent.kt diff --git a/briar b/briar index 8a4fe7ca49..85dc27ed77 160000 --- a/briar +++ b/briar @@ -1 +1 @@ -Subproject commit 8a4fe7ca493285a136127f08e60303347d849cd2 +Subproject commit 85dc27ed77e8b1a94ce4bccf2e9dd0e4e9660e00 diff --git a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactItem.kt b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactItem.kt index 7d18451058..d169ac99ef 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactItem.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactItem.kt @@ -2,7 +2,6 @@ package org.briarproject.briar.desktop.contact import org.briarproject.bramble.api.contact.Contact import org.briarproject.briar.api.client.MessageTracker -import org.briarproject.briar.api.conversation.ConversationMessageHeader import kotlin.math.max data class ContactItem( @@ -21,13 +20,12 @@ data class ContactItem( timestamp = groupCount.latestMsgTime ) - fun updateFromMessageHeader(h: ConversationMessageHeader): ContactItem { - return copy( + fun updateTimestampAndUnread(timestamp: Long, read: Boolean): ContactItem = + copy( isEmpty = false, - unread = if (h.isRead) unread else unread + 1, - timestamp = max(h.timestamp, timestamp) + unread = if (read) unread else unread + 1, + timestamp = max(timestamp, this.timestamp) ) - } fun updateIsConnected(c: Boolean): ContactItem { return copy(isConnected = c) diff --git a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactListViewModel.kt b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactListViewModel.kt index 09029da0ca..6cd88d2945 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactListViewModel.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactListViewModel.kt @@ -11,8 +11,7 @@ import org.briarproject.bramble.api.contact.event.ContactAliasChangedEvent import org.briarproject.bramble.api.event.Event import org.briarproject.bramble.api.event.EventBus import org.briarproject.briar.api.conversation.ConversationManager -import org.briarproject.briar.api.conversation.event.ConversationMessageReceivedEvent -import org.briarproject.briar.desktop.conversation.ConversationMessageToBeSentEvent +import org.briarproject.briar.api.conversation.event.ConversationMessageTrackedEvent import javax.inject.Inject class ContactListViewModel @@ -67,13 +66,9 @@ constructor( override fun eventOccurred(e: Event?) { super.eventOccurred(e) when (e) { - is ConversationMessageReceivedEvent<*> -> { - LOG.info("Conversation message received, updating item") - updateItem(e.contactId) { it.updateFromMessageHeader(e.messageHeader) } - } - is ConversationMessageToBeSentEvent -> { - LOG.info("Conversation message added, updating item") - updateItem(e.contactId) { it.updateFromMessageHeader(e.messageHeader) } + is ConversationMessageTrackedEvent -> { + LOG.info { "Conversation message tracked, updating item" } + updateItem(e.contactId) { it.updateTimestampAndUnread(e.timestamp, e.read) } } // is AvatarUpdatedEvent -> {} is ContactAliasChangedEvent -> { diff --git a/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationMessageToBeSentEvent.kt b/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationMessageToBeSentEvent.kt deleted file mode 100644 index e79b036285..0000000000 --- a/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationMessageToBeSentEvent.kt +++ /dev/null @@ -1,13 +0,0 @@ -package org.briarproject.briar.desktop.conversation - -import org.briarproject.bramble.api.contact.ContactId -import org.briarproject.bramble.api.event.Event -import org.briarproject.briar.api.conversation.ConversationMessageHeader - -/** - * An event that is broadcast when a new conversation message to be sent is added. - */ -data class ConversationMessageToBeSentEvent( - val messageHeader: ConversationMessageHeader, - val contactId: ContactId -) : Event() diff --git a/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationViewModel.kt b/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationViewModel.kt index 3092b4e8a1..e157bf065f 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationViewModel.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationViewModel.kt @@ -101,7 +101,6 @@ constructor( m.autoDeleteTimer ) _messages.add(0, messageHeaderToItem(h)) - eventBus.broadcast(ConversationMessageToBeSentEvent(h, _contactId.value!!)) } catch (e: UnexpectedTimerException) { LOG.warn(e) {} } catch (e: DbException) { -- GitLab