Refactor PrivateMessageHeader to ConversationMessageHeader base-class

This is preparation for adding attachments to private messages
This commit is contained in:
Torsten Grote
2018-10-30 11:42:30 -03:00
parent 391732b239
commit e3abff5ad8
66 changed files with 310 additions and 242 deletions

View File

@@ -43,7 +43,7 @@ import org.briarproject.briar.api.feed.FeedManager;
import org.briarproject.briar.api.forum.ForumManager;
import org.briarproject.briar.api.forum.ForumSharingManager;
import org.briarproject.briar.api.introduction.IntroductionManager;
import org.briarproject.briar.api.messaging.ConversationManager;
import org.briarproject.briar.api.conversation.ConversationManager;
import org.briarproject.briar.api.messaging.MessagingManager;
import org.briarproject.briar.api.messaging.PrivateMessageFactory;
import org.briarproject.briar.api.privategroup.GroupMessageFactory;

View File

@@ -36,7 +36,7 @@ import org.briarproject.briar.android.keyagreement.ContactExchangeActivity;
import org.briarproject.briar.android.view.BriarRecyclerView;
import org.briarproject.briar.api.android.AndroidNotificationManager;
import org.briarproject.briar.api.client.MessageTracker.GroupCount;
import org.briarproject.briar.api.messaging.ConversationManager;
import org.briarproject.briar.api.conversation.ConversationManager;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent;

View File

