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.messaging.ConversationManager;
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.sharing.InvitationRequest;
import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.sharing.event.InvitationRequestReceivedEvent;
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");
InvitationRequestReceivedEvent m =
(InvitationRequestReceivedEvent) e;
InvitationRequest ir = m.getRequest();
PrivateRequest ir = m.getRequest();
updateItem(m.getContactId(), ir);
} else if (e instanceof InvitationResponseReceivedEvent) {
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.forum.ForumSharingManager;
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.IntroductionResponse;
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.PrivateMessageFactory;
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.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.event.InvitationRequestReceivedEvent;
import org.briarproject.briar.api.sharing.event.InvitationResponseReceivedEvent;
@@ -344,15 +342,15 @@ public class ConversationActivity extends BriarActivity
long start = now();
Collection<PrivateMessageHeader> headers =
messagingManager.getMessageHeaders(contactId);
Collection<IntroductionMessage> introductions =
Collection<PrivateMessageHeader> introductions =
introductionManager.getIntroductionMessages(contactId);
Collection<InvitationMessage> forumInvitations =
Collection<PrivateMessageHeader> forumInvitations =
forumSharingManager.getInvitationMessages(contactId);
Collection<InvitationMessage> blogInvitations =
Collection<PrivateMessageHeader> blogInvitations =
blogSharingManager.getInvitationMessages(contactId);
Collection<InvitationMessage> groupInvitations =
Collection<PrivateMessageHeader> groupInvitations =
groupInvitationManager.getInvitationMessages(contactId);
List<InvitationMessage> invitations = new ArrayList<>(
List<PrivateMessageHeader> invitations = new ArrayList<>(
forumInvitations.size() + blogInvitations.size() +
groupInvitations.size());
invitations.addAll(forumInvitations);
@@ -370,8 +368,8 @@ public class ConversationActivity extends BriarActivity
private void displayMessages(int revision,
Collection<PrivateMessageHeader> headers,
Collection<IntroductionMessage> introductions,
Collection<InvitationMessage> invitations) {
Collection<PrivateMessageHeader> introductions,
Collection<PrivateMessageHeader> invitations) {
runOnUiThreadUnlessDestroyed(() -> {
if (revision == adapter.getRevision()) {
adapter.incrementRevision();
@@ -397,8 +395,8 @@ public class ConversationActivity extends BriarActivity
@SuppressWarnings("ConstantConditions")
private List<ConversationItem> createItems(
Collection<PrivateMessageHeader> headers,
Collection<IntroductionMessage> introductions,
Collection<InvitationMessage> invitations) {
Collection<PrivateMessageHeader> introductions,
Collection<PrivateMessageHeader> invitations) {
int size =
headers.size() + introductions.size() + invitations.size();
List<ConversationItem> items = new ArrayList<>(size);
@@ -409,7 +407,7 @@ public class ConversationActivity extends BriarActivity
else item.setBody(body);
items.add(item);
}
for (IntroductionMessage m : introductions) {
for (PrivateMessageHeader m : introductions) {
ConversationItem item;
if (m instanceof IntroductionRequest) {
IntroductionRequest i = (IntroductionRequest) m;
@@ -420,11 +418,11 @@ public class ConversationActivity extends BriarActivity
}
items.add(item);
}
for (InvitationMessage i : invitations) {
for (PrivateMessageHeader i : invitations) {
ConversationItem item;
if (i instanceof InvitationRequest) {
InvitationRequest r = (InvitationRequest) i;
item = ConversationItem.from(this, contactName, r);
if (i instanceof PrivateRequest) {
item = ConversationItem
.from(this, contactName, (PrivateRequest) i);
} else {
InvitationResponse r = (InvitationResponse) i;
item = ConversationItem.from(this, contactName, r);
@@ -525,7 +523,7 @@ public class ConversationActivity extends BriarActivity
(InvitationRequestReceivedEvent) e;
if (event.getContactId().equals(contactId)) {
LOG.info("Invitation received, adding...");
InvitationRequest ir = event.getRequest();
PrivateRequest ir = event.getRequest();
handleInvitationRequest(ir);
}
} 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>() {
@Override
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.IntroductionResponse;
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.GroupInvitationResponse;
import org.briarproject.briar.api.sharing.InvitationRequest;
import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.sharing.Shareable;
import javax.annotation.Nullable;
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,
IntroductionResponse ir) {
if (ir.isLocal()) {
@@ -156,21 +128,22 @@ abstract class ConversationItem {
}
static ConversationItem from(Context ctx, String contactName,
InvitationRequest ir) {
PrivateRequest ir) {
if (ir.isLocal()) {
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,
((ForumInvitationRequest) ir).getForumName(),
contactName);
ir.getName(), contactName);
} else if (ir instanceof BlogInvitationRequest) {
text = ctx.getString(R.string.blogs_sharing_invitation_sent,
((BlogInvitationRequest) ir).getBlogAuthorName(),
contactName);
ir.getName(), contactName);
} else if (ir instanceof GroupInvitationRequest) {
text = ctx.getString(
R.string.groups_invitations_invitation_sent,
contactName, ir.getShareable().getName());
contactName, ir.getName());
} else {
throw new IllegalArgumentException("Unknown InvitationRequest");
}
@@ -180,20 +153,36 @@ abstract class ConversationItem {
} else {
String text;
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,
contactName,
((ForumInvitationRequest) ir).getForumName());
contactName, ir.getName());
type = FORUM;
} else if (ir instanceof BlogInvitationRequest) {
text = ctx.getString(R.string.blogs_sharing_invitation_received,
contactName,
((BlogInvitationRequest) ir).getBlogAuthorName());
contactName, ir.getName());
type = BLOG;
} else if (ir instanceof GroupInvitationRequest) {
text = ctx.getString(
R.string.groups_invitations_invitation_received,
contactName, ir.getShareable().getName());
contactName, ir.getName());
type = GROUP;
} else {
throw new IllegalArgumentException("Unknown InvitationRequest");
@@ -201,8 +190,8 @@ abstract class ConversationItem {
return new ConversationRequestItem(ir.getId(),
ir.getGroupId(), type, ir.getSessionId(), text,
ir.getMessage(), ir.getTimestamp(), ir.isRead(),
ir.getShareable().getId(), !ir.isAvailable(),
ir.canBeOpened());
((Shareable) ir.getObject()).getId(), !ir.wasAnswered(),
ir.doesExist());
}
}
@@ -276,8 +265,8 @@ abstract class ConversationItem {
return from(ctx, "", (IntroductionRequest) h);
} else if(h instanceof IntroductionResponse) {
return from(ctx, "", (IntroductionResponse) h);
} else if(h instanceof InvitationRequest) {
return from(ctx, "", (InvitationRequest) h);
} else if(h instanceof PrivateRequest) {
return from(ctx, "", (PrivateRequest) h);
} else if(h instanceof InvitationResponse) {
return from(ctx, "", (InvitationResponse) h);
} else {

View File

@@ -1,27 +1,22 @@
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.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
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;
@NotNullByDefault
public class BlogInvitationRequest extends InvitationRequest<Blog> {
public class BlogInvitationRequest extends PrivateRequest<Blog> {
public BlogInvitationRequest(MessageId id, GroupId groupId, long time,
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) {
super(id, groupId, time, local, sent, seen, read, sessionId, blog,
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.nullsafety.NotNullByDefault;
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 javax.annotation.concurrent.Immutable;
@@ -14,7 +14,7 @@ public class BlogInvitationRequestReceivedEvent extends
InvitationRequestReceivedEvent<Blog> {
public BlogInvitationRequestReceivedEvent(Blog blog, ContactId contactId,
InvitationRequest<Blog> request) {
PrivateRequest<Blog> request) {
super(blog, contactId, request);
}

View File

@@ -1,29 +1,24 @@
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.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
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.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class ForumInvitationRequest extends InvitationRequest<Forum> {
public class ForumInvitationRequest extends PrivateRequest<Forum> {
public ForumInvitationRequest(MessageId id, GroupId groupId, long time,
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) {
super(id, groupId, time, local, sent, seen, read, sessionId, forum,
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.nullsafety.NotNullByDefault;
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 javax.annotation.concurrent.Immutable;
@@ -14,7 +14,7 @@ public class ForumInvitationRequestReceivedEvent extends
InvitationRequestReceivedEvent<Forum> {
public ForumInvitationRequestReceivedEvent(Forum forum, ContactId contactId,
InvitationRequest<Forum> request) {
PrivateRequest<Forum> 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.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import java.util.Collection;
@@ -50,7 +51,7 @@ public interface IntroductionManager extends ConversationClient {
/**
* Returns all introduction messages for the given contact.
*/
Collection<IntroductionMessage> getIntroductionMessages(ContactId contactId)
Collection<PrivateMessageHeader> getIntroductionMessages(ContactId contactId)
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;
import org.briarproject.bramble.api.identity.Author;
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.PrivateRequest;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class IntroductionRequest extends IntroductionMessage {
public class IntroductionRequest extends PrivateRequest<Introduction> {
private final Author introducedAuthor;
@Nullable
private final String message;
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,
public IntroductionRequest(MessageId messageId, GroupId groupId,
long time, boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, Introduction introduction,
@Nullable String message, boolean answered, boolean exists) {
super(sessionId, messageId, groupId, time, local, sent, seen, read);
this.introducedAuthor = introducedAuthor;
this.message = message;
this.answered = answered;
this.exists = exists;
super(messageId, groupId, time, local, sent, seen, read, sessionId,
introduction, message, answered, 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.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import javax.annotation.concurrent.Immutable;
@@ -11,8 +12,9 @@ import static org.briarproject.briar.api.introduction.Role.INTRODUCER;
@Immutable
@NotNullByDefault
public class IntroductionResponse extends IntroductionMessage {
public class IntroductionResponse extends PrivateMessageHeader {
private final SessionId sessionId;
private final String name;
private final Role role;
private final boolean accepted;
@@ -20,12 +22,17 @@ public class IntroductionResponse extends IntroductionMessage {
public IntroductionResponse(SessionId sessionId, MessageId messageId,
GroupId groupId, Role role, long time, boolean local, boolean sent,
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.role = role;
this.accepted = accepted;
}
public SessionId getSessionId() {
return sessionId;
}
public String getName() {
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.SessionId;
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.sharing.InvitationMessage;
import java.util.Collection;
@@ -77,7 +77,7 @@ public interface GroupInvitationManager extends ConversationClient {
* Returns all private group invitation messages related to the given
* contact.
*/
Collection<InvitationMessage> getInvitationMessages(ContactId c)
Collection<PrivateMessageHeader> getInvitationMessages(ContactId c)
throws DbException;
/**

View File

@@ -1,23 +1,22 @@
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.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.privategroup.PrivateGroup;
import org.briarproject.briar.api.sharing.InvitationRequest;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class GroupInvitationRequest extends InvitationRequest<PrivateGroup> {
public class GroupInvitationRequest extends PrivateRequest<PrivateGroup> {
public GroupInvitationRequest(MessageId id, GroupId groupId, long time,
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) {
super(id, groupId, time, local, sent, seen, read, sessionId, shareable,
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.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 InvitationResponse extends InvitationMessage {
public abstract class InvitationResponse extends PrivateMessageHeader {
private final SessionId sessionId;
private final GroupId shareableId;
private final boolean accept;
@@ -18,11 +20,16 @@ public abstract class InvitationResponse extends InvitationMessage {
long time, boolean local, boolean sent, boolean seen,
boolean read, SessionId sessionId, GroupId shareableId,
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.accept = accept;
}
public SessionId getSessionId() {
return sessionId;
}
public boolean wasAccepted() {
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.sync.GroupId;
import org.briarproject.briar.api.messaging.Nameable;
@NotNullByDefault
public interface Shareable {
public interface Shareable extends Nameable {
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.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import java.util.Collection;
@@ -39,7 +40,7 @@ public interface SharingManager<S extends Shareable>
* Returns all group sharing messages sent by the Contact
* identified by contactId.
*/
Collection<InvitationMessage> getInvitationMessages(
Collection<PrivateMessageHeader> getInvitationMessages(
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.event.Event;
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 javax.annotation.concurrent.Immutable;
@@ -15,10 +15,10 @@ public abstract class InvitationRequestReceivedEvent<S extends Shareable>
private final S shareable;
private final ContactId contactId;
private final InvitationRequest request;
private final PrivateRequest<S> request;
protected InvitationRequestReceivedEvent(S shareable, ContactId contactId,
InvitationRequest request) {
PrivateRequest<S> request) {
this.shareable = shareable;
this.contactId = contactId;
this.request = request;
@@ -28,7 +28,7 @@ public abstract class InvitationRequestReceivedEvent<S extends Shareable>
return contactId;
}
public InvitationRequest getRequest() {
public PrivateRequest<S> getRequest() {
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.ProtocolStateException;
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.event.IntroductionAbortedEvent;
import org.briarproject.briar.api.introduction.event.IntroductionRequestReceivedEvent;
@@ -254,9 +255,11 @@ class IntroduceeProtocolEngine
localAuthor.getId());
boolean contactExists = contactManager
.contactExists(txn, m.getAuthor().getId(), localAuthor.getId());
IntroductionRequest request = new IntroductionRequest(s.getSessionId(),
m.getMessageId(), m.getGroupId(), m.getTimestamp(), false,
false, false, false, m.getAuthor(), m.getMessage(), false,
Introduction introduction =
new Introduction(m.getAuthor(), s.getRole());
IntroductionRequest request = new IntroductionRequest(m.getMessageId(),
m.getGroupId(), m.getTimestamp(), false, false, false, false,
s.getSessionId(), introduction, m.getMessage(), false,
contactExists);
IntroductionRequestReceivedEvent e =
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.briar.api.client.MessageTracker;
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.IntroductionMessage;
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;
@@ -398,9 +399,9 @@ class IntroductionManagerImpl extends ConversationClientImpl
}
@Override
public Collection<IntroductionMessage> getIntroductionMessages(ContactId c)
public Collection<PrivateMessageHeader> getIntroductionMessages(ContactId c)
throws DbException {
List<IntroductionMessage> messages;
List<PrivateMessageHeader> messages;
Transaction txn = db.startTransaction(true);
try {
Contact contact = db.getContact(txn, c);
@@ -470,11 +471,11 @@ class IntroductionManagerImpl extends ConversationClientImpl
boolean contactExists = contactManager
.contactExists(txn, rm.getAuthor().getId(),
localAuthor.getId());
return new IntroductionRequest(sessionId, m, contactGroupId,
meta.getTimestamp(), meta.isLocal(), status.isSent(),
status.isSeen(), meta.isRead(), author, message,
!meta.isAvailableToAnswer(), contactExists);
Introduction introduction = new Introduction(author, role);
return new IntroductionRequest(m, contactGroupId, meta.getTimestamp(),
meta.isLocal(), status.isSent(), status.isSeen(), meta.isRead(),
sessionId, introduction, message, !meta.isAvailableToAnswer(),
contactExists);
}
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.briar.api.client.MessageTracker;
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.PrivateGroupFactory;
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.GroupInvitationRequest;
import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse;
import org.briarproject.briar.api.sharing.InvitationMessage;
import org.briarproject.briar.client.ConversationClientImpl;
import java.util.ArrayList;
@@ -368,9 +368,9 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
}
@Override
public Collection<InvitationMessage> getInvitationMessages(ContactId c)
public Collection<PrivateMessageHeader> getInvitationMessages(ContactId c)
throws DbException {
List<InvitationMessage> messages;
List<PrivateMessageHeader> messages;
Transaction txn = db.startTransaction(true);
try {
Contact contact = db.getContact(txn, c);
@@ -422,7 +422,7 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
db.containsGroup(txn, invite.getPrivateGroupId());
return new GroupInvitationRequest(m, contactGroupId,
meta.getTimestamp(), meta.isLocal(), status.isSent(),
status.isSeen(), meta.isRead(), sessionId, pg, c,
status.isSeen(), meta.isRead(), sessionId, pg,
invite.getMessage(), meta.isAvailableToAnswer(), canBeOpened);
}

View File

@@ -331,7 +331,7 @@ class InviteeProtocolEngine extends AbstractProtocolEngine<InviteeSession> {
PrivateGroup pg, ContactId c) {
SessionId sessionId = new SessionId(m.getPrivateGroupId().getBytes());
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);
}

View File

@@ -24,7 +24,7 @@ public class BlogInvitationFactoryImpl
SessionId sessionId = new SessionId(m.getShareableId().getBytes());
return new BlogInvitationRequest(m.getId(), m.getContactGroupId(),
m.getTimestamp(), local, sent, seen, read, sessionId,
m.getShareable(), c, m.getMessage(), available, canBeOpened);
m.getShareable(), m.getMessage(), available, canBeOpened);
}
@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.BlogInvitationResponseReceivedEvent;
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.inject.Inject;
@@ -50,7 +50,7 @@ class BlogProtocolEngineImpl extends ProtocolEngineImpl<Blog> {
@Override
Event getInvitationRequestReceivedEvent(InviteMessage<Blog> m,
ContactId contactId, boolean available, boolean canBeOpened) {
InvitationRequest<Blog> request = invitationFactory
PrivateRequest<Blog> request = invitationFactory
.createInvitationRequest(false, false, true, false, m,
contactId, available, canBeOpened);
return new BlogInvitationRequestReceivedEvent(m.getShareable(),

View File

@@ -24,7 +24,7 @@ public class ForumInvitationFactoryImpl
SessionId sessionId = new SessionId(m.getShareableId().getBytes());
return new ForumInvitationRequest(m.getId(), m.getContactGroupId(),
m.getTimestamp(), local, sent, seen, read, sessionId,
m.getShareable(), c, m.getMessage(), available, canBeOpened);
m.getShareable(), m.getMessage(), available, canBeOpened);
}
@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.event.ForumInvitationRequestReceivedEvent;
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.inject.Inject;
@@ -52,7 +52,7 @@ class ForumProtocolEngineImpl extends ProtocolEngineImpl<Forum> {
@Override
Event getInvitationRequestReceivedEvent(InviteMessage<Forum> m,
ContactId contactId, boolean available, boolean canBeOpened) {
InvitationRequest<Forum> request = invitationFactory
PrivateRequest<Forum> request = invitationFactory
.createInvitationRequest(false, false, true, false, m,
contactId, available, canBeOpened);
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.sync.GroupId;
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.Shareable;
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 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.sharing.InvitationMessage;
import org.briarproject.briar.api.sharing.InvitationRequest;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.sharing.Shareable;
import org.briarproject.briar.api.sharing.SharingInvitationItem;
@@ -321,9 +321,9 @@ abstract class SharingManagerImpl<S extends Shareable>
}
@Override
public Collection<InvitationMessage> getInvitationMessages(ContactId c)
public Collection<PrivateMessageHeader> getInvitationMessages(ContactId c)
throws DbException {
List<InvitationMessage> messages;
List<PrivateMessageHeader> messages;
Transaction txn = db.startTransaction(true);
try {
Contact contact = db.getContact(txn, c);
@@ -360,7 +360,7 @@ abstract class SharingManagerImpl<S extends Shareable>
return messages;
}
private InvitationRequest parseInvitationRequest(Transaction txn,
private PrivateRequest 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

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

View File

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