From eb08781460083b3646000bdc60983eadc74a649b Mon Sep 17 00:00:00 2001 From: ialokim Date: Wed, 27 Oct 2021 14:37:16 +0200 Subject: [PATCH] broadcast event when a conversation message is tracked --- .../bramble/api/client/ClientHelper.java | 2 +- .../briar/api/client/MessageTracker.java | 13 ++++++ .../api/conversation/ConversationManager.java | 22 ++++++++++ .../ConversationMessageTrackedEvent.java | 41 +++++++++++++++++++ .../conversation/ConversationManagerImpl.java | 38 ++++++++++++++++- .../introduction/AbstractProtocolEngine.java | 19 +++------ .../IntroduceeProtocolEngine.java | 8 ++-- .../IntroducerProtocolEngine.java | 13 +++--- .../briar/messaging/MessagingManagerImpl.java | 8 +++- .../invitation/AbstractProtocolEngine.java | 25 +++-------- .../invitation/CreatorProtocolEngine.java | 10 ++--- .../invitation/InviteeProtocolEngine.java | 10 ++--- .../invitation/PeerProtocolEngine.java | 4 +- .../invitation/ProtocolEngineFactoryImpl.java | 10 ++--- .../briar/sharing/BlogProtocolEngineImpl.java | 4 +- .../sharing/ForumProtocolEngineImpl.java | 4 +- .../briar/sharing/ProtocolEngineImpl.java | 37 ++++++----------- .../AbstractProtocolEngineTest.java | 3 +- .../invitation/CreatorProtocolEngineTest.java | 4 +- .../invitation/InviteeProtocolEngineTest.java | 6 +-- .../invitation/PeerProtocolEngineTest.java | 2 +- 21 files changed, 175 insertions(+), 108 deletions(-) create mode 100644 briar-api/src/main/java/org/briarproject/briar/api/conversation/event/ConversationMessageTrackedEvent.java diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/client/ClientHelper.java b/bramble-api/src/main/java/org/briarproject/bramble/api/client/ClientHelper.java index c04454d30..aed6d37f8 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/client/ClientHelper.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/client/ClientHelper.java @@ -128,7 +128,7 @@ public interface ClientHelper { * group. */ ContactId getContactId(Transaction txn, GroupId contactGroupId) - throws DbException, FormatException; + throws DbException; /** * Stores the given contact ID in the group metadata of the given contact diff --git a/briar-api/src/main/java/org/briarproject/briar/api/client/MessageTracker.java b/briar-api/src/main/java/org/briarproject/briar/api/client/MessageTracker.java index d0e624934..717e9b31d 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/client/MessageTracker.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/client/MessageTracker.java @@ -6,6 +6,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.MessageId; +import org.briarproject.briar.api.conversation.ConversationManager; import javax.annotation.Nullable; @@ -32,16 +33,28 @@ public interface MessageTracker { /** * Updates the group count for the given incoming message. + *

+ * For messages that are part of a conversation (private chat), + * use the corresponding function inside + * {@link ConversationManager} instead. */ void trackIncomingMessage(Transaction txn, Message m) throws DbException; /** * Updates the group count for the given outgoing message. + *

+ * For messages that are part of a conversation (private chat), + * use the corresponding function inside + * {@link ConversationManager} instead. */ void trackOutgoingMessage(Transaction txn, Message m) throws DbException; /** * Updates the group count for the given message. + *

+ * For messages that are part of a conversation (private chat), + * use the corresponding function inside + * {@link ConversationManager} instead. */ void trackMessage(Transaction txn, GroupId g, long timestamp, boolean read) throws DbException; diff --git a/briar-api/src/main/java/org/briarproject/briar/api/conversation/ConversationManager.java b/briar-api/src/main/java/org/briarproject/briar/api/conversation/ConversationManager.java index 41ebd823d..a867f37cc 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/conversation/ConversationManager.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/conversation/ConversationManager.java @@ -7,6 +7,7 @@ import org.briarproject.bramble.api.db.Transaction; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.sync.Group; import org.briarproject.bramble.api.sync.GroupId; +import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.briar.api.client.MessageTracker.GroupCount; import org.briarproject.briar.api.messaging.MessagingManager; @@ -47,6 +48,27 @@ public interface ConversationManager { */ GroupCount getGroupCount(Transaction txn, ContactId c) throws DbException; + /** + * Updates the group count for the given incoming private conversation message + * and broadcasts a corresponding event. + */ + void trackIncomingMessage(Transaction txn, Message m) + throws DbException; + + /** + * Updates the group count for the given outgoing private conversation message + * and broadcasts a corresponding event. + */ + void trackOutgoingMessage(Transaction txn, Message m) + throws DbException; + + /** + * Updates the group count for the given private conversation message + * and broadcasts a corresponding event. + */ + void trackMessage(Transaction txn, GroupId g, long timestamp, boolean read) + throws DbException; + void setReadFlag(GroupId g, MessageId m, boolean read) throws DbException; diff --git a/briar-api/src/main/java/org/briarproject/briar/api/conversation/event/ConversationMessageTrackedEvent.java b/briar-api/src/main/java/org/briarproject/briar/api/conversation/event/ConversationMessageTrackedEvent.java new file mode 100644 index 000000000..6a6889a0f --- /dev/null +++ b/briar-api/src/main/java/org/briarproject/briar/api/conversation/event/ConversationMessageTrackedEvent.java @@ -0,0 +1,41 @@ +package org.briarproject.briar.api.conversation.event; + +import org.briarproject.bramble.api.contact.ContactId; +import org.briarproject.bramble.api.event.Event; +import org.briarproject.bramble.api.nullsafety.NotNullByDefault; +import org.briarproject.bramble.api.sync.Message; +import org.briarproject.briar.api.conversation.ConversationMessageHeader; + +import javax.annotation.concurrent.Immutable; + +/** + * An event that is broadcast when a new conversation message is tracked. + * Allows the UI to update the conversation's group count. + */ +@Immutable +@NotNullByDefault +public class ConversationMessageTrackedEvent extends Event { + + private final long timestamp; + private final boolean read; + private final ContactId contactId; + + public ConversationMessageTrackedEvent(long timestamp, + boolean read, ContactId contactId) { + this.timestamp = timestamp; + this.read = read; + this.contactId = contactId; + } + + public long getTimestamp() { + return timestamp; + } + + public boolean getRead() { + return read; + } + + public ContactId getContactId() { + return contactId; + } +} diff --git a/briar-core/src/main/java/org/briarproject/briar/conversation/ConversationManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/conversation/ConversationManagerImpl.java index 07afd24e7..46f0639d9 100644 --- a/briar-core/src/main/java/org/briarproject/briar/conversation/ConversationManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/conversation/ConversationManagerImpl.java @@ -1,11 +1,14 @@ package org.briarproject.briar.conversation; +import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.db.DatabaseComponent; import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.db.Transaction; +import org.briarproject.bramble.api.event.Event; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.sync.GroupId; +import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.system.Clock; import org.briarproject.briar.api.client.MessageTracker; @@ -13,6 +16,7 @@ import org.briarproject.briar.api.client.MessageTracker.GroupCount; import org.briarproject.briar.api.conversation.ConversationManager; import org.briarproject.briar.api.conversation.ConversationMessageHeader; import org.briarproject.briar.api.conversation.DeletionResult; +import org.briarproject.briar.api.conversation.event.ConversationMessageTrackedEvent; import java.util.ArrayList; import java.util.Collection; @@ -32,14 +36,16 @@ class ConversationManagerImpl implements ConversationManager { private final DatabaseComponent db; private final MessageTracker messageTracker; private final Clock clock; + private final ClientHelper clientHelper; private final Set clients; @Inject ConversationManagerImpl(DatabaseComponent db, MessageTracker messageTracker, - Clock clock) { + Clock clock, ClientHelper clientHelper) { this.db = db; this.messageTracker = messageTracker; this.clock = clock; + this.clientHelper = clientHelper; clients = new CopyOnWriteArraySet<>(); } @@ -86,6 +92,36 @@ class ConversationManagerImpl implements ConversationManager { return new GroupCount(msgCount, unreadCount, latestTime); } + @Override + public void trackIncomingMessage(Transaction txn, Message m) + throws DbException { + messageTracker.trackIncomingMessage(txn, m); + Event e = new ConversationMessageTrackedEvent( + m.getTimestamp(), false, + clientHelper.getContactId(txn, m.getGroupId())); + txn.attach(e); + } + + @Override + public void trackOutgoingMessage(Transaction txn, Message m) + throws DbException { + messageTracker.trackOutgoingMessage(txn, m); + Event e = new ConversationMessageTrackedEvent( + m.getTimestamp(), true, + clientHelper.getContactId(txn, m.getGroupId())); + txn.attach(e); + } + + @Override + public void trackMessage(Transaction txn, GroupId g, long timestamp, + boolean read) + throws DbException { + messageTracker.trackMessage(txn, g, timestamp, read); + Event e = new ConversationMessageTrackedEvent( + timestamp, read, clientHelper.getContactId(txn, g)); + txn.attach(e); + } + @Override public void setReadFlag(GroupId g, MessageId m, boolean read) throws DbException { diff --git a/briar-core/src/main/java/org/briarproject/briar/introduction/AbstractProtocolEngine.java b/briar-core/src/main/java/org/briarproject/briar/introduction/AbstractProtocolEngine.java index 4760b25a4..faf65ae15 100644 --- a/briar-core/src/main/java/org/briarproject/briar/introduction/AbstractProtocolEngine.java +++ b/briar-core/src/main/java/org/briarproject/briar/introduction/AbstractProtocolEngine.java @@ -100,7 +100,7 @@ abstract class AbstractProtocolEngine> long timestamp, Author author, @Nullable String text) throws DbException { Message m; - ContactId c = getContactId(txn, s.getContactGroupId()); + ContactId c = clientHelper.getContactId(txn, s.getContactGroupId()); if (contactSupportsAutoDeletion(txn, c)) { long timer = autoDeleteManager.getAutoDeleteTimer(txn, c, timestamp); @@ -125,7 +125,7 @@ abstract class AbstractProtocolEngine> Map transportProperties, boolean visible) throws DbException { Message m; - ContactId c = getContactId(txn, s.getContactGroupId()); + ContactId c = clientHelper.getContactId(txn, s.getContactGroupId()); if (contactSupportsAutoDeletion(txn, c)) { long timer = autoDeleteManager.getAutoDeleteTimer(txn, c, timestamp); @@ -152,7 +152,7 @@ abstract class AbstractProtocolEngine> boolean visible, boolean isAutoDecline) throws DbException { if (!visible && isAutoDecline) throw new IllegalArgumentException(); Message m; - ContactId c = getContactId(txn, s.getContactGroupId()); + ContactId c = clientHelper.getContactId(txn, s.getContactGroupId()); if (contactSupportsAutoDeletion(txn, c)) { long timer = autoDeleteManager.getAutoDeleteTimer(txn, c, timestamp); @@ -276,26 +276,17 @@ abstract class AbstractProtocolEngine> long getTimestampForOutgoingMessage(Transaction txn, GroupId contactGroupId) throws DbException { - ContactId c = getContactId(txn, contactGroupId); + ContactId c = clientHelper.getContactId(txn, contactGroupId); return conversationManager.getTimestampForOutgoingMessage(txn, c); } void receiveAutoDeleteTimer(Transaction txn, AbstractIntroductionMessage m) throws DbException { - ContactId c = getContactId(txn, m.getGroupId()); + ContactId c = clientHelper.getContactId(txn, m.getGroupId()); autoDeleteManager.receiveAutoDeleteTimer(txn, c, m.getAutoDeleteTimer(), m.getTimestamp()); } - private ContactId getContactId(Transaction txn, GroupId contactGroupId) - throws DbException { - try { - return clientHelper.getContactId(txn, contactGroupId); - } catch (FormatException e) { - throw new DbException(e); - } - } - private boolean contactSupportsAutoDeletion(Transaction txn, ContactId c) throws DbException { int minorVersion = clientVersioningManager.getClientMinorVersion(txn, c, diff --git a/briar-core/src/main/java/org/briarproject/briar/introduction/IntroduceeProtocolEngine.java b/briar-core/src/main/java/org/briarproject/briar/introduction/IntroduceeProtocolEngine.java index 03372d6c8..700317da9 100644 --- a/briar-core/src/main/java/org/briarproject/briar/introduction/IntroduceeProtocolEngine.java +++ b/briar-core/src/main/java/org/briarproject/briar/introduction/IntroduceeProtocolEngine.java @@ -266,7 +266,7 @@ class IntroduceeProtocolEngine addSessionId(txn, m.getMessageId(), s.getSessionId()); // Track the incoming message - messageTracker + conversationManager .trackMessage(txn, m.getGroupId(), m.getTimestamp(), false); // Receive the auto-delete timer @@ -307,7 +307,7 @@ class IntroduceeProtocolEngine Message sent = sendAcceptMessage(txn, s, localTimestamp, publicKey, localTimestamp, transportProperties, true); // Track the message - messageTracker.trackOutgoingMessage(txn, sent); + conversationManager.trackOutgoingMessage(txn, sent); // Determine the next state switch (s.getState()) { @@ -338,7 +338,7 @@ class IntroduceeProtocolEngine sendDeclineMessage(txn, s, localTimestamp, true, isAutoDecline); // Track the message - messageTracker.trackOutgoingMessage(txn, sent); + conversationManager.trackOutgoingMessage(txn, sent); // Move to the START or LOCAL_DECLINED state, if still awaiting response IntroduceeState state = @@ -382,7 +382,7 @@ class IntroduceeProtocolEngine markMessageVisibleInUi(txn, m.getMessageId()); // Track the incoming message - messageTracker + conversationManager .trackMessage(txn, m.getGroupId(), m.getTimestamp(), false); // Receive the auto-delete timer diff --git a/briar-core/src/main/java/org/briarproject/briar/introduction/IntroducerProtocolEngine.java b/briar-core/src/main/java/org/briarproject/briar/introduction/IntroducerProtocolEngine.java index e2f511675..1fdc76c73 100644 --- a/briar-core/src/main/java/org/briarproject/briar/introduction/IntroducerProtocolEngine.java +++ b/briar-core/src/main/java/org/briarproject/briar/introduction/IntroducerProtocolEngine.java @@ -40,6 +40,7 @@ import static org.briarproject.briar.introduction.IntroducerState.A_DECLINED; import static org.briarproject.briar.introduction.IntroducerState.B_DECLINED; import static org.briarproject.briar.introduction.IntroducerState.START; + @Immutable @NotNullByDefault class IntroducerProtocolEngine @@ -231,8 +232,8 @@ class IntroducerProtocolEngine Message sentB = sendRequestMessage(txn, s.getIntroduceeB(), localTimestamp, s.getIntroduceeA().author, text); // Track the messages - messageTracker.trackOutgoingMessage(txn, sentA); - messageTracker.trackOutgoingMessage(txn, sentB); + conversationManager.trackOutgoingMessage(txn, sentA); + conversationManager.trackOutgoingMessage(txn, sentB); // Move to the AWAIT_RESPONSES state Introducee introduceeA = new Introducee(s.getIntroduceeA(), sentA); Introducee introduceeB = new Introducee(s.getIntroduceeB(), sentB); @@ -260,7 +261,7 @@ class IntroducerProtocolEngine // Mark the response visible in the UI markMessageVisibleInUi(txn, m.getMessageId()); // Track the incoming message - messageTracker + conversationManager .trackMessage(txn, m.getGroupId(), m.getTimestamp(), false); // Receive the auto-delete timer receiveAutoDeleteTimer(txn, m); @@ -323,7 +324,7 @@ class IntroducerProtocolEngine // Mark the response visible in the UI markMessageVisibleInUi(txn, m.getMessageId()); // Track the incoming message - messageTracker + conversationManager .trackMessage(txn, m.getGroupId(), m.getTimestamp(), false); // Receive the auto-delete timer receiveAutoDeleteTimer(txn, m); @@ -378,7 +379,7 @@ class IntroducerProtocolEngine // Mark the response visible in the UI markMessageVisibleInUi(txn, m.getMessageId()); // Track the incoming message - messageTracker + conversationManager .trackMessage(txn, m.getGroupId(), m.getTimestamp(), false); // Receive the auto-delete timer receiveAutoDeleteTimer(txn, m); @@ -433,7 +434,7 @@ class IntroducerProtocolEngine // Mark the response visible in the UI markMessageVisibleInUi(txn, m.getMessageId()); // Track the incoming message - messageTracker + conversationManager .trackMessage(txn, m.getGroupId(), m.getTimestamp(), false); // Receive the auto-delete timer receiveAutoDeleteTimer(txn, m); diff --git a/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java index 950adaf5c..e27aba0c0 100644 --- a/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java @@ -34,6 +34,7 @@ import org.briarproject.briar.api.autodelete.AutoDeleteManager; import org.briarproject.briar.api.autodelete.event.ConversationMessagesDeletedEvent; import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.client.MessageTracker.GroupCount; +import org.briarproject.briar.api.conversation.ConversationManager; import org.briarproject.briar.api.conversation.ConversationManager.ConversationClient; import org.briarproject.briar.api.conversation.ConversationMessageHeader; import org.briarproject.briar.api.conversation.DeletionResult; @@ -96,6 +97,7 @@ class MessagingManagerImpl implements MessagingManager, IncomingMessageHook, private final DatabaseComponent db; private final ClientHelper clientHelper; private final MetadataParser metadataParser; + private final ConversationManager conversationManager; private final MessageTracker messageTracker; private final ClientVersioningManager clientVersioningManager; private final ContactGroupFactory contactGroupFactory; @@ -107,12 +109,14 @@ class MessagingManagerImpl implements MessagingManager, IncomingMessageHook, ClientHelper clientHelper, ClientVersioningManager clientVersioningManager, MetadataParser metadataParser, + ConversationManager conversationManager, MessageTracker messageTracker, ContactGroupFactory contactGroupFactory, AutoDeleteManager autoDeleteManager) { this.db = db; this.clientHelper = clientHelper; this.metadataParser = metadataParser; + this.conversationManager = conversationManager; this.messageTracker = messageTracker; this.clientVersioningManager = clientVersioningManager; this.contactGroupFactory = contactGroupFactory; @@ -214,7 +218,7 @@ class MessagingManagerImpl implements MessagingManager, IncomingMessageHook, PrivateMessageReceivedEvent event = new PrivateMessageReceivedEvent(header, contactId); txn.attach(event); - messageTracker.trackIncomingMessage(txn, m); + conversationManager.trackIncomingMessage(txn, m); if (timer != NO_AUTO_DELETE_TIMER) { db.setCleanupTimerDuration(txn, m.getId(), timer); } @@ -324,7 +328,7 @@ class MessagingManagerImpl implements MessagingManager, IncomingMessageHook, if (timer != NO_AUTO_DELETE_TIMER) { db.setCleanupTimerDuration(txn, m.getMessage().getId(), timer); } - messageTracker.trackOutgoingMessage(txn, m.getMessage()); + conversationManager.trackOutgoingMessage(txn, m.getMessage()); } catch (FormatException e) { throw new AssertionError(e); } diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/AbstractProtocolEngine.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/AbstractProtocolEngine.java index 906f4abc8..779d008cf 100644 --- a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/AbstractProtocolEngine.java +++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/AbstractProtocolEngine.java @@ -19,7 +19,6 @@ import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; import org.briarproject.briar.api.autodelete.AutoDeleteManager; -import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.conversation.ConversationManager; import org.briarproject.briar.api.privategroup.GroupMessage; @@ -52,7 +51,7 @@ abstract class AbstractProtocolEngine> protected final ClientHelper clientHelper; protected final PrivateGroupManager privateGroupManager; protected final PrivateGroupFactory privateGroupFactory; - protected final MessageTracker messageTracker; + protected final ConversationManager conversationManager; private final ClientVersioningManager clientVersioningManager; private final GroupMessageFactory groupMessageFactory; @@ -60,7 +59,6 @@ abstract class AbstractProtocolEngine> private final MessageParser messageParser; private final MessageEncoder messageEncoder; private final AutoDeleteManager autoDeleteManager; - private final ConversationManager conversationManager; private final Clock clock; AbstractProtocolEngine( @@ -73,7 +71,6 @@ abstract class AbstractProtocolEngine> IdentityManager identityManager, MessageParser messageParser, MessageEncoder messageEncoder, - MessageTracker messageTracker, AutoDeleteManager autoDeleteManager, ConversationManager conversationManager, Clock clock) { @@ -86,7 +83,6 @@ abstract class AbstractProtocolEngine> this.identityManager = identityManager; this.messageParser = messageParser; this.messageEncoder = messageEncoder; - this.messageTracker = messageTracker; this.autoDeleteManager = autoDeleteManager; this.conversationManager = conversationManager; this.clock = clock; @@ -129,7 +125,7 @@ abstract class AbstractProtocolEngine> throw new DbException(e); // Invalid group descriptor } Message m; - ContactId c = getContactId(txn, s.getContactGroupId()); + ContactId c = clientHelper.getContactId(txn, s.getContactGroupId()); if (contactSupportsAutoDeletion(txn, c)) { m = messageEncoder.encodeInviteMessage(s.getContactGroupId(), privateGroup.getId(), timestamp, privateGroup.getName(), @@ -157,7 +153,7 @@ abstract class AbstractProtocolEngine> long localTimestamp = visibleInUi ? getTimestampForVisibleMessage(txn, s) : getTimestampForInvisibleMessage(s); - ContactId c = getContactId(txn, s.getContactGroupId()); + ContactId c = clientHelper.getContactId(txn, s.getContactGroupId()); if (contactSupportsAutoDeletion(txn, c)) { // Set auto-delete timer if manually accepting an invitation long timer = NO_AUTO_DELETE_TIMER; @@ -195,7 +191,7 @@ abstract class AbstractProtocolEngine> long localTimestamp = visibleInUi ? getTimestampForVisibleMessage(txn, s) : getTimestampForInvisibleMessage(s); - ContactId c = getContactId(txn, s.getContactGroupId()); + ContactId c = clientHelper.getContactId(txn, s.getContactGroupId()); if (contactSupportsAutoDeletion(txn, c)) { // Set auto-delete timer if declining an invitation long timer = NO_AUTO_DELETE_TIMER; @@ -309,7 +305,7 @@ abstract class AbstractProtocolEngine> */ long getTimestampForVisibleMessage(Transaction txn, S s) throws DbException { - ContactId c = getContactId(txn, s.getContactGroupId()); + ContactId c = clientHelper.getContactId(txn, s.getContactGroupId()); long conversationTimestamp = conversationManager.getTimestampForOutgoingMessage(txn, c); return max(conversationTimestamp, getSessionTimestamp(s) + 1); @@ -333,7 +329,7 @@ abstract class AbstractProtocolEngine> void receiveAutoDeleteTimer(Transaction txn, DeletableGroupInvitationMessage m) throws DbException { - ContactId c = getContactId(txn, m.getContactGroupId()); + ContactId c = clientHelper.getContactId(txn, m.getContactGroupId()); autoDeleteManager.receiveAutoDeleteTimer(txn, c, m.getAutoDeleteTimer(), m.getTimestamp()); } @@ -359,15 +355,6 @@ abstract class AbstractProtocolEngine> } } - private ContactId getContactId(Transaction txn, GroupId contactGroupId) - throws DbException { - try { - return clientHelper.getContactId(txn, contactGroupId); - } catch (FormatException e) { - throw new DbException(e); - } - } - private boolean contactSupportsAutoDeletion(Transaction txn, ContactId c) throws DbException { int minorVersion = clientVersioningManager.getClientMinorVersion(txn, c, diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/CreatorProtocolEngine.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/CreatorProtocolEngine.java index e8d85fc34..c56601496 100644 --- a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/CreatorProtocolEngine.java +++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/CreatorProtocolEngine.java @@ -12,7 +12,6 @@ import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; import org.briarproject.briar.api.autodelete.AutoDeleteManager; -import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.client.ProtocolStateException; import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.conversation.ConversationManager; @@ -49,13 +48,12 @@ class CreatorProtocolEngine extends AbstractProtocolEngine { IdentityManager identityManager, MessageParser messageParser, MessageEncoder messageEncoder, - MessageTracker messageTracker, AutoDeleteManager autoDeleteManager, ConversationManager conversationManager, Clock clock) { super(db, clientHelper, clientVersioningManager, privateGroupManager, privateGroupFactory, groupMessageFactory, identityManager, - messageParser, messageEncoder, messageTracker, + messageParser, messageEncoder, autoDeleteManager, conversationManager, clock); } @@ -162,7 +160,7 @@ class CreatorProtocolEngine extends AbstractProtocolEngine { Message sent = sendInviteMessage(txn, s, text, timestamp, signature, autoDeleteTimer); // Track the message - messageTracker.trackOutgoingMessage(txn, sent); + conversationManager.trackOutgoingMessage(txn, sent); // Move to the INVITED state long localTimestamp = max(timestamp, getTimestampForVisibleMessage(txn, s)); @@ -199,7 +197,7 @@ class CreatorProtocolEngine extends AbstractProtocolEngine { // Mark the response visible in the UI markMessageVisibleInUi(txn, m.getId()); // Track the message - messageTracker.trackMessage(txn, m.getContactGroupId(), + conversationManager.trackMessage(txn, m.getContactGroupId(), m.getTimestamp(), false); // Receive the auto-delete timer receiveAutoDeleteTimer(txn, m); @@ -226,7 +224,7 @@ class CreatorProtocolEngine extends AbstractProtocolEngine { // Mark the response visible in the UI markMessageVisibleInUi(txn, m.getId()); // Track the message - messageTracker.trackMessage(txn, m.getContactGroupId(), + conversationManager.trackMessage(txn, m.getContactGroupId(), m.getTimestamp(), false); // Receive the auto-delete timer receiveAutoDeleteTimer(txn, m); diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngine.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngine.java index 5afe1c443..e53d71162 100644 --- a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngine.java +++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngine.java @@ -14,7 +14,6 @@ import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; import org.briarproject.briar.api.autodelete.AutoDeleteManager; -import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.client.ProtocolStateException; import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.conversation.ConversationManager; @@ -53,13 +52,12 @@ class InviteeProtocolEngine extends AbstractProtocolEngine { IdentityManager identityManager, MessageParser messageParser, MessageEncoder messageEncoder, - MessageTracker messageTracker, AutoDeleteManager autoDeleteManager, ConversationManager conversationManager, Clock clock) { super(db, clientHelper, clientVersioningManager, privateGroupManager, privateGroupFactory, groupMessageFactory, identityManager, - messageParser, messageEncoder, messageTracker, + messageParser, messageEncoder, autoDeleteManager, conversationManager, clock); } @@ -188,7 +186,7 @@ class InviteeProtocolEngine extends AbstractProtocolEngine { // Send a JOIN message Message sent = sendJoinMessage(txn, s, true); // Track the message - messageTracker.trackOutgoingMessage(txn, sent); + conversationManager.trackOutgoingMessage(txn, sent); try { // Subscribe to the private group subscribeToPrivateGroup(txn, inviteId); @@ -212,7 +210,7 @@ class InviteeProtocolEngine extends AbstractProtocolEngine { // Send a LEAVE message Message sent = sendLeaveMessage(txn, s, true, isAutoDecline); // Track the message - messageTracker.trackOutgoingMessage(txn, sent); + conversationManager.trackOutgoingMessage(txn, sent); // Move to the START state return new InviteeSession(s.getContactGroupId(), s.getPrivateGroupId(), sent.getId(), s.getLastRemoteMessageId(), sent.getTimestamp(), @@ -249,7 +247,7 @@ class InviteeProtocolEngine extends AbstractProtocolEngine { markMessageVisibleInUi(txn, m.getId()); markMessageAvailableToAnswer(txn, m.getId(), true); // Track the message - messageTracker.trackMessage(txn, m.getContactGroupId(), + conversationManager.trackMessage(txn, m.getContactGroupId(), m.getTimestamp(), false); // Receive the auto-delete timer receiveAutoDeleteTimer(txn, m); diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/PeerProtocolEngine.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/PeerProtocolEngine.java index 626cb6093..42a56ee18 100644 --- a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/PeerProtocolEngine.java +++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/PeerProtocolEngine.java @@ -13,7 +13,6 @@ import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; import org.briarproject.briar.api.autodelete.AutoDeleteManager; -import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.client.ProtocolStateException; import org.briarproject.briar.api.conversation.ConversationManager; import org.briarproject.briar.api.privategroup.GroupMessageFactory; @@ -48,13 +47,12 @@ class PeerProtocolEngine extends AbstractProtocolEngine { IdentityManager identityManager, MessageParser messageParser, MessageEncoder messageEncoder, - MessageTracker messageTracker, AutoDeleteManager autoDeleteManager, ConversationManager conversationManager, Clock clock) { super(db, clientHelper, clientVersioningManager, privateGroupManager, privateGroupFactory, groupMessageFactory, identityManager, - messageParser, messageEncoder, messageTracker, + messageParser, messageEncoder, autoDeleteManager, conversationManager, clock); } diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/ProtocolEngineFactoryImpl.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/ProtocolEngineFactoryImpl.java index 210c4d27d..b4c7c8bba 100644 --- a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/ProtocolEngineFactoryImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/ProtocolEngineFactoryImpl.java @@ -7,7 +7,6 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; import org.briarproject.briar.api.autodelete.AutoDeleteManager; -import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.conversation.ConversationManager; import org.briarproject.briar.api.privategroup.GroupMessageFactory; import org.briarproject.briar.api.privategroup.PrivateGroupFactory; @@ -29,7 +28,6 @@ class ProtocolEngineFactoryImpl implements ProtocolEngineFactory { private final IdentityManager identityManager; private final MessageParser messageParser; private final MessageEncoder messageEncoder; - private final MessageTracker messageTracker; private final AutoDeleteManager autoDeleteManager; private final ConversationManager conversationManager; private final Clock clock; @@ -45,7 +43,6 @@ class ProtocolEngineFactoryImpl implements ProtocolEngineFactory { IdentityManager identityManager, MessageParser messageParser, MessageEncoder messageEncoder, - MessageTracker messageTracker, AutoDeleteManager autoDeleteManager, ConversationManager conversationManager, Clock clock) { @@ -58,7 +55,6 @@ class ProtocolEngineFactoryImpl implements ProtocolEngineFactory { this.identityManager = identityManager; this.messageParser = messageParser; this.messageEncoder = messageEncoder; - this.messageTracker = messageTracker; this.autoDeleteManager = autoDeleteManager; this.conversationManager = conversationManager; this.clock = clock; @@ -69,7 +65,7 @@ class ProtocolEngineFactoryImpl implements ProtocolEngineFactory { return new CreatorProtocolEngine(db, clientHelper, clientVersioningManager, privateGroupManager, privateGroupFactory, groupMessageFactory, identityManager, - messageParser, messageEncoder, messageTracker, + messageParser, messageEncoder, autoDeleteManager, conversationManager, clock); } @@ -78,7 +74,7 @@ class ProtocolEngineFactoryImpl implements ProtocolEngineFactory { return new InviteeProtocolEngine(db, clientHelper, clientVersioningManager, privateGroupManager, privateGroupFactory, groupMessageFactory, identityManager, - messageParser, messageEncoder, messageTracker, + messageParser, messageEncoder, autoDeleteManager, conversationManager, clock); } @@ -87,7 +83,7 @@ class ProtocolEngineFactoryImpl implements ProtocolEngineFactory { return new PeerProtocolEngine(db, clientHelper, clientVersioningManager, privateGroupManager, privateGroupFactory, groupMessageFactory, identityManager, - messageParser, messageEncoder, messageTracker, + messageParser, messageEncoder, autoDeleteManager, conversationManager, clock); } } diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/BlogProtocolEngineImpl.java b/briar-core/src/main/java/org/briarproject/briar/sharing/BlogProtocolEngineImpl.java index bce737d75..47169b822 100644 --- a/briar-core/src/main/java/org/briarproject/briar/sharing/BlogProtocolEngineImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/sharing/BlogProtocolEngineImpl.java @@ -19,7 +19,6 @@ import org.briarproject.briar.api.blog.BlogManager; import org.briarproject.briar.api.blog.BlogSharingManager; import org.briarproject.briar.api.blog.event.BlogInvitationRequestReceivedEvent; import org.briarproject.briar.api.blog.event.BlogInvitationResponseReceivedEvent; -import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.conversation.ConversationManager; import org.briarproject.briar.api.conversation.ConversationRequest; @@ -41,14 +40,13 @@ class BlogProtocolEngineImpl extends ProtocolEngineImpl { ClientVersioningManager clientVersioningManager, MessageEncoder messageEncoder, MessageParser messageParser, - MessageTracker messageTracker, AutoDeleteManager autoDeleteManager, ConversationManager conversationManager, Clock clock, BlogManager blogManager, InvitationFactory invitationFactory) { super(db, clientHelper, clientVersioningManager, messageEncoder, - messageParser, messageTracker, autoDeleteManager, + messageParser, autoDeleteManager, conversationManager, clock, BlogSharingManager.CLIENT_ID, BlogSharingManager.MAJOR_VERSION, BlogManager.CLIENT_ID, BlogManager.MAJOR_VERSION); diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/ForumProtocolEngineImpl.java b/briar-core/src/main/java/org/briarproject/briar/sharing/ForumProtocolEngineImpl.java index a1277ac65..0342ee035 100644 --- a/briar-core/src/main/java/org/briarproject/briar/sharing/ForumProtocolEngineImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/sharing/ForumProtocolEngineImpl.java @@ -13,7 +13,6 @@ import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; import org.briarproject.briar.api.autodelete.AutoDeleteManager; -import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.conversation.ConversationManager; import org.briarproject.briar.api.conversation.ConversationRequest; import org.briarproject.briar.api.forum.Forum; @@ -41,14 +40,13 @@ class ForumProtocolEngineImpl extends ProtocolEngineImpl { ClientVersioningManager clientVersioningManager, MessageEncoder messageEncoder, MessageParser messageParser, - MessageTracker messageTracker, AutoDeleteManager autoDeleteManager, ConversationManager conversationManager, Clock clock, ForumManager forumManager, InvitationFactory invitationFactory) { super(db, clientHelper, clientVersioningManager, messageEncoder, - messageParser, messageTracker, autoDeleteManager, + messageParser, autoDeleteManager, conversationManager, clock, ForumSharingManager.CLIENT_ID, ForumSharingManager.MAJOR_VERSION, ForumManager.CLIENT_ID, ForumManager.MAJOR_VERSION); diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/ProtocolEngineImpl.java b/briar-core/src/main/java/org/briarproject/briar/sharing/ProtocolEngineImpl.java index 692f5e084..b7c135365 100644 --- a/briar-core/src/main/java/org/briarproject/briar/sharing/ProtocolEngineImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/sharing/ProtocolEngineImpl.java @@ -19,7 +19,6 @@ import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; import org.briarproject.briar.api.autodelete.AutoDeleteManager; -import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.client.ProtocolStateException; import org.briarproject.briar.api.conversation.ConversationManager; import org.briarproject.briar.api.sharing.Shareable; @@ -58,7 +57,6 @@ abstract class ProtocolEngineImpl private final ClientVersioningManager clientVersioningManager; private final MessageEncoder messageEncoder; - private final MessageTracker messageTracker; private final AutoDeleteManager autoDeleteManager; private final ConversationManager conversationManager; private final Clock clock; @@ -71,7 +69,6 @@ abstract class ProtocolEngineImpl ClientVersioningManager clientVersioningManager, MessageEncoder messageEncoder, MessageParser messageParser, - MessageTracker messageTracker, AutoDeleteManager autoDeleteManager, ConversationManager conversationManager, Clock clock, @@ -84,7 +81,6 @@ abstract class ProtocolEngineImpl this.clientVersioningManager = clientVersioningManager; this.messageEncoder = messageEncoder; this.messageParser = messageParser; - this.messageTracker = messageTracker; this.autoDeleteManager = autoDeleteManager; this.conversationManager = conversationManager; this.clock = clock; @@ -116,7 +112,7 @@ abstract class ProtocolEngineImpl // Send an INVITE message Message sent = sendInviteMessage(txn, s, text); // Track the message - messageTracker.trackOutgoingMessage(txn, sent); + conversationManager.trackOutgoingMessage(txn, sent); // Make the shareable visible to the contact try { setShareableVisibility(txn, s, VISIBLE); @@ -140,7 +136,7 @@ abstract class ProtocolEngineImpl } Message m; long localTimestamp = getTimestampForVisibleMessage(txn, s); - ContactId c = getContactId(txn, s.getContactGroupId()); + ContactId c = clientHelper.getContactId(txn, s.getContactGroupId()); if (contactSupportsAutoDeletion(txn, c)) { long timer = autoDeleteManager.getAutoDeleteTimer(txn, c, localTimestamp); @@ -190,7 +186,7 @@ abstract class ProtocolEngineImpl // Send a ACCEPT message Message sent = sendAcceptMessage(txn, s); // Track the message - messageTracker.trackOutgoingMessage(txn, sent); + conversationManager.trackOutgoingMessage(txn, sent); try { // Add and subscribe to the shareable addShareable(txn, inviteId); @@ -212,7 +208,7 @@ abstract class ProtocolEngineImpl throws DbException { Message m; long localTimestamp = getTimestampForVisibleMessage(txn, s); - ContactId c = getContactId(txn, s.getContactGroupId()); + ContactId c = clientHelper.getContactId(txn, s.getContactGroupId()); if (contactSupportsAutoDeletion(txn, c)) { long timer = autoDeleteManager.getAutoDeleteTimer(txn, c, localTimestamp); @@ -260,7 +256,7 @@ abstract class ProtocolEngineImpl // Send a DECLINE message Message sent = sendDeclineMessage(txn, s, isAutoDecline); // Track the message - messageTracker.trackOutgoingMessage(txn, sent); + conversationManager.trackOutgoingMessage(txn, sent); // Move to the START state return new Session(START, s.getContactGroupId(), s.getShareableId(), sent.getId(), s.getLastRemoteMessageId(), sent.getTimestamp(), @@ -271,7 +267,7 @@ abstract class ProtocolEngineImpl boolean isAutoDecline) throws DbException { Message m; long localTimestamp = getTimestampForVisibleMessage(txn, s); - ContactId c = getContactId(txn, s.getContactGroupId()); + ContactId c = clientHelper.getContactId(txn, s.getContactGroupId()); if (contactSupportsAutoDeletion(txn, c)) { long timer = autoDeleteManager.getAutoDeleteTimer(txn, c, localTimestamp); @@ -380,7 +376,7 @@ abstract class ProtocolEngineImpl markMessageVisibleInUi(txn, m.getId()); markMessageAvailableToAnswer(txn, m.getId(), available); // Track the message - messageTracker.trackMessage(txn, m.getContactGroupId(), + conversationManager.trackMessage(txn, m.getContactGroupId(), m.getTimestamp(), false); // Receive the auto-delete timer receiveAutoDeleteTimer(txn, m); @@ -407,7 +403,7 @@ abstract class ProtocolEngineImpl markMessageVisibleInUi(txn, m.getId()); markMessageAvailableToAnswer(txn, m.getId(), false); // Track the message - messageTracker.trackMessage(txn, m.getContactGroupId(), + conversationManager.trackMessage(txn, m.getContactGroupId(), m.getTimestamp(), false); // Receive the auto-delete timer receiveAutoDeleteTimer(txn, m); @@ -456,7 +452,7 @@ abstract class ProtocolEngineImpl // Mark the response visible in the UI markMessageVisibleInUi(txn, m.getId()); // Track the message - messageTracker.trackMessage(txn, m.getContactGroupId(), + conversationManager.trackMessage(txn, m.getContactGroupId(), m.getTimestamp(), false); // Receive the auto-delete timer receiveAutoDeleteTimer(txn, m); @@ -511,7 +507,7 @@ abstract class ProtocolEngineImpl // Mark the response visible in the UI markMessageVisibleInUi(txn, m.getId()); // Track the message - messageTracker.trackMessage(txn, m.getContactGroupId(), + conversationManager.trackMessage(txn, m.getContactGroupId(), m.getTimestamp(), false); // Receive the auto-delete timer receiveAutoDeleteTimer(txn, m); @@ -734,7 +730,7 @@ abstract class ProtocolEngineImpl */ private long getTimestampForVisibleMessage(Transaction txn, Session s) throws DbException { - ContactId c = getContactId(txn, s.getContactGroupId()); + ContactId c = clientHelper.getContactId(txn, s.getContactGroupId()); long conversationTimestamp = conversationManager.getTimestampForOutgoingMessage(txn, c); return max(conversationTimestamp, getSessionTimestamp(s) + 1); @@ -758,20 +754,11 @@ abstract class ProtocolEngineImpl private void receiveAutoDeleteTimer(Transaction txn, DeletableSharingMessage m) throws DbException { - ContactId c = getContactId(txn, m.getContactGroupId()); + ContactId c = clientHelper.getContactId(txn, m.getContactGroupId()); autoDeleteManager.receiveAutoDeleteTimer(txn, c, m.getAutoDeleteTimer(), m.getTimestamp()); } - private ContactId getContactId(Transaction txn, GroupId contactGroupId) - throws DbException { - try { - return clientHelper.getContactId(txn, contactGroupId); - } catch (FormatException e) { - throw new DbException(e); - } - } - private boolean contactSupportsAutoDeletion(Transaction txn, ContactId c) throws DbException { int minorVersion = clientVersioningManager.getClientMinorVersion(txn, c, diff --git a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/AbstractProtocolEngineTest.java b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/AbstractProtocolEngineTest.java index b106ec10b..65c70edf1 100644 --- a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/AbstractProtocolEngineTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/AbstractProtocolEngineTest.java @@ -60,7 +60,6 @@ abstract class AbstractProtocolEngineTest extends BrambleMockTestCase { context.mock(GroupMessageFactory.class); final IdentityManager identityManager = context.mock(IdentityManager.class); final MessageEncoder messageEncoder = context.mock(MessageEncoder.class); - final MessageTracker messageTracker = context.mock(MessageTracker.class); final AutoDeleteManager autoDeleteManager = context.mock(AutoDeleteManager.class); final ConversationManager conversationManager = @@ -264,7 +263,7 @@ abstract class AbstractProtocolEngineTest extends BrambleMockTestCase { void expectTrackUnreadMessage(long timestamp) throws Exception { context.checking(new Expectations() {{ - oneOf(messageTracker).trackMessage(txn, contactGroupId, timestamp, + oneOf(conversationManager).trackMessage(txn, contactGroupId, timestamp, false); }}); } diff --git a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/CreatorProtocolEngineTest.java b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/CreatorProtocolEngineTest.java index e47642e2e..fc8f1d5bb 100644 --- a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/CreatorProtocolEngineTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/CreatorProtocolEngineTest.java @@ -24,7 +24,7 @@ public class CreatorProtocolEngineTest extends AbstractProtocolEngineTest { new CreatorProtocolEngine(db, clientHelper, clientVersioningManager, privateGroupManager, privateGroupFactory, groupMessageFactory, identityManager, messageParser, - messageEncoder, messageTracker, autoDeleteManager, + messageEncoder, autoDeleteManager, conversationManager, clock); private CreatorSession getDefaultSession(CreatorState state) { @@ -76,7 +76,7 @@ public class CreatorProtocolEngineTest extends AbstractProtocolEngineTest { will(returnValue(privateGroupGroup)); oneOf(privateGroupFactory).parsePrivateGroup(privateGroupGroup); will(returnValue(privateGroup)); - oneOf(messageTracker).trackOutgoingMessage(txn, message); + oneOf(conversationManager).trackOutgoingMessage(txn, message); }}); expectSendInviteMessage(text); } diff --git a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngineTest.java b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngineTest.java index 47a749844..0c0b69e8f 100644 --- a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngineTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngineTest.java @@ -43,7 +43,7 @@ public class InviteeProtocolEngineTest extends AbstractProtocolEngineTest { new InviteeProtocolEngine(db, clientHelper, clientVersioningManager, privateGroupManager, privateGroupFactory, groupMessageFactory, identityManager, messageParser, - messageEncoder, messageTracker, autoDeleteManager, + messageEncoder, autoDeleteManager, conversationManager, clock); private final LocalAuthor localAuthor = getLocalAuthor(); @@ -148,7 +148,7 @@ public class InviteeProtocolEngineTest extends AbstractProtocolEngineTest { }}); expectSendJoinMessage(properJoinMessage, true); context.checking(new Expectations() {{ - oneOf(messageTracker).trackOutgoingMessage(txn, message); + oneOf(conversationManager).trackOutgoingMessage(txn, message); oneOf(messageParser).getInviteMessage(txn, lastRemoteMessageId); will(returnValue(inviteMessage)); oneOf(privateGroupFactory) @@ -219,7 +219,7 @@ public class InviteeProtocolEngineTest extends AbstractProtocolEngineTest { expectMarkMessageAvailableToAnswer(lastRemoteMessageId, false); expectSendLeaveMessage(true); context.checking(new Expectations() {{ - oneOf(messageTracker).trackOutgoingMessage(txn, message); + oneOf(conversationManager).trackOutgoingMessage(txn, message); }}); InviteeSession session = getDefaultSession(INVITED); diff --git a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/PeerProtocolEngineTest.java b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/PeerProtocolEngineTest.java index 6118dd32c..3c7c2e889 100644 --- a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/PeerProtocolEngineTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/PeerProtocolEngineTest.java @@ -27,7 +27,7 @@ public class PeerProtocolEngineTest extends AbstractProtocolEngineTest { new PeerProtocolEngine(db, clientHelper, clientVersioningManager, privateGroupManager, privateGroupFactory, groupMessageFactory, identityManager, messageParser, - messageEncoder, messageTracker, autoDeleteManager, + messageEncoder, autoDeleteManager, conversationManager, clock); private PeerSession getDefaultSession(PeerState state) {