From 457c30f3f2cf861bcea7d38ca49b7f4205ef6ef0 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Wed, 5 Oct 2016 12:09:08 -0300 Subject: [PATCH] Add GroupId to conversation items --- .../android/contact/ConversationActivity.java | 5 +- .../contact/ConversationIntroductionItem.java | 2 +- .../android/contact/ConversationItem.java | 50 +++++++++++-------- .../contact/ConversationMessageItem.java | 2 +- .../contact/ConversationNoticeInItem.java | 7 +-- .../contact/ConversationNoticeItem.java | 6 ++- .../contact/ConversationNoticeOutItem.java | 7 +-- .../ConversationShareableInvitationItem.java | 2 +- .../api/blogs/BlogInvitationRequest.java | 12 ++--- .../api/blogs/BlogInvitationResponse.java | 8 +-- .../api/clients/BaseMessageHeader.java | 12 ++++- .../api/forum/ForumInvitationRequest.java | 9 ++-- .../api/forum/ForumInvitationResponse.java | 8 +-- .../api/introduction/IntroductionMessage.java | 7 +-- .../api/introduction/IntroductionRequest.java | 11 ++-- .../introduction/IntroductionResponse.java | 8 +-- .../api/messaging/PrivateMessageHeader.java | 5 +- .../api/sharing/InvitationMessage.java | 7 +-- .../api/sharing/InvitationRequest.java | 5 +- .../api/sharing/InvitationResponse.java | 7 +-- .../introduction/IntroduceeEngine.java | 7 ++- .../introduction/IntroducerEngine.java | 8 +-- .../introduction/IntroductionManagerImpl.java | 4 +- .../messaging/MessagingManagerImpl.java | 10 ++-- .../sharing/BlogSharingManagerImpl.java | 21 ++++---- .../sharing/ForumSharingManagerImpl.java | 25 +++++----- .../sharing/SharingManagerImpl.java | 16 +++--- 27 files changed, 158 insertions(+), 113 deletions(-) diff --git a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java index 6f3f1f4e89..1329892656 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java @@ -681,11 +681,10 @@ public class ConversationActivity extends BriarActivity long duration = System.currentTimeMillis() - now; if (LOG.isLoggable(INFO)) LOG.info("Storing message took " + duration + " ms"); - MessageId id = m.getMessage().getId(); PrivateMessageHeader h = new PrivateMessageHeader(id, - m.getMessage().getTimestamp(), m.getContentType(), - true, false, false, false); + groupId, m.getMessage().getTimestamp(), + m.getContentType(), true, false, false, false); ConversationMessageItem item = ConversationItem.from(h); item.setBody(body); bodyCache.put(id, body); diff --git a/briar-android/src/org/briarproject/android/contact/ConversationIntroductionItem.java b/briar-android/src/org/briarproject/android/contact/ConversationIntroductionItem.java index 5fb30a23d9..123887df8d 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationIntroductionItem.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationIntroductionItem.java @@ -9,7 +9,7 @@ abstract class ConversationIntroductionItem extends ConversationItem { private boolean answered; ConversationIntroductionItem(IntroductionRequest ir) { - super(ir.getMessageId(), ir.getTimestamp()); + super(ir.getMessageId(), ir.getGroupId(), ir.getTimestamp()); this.ir = ir; this.answered = ir.wasAnswered(); diff --git a/briar-android/src/org/briarproject/android/contact/ConversationItem.java b/briar-android/src/org/briarproject/android/contact/ConversationItem.java index 083dc6bf78..99b9d116d3 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationItem.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationItem.java @@ -12,6 +12,7 @@ import org.briarproject.api.messaging.PrivateMessageHeader; import org.briarproject.api.sharing.InvitationMessage; import org.briarproject.api.sharing.InvitationRequest; import org.briarproject.api.sharing.InvitationResponse; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; // This class is not thread-safe @@ -31,10 +32,12 @@ public abstract class ConversationItem { final static int BLOG_INVITATION_OUT = 10; private MessageId id; + private GroupId groupId; private long time; - public ConversationItem(MessageId id, long time) { + public ConversationItem(MessageId id, GroupId groupId, long time) { this.id = id; + this.groupId = groupId; this.time = time; } @@ -44,6 +47,10 @@ public abstract class ConversationItem { return id; } + public GroupId getGroupId() { + return groupId; + } + long getTime() { return time; } @@ -78,8 +85,9 @@ public abstract class ConversationItem { R.string.introduction_response_declined_sent, ir.getName()); } - return new ConversationNoticeOutItem(ir.getMessageId(), text, - ir.getTimestamp(), ir.isSent(), ir.isSeen()); + return new ConversationNoticeOutItem(ir.getMessageId(), + ir.getGroupId(), text, ir.getTimestamp(), ir.isSent(), + ir.isSeen()); } else { String text; if (ir.wasAccepted()) { @@ -97,8 +105,8 @@ public abstract class ConversationItem { contactName, ir.getName()); } } - return new ConversationNoticeInItem(ir.getMessageId(), text, - ir.getTimestamp(), ir.isRead()); + return new ConversationNoticeInItem(ir.getMessageId(), + ir.getGroupId(), text, ir.getTimestamp(), ir.isRead()); } } @@ -137,8 +145,8 @@ public abstract class ConversationItem { R.string.forum_invitation_response_declined_sent, contactName); } - return new ConversationNoticeOutItem(fir.getId(), text, - fir.getTimestamp(), fir.isSent(), fir.isSeen()); + return new ConversationNoticeOutItem(fir.getId(), fir.getGroupId(), + text, fir.getTimestamp(), fir.isSent(), fir.isSeen()); } else { String text; if (fir.wasAccepted()) { @@ -150,8 +158,8 @@ public abstract class ConversationItem { R.string.forum_invitation_response_declined_received, contactName); } - return new ConversationNoticeInItem(fir.getId(), text, - fir.getTimestamp(), fir.isRead()); + return new ConversationNoticeInItem(fir.getId(), fir.getGroupId(), + text, fir.getTimestamp(), fir.isRead()); } } @@ -169,8 +177,8 @@ public abstract class ConversationItem { R.string.blogs_sharing_response_declined_sent, contactName); } - return new ConversationNoticeOutItem(fir.getId(), text, - fir.getTimestamp(), fir.isSent(), fir.isSeen()); + return new ConversationNoticeOutItem(fir.getId(), fir.getGroupId(), + text, fir.getTimestamp(), fir.isSent(), fir.isSeen()); } else { String text; if (fir.wasAccepted()) { @@ -182,8 +190,8 @@ public abstract class ConversationItem { R.string.blogs_sharing_response_declined_received, contactName); } - return new ConversationNoticeInItem(fir.getId(), text, - fir.getTimestamp(), fir.isRead()); + return new ConversationNoticeInItem(fir.getId(), fir.getGroupId(), + text, fir.getTimestamp(), fir.isRead()); } } @@ -193,10 +201,10 @@ public abstract class ConversationItem { */ public static ConversationItem from(IntroductionMessage im) { if (im.isLocal()) - return new ConversationNoticeOutItem(im.getMessageId(), "", - im.getTimestamp(), false, false); - return new ConversationNoticeInItem(im.getMessageId(), "", - im.getTimestamp(), im.isRead()); + return new ConversationNoticeOutItem(im.getMessageId(), + im.getGroupId(), "", im.getTimestamp(), false, false); + return new ConversationNoticeInItem(im.getMessageId(), im.getGroupId(), + "", im.getTimestamp(), im.isRead()); } /** @@ -205,9 +213,9 @@ public abstract class ConversationItem { */ public static ConversationItem from(InvitationMessage im) { if (im.isLocal()) - return new ConversationNoticeOutItem(im.getId(), "", - im.getTimestamp(), false, false); - return new ConversationNoticeInItem(im.getId(), "", + return new ConversationNoticeOutItem(im.getId(), im.getGroupId(), + "", im.getTimestamp(), false, false); + return new ConversationNoticeInItem(im.getId(), im.getGroupId(), "", im.getTimestamp(), im.isRead()); } @@ -228,6 +236,8 @@ public abstract class ConversationItem { MessageId getId(); + GroupId getGroupId(); + boolean isRead(); void setRead(boolean read); diff --git a/briar-android/src/org/briarproject/android/contact/ConversationMessageItem.java b/briar-android/src/org/briarproject/android/contact/ConversationMessageItem.java index b7a6aac44a..b4dc64b6cc 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationMessageItem.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationMessageItem.java @@ -9,7 +9,7 @@ abstract class ConversationMessageItem extends ConversationItem { private byte[] body; ConversationMessageItem(PrivateMessageHeader header) { - super(header.getId(), header.getTimestamp()); + super(header.getId(), header.getGroupId(), header.getTimestamp()); this.header = header; body = null; diff --git a/briar-android/src/org/briarproject/android/contact/ConversationNoticeInItem.java b/briar-android/src/org/briarproject/android/contact/ConversationNoticeInItem.java index bfa83160b1..6e8fbfc8bc 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationNoticeInItem.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationNoticeInItem.java @@ -1,5 +1,6 @@ package org.briarproject.android.contact; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; // This class is not thread-safe @@ -8,9 +9,9 @@ class ConversationNoticeInItem extends ConversationNoticeItem private boolean read; - ConversationNoticeInItem(MessageId id, String text, long time, - boolean read) { - super(id, text, time); + ConversationNoticeInItem(MessageId id, GroupId groupId, String text, + long time, boolean read) { + super(id, groupId, text, time); this.read = read; } diff --git a/briar-android/src/org/briarproject/android/contact/ConversationNoticeItem.java b/briar-android/src/org/briarproject/android/contact/ConversationNoticeItem.java index b722ab95d2..758c311d01 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationNoticeItem.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationNoticeItem.java @@ -1,13 +1,15 @@ package org.briarproject.android.contact; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; abstract class ConversationNoticeItem extends ConversationItem { private final String text; - ConversationNoticeItem(MessageId id, String text, long time) { - super(id, time); + ConversationNoticeItem(MessageId id, GroupId groupId, String text, + long time) { + super(id, groupId, time); this.text = text; } diff --git a/briar-android/src/org/briarproject/android/contact/ConversationNoticeOutItem.java b/briar-android/src/org/briarproject/android/contact/ConversationNoticeOutItem.java index a5bdb5e20b..95ed78510f 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationNoticeOutItem.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationNoticeOutItem.java @@ -1,5 +1,6 @@ package org.briarproject.android.contact; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; // This class is not thread-safe @@ -8,9 +9,9 @@ class ConversationNoticeOutItem extends ConversationNoticeItem private boolean sent, seen; - ConversationNoticeOutItem(MessageId id, String text, long time, - boolean sent, boolean seen) { - super(id, text, time); + ConversationNoticeOutItem(MessageId id, GroupId groupId, String text, + long time, boolean sent, boolean seen) { + super(id, groupId, text, time); this.sent = sent; this.seen = seen; diff --git a/briar-android/src/org/briarproject/android/contact/ConversationShareableInvitationItem.java b/briar-android/src/org/briarproject/android/contact/ConversationShareableInvitationItem.java index a2e9b91cf0..60f8a70b1c 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationShareableInvitationItem.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationShareableInvitationItem.java @@ -7,7 +7,7 @@ abstract class ConversationShareableInvitationItem extends ConversationItem { private final InvitationRequest fim; ConversationShareableInvitationItem(InvitationRequest fim) { - super(fim.getId(), fim.getTimestamp()); + super(fim.getId(), fim.getGroupId(), fim.getTimestamp()); this.fim = fim; } diff --git a/briar-api/src/org/briarproject/api/blogs/BlogInvitationRequest.java b/briar-api/src/org/briarproject/api/blogs/BlogInvitationRequest.java index 0f2970b258..3fc41b9ddc 100644 --- a/briar-api/src/org/briarproject/api/blogs/BlogInvitationRequest.java +++ b/briar-api/src/org/briarproject/api/blogs/BlogInvitationRequest.java @@ -2,8 +2,8 @@ package org.briarproject.api.blogs; import org.briarproject.api.clients.SessionId; import org.briarproject.api.contact.ContactId; -import org.briarproject.api.sharing.InvitationMessage; import org.briarproject.api.sharing.InvitationRequest; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; public class BlogInvitationRequest extends InvitationRequest { @@ -11,12 +11,12 @@ public class BlogInvitationRequest extends InvitationRequest { private final String blogAuthorName; public BlogInvitationRequest(MessageId id, SessionId sessionId, - ContactId contactId, String blogAuthorName, String message, - boolean available, long time, boolean local, boolean sent, - boolean seen, boolean read) { + GroupId groupId, ContactId contactId, String blogAuthorName, + String message, boolean available, long time, boolean local, + boolean sent, boolean seen, boolean read) { - super(id, sessionId, contactId, message, available, time, local, sent, - seen, read); + super(id, sessionId, groupId, contactId, message, available, time, + local, sent, seen, read); this.blogAuthorName = blogAuthorName; } diff --git a/briar-api/src/org/briarproject/api/blogs/BlogInvitationResponse.java b/briar-api/src/org/briarproject/api/blogs/BlogInvitationResponse.java index e3e7cdf692..523aeed260 100644 --- a/briar-api/src/org/briarproject/api/blogs/BlogInvitationResponse.java +++ b/briar-api/src/org/briarproject/api/blogs/BlogInvitationResponse.java @@ -3,15 +3,17 @@ package org.briarproject.api.blogs; import org.briarproject.api.clients.SessionId; import org.briarproject.api.contact.ContactId; import org.briarproject.api.sharing.InvitationResponse; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; public class BlogInvitationResponse extends InvitationResponse { public BlogInvitationResponse(MessageId id, SessionId sessionId, - ContactId contactId, boolean accept, long time, boolean local, - boolean sent, boolean seen, boolean read) { + GroupId groupId, ContactId contactId, boolean accept, long time, + boolean local, boolean sent, boolean seen, boolean read) { - super(id, sessionId, contactId, accept, time, local, sent, seen, read); + super(id, sessionId, groupId, contactId, accept, time, local, sent, + seen, read); } } diff --git a/briar-api/src/org/briarproject/api/clients/BaseMessageHeader.java b/briar-api/src/org/briarproject/api/clients/BaseMessageHeader.java index 852cf0b5dc..fa8b6bc860 100644 --- a/briar-api/src/org/briarproject/api/clients/BaseMessageHeader.java +++ b/briar-api/src/org/briarproject/api/clients/BaseMessageHeader.java @@ -1,17 +1,20 @@ package org.briarproject.api.clients; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; public abstract class BaseMessageHeader { private final MessageId id; + private final GroupId groupId; private final long timestamp; private final boolean local, read, sent, seen; - public BaseMessageHeader(MessageId id, long timestamp, boolean local, - boolean read, boolean sent, boolean seen) { + public BaseMessageHeader(MessageId id, GroupId groupId, long timestamp, + boolean local, boolean read, boolean sent, boolean seen) { this.id = id; + this.groupId = groupId; this.timestamp = timestamp; this.local = local; this.read = read; @@ -23,6 +26,10 @@ public abstract class BaseMessageHeader { return id; } + public GroupId getGroupId() { + return groupId; + } + public long getTimestamp() { return timestamp; } @@ -42,4 +49,5 @@ public abstract class BaseMessageHeader { public boolean isSeen() { return seen; } + } diff --git a/briar-api/src/org/briarproject/api/forum/ForumInvitationRequest.java b/briar-api/src/org/briarproject/api/forum/ForumInvitationRequest.java index 7099bf37b2..3e90116c0b 100644 --- a/briar-api/src/org/briarproject/api/forum/ForumInvitationRequest.java +++ b/briar-api/src/org/briarproject/api/forum/ForumInvitationRequest.java @@ -3,6 +3,7 @@ package org.briarproject.api.forum; import org.briarproject.api.clients.SessionId; import org.briarproject.api.contact.ContactId; import org.briarproject.api.sharing.InvitationRequest; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; import org.jetbrains.annotations.Nullable; @@ -10,13 +11,13 @@ public class ForumInvitationRequest extends InvitationRequest { private final String forumName; - public ForumInvitationRequest(@Nullable MessageId id, SessionId sessionId, - ContactId contactId, String forumName, String message, + public ForumInvitationRequest(MessageId id, SessionId sessionId, + GroupId groupId, ContactId contactId, String forumName, String message, boolean available, long time, boolean local, boolean sent, boolean seen, boolean read) { - super(id, sessionId, contactId, message, available, time, local, sent, - seen, read); + super(id, sessionId, groupId, contactId, message, available, time, + local, sent, seen, read); this.forumName = forumName; } diff --git a/briar-api/src/org/briarproject/api/forum/ForumInvitationResponse.java b/briar-api/src/org/briarproject/api/forum/ForumInvitationResponse.java index 1a76ccb65f..059c7d385b 100644 --- a/briar-api/src/org/briarproject/api/forum/ForumInvitationResponse.java +++ b/briar-api/src/org/briarproject/api/forum/ForumInvitationResponse.java @@ -3,16 +3,18 @@ package org.briarproject.api.forum; import org.briarproject.api.clients.SessionId; import org.briarproject.api.contact.ContactId; import org.briarproject.api.sharing.InvitationResponse; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; import org.jetbrains.annotations.Nullable; public class ForumInvitationResponse extends InvitationResponse { - public ForumInvitationResponse(@Nullable MessageId id, SessionId sessionId, - ContactId contactId, boolean accept, long time, boolean local, + public ForumInvitationResponse(MessageId id, SessionId sessionId, + GroupId groupId, ContactId contactId, boolean accept, long time, boolean local, boolean sent, boolean seen, boolean read) { - super(id, sessionId, contactId, accept, time, local, sent, seen, read); + super(id, sessionId, groupId, contactId, accept, time, local, sent, + seen, read); } } diff --git a/briar-api/src/org/briarproject/api/introduction/IntroductionMessage.java b/briar-api/src/org/briarproject/api/introduction/IntroductionMessage.java index 7ddf97aead..e218e1d095 100644 --- a/briar-api/src/org/briarproject/api/introduction/IntroductionMessage.java +++ b/briar-api/src/org/briarproject/api/introduction/IntroductionMessage.java @@ -2,6 +2,7 @@ package org.briarproject.api.introduction; import org.briarproject.api.clients.SessionId; import org.briarproject.api.clients.BaseMessageHeader; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; import static org.briarproject.api.introduction.IntroductionConstants.ROLE_INTRODUCEE; @@ -14,10 +15,10 @@ import static org.briarproject.api.introduction.IntroductionConstants.ROLE_INTRO private final int role; public IntroductionMessage(SessionId sessionId, MessageId messageId, - int role, long time, boolean local, boolean sent, boolean seen, - boolean read) { + GroupId groupId, int role, long time, boolean local, boolean sent, + boolean seen, boolean read) { - super(messageId, time, local, read, sent, seen); + super(messageId, groupId, time, local, read, sent, seen); this.sessionId = sessionId; this.messageId = messageId; this.role = role; diff --git a/briar-api/src/org/briarproject/api/introduction/IntroductionRequest.java b/briar-api/src/org/briarproject/api/introduction/IntroductionRequest.java index 912f8a3fba..1942b7f3f7 100644 --- a/briar-api/src/org/briarproject/api/introduction/IntroductionRequest.java +++ b/briar-api/src/org/briarproject/api/introduction/IntroductionRequest.java @@ -2,6 +2,7 @@ package org.briarproject.api.introduction; import org.briarproject.api.clients.SessionId; import org.briarproject.api.identity.AuthorId; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; public class IntroductionRequest extends IntroductionResponse { @@ -10,13 +11,13 @@ public class IntroductionRequest extends IntroductionResponse { private final boolean answered, exists, introducesOtherIdentity; public IntroductionRequest(SessionId sessionId, MessageId messageId, - int role, long time, boolean local, boolean sent, boolean seen, - boolean read, AuthorId authorId, String name, boolean accepted, - String message, boolean answered, boolean exists, + GroupId groupId, int role, long time, boolean local, boolean sent, + boolean seen, boolean read, AuthorId authorId, String name, + boolean accepted, String message, boolean answered, boolean exists, boolean introducesOtherIdentity) { - super(sessionId, messageId, role, time, local, sent, seen, read, - authorId, name, accepted); + super(sessionId, messageId, groupId, role, time, local, sent, seen, + read, authorId, name, accepted); this.message = message; this.answered = answered; diff --git a/briar-api/src/org/briarproject/api/introduction/IntroductionResponse.java b/briar-api/src/org/briarproject/api/introduction/IntroductionResponse.java index be4cb57072..c2423ce2e6 100644 --- a/briar-api/src/org/briarproject/api/introduction/IntroductionResponse.java +++ b/briar-api/src/org/briarproject/api/introduction/IntroductionResponse.java @@ -2,6 +2,7 @@ package org.briarproject.api.introduction; import org.briarproject.api.clients.SessionId; import org.briarproject.api.identity.AuthorId; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; public class IntroductionResponse extends IntroductionMessage { @@ -11,11 +12,12 @@ public class IntroductionResponse extends IntroductionMessage { private final boolean accepted; public IntroductionResponse(SessionId sessionId, MessageId messageId, - int role, long time, boolean local, boolean sent, boolean seen, - boolean read, AuthorId remoteAuthorId, String name, + GroupId groupId, int role, long time, boolean local, boolean sent, + boolean seen, boolean read, AuthorId remoteAuthorId, String name, boolean accepted) { - super(sessionId, messageId, role, time, local, sent, seen, read); + super(sessionId, messageId, groupId, role, time, local, sent, seen, + read); this.remoteAuthorId = remoteAuthorId; this.name = name; diff --git a/briar-api/src/org/briarproject/api/messaging/PrivateMessageHeader.java b/briar-api/src/org/briarproject/api/messaging/PrivateMessageHeader.java index e30a0ba636..9fd76de6c8 100644 --- a/briar-api/src/org/briarproject/api/messaging/PrivateMessageHeader.java +++ b/briar-api/src/org/briarproject/api/messaging/PrivateMessageHeader.java @@ -1,17 +1,18 @@ package org.briarproject.api.messaging; import org.briarproject.api.clients.BaseMessageHeader; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; public class PrivateMessageHeader extends BaseMessageHeader { private final String contentType; - public PrivateMessageHeader(MessageId id, long timestamp, + public PrivateMessageHeader(MessageId id, GroupId groupId, long timestamp, String contentType, boolean local, boolean read, boolean sent, boolean seen) { - super(id, timestamp, local, read, sent, seen); + super(id, groupId, timestamp, local, read, sent, seen); this.contentType = contentType; } diff --git a/briar-api/src/org/briarproject/api/sharing/InvitationMessage.java b/briar-api/src/org/briarproject/api/sharing/InvitationMessage.java index adc8d8932b..d67d479cd8 100644 --- a/briar-api/src/org/briarproject/api/sharing/InvitationMessage.java +++ b/briar-api/src/org/briarproject/api/sharing/InvitationMessage.java @@ -1,8 +1,9 @@ package org.briarproject.api.sharing; +import org.briarproject.api.clients.BaseMessageHeader; import org.briarproject.api.clients.SessionId; import org.briarproject.api.contact.ContactId; -import org.briarproject.api.clients.BaseMessageHeader; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; public abstract class InvitationMessage extends BaseMessageHeader { @@ -10,11 +11,11 @@ public abstract class InvitationMessage extends BaseMessageHeader { private final SessionId sessionId; private final ContactId contactId; - public InvitationMessage(MessageId id, SessionId sessionId, + public InvitationMessage(MessageId id, SessionId sessionId, GroupId groupId, ContactId contactId, long time, boolean local, boolean sent, boolean seen, boolean read) { - super(id, time, local, read, sent, seen); + super(id, groupId, time, local, read, sent, seen); this.sessionId = sessionId; this.contactId = contactId; } diff --git a/briar-api/src/org/briarproject/api/sharing/InvitationRequest.java b/briar-api/src/org/briarproject/api/sharing/InvitationRequest.java index 6fe51d88e9..203ca6ec60 100644 --- a/briar-api/src/org/briarproject/api/sharing/InvitationRequest.java +++ b/briar-api/src/org/briarproject/api/sharing/InvitationRequest.java @@ -2,6 +2,7 @@ package org.briarproject.api.sharing; import org.briarproject.api.clients.SessionId; import org.briarproject.api.contact.ContactId; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; import org.jetbrains.annotations.Nullable; @@ -10,12 +11,12 @@ public abstract class InvitationRequest extends InvitationMessage { private final String message; private final boolean available; - public InvitationRequest(MessageId id, SessionId sessionId, + public InvitationRequest(MessageId id, SessionId sessionId, GroupId groupId, ContactId contactId, String message, boolean available, long time, boolean local, boolean sent, boolean seen, boolean read) { - super(id, sessionId, contactId, time, local, read, sent, seen); + super(id, sessionId, groupId, contactId, time, local, read, sent, seen); this.message = message; this.available = available; } diff --git a/briar-api/src/org/briarproject/api/sharing/InvitationResponse.java b/briar-api/src/org/briarproject/api/sharing/InvitationResponse.java index cf4d53774e..16a769398b 100644 --- a/briar-api/src/org/briarproject/api/sharing/InvitationResponse.java +++ b/briar-api/src/org/briarproject/api/sharing/InvitationResponse.java @@ -2,6 +2,7 @@ package org.briarproject.api.sharing; import org.briarproject.api.clients.SessionId; import org.briarproject.api.contact.ContactId; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; public abstract class InvitationResponse extends InvitationMessage { @@ -9,10 +10,10 @@ public abstract class InvitationResponse extends InvitationMessage { private final boolean accept; public InvitationResponse(MessageId id, SessionId sessionId, - ContactId contactId, boolean accept, long time, boolean local, - boolean sent, boolean seen, boolean read) { + GroupId groupId, ContactId contactId, boolean accept, long time, + boolean local, boolean sent, boolean seen, boolean read) { - super(id, sessionId, contactId, time, local, read, sent, seen); + super(id, sessionId, groupId, contactId, time, local, read, sent, seen); this.accept = accept; } diff --git a/briar-core/src/org/briarproject/introduction/IntroduceeEngine.java b/briar-core/src/org/briarproject/introduction/IntroduceeEngine.java index 8f77539c79..4115fe0c09 100644 --- a/briar-core/src/org/briarproject/introduction/IntroduceeEngine.java +++ b/briar-core/src/org/briarproject/introduction/IntroduceeEngine.java @@ -12,6 +12,7 @@ import org.briarproject.api.introduction.IntroduceeAction; import org.briarproject.api.introduction.IntroduceeProtocolState; import org.briarproject.api.introduction.IntroductionRequest; import org.briarproject.api.clients.SessionId; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; import java.util.ArrayList; @@ -343,6 +344,7 @@ public class IntroduceeEngine SessionId sessionId = new SessionId(localState.getRaw(SESSION_ID)); MessageId messageId = new MessageId(msg.getRaw(MESSAGE_ID)); + GroupId groupId = new GroupId(msg.getRaw(GROUP_ID)); long time = msg.getLong(MESSAGE_TIME); String name = msg.getString(NAME); String message = msg.getOptionalString(MSG); @@ -351,8 +353,9 @@ public class IntroduceeEngine localState.getBoolean(REMOTE_AUTHOR_IS_US); IntroductionRequest ir = new IntroductionRequest(sessionId, messageId, - ROLE_INTRODUCEE, time, false, false, false, false, authorId, - name, false, message, false, exists, introducesOtherIdentity); + groupId, ROLE_INTRODUCEE, time, false, false, false, false, + authorId, name, false, message, false, exists, + introducesOtherIdentity); return new IntroductionRequestReceivedEvent(contactId, ir); } diff --git a/briar-core/src/org/briarproject/introduction/IntroducerEngine.java b/briar-core/src/org/briarproject/introduction/IntroducerEngine.java index a431fd7e46..0f180a622f 100644 --- a/briar-core/src/org/briarproject/introduction/IntroducerEngine.java +++ b/briar-core/src/org/briarproject/introduction/IntroducerEngine.java @@ -12,6 +12,7 @@ import org.briarproject.api.introduction.IntroducerAction; import org.briarproject.api.introduction.IntroducerProtocolState; import org.briarproject.api.introduction.IntroductionResponse; import org.briarproject.api.clients.SessionId; +import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; import java.util.ArrayList; @@ -298,14 +299,15 @@ public class IntroducerEngine SessionId sessionId = new SessionId(localState.getRaw(SESSION_ID)); MessageId messageId = new MessageId(msg.getRaw(MESSAGE_ID)); + GroupId groupId = new GroupId(msg.getRaw(GROUP_ID)); long time = msg.getLong(MESSAGE_TIME); String name = getOtherContact(localState, msg); boolean accept = msg.getBoolean(ACCEPT); IntroductionResponse ir = - new IntroductionResponse(sessionId, messageId, ROLE_INTRODUCER, - time, false, false, false, false, authorId, name, - accept); + new IntroductionResponse(sessionId, messageId, groupId, + ROLE_INTRODUCER, time, false, false, false, false, + authorId, name, accept); return new IntroductionResponseReceivedEvent(contactId, ir); } diff --git a/briar-core/src/org/briarproject/introduction/IntroductionManagerImpl.java b/briar-core/src/org/briarproject/introduction/IntroductionManagerImpl.java index 6c44e83e6b..e44472f8c7 100644 --- a/briar-core/src/org/briarproject/introduction/IntroductionManagerImpl.java +++ b/briar-core/src/org/briarproject/introduction/IntroductionManagerImpl.java @@ -415,7 +415,7 @@ class IntroductionManagerImpl extends BdfIncomingMessageHook name = state.getString(NAME); } IntroductionResponse ir = new IntroductionResponse( - sessionId, messageId, role, time, local, + sessionId, messageId, g, role, time, local, s.isSent(), s.isSeen(), read, authorId, name, accepted); list.add(ir); @@ -445,7 +445,7 @@ class IntroductionManagerImpl extends BdfIncomingMessageHook state.getBoolean(REMOTE_AUTHOR_IS_US); } IntroductionRequest ir = new IntroductionRequest( - sessionId, messageId, role, time, local, + sessionId, messageId, g, role, time, local, s.isSent(), s.isSeen(), read, authorId, name, accepted, message, answered, exists, introducesOtherIdentity); diff --git a/briar-core/src/org/briarproject/messaging/MessagingManagerImpl.java b/briar-core/src/org/briarproject/messaging/MessagingManagerImpl.java index d5bc6db1d3..9e2918d0fa 100644 --- a/briar-core/src/org/briarproject/messaging/MessagingManagerImpl.java +++ b/briar-core/src/org/briarproject/messaging/MessagingManagerImpl.java @@ -101,7 +101,8 @@ class MessagingManagerImpl extends BdfIncomingMessageHook boolean local = meta.getBoolean("local"); boolean read = meta.getBoolean(MSG_KEY_READ); PrivateMessageHeader header = new PrivateMessageHeader( - m.getId(), timestamp, contentType, local, read, false, false); + m.getId(), m.getGroupId(), timestamp, contentType, local, read, + false, false); PrivateMessageReceivedEvent event = new PrivateMessageReceivedEvent( header, groupId); txn.attach(event); @@ -159,9 +160,10 @@ class MessagingManagerImpl extends BdfIncomingMessageHook throws DbException { Map<MessageId, BdfDictionary> metadata; Collection<MessageStatus> statuses; + GroupId g; Transaction txn = db.startTransaction(true); try { - GroupId g = getContactGroup(db.getContact(txn, c)).getId(); + g = getContactGroup(db.getContact(txn, c)).getId(); metadata = clientHelper.getMessageMetadataAsDictionary(txn, g); statuses = db.getMessageStatus(txn, c, g); txn.setComplete(); @@ -181,8 +183,8 @@ class MessagingManagerImpl extends BdfIncomingMessageHook String contentType = meta.getString("contentType"); boolean local = meta.getBoolean("local"); boolean read = meta.getBoolean("read"); - headers.add(new PrivateMessageHeader(id, timestamp, contentType, - local, read, s.isSent(), s.isSeen())); + headers.add(new PrivateMessageHeader(id, g, timestamp, + contentType, local, read, s.isSent(), s.isSeen())); } catch (FormatException e) { throw new DbException(e); } diff --git a/briar-core/src/org/briarproject/sharing/BlogSharingManagerImpl.java b/briar-core/src/org/briarproject/sharing/BlogSharingManagerImpl.java index a596bcb2c3..eb492cc610 100644 --- a/briar-core/src/org/briarproject/sharing/BlogSharingManagerImpl.java +++ b/briar-core/src/org/briarproject/sharing/BlogSharingManagerImpl.java @@ -109,17 +109,18 @@ class BlogSharingManagerImpl extends BlogInvitation msg, ContactId contactId, boolean available, long time, boolean local, boolean sent, boolean seen, boolean read) { - return new BlogInvitationRequest(id, msg.getSessionId(), contactId, - msg.getBlogAuthorName(), msg.getMessage(), available, time, - local, sent, seen, read); + return new BlogInvitationRequest(id, msg.getSessionId(), + msg.getGroupId(), contactId, msg.getBlogAuthorName(), + msg.getMessage(), available, time, local, sent, seen, read); } @Override protected InvitationMessage createInvitationResponse(MessageId id, - SessionId sessionId, ContactId contactId, boolean accept, long time, + SessionId sessionId, GroupId groupId, ContactId contactId, + boolean accept, long time, boolean local, boolean sent, boolean seen, boolean read) { - return new BlogInvitationResponse(id, sessionId, contactId, accept, - time, local, sent, seen, read); + return new BlogInvitationResponse(id, sessionId, groupId, contactId, + accept, time, local, sent, seen, read); } @Override @@ -321,9 +322,9 @@ class BlogSharingManagerImpl extends ContactId contactId = localState.getContactId(); BlogInvitationRequest request = new BlogInvitationRequest(localState.getInvitationId(), - localState.getSessionId(), contactId, - blog.getAuthor().getName(), msg, true, time, false, - false, false, false); + localState.getSessionId(), localState.getGroupId(), + contactId, blog.getAuthor().getName(), msg, true, + time, false, false, false, false); return new BlogInvitationReceivedEvent(blog, contactId, request); } } @@ -337,7 +338,7 @@ class BlogSharingManagerImpl extends ContactId c = localState.getContactId(); BlogInvitationResponse response = new BlogInvitationResponse(localState.getResponseId(), - localState.getSessionId(), + localState.getSessionId(), localState.getGroupId(), localState.getContactId(), accept, time, false, false, false, false); return new BlogInvitationResponseReceivedEvent(title, c, response); diff --git a/briar-core/src/org/briarproject/sharing/ForumSharingManagerImpl.java b/briar-core/src/org/briarproject/sharing/ForumSharingManagerImpl.java index d0d4a9e8a3..ab47bea6a2 100644 --- a/briar-core/src/org/briarproject/sharing/ForumSharingManagerImpl.java +++ b/briar-core/src/org/briarproject/sharing/ForumSharingManagerImpl.java @@ -83,17 +83,18 @@ class ForumSharingManagerImpl extends ForumInvitation msg, ContactId contactId, boolean available, long time, boolean local, boolean sent, boolean seen, boolean read) { - return new ForumInvitationRequest(id, msg.getSessionId(), contactId, - msg.getForumName(), msg.getMessage(), available, time, local, - sent, seen, read); + return new ForumInvitationRequest(id, msg.getSessionId(), + msg.getGroupId(), contactId, msg.getForumName(), + msg.getMessage(), available, time, local, sent, seen, read); } @Override protected InvitationMessage createInvitationResponse(MessageId id, - SessionId sessionId, ContactId contactId, boolean accept, - long time, boolean local, boolean sent, boolean seen, boolean read) { - return new ForumInvitationResponse(id, sessionId, contactId, accept, - time, local, sent, seen, read); + SessionId sessionId, GroupId groupId, ContactId contactId, + boolean accept, long time, boolean local, boolean sent, + boolean seen, boolean read) { + return new ForumInvitationResponse(id, sessionId, groupId, contactId, + accept, time, local, sent, seen, read); } @Override @@ -268,8 +269,8 @@ class ForumSharingManagerImpl extends ContactId contactId = localState.getContactId(); ForumInvitationRequest request = new ForumInvitationRequest( localState.getInvitationId(), localState.getSessionId(), - contactId, forum.getName(), msg, true, time, false, false, - false, false); + localState.getGroupId(), contactId, forum.getName(), msg, + true, time, false, false, false, false); return new ForumInvitationReceivedEvent(forum, contactId, request); } } @@ -282,9 +283,9 @@ class ForumSharingManagerImpl extends String name = localState.getForumName(); ContactId c = localState.getContactId(); ForumInvitationResponse response = new ForumInvitationResponse( - localState.getResponseId(), - localState.getSessionId(), localState.getContactId(), - accept, time, false, false, false, false); + localState.getResponseId(), localState.getSessionId(), + localState.getGroupId(), localState.getContactId(), accept, + time, false, false, false, false); return new ForumInvitationResponseReceivedEvent(name, c, response); } } diff --git a/briar-core/src/org/briarproject/sharing/SharingManagerImpl.java b/briar-core/src/org/briarproject/sharing/SharingManagerImpl.java index f0a88ff5fa..a8d6fde681 100644 --- a/briar-core/src/org/briarproject/sharing/SharingManagerImpl.java +++ b/briar-core/src/org/briarproject/sharing/SharingManagerImpl.java @@ -117,13 +117,14 @@ abstract class SharingManagerImpl<S extends Shareable, I extends Invitation, IS public abstract ClientId getClientId(); - protected abstract InvitationMessage createInvitationRequest(MessageId id, I msg, - ContactId contactId, boolean available, long time, boolean local, - boolean sent, boolean seen, boolean read); + protected abstract InvitationMessage createInvitationRequest(MessageId id, + I msg, ContactId contactId, boolean available, long time, + boolean local, boolean sent, boolean seen, boolean read); protected abstract InvitationMessage createInvitationResponse(MessageId id, - SessionId sessionId, ContactId contactId, boolean accept, long time, - boolean local, boolean sent, boolean seen, boolean read); + SessionId sessionId, GroupId groupId, ContactId contactId, + boolean accept, long time, boolean local, boolean sent, + boolean seen, boolean read); protected abstract ShareableFactory<S, I, IS, SS> getSFactory(); @@ -394,8 +395,9 @@ abstract class SharingManagerImpl<S extends Shareable, I extends Invitation, IS .from(getIFactory(), group.getId(), d); SessionId sessionId = msg.getSessionId(); InvitationMessage im = createInvitationResponse( - m.getKey(), sessionId, contactId, accept, time, - local, status.isSent(), status.isSeen(), read); + m.getKey(), sessionId, group.getId(), contactId, + accept, time, local, status.isSent(), + status.isSeen(), read); list.add(im); } else { -- GitLab