diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationItem.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationItem.java index f3c43032a..f650ac029 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationItem.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationItem.java @@ -114,13 +114,14 @@ abstract class ConversationItem { } else { String text; RequestType type; + boolean canBeOpened; 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()) { + } else if (((IntroductionRequest) ir).isContact()) { text = ctx.getString( R.string.introduction_request_exists_received, contactName, ir.getName()); @@ -136,15 +137,18 @@ abstract class ConversationItem { text = ctx.getString(R.string.forum_invitation_received, contactName, ir.getName()); type = FORUM; + canBeOpened = ((ForumInvitationRequest) ir).canBeOpened(); } else if (ir instanceof BlogInvitationRequest) { text = ctx.getString(R.string.blogs_sharing_invitation_received, contactName, ir.getName()); type = BLOG; + canBeOpened = ((BlogInvitationRequest) ir).canBeOpened(); } else if (ir instanceof GroupInvitationRequest) { text = ctx.getString( R.string.groups_invitations_invitation_received, contactName, ir.getName()); type = GROUP; + canBeOpened = ((GroupInvitationRequest) ir).canBeOpened(); } else { throw new IllegalArgumentException("Unknown PrivateRequest"); } @@ -152,7 +156,7 @@ abstract class ConversationItem { ir.getGroupId(), type, ir.getSessionId(), text, ir.getMessage(), ir.getTimestamp(), ir.isRead(), ((Shareable) ir.getNameable()).getId(), !ir.wasAnswered(), - ir.doesExist()); + canBeOpened); } } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationRequest.java index 439a5b7c7..9c700727f 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationRequest.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationRequest.java @@ -4,17 +4,17 @@ 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.sharing.InvitationRequest; import javax.annotation.Nullable; @NotNullByDefault -public class BlogInvitationRequest extends PrivateRequest { +public class BlogInvitationRequest extends InvitationRequest { public BlogInvitationRequest(MessageId id, GroupId groupId, long time, boolean local, boolean sent, boolean seen, boolean read, - SessionId sessionId, Blog blog, - @Nullable String message, boolean available, boolean canBeOpened) { + SessionId sessionId, Blog blog, @Nullable String message, + boolean available, boolean canBeOpened) { super(id, groupId, time, local, sent, seen, read, sessionId, blog, message, available, canBeOpened); } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationRequest.java index 7721fd8b9..8d1028a9d 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationRequest.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationRequest.java @@ -4,19 +4,19 @@ 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.sharing.InvitationRequest; import javax.annotation.Nullable; import javax.annotation.concurrent.Immutable; @Immutable @NotNullByDefault -public class ForumInvitationRequest extends PrivateRequest { +public class ForumInvitationRequest extends InvitationRequest { public ForumInvitationRequest(MessageId id, GroupId groupId, long time, boolean local, boolean sent, boolean seen, boolean read, - SessionId sessionId, Forum forum, - @Nullable String message, boolean available, boolean canBeOpened) { + SessionId sessionId, Forum forum, @Nullable String message, + boolean available, boolean canBeOpened) { super(id, groupId, time, local, sent, seen, read, sessionId, forum, message, available, canBeOpened); } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionRequest.java index 6d67dec89..a0ef758ab 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionRequest.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/introduction/IntroductionRequest.java @@ -13,12 +13,18 @@ import javax.annotation.concurrent.Immutable; @NotNullByDefault public class IntroductionRequest extends PrivateRequest { + private final boolean contact; + 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) { + @Nullable String message, boolean answered, boolean contact) { super(messageId, groupId, time, local, sent, seen, read, sessionId, - introduction, message, answered, exists); + introduction, message, answered); + this.contact = contact; } + public boolean isContact() { + return contact; + } } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/messaging/PrivateRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/messaging/PrivateRequest.java index 36deb5ec1..e8a98d91f 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/messaging/PrivateRequest.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/messaging/PrivateRequest.java @@ -16,18 +16,17 @@ public class PrivateRequest extends PrivateMessageHeader { private final N nameable; @Nullable private final String message; - private final boolean answered, exists; + private final boolean answered; public PrivateRequest(MessageId messageId, GroupId groupId, long time, boolean local, boolean sent, boolean seen, boolean read, SessionId sessionId, N nameable, @Nullable String message, - boolean answered, boolean exists) { + boolean answered) { super(messageId, groupId, time, local, sent, seen, read); this.sessionId = sessionId; this.nameable = nameable; this.message = message; this.answered = answered; - this.exists = exists; } public SessionId getSessionId() { @@ -50,8 +49,4 @@ public class PrivateRequest extends PrivateMessageHeader { public boolean wasAnswered() { return answered; } - - public boolean doesExist() { - return exists; - } } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationRequest.java index f7831f268..8067def68 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationRequest.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationRequest.java @@ -4,15 +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.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 PrivateRequest { +public class GroupInvitationRequest extends InvitationRequest { public GroupInvitationRequest(MessageId id, GroupId groupId, long time, boolean local, boolean sent, boolean seen, boolean read, diff --git a/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationRequest.java new file mode 100644 index 000000000..e8ea62907 --- /dev/null +++ b/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationRequest.java @@ -0,0 +1,27 @@ +package org.briarproject.briar.api.sharing; + +import org.briarproject.bramble.api.sync.GroupId; +import org.briarproject.bramble.api.sync.MessageId; +import org.briarproject.briar.api.client.SessionId; +import org.briarproject.briar.api.messaging.PrivateRequest; + +import javax.annotation.Nullable; + +public abstract class InvitationRequest extends + PrivateRequest { + + private final boolean canBeOpened; + + public InvitationRequest(MessageId messageId, GroupId groupId, long time, + boolean local, boolean sent, boolean seen, boolean read, + SessionId sessionId, S object, @Nullable String message, + boolean answered, boolean canBeOpened) { + super(messageId, groupId, time, local, sent, seen, read, sessionId, + object, message, answered); + this.canBeOpened = canBeOpened; + } + + public boolean canBeOpened() { + return canBeOpened; + } +} diff --git a/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTest.java index fb03924d0..c2090e10d 100644 --- a/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTest.java @@ -613,10 +613,10 @@ public class IntroductionIntegrationTest // assert that introducees get notified about the existing contact IntroductionRequest ir1 = getIntroductionRequest(db1, introductionManager1, contactId0From1); - assertTrue(ir1.doesExist()); + assertTrue(ir1.isContact()); IntroductionRequest ir2 = getIntroductionRequest(db2, introductionManager2, contactId0From2); - assertTrue(ir2.doesExist()); + assertTrue(ir2.isContact()); // sync ACCEPT messages back to introducer sync1To0(1, true); diff --git a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationIntegrationTest.java index 70a14b9df..8ee74d236 100644 --- a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationIntegrationTest.java @@ -104,7 +104,7 @@ public class GroupInvitationIntegrationTest assertEquals(privateGroup0.getName(), request.getNameable().getName()); assertFalse(request.isLocal()); assertFalse(request.isRead()); - assertFalse(request.doesExist()); + assertFalse(request.canBeOpened()); } @Test @@ -182,7 +182,7 @@ public class GroupInvitationIntegrationTest } else { GroupInvitationRequest request = (GroupInvitationRequest) m; assertEquals(privateGroup0, request.getNameable()); - assertTrue(request.doesExist()); + assertTrue(request.canBeOpened()); } } assertTrue(foundResponse); diff --git a/briar-core/src/test/java/org/briarproject/briar/sharing/ForumSharingIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/sharing/ForumSharingIntegrationTest.java index f473ec0ac..40fed0491 100644 --- a/briar-core/src/test/java/org/briarproject/briar/sharing/ForumSharingIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/sharing/ForumSharingIntegrationTest.java @@ -139,7 +139,7 @@ public class ForumSharingIntegrationTest assertEquals(forum0.getName(), invitation.getName()); assertEquals(forum0, invitation.getNameable()); assertEquals("Hi!", invitation.getMessage()); - assertTrue(invitation.doesExist()); + assertTrue(invitation.canBeOpened()); } else { ForumInvitationResponse response = (ForumInvitationResponse) m; assertEquals(forum0, response.getNameable()); @@ -195,7 +195,7 @@ public class ForumSharingIntegrationTest assertFalse(invitation.wasAnswered()); assertEquals(forum0.getName(), invitation.getName()); assertEquals(null, invitation.getMessage()); - assertFalse(invitation.doesExist()); + assertFalse(invitation.canBeOpened()); } else { ForumInvitationResponse response = (ForumInvitationResponse) m; assertEquals(forum0, response.getNameable());