From 3f8df34f5c25d178ef0628cd9467a1a31c5a4859 Mon Sep 17 00:00:00 2001 From: ialokim Date: Sat, 30 Oct 2021 16:26:40 +0200 Subject: [PATCH] use new event to update contacts view model --- .../briar/android/contact/ContactListItem.java | 6 +++--- .../briar/android/contact/ContactsViewModel.java | 16 +++++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListItem.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListItem.java index d2d8758e4..e917625da 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListItem.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListItem.java @@ -40,10 +40,10 @@ public class ContactListItem extends ContactItem item.unread, item.timestamp); } - ContactListItem(ContactListItem item, ConversationMessageHeader h) { + ContactListItem(ContactListItem item, long timestamp, boolean read) { this(item.getContact(), item.getAuthorInfo(), item.isConnected(), false, - h.isRead() ? item.unread : item.unread + 1, - Math.max(h.getTimestamp(), item.timestamp)); + read ? item.unread : item.unread + 1, + Math.max(timestamp, item.timestamp)); } /** diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactsViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactsViewModel.java index 51381c49d..266b4c26c 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactsViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactsViewModel.java @@ -28,6 +28,7 @@ import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.conversation.ConversationManager; import org.briarproject.briar.api.conversation.ConversationMessageHeader; import org.briarproject.briar.api.conversation.event.ConversationMessageReceivedEvent; +import org.briarproject.briar.api.conversation.event.ConversationMessageTrackedEvent; import org.briarproject.briar.api.identity.AuthorInfo; import org.briarproject.briar.api.identity.AuthorManager; @@ -131,13 +132,14 @@ public class ContactsViewModel extends DbViewModel implements EventListener { } else if (e instanceof ContactRemovedEvent) { LOG.info("Contact removed, removing item"); removeItem(((ContactRemovedEvent) e).getContactId()); - } else if (e instanceof ConversationMessageReceivedEvent) { - LOG.info("Conversation message received, updating item"); - ConversationMessageReceivedEvent p = - (ConversationMessageReceivedEvent) e; - ConversationMessageHeader h = p.getMessageHeader(); - updateItem(p.getContactId(), item -> new ContactListItem(item, h), - true); + } else if (e instanceof ConversationMessageTrackedEvent) { + LOG.info("Conversation message tracked, updating item"); + ConversationMessageTrackedEvent p = + (ConversationMessageTrackedEvent) e; + long timestamp = p.getTimestamp(); + boolean read = p.getRead(); + updateItem(p.getContactId(), + item -> new ContactListItem(item, timestamp, read), true); } else if (e instanceof AvatarUpdatedEvent) { AvatarUpdatedEvent a = (AvatarUpdatedEvent) e; updateItem(a.getContactId(), item -> new ContactListItem(item,