Unify all private message requests in one PrivateRequest class

This commit is contained in:
Torsten Grote
2018-09-04 18:28:12 -03:00
parent 2d9345c018
commit 59fae2fa3c
37 changed files with 288 additions and 323 deletions

View File

@@ -43,8 +43,8 @@ import org.briarproject.briar.api.introduction.event.IntroductionRequestReceived
import org.briarproject.briar.api.introduction.event.IntroductionResponseReceivedEvent; import org.briarproject.briar.api.introduction.event.IntroductionResponseReceivedEvent;
import org.briarproject.briar.api.messaging.ConversationManager; import org.briarproject.briar.api.messaging.ConversationManager;
import org.briarproject.briar.api.messaging.PrivateMessageHeader; import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent; import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent;
import org.briarproject.briar.api.sharing.InvitationRequest;
import org.briarproject.briar.api.sharing.InvitationResponse; import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.sharing.event.InvitationRequestReceivedEvent; import org.briarproject.briar.api.sharing.event.InvitationRequestReceivedEvent;
import org.briarproject.briar.api.sharing.event.InvitationResponseReceivedEvent; import org.briarproject.briar.api.sharing.event.InvitationResponseReceivedEvent;
@@ -271,7 +271,7 @@ public class ContactListFragment extends BaseFragment implements EventListener {
LOG.info("Invitation Request received, update item"); LOG.info("Invitation Request received, update item");
InvitationRequestReceivedEvent m = InvitationRequestReceivedEvent m =
(InvitationRequestReceivedEvent) e; (InvitationRequestReceivedEvent) e;
InvitationRequest ir = m.getRequest(); PrivateRequest ir = m.getRequest();
updateItem(m.getContactId(), ir); updateItem(m.getContactId(), ir);
} else if (e instanceof InvitationResponseReceivedEvent) { } else if (e instanceof InvitationResponseReceivedEvent) {
LOG.info("Invitation response received, updating item"); LOG.info("Invitation response received, updating item");

View File

@@ -62,7 +62,6 @@ import org.briarproject.briar.api.client.ProtocolStateException;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.forum.ForumSharingManager; import org.briarproject.briar.api.forum.ForumSharingManager;
import org.briarproject.briar.api.introduction.IntroductionManager; import org.briarproject.briar.api.introduction.IntroductionManager;
import org.briarproject.briar.api.introduction.IntroductionMessage;
import org.briarproject.briar.api.introduction.IntroductionRequest; import org.briarproject.briar.api.introduction.IntroductionRequest;
import org.briarproject.briar.api.introduction.IntroductionResponse; import org.briarproject.briar.api.introduction.IntroductionResponse;
import org.briarproject.briar.api.introduction.event.IntroductionRequestReceivedEvent; import org.briarproject.briar.api.introduction.event.IntroductionRequestReceivedEvent;
@@ -71,10 +70,9 @@ import org.briarproject.briar.api.messaging.MessagingManager;
import org.briarproject.briar.api.messaging.PrivateMessage; import org.briarproject.briar.api.messaging.PrivateMessage;
import org.briarproject.briar.api.messaging.PrivateMessageFactory; import org.briarproject.briar.api.messaging.PrivateMessageFactory;
import org.briarproject.briar.api.messaging.PrivateMessageHeader; import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent; import org.briarproject.briar.api.messaging.event.PrivateMessageReceivedEvent;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager; import org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager;
import org.briarproject.briar.api.sharing.InvitationMessage;
import org.briarproject.briar.api.sharing.InvitationRequest;
import org.briarproject.briar.api.sharing.InvitationResponse; import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.sharing.event.InvitationRequestReceivedEvent; import org.briarproject.briar.api.sharing.event.InvitationRequestReceivedEvent;
import org.briarproject.briar.api.sharing.event.InvitationResponseReceivedEvent; import org.briarproject.briar.api.sharing.event.InvitationResponseReceivedEvent;
@@ -344,15 +342,15 @@ public class ConversationActivity extends BriarActivity
long start = now(); long start = now();
Collection<PrivateMessageHeader> headers = Collection<PrivateMessageHeader> headers =
messagingManager.getMessageHeaders(contactId); messagingManager.getMessageHeaders(contactId);
Collection<IntroductionMessage> introductions = Collection<PrivateMessageHeader> introductions =
introductionManager.getIntroductionMessages(contactId); introductionManager.getIntroductionMessages(contactId);
Collection<InvitationMessage> forumInvitations = Collection<PrivateMessageHeader> forumInvitations =
forumSharingManager.getInvitationMessages(contactId); forumSharingManager.getInvitationMessages(contactId);
Collection<InvitationMessage> blogInvitations = Collection<PrivateMessageHeader> blogInvitations =
blogSharingManager.getInvitationMessages(contactId); blogSharingManager.getInvitationMessages(contactId);
Collection<InvitationMessage> groupInvitations = Collection<PrivateMessageHeader> groupInvitations =
groupInvitationManager.getInvitationMessages(contactId); groupInvitationManager.getInvitationMessages(contactId);
List<InvitationMessage> invitations = new ArrayList<>( List<PrivateMessageHeader> invitations = new ArrayList<>(
forumInvitations.size() + blogInvitations.size() + forumInvitations.size() + blogInvitations.size() +
groupInvitations.size()); groupInvitations.size());
invitations.addAll(forumInvitations); invitations.addAll(forumInvitations);
@@ -370,8 +368,8 @@ public class ConversationActivity extends BriarActivity
private void displayMessages(int revision, private void displayMessages(int revision,
Collection<PrivateMessageHeader> headers, Collection<PrivateMessageHeader> headers,
Collection<IntroductionMessage> introductions, Collection<PrivateMessageHeader> introductions,
Collection<InvitationMessage> invitations) { Collection<PrivateMessageHeader> invitations) {
runOnUiThreadUnlessDestroyed(() -> { runOnUiThreadUnlessDestroyed(() -> {
if (revision == adapter.getRevision()) { if (revision == adapter.getRevision()) {
adapter.incrementRevision(); adapter.incrementRevision();
@@ -397,8 +395,8 @@ public class ConversationActivity extends BriarActivity
@SuppressWarnings("ConstantConditions") @SuppressWarnings("ConstantConditions")
private List<ConversationItem> createItems( private List<ConversationItem> createItems(
Collection<PrivateMessageHeader> headers, Collection<PrivateMessageHeader> headers,
Collection<IntroductionMessage> introductions, Collection<PrivateMessageHeader> introductions,
Collection<InvitationMessage> invitations) { Collection<PrivateMessageHeader> invitations) {
int size = int size =
headers.size() + introductions.size() + invitations.size(); headers.size() + introductions.size() + invitations.size();
List<ConversationItem> items = new ArrayList<>(size); List<ConversationItem> items = new ArrayList<>(size);
@@ -409,7 +407,7 @@ public class ConversationActivity extends BriarActivity
else item.setBody(body); else item.setBody(body);
items.add(item); items.add(item);
} }
for (IntroductionMessage m : introductions) { for (PrivateMessageHeader m : introductions) {
ConversationItem item; ConversationItem item;
if (m instanceof IntroductionRequest) { if (m instanceof IntroductionRequest) {
IntroductionRequest i = (IntroductionRequest) m; IntroductionRequest i = (IntroductionRequest) m;
@@ -420,11 +418,11 @@ public class ConversationActivity extends BriarActivity
} }
items.add(item); items.add(item);
} }
for (InvitationMessage i : invitations) { for (PrivateMessageHeader i : invitations) {
ConversationItem item; ConversationItem item;
if (i instanceof InvitationRequest) { if (i instanceof PrivateRequest) {
InvitationRequest r = (InvitationRequest) i; item = ConversationItem
item = ConversationItem.from(this, contactName, r); .from(this, contactName, (PrivateRequest) i);
} else { } else {
InvitationResponse r = (InvitationResponse) i; InvitationResponse r = (InvitationResponse) i;
item = ConversationItem.from(this, contactName, r); item = ConversationItem.from(this, contactName, r);
@@ -525,7 +523,7 @@ public class ConversationActivity extends BriarActivity
(InvitationRequestReceivedEvent) e; (InvitationRequestReceivedEvent) e;
if (event.getContactId().equals(contactId)) { if (event.getContactId().equals(contactId)) {
LOG.info("Invitation received, adding..."); LOG.info("Invitation received, adding...");
InvitationRequest ir = event.getRequest(); PrivateRequest ir = event.getRequest();
handleInvitationRequest(ir); handleInvitationRequest(ir);
} }
} else if (e instanceof InvitationResponseReceivedEvent) { } else if (e instanceof InvitationResponseReceivedEvent) {
@@ -586,7 +584,7 @@ public class ConversationActivity extends BriarActivity
}); });
} }
private void handleInvitationRequest(InvitationRequest m) { private void handleInvitationRequest(PrivateRequest m) {
getContactNameTask().addListener(new FutureTaskListener<String>() { getContactNameTask().addListener(new FutureTaskListener<String>() {
@Override @Override
public void onSuccess(String contactName) { public void onSuccess(String contactName) {

View File

@@ -16,10 +16,11 @@ import org.briarproject.briar.api.forum.ForumInvitationResponse;
import org.briarproject.briar.api.introduction.IntroductionRequest; import org.briarproject.briar.api.introduction.IntroductionRequest;
import org.briarproject.briar.api.introduction.IntroductionResponse; import org.briarproject.briar.api.introduction.IntroductionResponse;
import org.briarproject.briar.api.messaging.PrivateMessageHeader; 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.privategroup.invitation.GroupInvitationRequest;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse; import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse;
import org.briarproject.briar.api.sharing.InvitationRequest;
import org.briarproject.briar.api.sharing.InvitationResponse; import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.sharing.Shareable;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.annotation.concurrent.NotThreadSafe; import javax.annotation.concurrent.NotThreadSafe;
@@ -86,35 +87,6 @@ abstract class ConversationItem {
} }
} }
static ConversationItem from(Context ctx, String contactName,
IntroductionRequest ir) {
if (ir.isLocal()) {
String text = ctx.getString(R.string.introduction_request_sent,
contactName, ir.getName());
return new ConversationNoticeOutItem(ir.getId(),
ir.getGroupId(), text, ir.getMessage(), ir.getTimestamp(),
ir.isSent(), ir.isSeen());
} else {
String text;
if (ir.wasAnswered()) {
text = ctx.getString(
R.string.introduction_request_answered_received,
contactName, ir.getName());
} else if (ir.contactExists()){
text = ctx.getString(
R.string.introduction_request_exists_received,
contactName, ir.getName());
} else {
text = ctx.getString(R.string.introduction_request_received,
contactName, ir.getName());
}
return new ConversationRequestItem(ir.getId(),
ir.getGroupId(), INTRODUCTION, ir.getSessionId(), text,
ir.getMessage(), ir.getTimestamp(), ir.isRead(), null,
ir.wasAnswered(), false);
}
}
static ConversationItem from(Context ctx, String contactName, static ConversationItem from(Context ctx, String contactName,
IntroductionResponse ir) { IntroductionResponse ir) {
if (ir.isLocal()) { if (ir.isLocal()) {
@@ -156,21 +128,22 @@ abstract class ConversationItem {
} }
static ConversationItem from(Context ctx, String contactName, static ConversationItem from(Context ctx, String contactName,
InvitationRequest ir) { PrivateRequest ir) {
if (ir.isLocal()) { if (ir.isLocal()) {
String text; String text;
if (ir instanceof ForumInvitationRequest) { if (ir instanceof IntroductionRequest) {
text = ctx.getString(R.string.introduction_request_sent,
contactName, ir.getName());
} else if (ir instanceof ForumInvitationRequest) {
text = ctx.getString(R.string.forum_invitation_sent, text = ctx.getString(R.string.forum_invitation_sent,
((ForumInvitationRequest) ir).getForumName(), ir.getName(), contactName);
contactName);
} else if (ir instanceof BlogInvitationRequest) { } else if (ir instanceof BlogInvitationRequest) {
text = ctx.getString(R.string.blogs_sharing_invitation_sent, text = ctx.getString(R.string.blogs_sharing_invitation_sent,
((BlogInvitationRequest) ir).getBlogAuthorName(), ir.getName(), contactName);
contactName);
} else if (ir instanceof GroupInvitationRequest) { } else if (ir instanceof GroupInvitationRequest) {
text = ctx.getString( text = ctx.getString(
R.string.groups_invitations_invitation_sent, R.string.groups_invitations_invitation_sent,
contactName, ir.getShareable().getName()); contactName, ir.getName());
} else { } else {
throw new IllegalArgumentException("Unknown InvitationRequest"); throw new IllegalArgumentException("Unknown InvitationRequest");
} }
@@ -180,20 +153,36 @@ abstract class ConversationItem {
} else { } else {
String text; String text;
RequestType type; RequestType type;
if (ir instanceof ForumInvitationRequest) { if (ir instanceof IntroductionRequest) {
type = INTRODUCTION;
if (ir.wasAnswered()) {
text = ctx.getString(
R.string.introduction_request_answered_received,
contactName, ir.getName());
} else if (ir.doesExist()) {
text = ctx.getString(
R.string.introduction_request_exists_received,
contactName, ir.getName());
} else {
text = ctx.getString(R.string.introduction_request_received,
contactName, ir.getName());
}
return new ConversationRequestItem(ir.getId(),
ir.getGroupId(), type, ir.getSessionId(), text,
ir.getMessage(), ir.getTimestamp(), ir.isRead(), null,
ir.wasAnswered(), false);
} else if (ir instanceof ForumInvitationRequest) {
text = ctx.getString(R.string.forum_invitation_received, text = ctx.getString(R.string.forum_invitation_received,
contactName, contactName, ir.getName());
((ForumInvitationRequest) ir).getForumName());
type = FORUM; type = FORUM;
} else if (ir instanceof BlogInvitationRequest) { } else if (ir instanceof BlogInvitationRequest) {
text = ctx.getString(R.string.blogs_sharing_invitation_received, text = ctx.getString(R.string.blogs_sharing_invitation_received,
contactName, contactName, ir.getName());
((BlogInvitationRequest) ir).getBlogAuthorName());
type = BLOG; type = BLOG;
} else if (ir instanceof GroupInvitationRequest) { } else if (ir instanceof GroupInvitationRequest) {
text = ctx.getString( text = ctx.getString(
R.string.groups_invitations_invitation_received, R.string.groups_invitations_invitation_received,
contactName, ir.getShareable().getName()); contactName, ir.getName());
type = GROUP; type = GROUP;
} else { } else {
throw new IllegalArgumentException("Unknown InvitationRequest"); throw new IllegalArgumentException("Unknown InvitationRequest");
@@ -201,8 +190,8 @@ abstract class ConversationItem {
return new ConversationRequestItem(ir.getId(), return new ConversationRequestItem(ir.getId(),
ir.getGroupId(), type, ir.getSessionId(), text, ir.getGroupId(), type, ir.getSessionId(), text,
ir.getMessage(), ir.getTimestamp(), ir.isRead(), ir.getMessage(), ir.getTimestamp(), ir.isRead(),
ir.getShareable().getId(), !ir.isAvailable(), ((Shareable) ir.getObject()).getId(), !ir.wasAnswered(),
ir.canBeOpened()); ir.doesExist());
} }
} }
@@ -276,8 +265,8 @@ abstract class ConversationItem {
return from(ctx, "", (IntroductionRequest) h); return from(ctx, "", (IntroductionRequest) h);
} else if(h instanceof IntroductionResponse) { } else if(h instanceof IntroductionResponse) {
return from(ctx, "", (IntroductionResponse) h); return from(ctx, "", (IntroductionResponse) h);
} else if(h instanceof InvitationRequest) { } else if(h instanceof PrivateRequest) {
return from(ctx, "", (InvitationRequest) h); return from(ctx, "", (PrivateRequest) h);
} else if(h instanceof InvitationResponse) { } else if(h instanceof InvitationResponse) {
return from(ctx, "", (InvitationResponse) h); return from(ctx, "", (InvitationResponse) h);
} else { } else {

View File

@@ -1,27 +1,22 @@
package org.briarproject.briar.api.blog; package org.briarproject.briar.api.blog;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.sharing.InvitationRequest; import org.briarproject.briar.api.messaging.PrivateRequest;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@NotNullByDefault @NotNullByDefault
public class BlogInvitationRequest extends InvitationRequest<Blog> { public class BlogInvitationRequest extends PrivateRequest<Blog> {
public BlogInvitationRequest(MessageId id, GroupId groupId, long time, public BlogInvitationRequest(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read, boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, Blog blog, ContactId contactId, SessionId sessionId, Blog blog,
@Nullable String message, boolean available, boolean canBeOpened) { @Nullable String message, boolean available, boolean canBeOpened) {
super(id, groupId, time, local, sent, seen, read, sessionId, blog, super(id, groupId, time, local, sent, seen, read, sessionId, blog,
message, available, canBeOpened); message, available, canBeOpened);
} }
public String getBlogAuthorName() {
return getShareable().getName();
}
} }

View File

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

View File

@@ -1,29 +1,24 @@
package org.briarproject.briar.api.forum; package org.briarproject.briar.api.forum;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.sharing.InvitationRequest; import org.briarproject.briar.api.messaging.PrivateRequest;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
@Immutable @Immutable
@NotNullByDefault @NotNullByDefault
public class ForumInvitationRequest extends InvitationRequest<Forum> { public class ForumInvitationRequest extends PrivateRequest<Forum> {
public ForumInvitationRequest(MessageId id, GroupId groupId, long time, public ForumInvitationRequest(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read, boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, Forum forum, ContactId contactId, SessionId sessionId, Forum forum,
@Nullable String message, boolean available, boolean canBeOpened) { @Nullable String message, boolean available, boolean canBeOpened) {
super(id, groupId, time, local, sent, seen, read, sessionId, forum, super(id, groupId, time, local, sent, seen, read, sessionId, forum,
message, available, canBeOpened); message, available, canBeOpened);
} }
public String getForumName() {
return getShareable().getName();
}
} }

View File

@@ -3,7 +3,7 @@ package org.briarproject.briar.api.forum.event;
import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.forum.Forum; import org.briarproject.briar.api.forum.Forum;
import org.briarproject.briar.api.sharing.InvitationRequest; import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.sharing.event.InvitationRequestReceivedEvent; import org.briarproject.briar.api.sharing.event.InvitationRequestReceivedEvent;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
@@ -14,7 +14,7 @@ public class ForumInvitationRequestReceivedEvent extends
InvitationRequestReceivedEvent<Forum> { InvitationRequestReceivedEvent<Forum> {
public ForumInvitationRequestReceivedEvent(Forum forum, ContactId contactId, public ForumInvitationRequestReceivedEvent(Forum forum, ContactId contactId,
InvitationRequest<Forum> request) { PrivateRequest<Forum> request) {
super(forum, contactId, request); super(forum, contactId, request);
} }

View File

@@ -0,0 +1,32 @@
package org.briarproject.briar.api.introduction;
import org.briarproject.bramble.api.identity.Author;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.messaging.Nameable;
import javax.annotation.concurrent.Immutable;
import static org.briarproject.briar.api.introduction.Role.INTRODUCER;
@Immutable
@NotNullByDefault
public class Introduction implements Nameable {
private final Author introducedAuthor;
private final Role ourRole;
public Introduction(Author introducedAuthor, Role ourRole) {
this.introducedAuthor = introducedAuthor;
this.ourRole = ourRole;
}
@Override
public String getName() {
return introducedAuthor.getName();
}
public boolean isIntroducer() {
return ourRole == INTRODUCER;
}
}

View File

@@ -7,6 +7,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.ClientId; import org.briarproject.bramble.api.sync.ClientId;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient; import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import java.util.Collection; import java.util.Collection;
@@ -50,7 +51,7 @@ public interface IntroductionManager extends ConversationClient {
/** /**
* Returns all introduction messages for the given contact. * Returns all introduction messages for the given contact.
*/ */
Collection<IntroductionMessage> getIntroductionMessages(ContactId contactId) Collection<PrivateMessageHeader> getIntroductionMessages(ContactId contactId)
throws DbException; throws DbException;
} }

View File

@@ -1,28 +0,0 @@
package org.briarproject.briar.api.introduction;
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.PrivateMessageHeader;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public abstract class IntroductionMessage extends PrivateMessageHeader {
private final SessionId sessionId;
IntroductionMessage(SessionId sessionId, MessageId messageId,
GroupId groupId, long time, boolean local, boolean sent,
boolean seen, boolean read) {
super(messageId, groupId, time, local, sent, seen, read);
this.sessionId = sessionId;
}
public SessionId getSessionId() {
return sessionId;
}
}

View File

@@ -1,48 +1,24 @@
package org.briarproject.briar.api.introduction; package org.briarproject.briar.api.introduction;
import org.briarproject.bramble.api.identity.Author;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateRequest;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
@Immutable @Immutable
@NotNullByDefault @NotNullByDefault
public class IntroductionRequest extends IntroductionMessage { public class IntroductionRequest extends PrivateRequest<Introduction> {
private final Author introducedAuthor; public IntroductionRequest(MessageId messageId, GroupId groupId,
@Nullable long time, boolean local, boolean sent, boolean seen, boolean read,
private final String message; SessionId sessionId, Introduction introduction,
private final boolean answered, exists;
public IntroductionRequest(SessionId sessionId, MessageId messageId,
GroupId groupId, long time, boolean local, boolean sent,
boolean seen, boolean read, Author introducedAuthor,
@Nullable String message, boolean answered, boolean exists) { @Nullable String message, boolean answered, boolean exists) {
super(sessionId, messageId, groupId, time, local, sent, seen, read); super(messageId, groupId, time, local, sent, seen, read, sessionId,
this.introducedAuthor = introducedAuthor; introduction, message, answered, exists);
this.message = message;
this.answered = answered;
this.exists = exists;
} }
public String getName() {
return introducedAuthor.getName();
}
@Nullable
public String getMessage() {
return message;
}
public boolean wasAnswered() {
return answered;
}
public boolean contactExists() {
return exists;
}
} }

View File

@@ -4,6 +4,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
@@ -11,8 +12,9 @@ import static org.briarproject.briar.api.introduction.Role.INTRODUCER;
@Immutable @Immutable
@NotNullByDefault @NotNullByDefault
public class IntroductionResponse extends IntroductionMessage { public class IntroductionResponse extends PrivateMessageHeader {
private final SessionId sessionId;
private final String name; private final String name;
private final Role role; private final Role role;
private final boolean accepted; private final boolean accepted;
@@ -20,12 +22,17 @@ public class IntroductionResponse extends IntroductionMessage {
public IntroductionResponse(SessionId sessionId, MessageId messageId, public IntroductionResponse(SessionId sessionId, MessageId messageId,
GroupId groupId, Role role, long time, boolean local, boolean sent, GroupId groupId, Role role, long time, boolean local, boolean sent,
boolean seen, boolean read, String name, boolean accepted) { boolean seen, boolean read, String name, boolean accepted) {
super(sessionId, messageId, groupId, time, local, sent, seen, read); super(messageId, groupId, time, local, sent, seen, read);
this.sessionId = sessionId;
this.name = name; this.name = name;
this.role = role; this.role = role;
this.accepted = accepted; this.accepted = accepted;
} }
public SessionId getSessionId() {
return sessionId;
}
public String getName() { public String getName() {
return name; return name;
} }

View File

@@ -0,0 +1,10 @@
package org.briarproject.briar.api.messaging;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
@NotNullByDefault
public interface Nameable {
String getName();
}

View File

@@ -0,0 +1,57 @@
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.client.SessionId;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class PrivateRequest<O extends Nameable> extends PrivateMessageHeader {
private final SessionId sessionId;
private final O object;
@Nullable
private final String message;
private final boolean answered, exists;
public PrivateRequest(MessageId messageId, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, O object, @Nullable String message,
boolean answered, boolean exists) {
super(messageId, groupId, time, local, sent, seen, read);
this.sessionId = sessionId;
this.object = object;
this.message = message;
this.answered = answered;
this.exists = exists;
}
public SessionId getSessionId() {
return sessionId;
}
public O getObject() {
return object;
}
public String getName() {
return object.getName();
}
@Nullable
public String getMessage() {
return message;
}
public boolean wasAnswered() {
return answered;
}
public boolean doesExist() {
return exists;
}
}

View File

@@ -9,8 +9,8 @@ import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.briar.api.client.ProtocolStateException; import org.briarproject.briar.api.client.ProtocolStateException;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient; import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.privategroup.PrivateGroup; import org.briarproject.briar.api.privategroup.PrivateGroup;
import org.briarproject.briar.api.sharing.InvitationMessage;
import java.util.Collection; import java.util.Collection;
@@ -77,7 +77,7 @@ public interface GroupInvitationManager extends ConversationClient {
* Returns all private group invitation messages related to the given * Returns all private group invitation messages related to the given
* contact. * contact.
*/ */
Collection<InvitationMessage> getInvitationMessages(ContactId c) Collection<PrivateMessageHeader> getInvitationMessages(ContactId c)
throws DbException; throws DbException;
/** /**

View File

@@ -1,23 +1,22 @@
package org.briarproject.briar.api.privategroup.invitation; package org.briarproject.briar.api.privategroup.invitation;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.privategroup.PrivateGroup; import org.briarproject.briar.api.privategroup.PrivateGroup;
import org.briarproject.briar.api.sharing.InvitationRequest;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
@Immutable @Immutable
@NotNullByDefault @NotNullByDefault
public class GroupInvitationRequest extends InvitationRequest<PrivateGroup> { public class GroupInvitationRequest extends PrivateRequest<PrivateGroup> {
public GroupInvitationRequest(MessageId id, GroupId groupId, long time, public GroupInvitationRequest(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read, boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, PrivateGroup shareable, ContactId contactId, SessionId sessionId, PrivateGroup shareable,
@Nullable String message, boolean available, boolean canBeOpened) { @Nullable String message, boolean available, boolean canBeOpened) {
super(id, groupId, time, local, sent, seen, read, sessionId, shareable, super(id, groupId, time, local, sent, seen, read, sessionId, shareable,
message, available, canBeOpened); message, available, canBeOpened);

View File

@@ -1,28 +0,0 @@
package org.briarproject.briar.api.sharing;
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.PrivateMessageHeader;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public abstract class InvitationMessage extends PrivateMessageHeader {
private final SessionId sessionId;
public InvitationMessage(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId) {
super(id, groupId, time, local, sent, seen, read);
this.sessionId = sessionId;
}
public SessionId getSessionId() {
return sessionId;
}
}

View File

@@ -1,49 +0,0 @@
package org.briarproject.briar.api.sharing;
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 javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public abstract class InvitationRequest<S extends Shareable>
extends InvitationMessage {
private final S shareable;
@Nullable
private final String message;
private final boolean available, canBeOpened;
public InvitationRequest(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, S shareable,
@Nullable String message, boolean available, boolean canBeOpened) {
super(id, groupId, time, local, sent, seen, read, sessionId);
this.shareable = shareable;
this.message = message;
this.available = available;
this.canBeOpened = canBeOpened;
}
@Nullable
public String getMessage() {
return message;
}
public boolean isAvailable() {
return available;
}
public boolean canBeOpened() {
return canBeOpened;
}
public S getShareable() {
return shareable;
}
}

View File

@@ -4,13 +4,15 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
@Immutable @Immutable
@NotNullByDefault @NotNullByDefault
public abstract class InvitationResponse extends InvitationMessage { public abstract class InvitationResponse extends PrivateMessageHeader {
private final SessionId sessionId;
private final GroupId shareableId; private final GroupId shareableId;
private final boolean accept; private final boolean accept;
@@ -18,11 +20,16 @@ public abstract class InvitationResponse extends InvitationMessage {
long time, boolean local, boolean sent, boolean seen, long time, boolean local, boolean sent, boolean seen,
boolean read, SessionId sessionId, GroupId shareableId, boolean read, SessionId sessionId, GroupId shareableId,
boolean accept) { boolean accept) {
super(id, groupId, time, local, sent, seen, read, sessionId); super(id, groupId, time, local, sent, seen, read);
this.sessionId = sessionId;
this.shareableId = shareableId; this.shareableId = shareableId;
this.accept = accept; this.accept = accept;
} }
public SessionId getSessionId() {
return sessionId;
}
public boolean wasAccepted() { public boolean wasAccepted() {
return accept; return accept;
} }

View File

@@ -2,12 +2,11 @@ package org.briarproject.briar.api.sharing;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.briar.api.messaging.Nameable;
@NotNullByDefault @NotNullByDefault
public interface Shareable { public interface Shareable extends Nameable {
GroupId getId(); GroupId getId();
String getName();
} }

View File

@@ -7,6 +7,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient; import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import java.util.Collection; import java.util.Collection;
@@ -39,7 +40,7 @@ public interface SharingManager<S extends Shareable>
* Returns all group sharing messages sent by the Contact * Returns all group sharing messages sent by the Contact
* identified by contactId. * identified by contactId.
*/ */
Collection<InvitationMessage> getInvitationMessages( Collection<PrivateMessageHeader> getInvitationMessages(
ContactId contactId) throws DbException; ContactId contactId) throws DbException;
/** /**

View File

@@ -3,7 +3,7 @@ package org.briarproject.briar.api.sharing.event;
import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.event.Event; import org.briarproject.bramble.api.event.Event;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.sharing.InvitationRequest; import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.sharing.Shareable; import org.briarproject.briar.api.sharing.Shareable;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
@@ -15,10 +15,10 @@ public abstract class InvitationRequestReceivedEvent<S extends Shareable>
private final S shareable; private final S shareable;
private final ContactId contactId; private final ContactId contactId;
private final InvitationRequest request; private final PrivateRequest<S> request;
protected InvitationRequestReceivedEvent(S shareable, ContactId contactId, protected InvitationRequestReceivedEvent(S shareable, ContactId contactId,
InvitationRequest request) { PrivateRequest<S> request) {
this.shareable = shareable; this.shareable = shareable;
this.contactId = contactId; this.contactId = contactId;
this.request = request; this.request = request;
@@ -28,7 +28,7 @@ public abstract class InvitationRequestReceivedEvent<S extends Shareable>
return contactId; return contactId;
} }
public InvitationRequest getRequest() { public PrivateRequest<S> getRequest() {
return request; return request;
} }

View File

@@ -26,6 +26,7 @@ import org.briarproject.bramble.api.transport.KeySetId;
import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.client.MessageTracker;
import org.briarproject.briar.api.client.ProtocolStateException; import org.briarproject.briar.api.client.ProtocolStateException;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.introduction.Introduction;
import org.briarproject.briar.api.introduction.IntroductionRequest; import org.briarproject.briar.api.introduction.IntroductionRequest;
import org.briarproject.briar.api.introduction.event.IntroductionAbortedEvent; import org.briarproject.briar.api.introduction.event.IntroductionAbortedEvent;
import org.briarproject.briar.api.introduction.event.IntroductionRequestReceivedEvent; import org.briarproject.briar.api.introduction.event.IntroductionRequestReceivedEvent;
@@ -254,9 +255,11 @@ class IntroduceeProtocolEngine
localAuthor.getId()); localAuthor.getId());
boolean contactExists = contactManager boolean contactExists = contactManager
.contactExists(txn, m.getAuthor().getId(), localAuthor.getId()); .contactExists(txn, m.getAuthor().getId(), localAuthor.getId());
IntroductionRequest request = new IntroductionRequest(s.getSessionId(), Introduction introduction =
m.getMessageId(), m.getGroupId(), m.getTimestamp(), false, new Introduction(m.getAuthor(), s.getRole());
false, false, false, m.getAuthor(), m.getMessage(), false, IntroductionRequest request = new IntroductionRequest(m.getMessageId(),
m.getGroupId(), m.getTimestamp(), false, false, false, false,
s.getSessionId(), introduction, m.getMessage(), false,
contactExists); contactExists);
IntroductionRequestReceivedEvent e = IntroductionRequestReceivedEvent e =
new IntroductionRequestReceivedEvent(c.getId(), request); new IntroductionRequestReceivedEvent(c.getId(), request);

View File

@@ -29,11 +29,12 @@ import org.briarproject.bramble.api.versioning.ClientVersioningManager;
import org.briarproject.bramble.api.versioning.ClientVersioningManager.ClientVersioningHook; import org.briarproject.bramble.api.versioning.ClientVersioningManager.ClientVersioningHook;
import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.client.MessageTracker;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.introduction.Introduction;
import org.briarproject.briar.api.introduction.IntroductionManager; import org.briarproject.briar.api.introduction.IntroductionManager;
import org.briarproject.briar.api.introduction.IntroductionMessage;
import org.briarproject.briar.api.introduction.IntroductionRequest; import org.briarproject.briar.api.introduction.IntroductionRequest;
import org.briarproject.briar.api.introduction.IntroductionResponse; import org.briarproject.briar.api.introduction.IntroductionResponse;
import org.briarproject.briar.api.introduction.Role; import org.briarproject.briar.api.introduction.Role;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.client.ConversationClientImpl; import org.briarproject.briar.client.ConversationClientImpl;
import org.briarproject.briar.introduction.IntroducerSession.Introducee; import org.briarproject.briar.introduction.IntroducerSession.Introducee;
@@ -398,9 +399,9 @@ class IntroductionManagerImpl extends ConversationClientImpl
} }
@Override @Override
public Collection<IntroductionMessage> getIntroductionMessages(ContactId c) public Collection<PrivateMessageHeader> getIntroductionMessages(ContactId c)
throws DbException { throws DbException {
List<IntroductionMessage> messages; List<PrivateMessageHeader> messages;
Transaction txn = db.startTransaction(true); Transaction txn = db.startTransaction(true);
try { try {
Contact contact = db.getContact(txn, c); Contact contact = db.getContact(txn, c);
@@ -470,11 +471,11 @@ class IntroductionManagerImpl extends ConversationClientImpl
boolean contactExists = contactManager boolean contactExists = contactManager
.contactExists(txn, rm.getAuthor().getId(), .contactExists(txn, rm.getAuthor().getId(),
localAuthor.getId()); localAuthor.getId());
Introduction introduction = new Introduction(author, role);
return new IntroductionRequest(sessionId, m, contactGroupId, return new IntroductionRequest(m, contactGroupId, meta.getTimestamp(),
meta.getTimestamp(), meta.isLocal(), status.isSent(), meta.isLocal(), status.isSent(), status.isSeen(), meta.isRead(),
status.isSeen(), meta.isRead(), author, message, sessionId, introduction, message, !meta.isAvailableToAnswer(),
!meta.isAvailableToAnswer(), contactExists); contactExists);
} }
private IntroductionResponse parseInvitationResponse(GroupId contactGroupId, private IntroductionResponse parseInvitationResponse(GroupId contactGroupId,

View File

@@ -26,6 +26,7 @@ import org.briarproject.bramble.api.versioning.ClientVersioningManager;
import org.briarproject.bramble.api.versioning.ClientVersioningManager.ClientVersioningHook; import org.briarproject.bramble.api.versioning.ClientVersioningManager.ClientVersioningHook;
import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.client.MessageTracker;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.privategroup.PrivateGroup; import org.briarproject.briar.api.privategroup.PrivateGroup;
import org.briarproject.briar.api.privategroup.PrivateGroupFactory; import org.briarproject.briar.api.privategroup.PrivateGroupFactory;
import org.briarproject.briar.api.privategroup.PrivateGroupManager; import org.briarproject.briar.api.privategroup.PrivateGroupManager;
@@ -34,7 +35,6 @@ import org.briarproject.briar.api.privategroup.invitation.GroupInvitationItem;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager; import org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest; import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse; import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse;
import org.briarproject.briar.api.sharing.InvitationMessage;
import org.briarproject.briar.client.ConversationClientImpl; import org.briarproject.briar.client.ConversationClientImpl;
import java.util.ArrayList; import java.util.ArrayList;
@@ -368,9 +368,9 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
} }
@Override @Override
public Collection<InvitationMessage> getInvitationMessages(ContactId c) public Collection<PrivateMessageHeader> getInvitationMessages(ContactId c)
throws DbException { throws DbException {
List<InvitationMessage> messages; List<PrivateMessageHeader> messages;
Transaction txn = db.startTransaction(true); Transaction txn = db.startTransaction(true);
try { try {
Contact contact = db.getContact(txn, c); Contact contact = db.getContact(txn, c);
@@ -422,7 +422,7 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
db.containsGroup(txn, invite.getPrivateGroupId()); db.containsGroup(txn, invite.getPrivateGroupId());
return new GroupInvitationRequest(m, contactGroupId, return new GroupInvitationRequest(m, contactGroupId,
meta.getTimestamp(), meta.isLocal(), status.isSent(), meta.getTimestamp(), meta.isLocal(), status.isSent(),
status.isSeen(), meta.isRead(), sessionId, pg, c, status.isSeen(), meta.isRead(), sessionId, pg,
invite.getMessage(), meta.isAvailableToAnswer(), canBeOpened); invite.getMessage(), meta.isAvailableToAnswer(), canBeOpened);
} }

View File

@@ -331,7 +331,7 @@ class InviteeProtocolEngine extends AbstractProtocolEngine<InviteeSession> {
PrivateGroup pg, ContactId c) { PrivateGroup pg, ContactId c) {
SessionId sessionId = new SessionId(m.getPrivateGroupId().getBytes()); SessionId sessionId = new SessionId(m.getPrivateGroupId().getBytes());
return new GroupInvitationRequest(m.getId(), m.getContactGroupId(), return new GroupInvitationRequest(m.getId(), m.getContactGroupId(),
m.getTimestamp(), false, false, true, false, sessionId, pg, c, m.getTimestamp(), false, false, true, false, sessionId, pg,
m.getMessage(), true, false); m.getMessage(), true, false);
} }

View File

@@ -24,7 +24,7 @@ public class BlogInvitationFactoryImpl
SessionId sessionId = new SessionId(m.getShareableId().getBytes()); SessionId sessionId = new SessionId(m.getShareableId().getBytes());
return new BlogInvitationRequest(m.getId(), m.getContactGroupId(), return new BlogInvitationRequest(m.getId(), m.getContactGroupId(),
m.getTimestamp(), local, sent, seen, read, sessionId, m.getTimestamp(), local, sent, seen, read, sessionId,
m.getShareable(), c, m.getMessage(), available, canBeOpened); m.getShareable(), m.getMessage(), available, canBeOpened);
} }
@Override @Override

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

View File

@@ -24,7 +24,7 @@ public class ForumInvitationFactoryImpl
SessionId sessionId = new SessionId(m.getShareableId().getBytes()); SessionId sessionId = new SessionId(m.getShareableId().getBytes());
return new ForumInvitationRequest(m.getId(), m.getContactGroupId(), return new ForumInvitationRequest(m.getId(), m.getContactGroupId(),
m.getTimestamp(), local, sent, seen, read, sessionId, m.getTimestamp(), local, sent, seen, read, sessionId,
m.getShareable(), c, m.getMessage(), available, canBeOpened); m.getShareable(), m.getMessage(), available, canBeOpened);
} }
@Override @Override

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

View File

@@ -3,13 +3,13 @@ package org.briarproject.briar.sharing;
import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.sharing.InvitationRequest; import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.sharing.InvitationResponse; import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.sharing.Shareable; import org.briarproject.briar.api.sharing.Shareable;
public interface InvitationFactory<S extends Shareable, I extends InvitationResponse> { public interface InvitationFactory<S extends Shareable, I extends InvitationResponse> {
InvitationRequest<S> createInvitationRequest(boolean local, boolean sent, PrivateRequest<S> createInvitationRequest(boolean local, boolean sent,
boolean seen, boolean read, InviteMessage<S> m, ContactId c, boolean seen, boolean read, InviteMessage<S> m, ContactId c,
boolean available, boolean canBeOpened); 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.bramble.api.versioning.ClientVersioningManager.ClientVersioningHook;
import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.client.MessageTracker;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.sharing.InvitationMessage; import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.sharing.InvitationRequest; import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.sharing.InvitationResponse; import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.sharing.Shareable; import org.briarproject.briar.api.sharing.Shareable;
import org.briarproject.briar.api.sharing.SharingInvitationItem; import org.briarproject.briar.api.sharing.SharingInvitationItem;
@@ -321,9 +321,9 @@ abstract class SharingManagerImpl<S extends Shareable>
} }
@Override @Override
public Collection<InvitationMessage> getInvitationMessages(ContactId c) public Collection<PrivateMessageHeader> getInvitationMessages(ContactId c)
throws DbException { throws DbException {
List<InvitationMessage> messages; List<PrivateMessageHeader> messages;
Transaction txn = db.startTransaction(true); Transaction txn = db.startTransaction(true);
try { try {
Contact contact = db.getContact(txn, c); Contact contact = db.getContact(txn, c);
@@ -360,7 +360,7 @@ abstract class SharingManagerImpl<S extends Shareable>
return messages; return messages;
} }
private InvitationRequest parseInvitationRequest(Transaction txn, private PrivateRequest parseInvitationRequest(Transaction txn,
ContactId c, MessageId m, MessageMetadata meta, ContactId c, MessageId m, MessageMetadata meta,
MessageStatus status) throws DbException, FormatException { MessageStatus status) throws DbException, FormatException {
// Look up the invite message to get the details of the private group // Look up the invite message to get the details of the private group

View File

@@ -25,13 +25,13 @@ import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.briar.api.client.ProtocolStateException; import org.briarproject.briar.api.client.ProtocolStateException;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.introduction.IntroductionManager; import org.briarproject.briar.api.introduction.IntroductionManager;
import org.briarproject.briar.api.introduction.IntroductionMessage;
import org.briarproject.briar.api.introduction.IntroductionRequest; import org.briarproject.briar.api.introduction.IntroductionRequest;
import org.briarproject.briar.api.introduction.IntroductionResponse; import org.briarproject.briar.api.introduction.IntroductionResponse;
import org.briarproject.briar.api.introduction.event.IntroductionAbortedEvent; import org.briarproject.briar.api.introduction.event.IntroductionAbortedEvent;
import org.briarproject.briar.api.introduction.event.IntroductionRequestReceivedEvent; import org.briarproject.briar.api.introduction.event.IntroductionRequestReceivedEvent;
import org.briarproject.briar.api.introduction.event.IntroductionResponseReceivedEvent; import org.briarproject.briar.api.introduction.event.IntroductionResponseReceivedEvent;
import org.briarproject.briar.api.introduction.event.IntroductionSucceededEvent; import org.briarproject.briar.api.introduction.event.IntroductionSucceededEvent;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.test.BriarIntegrationTest; import org.briarproject.briar.test.BriarIntegrationTest;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -608,10 +608,10 @@ public class IntroductionIntegrationTest
// assert that introducees get notified about the existing contact // assert that introducees get notified about the existing contact
IntroductionRequest ir1 = IntroductionRequest ir1 =
getIntroductionRequest(introductionManager1, contactId0From1); getIntroductionRequest(introductionManager1, contactId0From1);
assertTrue(ir1.contactExists()); assertTrue(ir1.doesExist());
IntroductionRequest ir2 = IntroductionRequest ir2 =
getIntroductionRequest(introductionManager2, contactId0From2); getIntroductionRequest(introductionManager2, contactId0From2);
assertTrue(ir2.contactExists()); assertTrue(ir2.doesExist());
// sync ACCEPT messages back to introducer // sync ACCEPT messages back to introducer
sync1To0(1, true); sync1To0(1, true);
@@ -1100,7 +1100,7 @@ public class IntroductionIntegrationTest
} }
private void assertDefaultUiMessages() throws DbException { private void assertDefaultUiMessages() throws DbException {
Collection<IntroductionMessage> messages = Collection<PrivateMessageHeader> messages =
introductionManager0.getIntroductionMessages(contactId1From0); introductionManager0.getIntroductionMessages(contactId1From0);
assertEquals(2, messages.size()); assertEquals(2, messages.size());
assertMessagesAreAcked(messages); assertMessagesAreAcked(messages);
@@ -1122,8 +1122,8 @@ public class IntroductionIntegrationTest
} }
private void assertMessagesAreAcked( private void assertMessagesAreAcked(
Collection<IntroductionMessage> messages) { Collection<PrivateMessageHeader> messages) {
for (IntroductionMessage msg : messages) { for (PrivateMessageHeader msg : messages) {
if (msg.isLocal()) assertTrue(msg.isSeen()); if (msg.isLocal()) assertTrue(msg.isSeen());
} }
} }
@@ -1299,7 +1299,7 @@ public class IntroductionIntegrationTest
private IntroductionRequest getIntroductionRequest( private IntroductionRequest getIntroductionRequest(
IntroductionManager manager, ContactId contactId) IntroductionManager manager, ContactId contactId)
throws DbException { throws DbException {
for (IntroductionMessage im : manager for (PrivateMessageHeader im : manager
.getIntroductionMessages(contactId)) { .getIntroductionMessages(contactId)) {
if (im instanceof IntroductionRequest) { if (im instanceof IntroductionRequest) {
return (IntroductionRequest) im; 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.api.sync.Group;
import org.briarproject.bramble.test.TestDatabaseModule; import org.briarproject.bramble.test.TestDatabaseModule;
import org.briarproject.briar.api.client.ProtocolStateException; import org.briarproject.briar.api.client.ProtocolStateException;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.privategroup.GroupMessage; import org.briarproject.briar.api.privategroup.GroupMessage;
import org.briarproject.briar.api.privategroup.PrivateGroup; import org.briarproject.briar.api.privategroup.PrivateGroup;
import org.briarproject.briar.api.privategroup.PrivateGroupManager; import org.briarproject.briar.api.privategroup.PrivateGroupManager;
@@ -11,7 +12,6 @@ import org.briarproject.briar.api.privategroup.invitation.GroupInvitationItem;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager; import org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest; import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse; import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse;
import org.briarproject.briar.api.sharing.InvitationMessage;
import org.briarproject.briar.api.sharing.InvitationResponse; import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.test.BriarIntegrationTest; import org.briarproject.briar.test.BriarIntegrationTest;
import org.briarproject.briar.test.BriarIntegrationTestComponent; import org.briarproject.briar.test.BriarIntegrationTestComponent;
@@ -92,18 +92,18 @@ public class GroupInvitationIntegrationTest
assertEquals(privateGroup0.getName(), item.getName()); assertEquals(privateGroup0.getName(), item.getName());
assertFalse(item.isSubscribed()); assertFalse(item.isSubscribed());
Collection<InvitationMessage> messages = Collection<PrivateMessageHeader> messages =
groupInvitationManager1.getInvitationMessages(contactId0From1); groupInvitationManager1.getInvitationMessages(contactId0From1);
assertEquals(1, messages.size()); assertEquals(1, messages.size());
GroupInvitationRequest request = GroupInvitationRequest request =
(GroupInvitationRequest) messages.iterator().next(); (GroupInvitationRequest) messages.iterator().next();
assertEquals(msg, request.getMessage()); assertEquals(msg, request.getMessage());
assertEquals(author0, request.getShareable().getCreator()); assertEquals(author0, request.getObject().getCreator());
assertEquals(timestamp, request.getTimestamp()); assertEquals(timestamp, request.getTimestamp());
assertEquals(privateGroup0.getName(), request.getShareable().getName()); assertEquals(privateGroup0.getName(), request.getObject().getName());
assertFalse(request.isLocal()); assertFalse(request.isLocal());
assertFalse(request.isRead()); assertFalse(request.isRead());
assertFalse(request.canBeOpened()); assertFalse(request.doesExist());
} }
@Test @Test
@@ -117,11 +117,11 @@ public class GroupInvitationIntegrationTest
groupInvitationManager1 groupInvitationManager1
.respondToInvitation(contactId0From1, privateGroup0, false); .respondToInvitation(contactId0From1, privateGroup0, false);
Collection<InvitationMessage> messages = Collection<PrivateMessageHeader> messages =
groupInvitationManager1.getInvitationMessages(contactId0From1); groupInvitationManager1.getInvitationMessages(contactId0From1);
assertEquals(2, messages.size()); assertEquals(2, messages.size());
boolean foundResponse = false; boolean foundResponse = false;
for (InvitationMessage m : messages) { for (PrivateMessageHeader m : messages) {
if (m instanceof GroupInvitationResponse) { if (m instanceof GroupInvitationResponse) {
foundResponse = true; foundResponse = true;
InvitationResponse response = (GroupInvitationResponse) m; InvitationResponse response = (GroupInvitationResponse) m;
@@ -137,7 +137,7 @@ public class GroupInvitationIntegrationTest
groupInvitationManager0.getInvitationMessages(contactId1From0); groupInvitationManager0.getInvitationMessages(contactId1From0);
assertEquals(2, messages.size()); assertEquals(2, messages.size());
foundResponse = false; foundResponse = false;
for (InvitationMessage m : messages) { for (PrivateMessageHeader m : messages) {
if (m instanceof GroupInvitationResponse) { if (m instanceof GroupInvitationResponse) {
foundResponse = true; foundResponse = true;
InvitationResponse response = (GroupInvitationResponse) m; InvitationResponse response = (GroupInvitationResponse) m;
@@ -164,17 +164,17 @@ public class GroupInvitationIntegrationTest
groupInvitationManager1 groupInvitationManager1
.respondToInvitation(contactId0From1, privateGroup0, true); .respondToInvitation(contactId0From1, privateGroup0, true);
Collection<InvitationMessage> messages = Collection<PrivateMessageHeader> messages =
groupInvitationManager1.getInvitationMessages(contactId0From1); groupInvitationManager1.getInvitationMessages(contactId0From1);
assertEquals(2, messages.size()); assertEquals(2, messages.size());
boolean foundResponse = false; boolean foundResponse = false;
for (InvitationMessage m : messages) { for (PrivateMessageHeader m : messages) {
if (m instanceof GroupInvitationResponse) { if (m instanceof GroupInvitationResponse) {
foundResponse = true; foundResponse = true;
InvitationResponse response = (GroupInvitationResponse) m; InvitationResponse response = (GroupInvitationResponse) m;
assertTrue(response.wasAccepted()); assertTrue(response.wasAccepted());
} else { } else {
assertTrue(((GroupInvitationRequest) m).canBeOpened()); assertTrue(((GroupInvitationRequest) m).doesExist());
} }
} }
assertTrue(foundResponse); assertTrue(foundResponse);
@@ -185,7 +185,7 @@ public class GroupInvitationIntegrationTest
groupInvitationManager0.getInvitationMessages(contactId1From0); groupInvitationManager0.getInvitationMessages(contactId1From0);
assertEquals(2, messages.size()); assertEquals(2, messages.size());
foundResponse = false; foundResponse = false;
for (InvitationMessage m : messages) { for (PrivateMessageHeader m : messages) {
if (m instanceof GroupInvitationResponse) { if (m instanceof GroupInvitationResponse) {
foundResponse = true; foundResponse = true;
InvitationResponse response = (GroupInvitationResponse) m; InvitationResponse response = (GroupInvitationResponse) m;
@@ -216,7 +216,7 @@ public class GroupInvitationIntegrationTest
// 1 has one unread message // 1 has one unread message
Group g0 = groupInvitationManager1.getContactGroup(contact0From1); Group g0 = groupInvitationManager1.getContactGroup(contact0From1);
assertGroupCount(messageTracker1, g0.getId(), 1, 1, timestamp); assertGroupCount(messageTracker1, g0.getId(), 1, 1, timestamp);
InvitationMessage m = PrivateMessageHeader m =
groupInvitationManager1.getInvitationMessages(contactId0From1) groupInvitationManager1.getInvitationMessages(contactId0From1)
.iterator().next(); .iterator().next();

View File

@@ -24,13 +24,13 @@ import org.briarproject.bramble.test.BrambleMockTestCase;
import org.briarproject.bramble.test.TestUtils; import org.briarproject.bramble.test.TestUtils;
import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.client.MessageTracker;
import org.briarproject.briar.api.client.SessionId; import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.privategroup.PrivateGroup; import org.briarproject.briar.api.privategroup.PrivateGroup;
import org.briarproject.briar.api.privategroup.PrivateGroupFactory; import org.briarproject.briar.api.privategroup.PrivateGroupFactory;
import org.briarproject.briar.api.privategroup.PrivateGroupManager; import org.briarproject.briar.api.privategroup.PrivateGroupManager;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationItem; import org.briarproject.briar.api.privategroup.invitation.GroupInvitationItem;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest; import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse; import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse;
import org.briarproject.briar.api.sharing.InvitationMessage;
import org.jmock.AbstractExpectations; import org.jmock.AbstractExpectations;
import org.jmock.Expectations; import org.jmock.Expectations;
import org.jmock.lib.legacy.ClassImposteriser; import org.jmock.lib.legacy.ClassImposteriser;
@@ -701,10 +701,10 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
oneOf(db).endTransaction(txn); oneOf(db).endTransaction(txn);
}}); }});
Collection<InvitationMessage> messages = Collection<PrivateMessageHeader> messages =
groupInvitationManager.getInvitationMessages(contactId); groupInvitationManager.getInvitationMessages(contactId);
assertEquals(2, messages.size()); assertEquals(2, messages.size());
for (InvitationMessage m : messages) { for (PrivateMessageHeader m : messages) {
assertEquals(contactGroup.getId(), m.getGroupId()); assertEquals(contactGroup.getId(), m.getGroupId());
if (m.getId().equals(message.getId())) { if (m.getId().equals(message.getId())) {
assertTrue(m instanceof GroupInvitationRequest); 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.BlogSharingManager;
import org.briarproject.briar.api.blog.event.BlogInvitationRequestReceivedEvent; import org.briarproject.briar.api.blog.event.BlogInvitationRequestReceivedEvent;
import org.briarproject.briar.api.blog.event.BlogInvitationResponseReceivedEvent; import org.briarproject.briar.api.blog.event.BlogInvitationResponseReceivedEvent;
import org.briarproject.briar.api.sharing.InvitationMessage; import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.test.BriarIntegrationTest; import org.briarproject.briar.test.BriarIntegrationTest;
import org.briarproject.briar.test.BriarIntegrationTestComponent; import org.briarproject.briar.test.BriarIntegrationTestComponent;
import org.briarproject.briar.test.DaggerBriarIntegrationTestComponent; import org.briarproject.briar.test.DaggerBriarIntegrationTestComponent;
@@ -147,17 +147,17 @@ public class BlogSharingIntegrationTest
assertTrue(blogManager1.getBlogs().contains(blog2)); assertTrue(blogManager1.getBlogs().contains(blog2));
// invitee has one invitation message from sharer // invitee has one invitation message from sharer
List<InvitationMessage> list = new ArrayList<>( List<PrivateMessageHeader> list = new ArrayList<>(
blogSharingManager1.getInvitationMessages(contactId0From1)); blogSharingManager1.getInvitationMessages(contactId0From1));
assertEquals(2, list.size()); assertEquals(2, list.size());
// check other things are alright with the message // check other things are alright with the message
for (InvitationMessage m : list) { for (PrivateMessageHeader m : list) {
if (m instanceof BlogInvitationRequest) { if (m instanceof BlogInvitationRequest) {
BlogInvitationRequest invitation = (BlogInvitationRequest) m; BlogInvitationRequest invitation = (BlogInvitationRequest) m;
assertFalse(invitation.isAvailable()); assertFalse(invitation.wasAnswered());
assertEquals(blog2.getAuthor().getName(), assertEquals(blog2.getAuthor().getName(),
invitation.getBlogAuthorName()); invitation.getName());
assertFalse(invitation.getShareable().isRssFeed()); assertFalse(invitation.getObject().isRssFeed());
assertEquals("Hi!", invitation.getMessage()); assertEquals("Hi!", invitation.getMessage());
} else { } else {
BlogInvitationResponse response = (BlogInvitationResponse) m; BlogInvitationResponse response = (BlogInvitationResponse) m;
@@ -218,17 +218,17 @@ public class BlogSharingIntegrationTest
assertTrue(blogManager1.getBlogs().contains(rssBlog)); assertTrue(blogManager1.getBlogs().contains(rssBlog));
// invitee has one invitation message from sharer // invitee has one invitation message from sharer
List<InvitationMessage> list = new ArrayList<>( List<PrivateMessageHeader> list = new ArrayList<>(
blogSharingManager1.getInvitationMessages(contactId0From1)); blogSharingManager1.getInvitationMessages(contactId0From1));
assertEquals(2, list.size()); assertEquals(2, list.size());
// check other things are alright with the message // check other things are alright with the message
for (InvitationMessage m : list) { for (PrivateMessageHeader m : list) {
if (m instanceof BlogInvitationRequest) { if (m instanceof BlogInvitationRequest) {
BlogInvitationRequest invitation = (BlogInvitationRequest) m; BlogInvitationRequest invitation = (BlogInvitationRequest) m;
assertFalse(invitation.isAvailable()); assertFalse(invitation.wasAnswered());
assertEquals(rssBlog.getAuthor().getName(), assertEquals(rssBlog.getAuthor().getName(),
invitation.getBlogAuthorName()); invitation.getName());
assertTrue(invitation.getShareable().isRssFeed()); assertTrue(invitation.getObject().isRssFeed());
assertEquals("Hi!", invitation.getMessage()); assertEquals("Hi!", invitation.getMessage());
} else { } else {
BlogInvitationResponse response = (BlogInvitationResponse) m; BlogInvitationResponse response = (BlogInvitationResponse) m;
@@ -277,16 +277,16 @@ public class BlogSharingIntegrationTest
assertEquals(0, blogSharingManager1.getInvitations().size()); assertEquals(0, blogSharingManager1.getInvitations().size());
// invitee has one invitation message from sharer and one response // invitee has one invitation message from sharer and one response
List<InvitationMessage> list = new ArrayList<>( List<PrivateMessageHeader> list = new ArrayList<>(
blogSharingManager1.getInvitationMessages(contactId0From1)); blogSharingManager1.getInvitationMessages(contactId0From1));
assertEquals(2, list.size()); assertEquals(2, list.size());
// check things are alright with the message // check things are alright with the message
for (InvitationMessage m : list) { for (PrivateMessageHeader m : list) {
if (m instanceof BlogInvitationRequest) { if (m instanceof BlogInvitationRequest) {
BlogInvitationRequest invitation = (BlogInvitationRequest) m; BlogInvitationRequest invitation = (BlogInvitationRequest) m;
assertFalse(invitation.isAvailable()); assertFalse(invitation.wasAnswered());
assertEquals(blog2.getAuthor().getName(), assertEquals(blog2.getAuthor().getName(),
invitation.getBlogAuthorName()); invitation.getName());
assertEquals(null, invitation.getMessage()); assertEquals(null, invitation.getMessage());
} else { } else {
BlogInvitationResponse response = (BlogInvitationResponse) m; BlogInvitationResponse response = (BlogInvitationResponse) m;
@@ -382,7 +382,7 @@ public class BlogSharingIntegrationTest
assertTrue(contacts.contains(contact0From1)); assertTrue(contacts.contains(contact0From1));
// make sure 1 knows that they have blog2 already // make sure 1 knows that they have blog2 already
Collection<InvitationMessage> messages = Collection<PrivateMessageHeader> messages =
blogSharingManager1.getInvitationMessages(contactId0From1); blogSharingManager1.getInvitationMessages(contactId0From1);
assertEquals(2, messages.size()); assertEquals(2, messages.size());
assertEquals(blog2, blogManager1.getBlog(blog2.getId())); assertEquals(blog2, blogManager1.getBlog(blog2.getId()));

View File

@@ -22,7 +22,7 @@ import org.briarproject.briar.api.forum.ForumPostHeader;
import org.briarproject.briar.api.forum.ForumSharingManager; import org.briarproject.briar.api.forum.ForumSharingManager;
import org.briarproject.briar.api.forum.event.ForumInvitationRequestReceivedEvent; import org.briarproject.briar.api.forum.event.ForumInvitationRequestReceivedEvent;
import org.briarproject.briar.api.forum.event.ForumInvitationResponseReceivedEvent; import org.briarproject.briar.api.forum.event.ForumInvitationResponseReceivedEvent;
import org.briarproject.briar.api.sharing.InvitationMessage; import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.sharing.SharingInvitationItem; import org.briarproject.briar.api.sharing.SharingInvitationItem;
import org.briarproject.briar.test.BriarIntegrationTest; import org.briarproject.briar.test.BriarIntegrationTest;
import org.briarproject.briar.test.BriarIntegrationTestComponent; import org.briarproject.briar.test.BriarIntegrationTestComponent;
@@ -131,18 +131,18 @@ public class ForumSharingIntegrationTest
assertEquals(1, forumManager1.getForums().size()); assertEquals(1, forumManager1.getForums().size());
// invitee has one invitation message from sharer // invitee has one invitation message from sharer
List<InvitationMessage> list = new ArrayList<>( List<PrivateMessageHeader> list = new ArrayList<>(
forumSharingManager1.getInvitationMessages(contactId0From1)); forumSharingManager1.getInvitationMessages(contactId0From1));
assertEquals(2, list.size()); assertEquals(2, list.size());
// check other things are alright with the forum message // check other things are alright with the forum message
for (InvitationMessage m : list) { for (PrivateMessageHeader m : list) {
if (m instanceof ForumInvitationRequest) { if (m instanceof ForumInvitationRequest) {
ForumInvitationRequest invitation = ForumInvitationRequest invitation =
(ForumInvitationRequest) m; (ForumInvitationRequest) m;
assertFalse(invitation.isAvailable()); assertFalse(invitation.wasAnswered());
assertEquals(forum0.getName(), invitation.getForumName()); assertEquals(forum0.getName(), invitation.getName());
assertEquals("Hi!", invitation.getMessage()); assertEquals("Hi!", invitation.getMessage());
assertTrue(invitation.canBeOpened()); assertTrue(invitation.doesExist());
} else { } else {
ForumInvitationResponse response = ForumInvitationResponse response =
(ForumInvitationResponse) m; (ForumInvitationResponse) m;
@@ -188,17 +188,17 @@ public class ForumSharingIntegrationTest
assertEquals(0, forumSharingManager1.getInvitations().size()); assertEquals(0, forumSharingManager1.getInvitations().size());
// invitee has one invitation message from sharer and one response // invitee has one invitation message from sharer and one response
List<InvitationMessage> list = new ArrayList<>( List<PrivateMessageHeader> list = new ArrayList<>(
forumSharingManager1.getInvitationMessages(contactId0From1)); forumSharingManager1.getInvitationMessages(contactId0From1));
assertEquals(2, list.size()); assertEquals(2, list.size());
// check things are alright with the forum message // check things are alright with the forum message
for (InvitationMessage m : list) { for (PrivateMessageHeader m : list) {
if (m instanceof ForumInvitationRequest) { if (m instanceof ForumInvitationRequest) {
ForumInvitationRequest invitation = (ForumInvitationRequest) m; ForumInvitationRequest invitation = (ForumInvitationRequest) m;
assertFalse(invitation.isAvailable()); assertFalse(invitation.wasAnswered());
assertEquals(forum0.getName(), invitation.getForumName()); assertEquals(forum0.getName(), invitation.getName());
assertEquals(null, invitation.getMessage()); assertEquals(null, invitation.getMessage());
assertFalse(invitation.canBeOpened()); assertFalse(invitation.doesExist());
} else { } else {
ForumInvitationResponse response = (ForumInvitationResponse) m; ForumInvitationResponse response = (ForumInvitationResponse) m;
assertFalse(response.wasAccepted()); assertFalse(response.wasAccepted());
@@ -742,7 +742,7 @@ public class ForumSharingIntegrationTest
// get invitation MessageId for later // get invitation MessageId for later
MessageId invitationId = null; MessageId invitationId = null;
for (InvitationMessage m : forumSharingManager1 for (PrivateMessageHeader m : forumSharingManager1
.getInvitationMessages(contactId0From1)) { .getInvitationMessages(contactId0From1)) {
if (m instanceof ForumInvitationRequest) { if (m instanceof ForumInvitationRequest) {
invitationId = m.getId(); invitationId = m.getId();