@@ -63,15 +63,16 @@ import org.briarproject.briar.api.android.AndroidNotificationManager;
import org.briarproject.briar.api.blog.BlogSharingManager;
import org.briarproject.briar.api.client.ProtocolStateException;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import org.briarproject.briar.api.forum.ForumSharingManager;
import org.briarproject.briar.api.introduction.IntroductionManager;
import org.briarproject.briar.api.messaging.ConversationManager;
import org.briarproject.briar.api.conversation.ConversationManager;
import org.briarproject.briar.api.messaging.MessagingManager;
import org.briarproject.briar.api.messaging.PrivateMessage;
import org.briarproject.briar.api.messaging.PrivateMessageFactory;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.messaging.PrivateResponse;
import org.briarproject.briar.api.conversation.ConversationRequest;
import org.briarproject.briar.api.conversation.ConversationResponse;
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager;
@@ -326,7 +327,7 @@ public class ConversationActivity extends BriarActivity
runOnDbThread(() -> {
try {
long start = now();
Collection<PrivateMessageHeader> headers =
Collection<ConversationMessageHeader> headers =
conversationManager.getMessageHeaders(contactId);
logDuration(LOG, "Loading messages", start);
displayMessages(revision, headers);
@@ -339,7 +340,7 @@ public class ConversationActivity extends BriarActivity
}
private void displayMessages(int revision,
Collection<PrivateMessageHeader> headers) {
Collection<ConversationMessageHeader> headers) {
runOnUiThreadUnlessDestroyed(() -> {
if (revision == adapter.getRevision()) {
adapter.incrementRevision();
@@ -363,9 +364,10 @@ public class ConversationActivity extends BriarActivity
*/
@SuppressWarnings("ConstantConditions")
private List<ConversationItem> createItems(
Collection<PrivateMessageHeader> headers) {
Collection<ConversationMessageHeader> headers) {
List<ConversationItem> items = new ArrayList<>(headers.size());
for (PrivateMessageHeader h : headers) items.add(h.accept(visitor));
for (ConversationMessageHeader h : headers)
items.add(h.accept(visitor));
return items;
}
@@ -449,9 +451,10 @@ public class ConversationActivity extends BriarActivity
});
}
private void onNewPrivateMessage(PrivateMessageHeader h) {
private void onNewPrivateMessage(ConversationMessageHeader h) {
runOnUiThreadUnlessDestroyed(() -> {
if (h instanceof PrivateRequest || h instanceof PrivateResponse) {
if (h instanceof ConversationRequest ||
h instanceof ConversationResponse) {
// contact name might not have been loaded
observeOnce(viewModel.getContactDisplayName(), this,
name -> addConversationItem(h.accept(visitor)));

View File

@@ -6,7 +6,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.R;
import org.briarproject.briar.api.messaging.PrivateResponse;
import org.briarproject.briar.api.conversation.ConversationResponse;
import javax.annotation.Nullable;
import javax.annotation.concurrent.NotThreadSafe;
@@ -24,7 +24,7 @@ class ConversationNoticeInItem extends ConversationItem {
this.msgText = msgText;
}
ConversationNoticeInItem(String text, PrivateResponse r) {
ConversationNoticeInItem(String text, ConversationResponse r) {
super(r.getId(), r.getGroupId(), text, r.getTimestamp(), r.isRead());
this.msgText = null;
}

View File

@@ -4,8 +4,8 @@ import android.support.annotation.LayoutRes;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.R;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.messaging.PrivateResponse;
import org.briarproject.briar.api.conversation.ConversationRequest;
import org.briarproject.briar.api.conversation.ConversationResponse;
import javax.annotation.Nullable;
import javax.annotation.concurrent.NotThreadSafe;
@@ -17,13 +17,13 @@ class ConversationNoticeOutItem extends ConversationOutItem {
@Nullable
private final String msgText;
ConversationNoticeOutItem(String text, PrivateRequest r) {
ConversationNoticeOutItem(String text, ConversationRequest r) {
super(r.getId(), r.getGroupId(), text, r.getTimestamp(), r.isSent(),
r.isSeen());
this.msgText = r.getText();
}
ConversationNoticeOutItem(String text, PrivateResponse r) {
ConversationNoticeOutItem(String text, ConversationResponse r) {
super(r.getId(), r.getGroupId(), text, r.getTimestamp(), r.isSent(),
r.isSeen());
this.msgText = null;

View File

@@ -6,7 +6,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.briar.R;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.conversation.ConversationRequest;
import org.briarproject.briar.api.sharing.InvitationRequest;
import org.briarproject.briar.api.sharing.Shareable;
@@ -26,7 +26,7 @@ class ConversationRequestItem extends ConversationNoticeInItem {
private final boolean canBeOpened;
private boolean answered;
ConversationRequestItem(String text, RequestType type, PrivateRequest r) {
ConversationRequestItem(String text, RequestType type, ConversationRequest r) {
super(r.getId(), r.getGroupId(), text, r.getText(),
r.getTimestamp(), r.isRead());
this.requestType = type;

View File

@@ -14,7 +14,7 @@ import org.briarproject.briar.api.forum.ForumInvitationResponse;
import org.briarproject.briar.api.introduction.IntroductionRequest;
import org.briarproject.briar.api.introduction.IntroductionResponse;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.messaging.PrivateMessageVisitor;
import org.briarproject.briar.api.conversation.ConversationMessageVisitor;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse;
@@ -28,7 +28,8 @@ import static org.briarproject.briar.android.util.UiUtils.getContactDisplayName;
@UiThread
@NotNullByDefault
class ConversationVisitor implements PrivateMessageVisitor<ConversationItem> {
class ConversationVisitor implements
ConversationMessageVisitor<ConversationItem> {
private final Context ctx;
private final TextCache textCache;

View File

@@ -20,7 +20,7 @@ import org.briarproject.briar.android.contact.ContactListItem;
import org.briarproject.briar.android.fragment.BaseFragment;
import org.briarproject.briar.android.view.BriarRecyclerView;
import org.briarproject.briar.api.client.MessageTracker.GroupCount;
import org.briarproject.briar.api.messaging.ConversationManager;
import org.briarproject.briar.api.conversation.ConversationManager;
import java.util.ArrayList;
import java.util.List;

View File

@@ -14,7 +14,7 @@ import org.briarproject.bramble.api.system.Clock;
import org.briarproject.briar.android.contactselection.ContactSelectorControllerImpl;
import org.briarproject.briar.android.controller.handler.ExceptionHandler;
import org.briarproject.briar.api.blog.BlogSharingManager;
import org.briarproject.briar.api.messaging.ConversationManager;
import org.briarproject.briar.api.conversation.ConversationManager;
import java.util.Collection;
import java.util.concurrent.Executor;

View File

@@ -14,7 +14,7 @@ import org.briarproject.bramble.api.system.Clock;
import org.briarproject.briar.android.contactselection.ContactSelectorControllerImpl;
import org.briarproject.briar.android.controller.handler.ExceptionHandler;
import org.briarproject.briar.api.forum.ForumSharingManager;
import org.briarproject.briar.api.messaging.ConversationManager;
import org.briarproject.briar.api.conversation.ConversationManager;
import java.util.Collection;
import java.util.concurrent.Executor;

View File

@@ -4,7 +4,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageVisitor;
import org.briarproject.briar.api.conversation.ConversationMessageVisitor;
import org.briarproject.briar.api.sharing.InvitationRequest;
import javax.annotation.Nullable;
@@ -21,7 +21,7 @@ public class BlogInvitationRequest extends InvitationRequest<Blog> {
}
@Override
public <T> T accept(PrivateMessageVisitor<T> v) {
public <T> T accept(ConversationMessageVisitor<T> v) {
return v.visitBlogInvitationRequest(this);
}
}

View File

@@ -4,7 +4,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageVisitor;
import org.briarproject.briar.api.conversation.ConversationMessageVisitor;
import org.briarproject.briar.api.sharing.InvitationResponse;
@NotNullByDefault
@@ -18,7 +18,7 @@ public class BlogInvitationResponse extends InvitationResponse {
}
@Override
public <T> T accept(PrivateMessageVisitor<T> v) {
public <T> T accept(ConversationMessageVisitor<T> v) {
return v.visitBlogInvitationResponse(this);
}
}

View File

@@ -3,17 +3,17 @@ package org.briarproject.briar.api.blog.event;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.blog.Blog;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent;
import org.briarproject.briar.api.conversation.ConversationRequest;
import org.briarproject.briar.api.conversation.event.ConversationMessageReceivedEvent;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class BlogInvitationRequestReceivedEvent extends
PrivateMessageReceivedEvent<PrivateRequest<Blog>> {
ConversationMessageReceivedEvent<ConversationRequest<Blog>> {
public BlogInvitationRequestReceivedEvent(PrivateRequest<Blog> request,
public BlogInvitationRequestReceivedEvent(ConversationRequest<Blog> request,
ContactId contactId) {
super(request, contactId);
}

View File

@@ -3,14 +3,14 @@ package org.briarproject.briar.api.blog.event;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.blog.BlogInvitationResponse;
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent;
import org.briarproject.briar.api.conversation.event.ConversationMessageReceivedEvent;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class BlogInvitationResponseReceivedEvent
extends PrivateMessageReceivedEvent<BlogInvitationResponse> {
extends ConversationMessageReceivedEvent<BlogInvitationResponse> {
public BlogInvitationResponseReceivedEvent(BlogInvitationResponse response,
ContactId contactId) {

View File

@@ -1,4 +1,4 @@
package org.briarproject.briar.api.messaging;
package org.briarproject.briar.api.conversation;
import org.briarproject.bramble.api.contact.Contact;
import org.briarproject.bramble.api.contact.ContactId;
@@ -9,6 +9,7 @@ import org.briarproject.bramble.api.sync.Group;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.MessageTracker.GroupCount;
import org.briarproject.briar.api.messaging.MessagingManager;
import java.util.Collection;
@@ -27,7 +28,7 @@ public interface ConversationManager {
* Only {@link MessagingManager} returns only headers.
* The others also return the message text.
*/
Collection<PrivateMessageHeader> getMessageHeaders(ContactId c)
Collection<ConversationMessageHeader> getMessageHeaders(ContactId c)
throws DbException;
/**
@@ -40,7 +41,7 @@ public interface ConversationManager {
Group getContactGroup(Contact c);
Collection<PrivateMessageHeader> getMessageHeaders(Transaction txn,
Collection<ConversationMessageHeader> getMessageHeaders(Transaction txn,
ContactId contactId) throws DbException;
GroupCount getGroupCount(Transaction txn, ContactId c)

View File

@@ -0,0 +1,58 @@
package org.briarproject.briar.api.conversation;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public abstract class ConversationMessageHeader {
private final MessageId id;
private final GroupId groupId;
private final long timestamp;
private final boolean local, sent, seen, read;
public ConversationMessageHeader(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.sent = sent;
this.seen = seen;
this.read = read;
}
public MessageId getId() {
return id;
}
public GroupId getGroupId() {
return groupId;
}
public long getTimestamp() {
return timestamp;
}
public boolean isLocal() {
return local;
}
public boolean isSent() {
return sent;
}
public boolean isSeen() {
return seen;
}
public boolean isRead() {
return read;
}
public abstract <T> T accept(ConversationMessageVisitor<T> v);
}

View File

@@ -1,4 +1,4 @@
package org.briarproject.briar.api.messaging;
package org.briarproject.briar.api.conversation;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.blog.BlogInvitationRequest;
@@ -7,11 +7,12 @@ import org.briarproject.briar.api.forum.ForumInvitationRequest;
import org.briarproject.briar.api.forum.ForumInvitationResponse;
import org.briarproject.briar.api.introduction.IntroductionRequest;
import org.briarproject.briar.api.introduction.IntroductionResponse;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse;
@NotNullByDefault
public interface PrivateMessageVisitor<T> {
public interface ConversationMessageVisitor<T> {
T visitPrivateMessageHeader(PrivateMessageHeader h);

View File

@@ -1,4 +1,4 @@
package org.briarproject.briar.api.messaging;
package org.briarproject.briar.api.conversation;
import org.briarproject.bramble.api.Nameable;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
@@ -11,7 +11,8 @@ import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class PrivateRequest<N extends Nameable> extends PrivateMessageHeader {
public abstract class ConversationRequest<N extends Nameable>
extends ConversationMessageHeader {
private final SessionId sessionId;
private final N nameable;
@@ -19,7 +20,7 @@ public class PrivateRequest<N extends Nameable> extends PrivateMessageHeader {
private final String text;
private final boolean answered;
public PrivateRequest(MessageId messageId, GroupId groupId, long time,
public ConversationRequest(MessageId messageId, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, N nameable, @Nullable String text,
boolean answered) {
@@ -50,4 +51,5 @@ public class PrivateRequest<N extends Nameable> extends PrivateMessageHeader {
public boolean wasAnswered() {
return answered;
}
}

View File

@@ -1,4 +1,4 @@
package org.briarproject.briar.api.messaging;
package org.briarproject.briar.api.conversation;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
@@ -9,12 +9,12 @@ import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public abstract class PrivateResponse extends PrivateMessageHeader {
public abstract class ConversationResponse extends ConversationMessageHeader {
private final SessionId sessionId;
private final boolean accepted;
public PrivateResponse(MessageId id, GroupId groupId, long time,
public ConversationResponse(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, boolean accepted) {
super(id, groupId, time, local, sent, seen, read);

View File

@@ -0,0 +1,33 @@
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.briar.api.conversation.ConversationMessageHeader;
import javax.annotation.concurrent.Immutable;
/**
* An event that is broadcast when a new conversation message is received.
*/
@Immutable
@NotNullByDefault
public class ConversationMessageReceivedEvent<H extends ConversationMessageHeader>
extends Event {
private final H messageHeader;
private final ContactId contactId;
public ConversationMessageReceivedEvent(H messageHeader, ContactId contactId) {
this.messageHeader = messageHeader;
this.contactId = contactId;
}
public H getMessageHeader() {
return messageHeader;
}
public ContactId getContactId() {
return contactId;
}
}

View File

@@ -4,7 +4,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageVisitor;
import org.briarproject.briar.api.conversation.ConversationMessageVisitor;
import org.briarproject.briar.api.sharing.InvitationRequest;
import javax.annotation.Nullable;
@@ -23,7 +23,7 @@ public class ForumInvitationRequest extends InvitationRequest<Forum> {
}
@Override
public <T> T accept(PrivateMessageVisitor<T> v) {
public <T> T accept(ConversationMessageVisitor<T> v) {
return v.visitForumInvitationRequest(this);
}
}

View File

@@ -4,7 +4,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageVisitor;
import org.briarproject.briar.api.conversation.ConversationMessageVisitor;
import org.briarproject.briar.api.sharing.InvitationResponse;
import javax.annotation.concurrent.Immutable;
@@ -21,7 +21,7 @@ public class ForumInvitationResponse extends InvitationResponse {
}
@Override
public <T> T accept(PrivateMessageVisitor<T> v) {
public <T> T accept(ConversationMessageVisitor<T> v) {
return v.visitForumInvitationResponse(this);
}
}

View File

@@ -2,18 +2,18 @@ package org.briarproject.briar.api.forum.event;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.conversation.ConversationRequest;
import org.briarproject.briar.api.conversation.event.ConversationMessageReceivedEvent;
import org.briarproject.briar.api.forum.Forum;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class ForumInvitationRequestReceivedEvent extends
PrivateMessageReceivedEvent<PrivateRequest<Forum>> {
ConversationMessageReceivedEvent<ConversationRequest<Forum>> {
public ForumInvitationRequestReceivedEvent(PrivateRequest<Forum> request,
public ForumInvitationRequestReceivedEvent(ConversationRequest<Forum> request,
ContactId contactId) {
super(request, contactId);
}

View File

@@ -2,15 +2,15 @@ package org.briarproject.briar.api.forum.event;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.conversation.event.ConversationMessageReceivedEvent;
import org.briarproject.briar.api.forum.ForumInvitationResponse;
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class ForumInvitationResponseReceivedEvent extends
PrivateMessageReceivedEvent<ForumInvitationResponse> {
ConversationMessageReceivedEvent<ForumInvitationResponse> {
public ForumInvitationResponseReceivedEvent(
ForumInvitationResponse response, ContactId contactId) {

View File

@@ -6,7 +6,7 @@ import org.briarproject.bramble.api.db.DbException;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.ClientId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient;
import org.briarproject.briar.api.conversation.ConversationManager.ConversationClient;
import javax.annotation.Nullable;

View File

@@ -6,15 +6,15 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageVisitor;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.conversation.ConversationMessageVisitor;
import org.briarproject.briar.api.conversation.ConversationRequest;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class IntroductionRequest extends PrivateRequest<Author> {
public class IntroductionRequest extends ConversationRequest<Author> {
private final AuthorInfo authorInfo;
@@ -37,7 +37,7 @@ public class IntroductionRequest extends PrivateRequest<Author> {
}
@Override
public <T> T accept(PrivateMessageVisitor<T> v) {
public <T> T accept(ConversationMessageVisitor<T> v) {
return v.visitIntroductionRequest(this);
}
}

View File

@@ -6,8 +6,8 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageVisitor;
import org.briarproject.briar.api.messaging.PrivateResponse;
import org.briarproject.briar.api.conversation.ConversationMessageVisitor;
import org.briarproject.briar.api.conversation.ConversationResponse;
import javax.annotation.concurrent.Immutable;
@@ -15,7 +15,7 @@ import static org.briarproject.briar.api.introduction.Role.INTRODUCER;
@Immutable
@NotNullByDefault
public class IntroductionResponse extends PrivateResponse {
public class IntroductionResponse extends ConversationResponse {
private final Author introducedAuthor;
private final AuthorInfo introducedAuthorInfo;
@@ -45,7 +45,7 @@ public class IntroductionResponse extends PrivateResponse {
}
@Override
public <T> T accept(PrivateMessageVisitor<T> v) {
public <T> T accept(ConversationMessageVisitor<T> v) {
return v.visitIntroductionResponse(this);
}
}

View File

@@ -2,15 +2,15 @@ package org.briarproject.briar.api.introduction.event;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.conversation.event.ConversationMessageReceivedEvent;
import org.briarproject.briar.api.introduction.IntroductionRequest;
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class IntroductionRequestReceivedEvent extends
PrivateMessageReceivedEvent<IntroductionRequest> {
public class IntroductionRequestReceivedEvent
extends ConversationMessageReceivedEvent<IntroductionRequest> {
public IntroductionRequestReceivedEvent(
IntroductionRequest introductionRequest, ContactId contactId) {

View File

@@ -2,15 +2,15 @@ package org.briarproject.briar.api.introduction.event;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.conversation.event.ConversationMessageReceivedEvent;
import org.briarproject.briar.api.introduction.IntroductionResponse;
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class IntroductionResponseReceivedEvent extends
PrivateMessageReceivedEvent<IntroductionResponse> {
ConversationMessageReceivedEvent<IntroductionResponse> {
public IntroductionResponseReceivedEvent(
IntroductionResponse introductionResponse, ContactId contactId) {

View File

@@ -6,7 +6,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.ClientId;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient;
import org.briarproject.briar.api.conversation.ConversationManager.ConversationClient;
@NotNullByDefault
public interface MessagingManager extends ConversationClient {

View File

@@ -3,58 +3,23 @@ package org.briarproject.briar.api.messaging;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import org.briarproject.briar.api.conversation.ConversationMessageVisitor;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class PrivateMessageHeader {
private final MessageId id;
private final GroupId groupId;
private final long timestamp;
private final boolean local, sent, seen, read;
public class PrivateMessageHeader extends ConversationMessageHeader {
public PrivateMessageHeader(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.sent = sent;
this.seen = seen;
this.read = read;
super(id, groupId, timestamp, local, read, sent, seen);
}
public MessageId getId() {
return id;
}
public GroupId getGroupId() {
return groupId;
}
public long getTimestamp() {
return timestamp;
}
public boolean isLocal() {
return local;
}
public boolean isSent() {
return sent;
}
public boolean isSeen() {
return seen;
}
public boolean isRead() {
return read;
}
public <T> T accept(PrivateMessageVisitor<T> v) {
@Override
public <T> T accept(ConversationMessageVisitor<T> v) {
return v.visitPrivateMessageHeader(this);
}
}

View File

@@ -1,8 +1,8 @@
package org.briarproject.briar.api.messaging.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.briar.api.conversation.event.ConversationMessageReceivedEvent;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import javax.annotation.concurrent.Immutable;
@@ -12,22 +12,12 @@ import javax.annotation.concurrent.Immutable;
*/
@Immutable
@NotNullByDefault
public class PrivateMessageReceivedEvent<H extends PrivateMessageHeader>
extends Event {
public class PrivateMessageReceivedEvent
extends ConversationMessageReceivedEvent<PrivateMessageHeader> {
private final H messageHeader;
private final ContactId contactId;
public PrivateMessageReceivedEvent(H messageHeader, ContactId contactId) {
this.messageHeader = messageHeader;
this.contactId = contactId;
public PrivateMessageReceivedEvent(PrivateMessageHeader messageHeader,
ContactId contactId) {
super(messageHeader, contactId);
}
public H getMessageHeader() {
return messageHeader;
}
public ContactId getContactId() {
return contactId;
}
}

View File

@@ -2,7 +2,7 @@ package org.briarproject.briar.api.privategroup.event;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent;
import org.briarproject.briar.api.conversation.event.ConversationMessageReceivedEvent;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest;
import javax.annotation.concurrent.Immutable;
@@ -10,7 +10,7 @@ import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class GroupInvitationRequestReceivedEvent extends
PrivateMessageReceivedEvent<GroupInvitationRequest> {
ConversationMessageReceivedEvent<GroupInvitationRequest> {
public GroupInvitationRequestReceivedEvent(GroupInvitationRequest request,
ContactId contactId) {

View File

@@ -2,7 +2,7 @@ package org.briarproject.briar.api.privategroup.event;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent;
import org.briarproject.briar.api.conversation.event.ConversationMessageReceivedEvent;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse;
import javax.annotation.concurrent.Immutable;
@@ -10,7 +10,7 @@ import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class GroupInvitationResponseReceivedEvent
extends PrivateMessageReceivedEvent<GroupInvitationResponse> {
extends ConversationMessageReceivedEvent<GroupInvitationResponse> {
public GroupInvitationResponseReceivedEvent(
GroupInvitationResponse response, ContactId contactId) {

View File

@@ -8,7 +8,7 @@ import org.briarproject.bramble.api.sync.ClientId;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.briar.api.client.ProtocolStateException;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient;
import org.briarproject.briar.api.conversation.ConversationManager.ConversationClient;
import org.briarproject.briar.api.privategroup.PrivateGroup;
import java.util.Collection;

View File

@@ -4,7 +4,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageVisitor;
import org.briarproject.briar.api.conversation.ConversationMessageVisitor;
import org.briarproject.briar.api.privategroup.PrivateGroup;
import org.briarproject.briar.api.sharing.InvitationRequest;
@@ -24,7 +24,7 @@ public class GroupInvitationRequest extends InvitationRequest<PrivateGroup> {
}
@Override
public <T> T accept(PrivateMessageVisitor<T> v) {
public <T> T accept(ConversationMessageVisitor<T> v) {
return v.visitGroupInvitationRequest(this);
}
}

View File

@@ -4,7 +4,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageVisitor;
import org.briarproject.briar.api.conversation.ConversationMessageVisitor;
import org.briarproject.briar.api.sharing.InvitationResponse;
import javax.annotation.concurrent.Immutable;
@@ -21,7 +21,7 @@ public class GroupInvitationResponse extends InvitationResponse {
}
@Override
public <T> T accept(PrivateMessageVisitor<T> v) {
public <T> T accept(ConversationMessageVisitor<T> v) {
return v.visitGroupInvitationResponse(this);
}
}

View File

@@ -3,12 +3,12 @@ package org.briarproject.briar.api.sharing;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.conversation.ConversationRequest;
import javax.annotation.Nullable;
public abstract class InvitationRequest<S extends Shareable> extends
PrivateRequest<S> {
ConversationRequest<S> {
private final boolean canBeOpened;

View File

@@ -3,9 +3,9 @@ package org.briarproject.briar.api.sharing;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateResponse;
import org.briarproject.briar.api.conversation.ConversationResponse;
public abstract class InvitationResponse extends PrivateResponse {
public abstract class InvitationResponse extends ConversationResponse {
private final GroupId shareableId;

View File

@@ -6,7 +6,7 @@ import org.briarproject.bramble.api.db.DbException;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient;
import org.briarproject.briar.api.conversation.ConversationManager.ConversationClient;
import java.util.Collection;

View File

@@ -12,7 +12,7 @@ import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.MessageTracker;
import org.briarproject.briar.api.client.MessageTracker.GroupCount;
import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient;
import org.briarproject.briar.api.conversation.ConversationManager.ConversationClient;
import javax.annotation.concurrent.Immutable;

View File

@@ -31,11 +31,11 @@ import org.briarproject.bramble.api.versioning.ClientVersioningManager;
import org.briarproject.bramble.api.versioning.ClientVersioningManager.ClientVersioningHook;
import org.briarproject.briar.api.client.MessageTracker;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import org.briarproject.briar.api.introduction.IntroductionManager;
import org.briarproject.briar.api.introduction.IntroductionRequest;
import org.briarproject.briar.api.introduction.IntroductionResponse;
import org.briarproject.briar.api.introduction.Role;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.client.ConversationClientImpl;
import org.briarproject.briar.introduction.IntroducerSession.Introducee;
@@ -401,15 +401,15 @@ class IntroductionManagerImpl extends ConversationClientImpl
}
@Override
public Collection<PrivateMessageHeader> getMessageHeaders(Transaction txn,
ContactId c) throws DbException {
public Collection<ConversationMessageHeader> getMessageHeaders(
Transaction txn, ContactId c) throws DbException {
try {
Contact contact = db.getContact(txn, c);
GroupId contactGroupId = getContactGroup(contact).getId();
BdfDictionary query = messageParser.getMessagesVisibleInUiQuery();
Map<MessageId, BdfDictionary> results = clientHelper
.getMessageMetadataAsDictionary(txn, contactGroupId, query);
List<PrivateMessageHeader> messages =
List<ConversationMessageHeader> messages =
new ArrayList<>(results.size());
Map<AuthorId, AuthorInfo> authorInfos = new HashMap<>();
for (Entry<MessageId, BdfDictionary> e : results.entrySet()) {

View File

@@ -8,7 +8,7 @@ import org.briarproject.bramble.api.sync.ValidationManager;
import org.briarproject.bramble.api.system.Clock;
import org.briarproject.bramble.api.versioning.ClientVersioningManager;
import org.briarproject.briar.api.introduction.IntroductionManager;
import org.briarproject.briar.api.messaging.ConversationManager;
import org.briarproject.briar.api.conversation.ConversationManager;
import javax.inject.Inject;
import javax.inject.Singleton;

View File

@@ -6,8 +6,8 @@ import org.briarproject.bramble.api.db.DbException;
import org.briarproject.bramble.api.db.Transaction;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.client.MessageTracker.GroupCount;
import org.briarproject.briar.api.messaging.ConversationManager;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.conversation.ConversationManager;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import java.util.ArrayList;
import java.util.Collection;
@@ -38,9 +38,9 @@ class ConversationManagerImpl implements ConversationManager {
}
@Override
public Collection<PrivateMessageHeader> getMessageHeaders(ContactId c)
public Collection<ConversationMessageHeader> getMessageHeaders(ContactId c)
throws DbException {
List<PrivateMessageHeader> messages = new ArrayList<>();
List<ConversationMessageHeader> messages = new ArrayList<>();
Transaction txn = db.startTransaction(true);
try {
for (ConversationClient client : clients) {

View File

@@ -23,6 +23,7 @@ import org.briarproject.bramble.api.sync.MessageStatus;
import org.briarproject.bramble.api.versioning.ClientVersioningManager;
import org.briarproject.bramble.api.versioning.ClientVersioningManager.ClientVersioningHook;
import org.briarproject.briar.api.client.MessageTracker;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import org.briarproject.briar.api.messaging.MessagingManager;
import org.briarproject.briar.api.messaging.PrivateMessage;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
@@ -116,8 +117,8 @@ class MessagingManagerImpl extends ConversationClientImpl
PrivateMessageHeader header = new PrivateMessageHeader(
m.getId(), groupId, timestamp, local, read, false, false);
ContactId contactId = getContactId(txn, groupId);
PrivateMessageReceivedEvent<PrivateMessageHeader> event =
new PrivateMessageReceivedEvent<>(header, contactId);
PrivateMessageReceivedEvent event =
new PrivateMessageReceivedEvent(header, contactId);
txn.attach(event);
messageTracker.trackIncomingMessage(txn, m);
@@ -178,8 +179,8 @@ class MessagingManagerImpl extends ConversationClientImpl
}
@Override
public Collection<PrivateMessageHeader> getMessageHeaders(Transaction txn,
ContactId c) throws DbException {
public Collection<ConversationMessageHeader> getMessageHeaders(
Transaction txn, ContactId c) throws DbException {
Map<MessageId, BdfDictionary> metadata;
Collection<MessageStatus> statuses;
GroupId g;
@@ -190,7 +191,7 @@ class MessagingManagerImpl extends ConversationClientImpl
} catch (FormatException e) {
throw new DbException(e);
}
Collection<PrivateMessageHeader> headers = new ArrayList<>();
Collection<ConversationMessageHeader> headers = new ArrayList<>();
for (MessageStatus s : statuses) {
MessageId id = s.getMessageId();
BdfDictionary meta = metadata.get(id);

View File

@@ -7,7 +7,7 @@ import org.briarproject.bramble.api.lifecycle.LifecycleManager;
import org.briarproject.bramble.api.sync.ValidationManager;
import org.briarproject.bramble.api.system.Clock;
import org.briarproject.bramble.api.versioning.ClientVersioningManager;
import org.briarproject.briar.api.messaging.ConversationManager;
import org.briarproject.briar.api.conversation.ConversationManager;
import org.briarproject.briar.api.messaging.MessagingManager;
import org.briarproject.briar.api.messaging.PrivateMessageFactory;

View File

@@ -26,7 +26,7 @@ import org.briarproject.bramble.api.versioning.ClientVersioningManager;
import org.briarproject.bramble.api.versioning.ClientVersioningManager.ClientVersioningHook;
import org.briarproject.briar.api.client.MessageTracker;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import org.briarproject.briar.api.privategroup.PrivateGroup;
import org.briarproject.briar.api.privategroup.PrivateGroupFactory;
import org.briarproject.briar.api.privategroup.PrivateGroupManager;
@@ -368,7 +368,7 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
}
@Override
public Collection<PrivateMessageHeader> getMessageHeaders(Transaction txn,
public Collection<ConversationMessageHeader> getMessageHeaders(Transaction txn,
ContactId c) throws DbException {
try {
Contact contact = db.getContact(txn, c);
@@ -376,7 +376,7 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
BdfDictionary query = messageParser.getMessagesVisibleInUiQuery();
Map<MessageId, BdfDictionary> results = clientHelper
.getMessageMetadataAsDictionary(txn, contactGroupId, query);
List<PrivateMessageHeader> messages =
List<ConversationMessageHeader> messages =
new ArrayList<>(results.size());
for (Entry<MessageId, BdfDictionary> e : results.entrySet()) {
MessageId m = e.getKey();

View File

@@ -7,7 +7,7 @@ import org.briarproject.bramble.api.lifecycle.LifecycleManager;
import org.briarproject.bramble.api.sync.ValidationManager;
import org.briarproject.bramble.api.system.Clock;
import org.briarproject.bramble.api.versioning.ClientVersioningManager;
import org.briarproject.briar.api.messaging.ConversationManager;
import org.briarproject.briar.api.conversation.ConversationManager;
import org.briarproject.briar.api.privategroup.PrivateGroupFactory;
import org.briarproject.briar.api.privategroup.PrivateGroupManager;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationFactory;

View File

@@ -18,7 +18,7 @@ import org.briarproject.briar.api.blog.BlogManager;
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.messaging.PrivateRequest;
import org.briarproject.briar.api.conversation.ConversationRequest;
import javax.annotation.concurrent.Immutable;
import javax.inject.Inject;
@@ -50,7 +50,7 @@ class BlogProtocolEngineImpl extends ProtocolEngineImpl<Blog> {
@Override
Event getInvitationRequestReceivedEvent(InviteMessage<Blog> m,
ContactId contactId, boolean available, boolean canBeOpened) {
PrivateRequest<Blog> request = invitationFactory
ConversationRequest<Blog> request = invitationFactory
.createInvitationRequest(false, false, true, false, m,
contactId, available, canBeOpened);
return new BlogInvitationRequestReceivedEvent(request, contactId);

View File

@@ -18,7 +18,7 @@ import org.briarproject.briar.api.forum.ForumInvitationResponse;
import org.briarproject.briar.api.forum.ForumManager;
import org.briarproject.briar.api.forum.event.ForumInvitationRequestReceivedEvent;
import org.briarproject.briar.api.forum.event.ForumInvitationResponseReceivedEvent;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.conversation.ConversationRequest;
import javax.annotation.concurrent.Immutable;
import javax.inject.Inject;
@@ -51,7 +51,7 @@ class ForumProtocolEngineImpl extends ProtocolEngineImpl<Forum> {
@Override
Event getInvitationRequestReceivedEvent(InviteMessage<Forum> m,
ContactId contactId, boolean available, boolean canBeOpened) {
PrivateRequest<Forum> request = invitationFactory
ConversationRequest<Forum> request = invitationFactory
.createInvitationRequest(false, false, true, false, m,
contactId, available, canBeOpened);
return new ForumInvitationRequestReceivedEvent(request, contactId);

View File

@@ -3,13 +3,13 @@ package org.briarproject.briar.sharing;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.conversation.ConversationRequest;
import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.sharing.Shareable;
public interface InvitationFactory<S extends Shareable, R extends InvitationResponse> {
PrivateRequest<S> createInvitationRequest(boolean local, boolean sent,
ConversationRequest<S> createInvitationRequest(boolean local, boolean sent,
boolean seen, boolean read, InviteMessage<S> m, ContactId c,
boolean available, boolean canBeOpened);

View File

@@ -26,8 +26,8 @@ import org.briarproject.bramble.api.versioning.ClientVersioningManager;
import org.briarproject.bramble.api.versioning.ClientVersioningManager.ClientVersioningHook;
import org.briarproject.briar.api.client.MessageTracker;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import org.briarproject.briar.api.conversation.ConversationRequest;
import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.sharing.Shareable;
import org.briarproject.briar.api.sharing.SharingInvitationItem;
@@ -321,15 +321,15 @@ abstract class SharingManagerImpl<S extends Shareable>
}
@Override
public Collection<PrivateMessageHeader> getMessageHeaders(Transaction txn,
ContactId c) throws DbException {
public Collection<ConversationMessageHeader> getMessageHeaders(
Transaction txn, ContactId c) throws DbException {
try {
Contact contact = db.getContact(txn, c);
GroupId contactGroupId = getContactGroup(contact).getId();
BdfDictionary query = messageParser.getMessagesVisibleInUiQuery();
Map<MessageId, BdfDictionary> results = clientHelper
.getMessageMetadataAsDictionary(txn, contactGroupId, query);
Collection<PrivateMessageHeader> messages =
Collection<ConversationMessageHeader> messages =
new ArrayList<>(results.size());
for (Entry<MessageId, BdfDictionary> e : results.entrySet()) {
MessageId m = e.getKey();
@@ -354,7 +354,7 @@ abstract class SharingManagerImpl<S extends Shareable>
}
}
private PrivateRequest<S> parseInvitationRequest(Transaction txn,
private ConversationRequest<S> parseInvitationRequest(Transaction txn,
ContactId c, MessageId m, MessageMetadata meta,
MessageStatus status) throws DbException, FormatException {
// Look up the invite message to get the details of the private group

View File

@@ -17,7 +17,7 @@ import org.briarproject.briar.api.forum.ForumFactory;
import org.briarproject.briar.api.forum.ForumInvitationResponse;
import org.briarproject.briar.api.forum.ForumManager;
import org.briarproject.briar.api.forum.ForumSharingManager;
import org.briarproject.briar.api.messaging.ConversationManager;
import org.briarproject.briar.api.conversation.ConversationManager;
import javax.inject.Inject;
import javax.inject.Singleton;

View File

@@ -24,6 +24,7 @@ import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.briar.api.client.ProtocolStateException;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import org.briarproject.briar.api.introduction.IntroductionManager;
import org.briarproject.briar.api.introduction.IntroductionRequest;
import org.briarproject.briar.api.introduction.IntroductionResponse;
@@ -297,7 +298,7 @@ public class IntroductionIntegrationTest
Group g1 = introductionManager0.getContactGroup(introducee1);
Group g2 = introductionManager0.getContactGroup(introducee2);
Collection<PrivateMessageHeader> messages =
Collection<ConversationMessageHeader> messages =
db0.transactionWithResult(true, txn -> introductionManager0
.getMessageHeaders(txn, contactId1From0));
assertEquals(2, messages.size());
@@ -363,7 +364,7 @@ public class IntroductionIntegrationTest
assertFalse(contactManager2
.contactExists(author1.getId(), author2.getId()));
Collection<PrivateMessageHeader> messages =
Collection<ConversationMessageHeader> messages =
db0.transactionWithResult(true, txn -> introductionManager0
.getMessageHeaders(txn, contactId1From0));
assertEquals(2, messages.size());
@@ -1102,31 +1103,31 @@ public class IntroductionIntegrationTest
}
private void assertDefaultUiMessages() throws DbException {
Collection<PrivateMessageHeader> messages =
Collection<ConversationMessageHeader> messages =
db0.transactionWithResult(true, txn -> introductionManager0
.getMessageHeaders(txn, contactId1From0));
assertEquals(2, messages.size());
assertMessagesAreAcked(messages);
messages = db0.transactionWithResult(true,
txn -> introductionManager0.getMessageHeaders(txn, contactId2From0));
messages = db0.transactionWithResult(true, txn -> introductionManager0
.getMessageHeaders(txn, contactId2From0));
assertEquals(2, messages.size());
assertMessagesAreAcked(messages);
messages = db1.transactionWithResult(true,
txn -> introductionManager1.getMessageHeaders(txn, contactId0From1));
messages = db1.transactionWithResult(true, txn -> introductionManager1
.getMessageHeaders(txn, contactId0From1));
assertEquals(2, messages.size());
assertMessagesAreAcked(messages);
messages = db2.transactionWithResult(true,
txn -> introductionManager2.getMessageHeaders(txn, contactId0From2));
messages = db2.transactionWithResult(true, txn -> introductionManager2
.getMessageHeaders(txn, contactId0From2));
assertEquals(2, messages.size());
assertMessagesAreAcked(messages);
}
private void assertMessagesAreAcked(
Collection<PrivateMessageHeader> messages) {
for (PrivateMessageHeader msg : messages) {
Collection<ConversationMessageHeader> messages) {
for (ConversationMessageHeader msg : messages) {
if (msg.isLocal()) assertTrue(msg.isSeen());
}
}
@@ -1302,9 +1303,9 @@ public class IntroductionIntegrationTest
private IntroductionRequest getIntroductionRequest(DatabaseComponent db,
IntroductionManager manager, ContactId contactId)
throws DbException {
Collection<PrivateMessageHeader> messages = db.transactionWithResult(
Collection<ConversationMessageHeader> messages = db.transactionWithResult(
true, txn -> manager.getMessageHeaders(txn, contactId));
for (PrivateMessageHeader im : messages) {
for (ConversationMessageHeader im : messages) {
if (im instanceof IntroductionRequest) {
return (IntroductionRequest) im;
}

View File

@@ -4,6 +4,7 @@ import org.briarproject.bramble.api.db.DbException;
import org.briarproject.bramble.api.sync.Group;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.briar.api.client.ProtocolStateException;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.privategroup.GroupMessage;
import org.briarproject.briar.api.privategroup.PrivateGroup;
@@ -91,7 +92,7 @@ public class GroupInvitationIntegrationTest
assertEquals(privateGroup0.getName(), item.getName());
assertFalse(item.isSubscribed());
Collection<PrivateMessageHeader> messages =
Collection<ConversationMessageHeader> messages =
db1.transactionWithResult(true, txn -> groupInvitationManager1
.getMessageHeaders(txn, contactId0From1));
assertEquals(1, messages.size());
@@ -118,12 +119,12 @@ public class GroupInvitationIntegrationTest
groupInvitationManager1
.respondToInvitation(contactId0From1, privateGroup0, false);
Collection<PrivateMessageHeader> messages =
Collection<ConversationMessageHeader> messages =
db1.transactionWithResult(true, txn -> groupInvitationManager1
.getMessageHeaders(txn, contactId0From1));
assertEquals(2, messages.size());
boolean foundResponse = false;
for (PrivateMessageHeader m : messages) {
for (ConversationMessageHeader m : messages) {
if (m instanceof GroupInvitationResponse) {
foundResponse = true;
GroupInvitationResponse response = (GroupInvitationResponse) m;
@@ -140,7 +141,7 @@ public class GroupInvitationIntegrationTest
.getMessageHeaders(txn, contactId1From0));
assertEquals(2, messages.size());
foundResponse = false;
for (PrivateMessageHeader m : messages) {
for (ConversationMessageHeader m : messages) {
if (m instanceof GroupInvitationResponse) {
foundResponse = true;
GroupInvitationResponse response = (GroupInvitationResponse) m;
@@ -168,12 +169,12 @@ public class GroupInvitationIntegrationTest
groupInvitationManager1
.respondToInvitation(contactId0From1, privateGroup0, true);
Collection<PrivateMessageHeader> messages =
Collection<ConversationMessageHeader> messages =
db1.transactionWithResult(true, txn -> groupInvitationManager1
.getMessageHeaders(txn, contactId0From1));
assertEquals(2, messages.size());
boolean foundResponse = false;
for (PrivateMessageHeader m : messages) {
for (ConversationMessageHeader m : messages) {
if (m instanceof GroupInvitationResponse) {
foundResponse = true;
GroupInvitationResponse response = (GroupInvitationResponse) m;
@@ -194,7 +195,7 @@ public class GroupInvitationIntegrationTest
.getMessageHeaders(txn, contactId1From0));
assertEquals(2, messages.size());
foundResponse = false;
for (PrivateMessageHeader m : messages) {
for (ConversationMessageHeader m : messages) {
if (m instanceof GroupInvitationResponse) {
foundResponse = true;
GroupInvitationResponse response = (GroupInvitationResponse) m;
@@ -226,9 +227,10 @@ public class GroupInvitationIntegrationTest
// 1 has one unread message
Group g0 = groupInvitationManager1.getContactGroup(contact0From1);
assertGroupCount(messageTracker1, g0.getId(), 1, 1, timestamp);
PrivateMessageHeader m = db1.transactionWithResult(true,
txn -> groupInvitationManager1.getMessageHeaders(txn, contactId0From1)
.iterator().next());
ConversationMessageHeader m = db1.transactionWithResult(true,
txn -> groupInvitationManager1
.getMessageHeaders(txn, contactId0From1).iterator()
.next());
groupInvitationManager1
.respondToInvitation(contactId0From1, privateGroup0, true);

View File

@@ -24,7 +24,7 @@ import org.briarproject.bramble.test.BrambleMockTestCase;
import org.briarproject.bramble.test.TestUtils;
import org.briarproject.briar.api.client.MessageTracker;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import org.briarproject.briar.api.privategroup.PrivateGroup;
import org.briarproject.briar.api.privategroup.PrivateGroupFactory;
import org.briarproject.briar.api.privategroup.PrivateGroupManager;
@@ -696,10 +696,10 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
oneOf(db).getMessageStatus(txn, contactId, messageId2);
}});
Collection<PrivateMessageHeader> messages =
Collection<ConversationMessageHeader> messages =
groupInvitationManager.getMessageHeaders(txn, contactId);
assertEquals(2, messages.size());
for (PrivateMessageHeader m : messages) {
for (ConversationMessageHeader m : messages) {
assertEquals(contactGroup.getId(), m.getGroupId());
if (m.getId().equals(message.getId())) {
assertTrue(m instanceof GroupInvitationRequest);

View File

@@ -18,7 +18,7 @@ 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.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import org.briarproject.briar.test.BriarIntegrationTest;
import org.briarproject.briar.test.BriarIntegrationTestComponent;
import org.briarproject.briar.test.DaggerBriarIntegrationTestComponent;
@@ -146,12 +146,12 @@ public class BlogSharingIntegrationTest
assertTrue(blogManager1.getBlogs().contains(blog2));
// invitee has one invitation message from sharer
Collection<PrivateMessageHeader> list = db1.transactionWithResult(true,
txn -> blogSharingManager1
Collection<ConversationMessageHeader> list =
db1.transactionWithResult(true, txn -> blogSharingManager1
.getMessageHeaders(txn, contactId0From1));
assertEquals(2, list.size());
// check other things are alright with the message
for (PrivateMessageHeader m : list) {
for (ConversationMessageHeader m : list) {
if (m instanceof BlogInvitationRequest) {
BlogInvitationRequest invitation = (BlogInvitationRequest) m;
assertEquals(blog2, invitation.getNameable());
@@ -220,11 +220,12 @@ public class BlogSharingIntegrationTest
assertTrue(blogManager1.getBlogs().contains(rssBlog));
// invitee has one invitation message from sharer
Collection<PrivateMessageHeader> list = db1.transactionWithResult(true,
txn -> blogSharingManager1.getMessageHeaders(txn, contactId0From1));
Collection<ConversationMessageHeader> list =
db1.transactionWithResult(true, txn -> blogSharingManager1
.getMessageHeaders(txn, contactId0From1));
assertEquals(2, list.size());
// check other things are alright with the message
for (PrivateMessageHeader m : list) {
for (ConversationMessageHeader m : list) {
if (m instanceof BlogInvitationRequest) {
BlogInvitationRequest invitation = (BlogInvitationRequest) m;
assertEquals(rssBlog, invitation.getNameable());
@@ -282,11 +283,12 @@ public class BlogSharingIntegrationTest
assertEquals(0, blogSharingManager1.getInvitations().size());
// invitee has one invitation message from sharer and one response
Collection<PrivateMessageHeader> list = db1.transactionWithResult(true,
txn -> blogSharingManager1.getMessageHeaders(txn, contactId0From1));
Collection<ConversationMessageHeader> list =
db1.transactionWithResult(true, txn -> blogSharingManager1
.getMessageHeaders(txn, contactId0From1));
assertEquals(2, list.size());
// check things are alright with the message
for (PrivateMessageHeader m : list) {
for (ConversationMessageHeader m : list) {
if (m instanceof BlogInvitationRequest) {
BlogInvitationRequest invitation = (BlogInvitationRequest) m;
assertEquals(blog2, invitation.getNameable());
@@ -389,7 +391,7 @@ public class BlogSharingIntegrationTest
assertTrue(contacts.contains(contact0From1));
// make sure 1 knows that they have blog2 already
Collection<PrivateMessageHeader> messages =
Collection<ConversationMessageHeader> messages =
db1.transactionWithResult(true, txn -> blogSharingManager1
.getMessageHeaders(txn, contactId0From1));
assertEquals(2, messages.size());

View File

@@ -12,6 +12,7 @@ import org.briarproject.bramble.api.sync.Group;
import org.briarproject.bramble.api.sync.Message;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.briar.api.conversation.ConversationMessageHeader;
import org.briarproject.briar.api.forum.Forum;
import org.briarproject.briar.api.forum.ForumInvitationRequest;
import org.briarproject.briar.api.forum.ForumInvitationResponse;
@@ -129,11 +130,12 @@ public class ForumSharingIntegrationTest
assertEquals(1, forumManager1.getForums().size());
// invitee has one invitation message from sharer
Collection<PrivateMessageHeader> list = db1.transactionWithResult(true,
txn -> forumSharingManager1.getMessageHeaders(txn, contactId0From1));
Collection<ConversationMessageHeader> list =
db1.transactionWithResult(true, txn -> forumSharingManager1
.getMessageHeaders(txn, contactId0From1));
assertEquals(2, list.size());
// check other things are alright with the forum message
for (PrivateMessageHeader m : list) {
for (ConversationMessageHeader m : list) {
if (m instanceof ForumInvitationRequest) {
ForumInvitationRequest invitation = (ForumInvitationRequest) m;
assertTrue(invitation.wasAnswered());
@@ -185,11 +187,12 @@ public class ForumSharingIntegrationTest
assertEquals(0, forumSharingManager1.getInvitations().size());
// invitee has one invitation message from sharer and one response
Collection<PrivateMessageHeader> list = db1.transactionWithResult(true,
txn -> forumSharingManager1.getMessageHeaders(txn, contactId0From1));
Collection<ConversationMessageHeader> list =
db1.transactionWithResult(true, txn -> forumSharingManager1
.getMessageHeaders(txn, contactId0From1));
assertEquals(2, list.size());
// check things are alright with the forum message
for (PrivateMessageHeader m : list) {
for (ConversationMessageHeader m : list) {
if (m instanceof ForumInvitationRequest) {
ForumInvitationRequest invitation = (ForumInvitationRequest) m;
assertEquals(forum0, invitation.getNameable());
@@ -733,9 +736,9 @@ public class ForumSharingIntegrationTest
// get invitation MessageId for later
MessageId invitationId = null;
Collection<PrivateMessageHeader> list = db1.transactionWithResult(true,
Collection<ConversationMessageHeader> list = db1.transactionWithResult(true,
txn -> forumSharingManager1.getMessageHeaders(txn, contactId0From1));
for (PrivateMessageHeader m : list) {
for (ConversationMessageHeader m : list) {
if (m instanceof ForumInvitationRequest) {
invitationId = m.getId();
}

View File

@@ -195,7 +195,7 @@ it will send a JSON object to connected websocket clients:
"timestamp": 1537389146088,
"type": "PrivateMessage"
},
"name": "PrivateMessageReceivedEvent",
"name": "ConversationMessageReceivedEvent",
"type": "event"
}
```

View File

@@ -1,6 +1,6 @@
package org.briarproject.briar.headless.event
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent
import org.briarproject.briar.api.conversation.event.ConversationMessageReceivedEvent
import org.briarproject.briar.headless.messaging.output
import javax.annotation.concurrent.Immutable
@@ -9,5 +9,5 @@ internal class OutputEvent(val name: String, val data: Any) {
val type = "event"
}
internal fun PrivateMessageReceivedEvent<*>.output(text: String) =
internal fun ConversationMessageReceivedEvent<*>.output(text: String) =
messageHeader.output(contactId, text)

View File

@@ -15,13 +15,17 @@ import org.briarproject.bramble.api.system.Clock
import org.briarproject.bramble.util.StringUtils.utf8IsTooLong
import org.briarproject.briar.api.blog.BlogInvitationRequest
import org.briarproject.briar.api.blog.BlogInvitationResponse
import org.briarproject.briar.api.conversation.ConversationManager
import org.briarproject.briar.api.conversation.ConversationMessageVisitor
import org.briarproject.briar.api.conversation.event.ConversationMessageReceivedEvent
import org.briarproject.briar.api.forum.ForumInvitationRequest
import org.briarproject.briar.api.forum.ForumInvitationResponse
import org.briarproject.briar.api.introduction.IntroductionRequest
import org.briarproject.briar.api.introduction.IntroductionResponse
import org.briarproject.briar.api.messaging.*
import org.briarproject.briar.api.messaging.MessagingConstants.MAX_PRIVATE_MESSAGE_TEXT_LENGTH
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent
import org.briarproject.briar.api.messaging.MessagingManager
import org.briarproject.briar.api.messaging.PrivateMessageFactory
import org.briarproject.briar.api.messaging.PrivateMessageHeader
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse
import org.briarproject.briar.headless.event.WebSocketController
@@ -34,7 +38,7 @@ import javax.annotation.concurrent.Immutable
import javax.inject.Inject
import javax.inject.Singleton
internal const val EVENT_PRIVATE_MESSAGE = "PrivateMessageReceivedEvent"
internal const val EVENT_PRIVATE_MESSAGE = "ConversationMessageReceivedEvent"
@Immutable
@Singleton
@@ -77,7 +81,7 @@ constructor(
override fun eventOccurred(e: Event) {
when (e) {
is PrivateMessageReceivedEvent<*> -> dbExecutor.execute {
is ConversationMessageReceivedEvent<*> -> dbExecutor.execute {
val text = messagingManager.getMessageText(e.messageHeader.id)
webSocketController.sendEvent(EVENT_PRIVATE_MESSAGE, e.output(text))
}
@@ -97,7 +101,7 @@ constructor(
private class JsonVisitor(
private val contactId: ContactId,
private val messagingManager: MessagingManager
) : PrivateMessageVisitor<JsonDict> {
) : ConversationMessageVisitor<JsonDict> {
override fun visitPrivateMessageHeader(h: PrivateMessageHeader) =
h.output(contactId, messagingManager.getMessageText(h.id))

View File

@@ -1,11 +1,11 @@
package org.briarproject.briar.headless.messaging
import org.briarproject.bramble.api.contact.ContactId
import org.briarproject.briar.api.conversation.ConversationMessageHeader
import org.briarproject.briar.api.messaging.PrivateMessage
import org.briarproject.briar.api.messaging.PrivateMessageHeader
import org.briarproject.briar.headless.json.JsonDict
internal fun PrivateMessageHeader.output(contactId: ContactId) = JsonDict(
internal fun ConversationMessageHeader.output(contactId: ContactId) = JsonDict(
"type" to "PrivateMessage",
"contactId" to contactId.int,
"timestamp" to timestamp,
@@ -17,7 +17,7 @@ internal fun PrivateMessageHeader.output(contactId: ContactId) = JsonDict(
"groupId" to groupId.bytes
)
internal fun PrivateMessageHeader.output(contactId: ContactId, text: String?): JsonDict {
internal fun ConversationMessageHeader.output(contactId: ContactId, text: String?): JsonDict {
val dict = output(contactId)
dict["text"] = text
return dict

View File

@@ -2,16 +2,16 @@ package org.briarproject.briar.headless.messaging
import org.briarproject.bramble.api.contact.ContactId
import org.briarproject.briar.api.blog.BlogInvitationRequest
import org.briarproject.briar.api.conversation.ConversationMessageHeader
import org.briarproject.briar.api.conversation.ConversationRequest
import org.briarproject.briar.api.forum.ForumInvitationRequest
import org.briarproject.briar.api.introduction.IntroductionRequest
import org.briarproject.briar.api.messaging.PrivateMessageHeader
import org.briarproject.briar.api.messaging.PrivateRequest
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest
import org.briarproject.briar.api.sharing.InvitationRequest
import org.briarproject.briar.headless.json.JsonDict
internal fun PrivateRequest<*>.output(contactId: ContactId): JsonDict {
val dict = (this as PrivateMessageHeader).output(contactId, text)
internal fun ConversationRequest<*>.output(contactId: ContactId): JsonDict {
val dict = (this as ConversationMessageHeader).output(contactId, text)
dict.putAll(
"sessionId" to sessionId.bytes,
"name" to name,
@@ -21,7 +21,7 @@ internal fun PrivateRequest<*>.output(contactId: ContactId): JsonDict {
}
internal fun IntroductionRequest.output(contactId: ContactId): JsonDict {
val dict = (this as PrivateRequest<*>).output(contactId)
val dict = (this as ConversationRequest<*>).output(contactId)
dict.putAll(
"type" to "IntroductionRequest",
"alreadyContact" to isContact
@@ -30,7 +30,7 @@ internal fun IntroductionRequest.output(contactId: ContactId): JsonDict {
}
internal fun InvitationRequest<*>.output(contactId: ContactId): JsonDict {
val dict = (this as PrivateRequest<*>).output(contactId)
val dict = (this as ConversationRequest<*>).output(contactId)
dict["canBeOpened"] = canBeOpened()
return dict
}

View File

@@ -6,12 +6,12 @@ import org.briarproject.briar.api.blog.BlogInvitationResponse
import org.briarproject.briar.api.forum.ForumInvitationResponse
import org.briarproject.briar.api.introduction.IntroductionResponse
import org.briarproject.briar.api.messaging.PrivateMessageHeader
import org.briarproject.briar.api.messaging.PrivateResponse
import org.briarproject.briar.api.conversation.ConversationResponse
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse
import org.briarproject.briar.api.sharing.InvitationResponse
import org.briarproject.briar.headless.json.JsonDict
internal fun PrivateResponse.output(contactId: ContactId): JsonDict {
internal fun ConversationResponse.output(contactId: ContactId): JsonDict {
val dict = (this as PrivateMessageHeader).output(contactId)
dict.putAll(
"sessionId" to sessionId.bytes,
@@ -21,7 +21,7 @@ internal fun PrivateResponse.output(contactId: ContactId): JsonDict {
}
internal fun IntroductionResponse.output(contactId: ContactId): JsonDict {
val dict = (this as PrivateResponse).output(contactId)
val dict = (this as ConversationResponse).output(contactId)
dict.putAll(
"type" to "IntroductionResponse",
"introducedAuthor" to introducedAuthor.output(),
@@ -31,7 +31,7 @@ internal fun IntroductionResponse.output(contactId: ContactId): JsonDict {
}
internal fun InvitationResponse.output(contactId: ContactId): JsonDict {
val dict = (this as PrivateResponse).output(contactId)
val dict = (this as ConversationResponse).output(contactId)
dict["shareableId"] = shareableId.bytes
return dict
}

View File

@@ -65,7 +65,7 @@ internal class WebSocketControllerTest : ControllerTest() {
val json = """
{
"type": "event",
"name": "PrivateMessageReceivedEvent",
"name": "ConversationMessageReceivedEvent",
"data": ${toJson(header.output(contact.id, text))}
}
"""

View File

@@ -14,6 +14,7 @@ import org.briarproject.bramble.test.ImmediateExecutor
import org.briarproject.bramble.test.TestUtils.getRandomId
import org.briarproject.bramble.util.StringUtils.getRandomString
import org.briarproject.briar.api.client.SessionId
import org.briarproject.briar.api.conversation.ConversationManager
import org.briarproject.briar.api.introduction.IntroductionRequest
import org.briarproject.briar.api.messaging.*
import org.briarproject.briar.api.messaging.MessagingConstants.MAX_PRIVATE_MESSAGE_TEXT_LENGTH