diff --git a/briar-api/src/org/briarproject/api/forum/ForumInvitationRequest.java b/briar-api/src/org/briarproject/api/forum/ForumInvitationRequest.java index 3e90116c0..5d4c8d554 100644 --- a/briar-api/src/org/briarproject/api/forum/ForumInvitationRequest.java +++ b/briar-api/src/org/briarproject/api/forum/ForumInvitationRequest.java @@ -5,16 +5,15 @@ import org.briarproject.api.contact.ContactId; import org.briarproject.api.sharing.InvitationRequest; import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.MessageId; -import org.jetbrains.annotations.Nullable; public class ForumInvitationRequest extends InvitationRequest { private final String forumName; public ForumInvitationRequest(MessageId id, SessionId sessionId, - GroupId groupId, ContactId contactId, String forumName, String message, - boolean available, long time, boolean local, boolean sent, - boolean seen, boolean read) { + GroupId groupId, ContactId contactId, String forumName, + String message, boolean available, long time, boolean local, + boolean sent, boolean seen, boolean read) { super(id, sessionId, groupId, contactId, message, available, time, local, sent, seen, read); diff --git a/briar-api/src/org/briarproject/api/sharing/SharingManager.java b/briar-api/src/org/briarproject/api/sharing/SharingManager.java index 3e37191dd..c7b1c8004 100644 --- a/briar-api/src/org/briarproject/api/sharing/SharingManager.java +++ b/briar-api/src/org/briarproject/api/sharing/SharingManager.java @@ -1,6 +1,7 @@ package org.briarproject.api.sharing; import org.briarproject.api.clients.MessageTracker; +import org.briarproject.api.clients.SessionId; import org.briarproject.api.contact.Contact; import org.briarproject.api.contact.ContactId; import org.briarproject.api.db.DbException; @@ -30,7 +31,14 @@ public interface SharingManager extends MessageTracker { throws DbException; /** - * Returns all group sharing messages sent by the given contact. + * Responds to a pending group invitation + */ + void respondToInvitation(SessionId id, boolean accept) + throws DbException; + + /** + * Returns all group sharing messages sent by the Contact + * identified by contactId. */ Collection getInvitationMessages( ContactId contactId) throws DbException; diff --git a/briar-core/src/org/briarproject/sharing/SharingManagerImpl.java b/briar-core/src/org/briarproject/sharing/SharingManagerImpl.java index dd06fc2c4..a35501877 100644 --- a/briar-core/src/org/briarproject/sharing/SharingManagerImpl.java +++ b/briar-core/src/org/briarproject/sharing/SharingManagerImpl.java @@ -316,27 +316,7 @@ abstract class SharingManagerImpl engine = - new InviteeEngine(getIRFactory(), clock); - StateUpdate update = - engine.onLocalAction(localState, localAction); - processInviteeStateUpdate(txn, null, update); - - // track message - // TODO handle this properly without engine hacks (#376) - long time = update.toSend.get(0).getTime(); - trackMessage(txn, localState.getGroupId(), time, true); - + respondToInvitation(txn, localState, accept); txn.setComplete(); } catch (FormatException e) { throw new DbException(e); @@ -345,6 +325,45 @@ abstract class SharingManagerImpl engine = + new InviteeEngine(getIRFactory(), clock); + StateUpdate update = + engine.onLocalAction(localState, localAction); + processInviteeStateUpdate(txn, null, update); + + // track message + // TODO handle this properly without engine hacks (#376) + long time = update.toSend.get(0).getTime(); + trackMessage(txn, localState.getGroupId(), time, true); + } + @Override public Collection getInvitationMessages(ContactId contactId) throws DbException {