diff --git a/briar b/briar index 8a4fe7ca493285a136127f08e60303347d849cd2..85dc27ed77e8b1a94ce4bccf2e9dd0e4e9660e00 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 7d18451058b97330b16cdc3074fa6d918c3a496b..d169ac99ef21cfb9103a2be8feba887fda723b2b 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 09029da0ca85838535c58f720027c940b8a6008f..6cd88d2945616bc263f7c851b6c575bc467dace8 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 e79b0362858cb663877bbf919806ae176372f403..0000000000000000000000000000000000000000 --- 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 3092b4e8a16519aa3413400a61eafa65fe3790f8..e157bf065fc5194d0894285f3f7df21f3211fc9e 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) {