diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogControllerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogControllerImpl.java index f200702eff9f009f7dd4de94d7123dbcb459a1d7..ae666f691a3b53a0fe82a6d51770a719cd372914 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogControllerImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogControllerImpl.java @@ -26,7 +26,7 @@ import org.briarproject.briar.api.blog.BlogSharingManager; import org.briarproject.briar.api.blog.event.BlogInvitationResponseReceivedEvent; import org.briarproject.briar.api.blog.event.BlogPostAddedEvent; import org.briarproject.briar.api.sharing.InvitationResponse; -import org.briarproject.briar.api.sharing.event.ShareableLeftEvent; +import org.briarproject.briar.api.sharing.event.ContactLeftShareableEvent; import java.util.ArrayList; import java.util.Collection; @@ -110,10 +110,10 @@ class BlogControllerImpl extends BaseControllerImpl LOG.info("Blog invitation accepted"); onBlogInvitationAccepted(b.getContactId()); } - } else if (e instanceof ShareableLeftEvent) { - ShareableLeftEvent s = (ShareableLeftEvent) e; + } else if (e instanceof ContactLeftShareableEvent) { + ContactLeftShareableEvent s = (ContactLeftShareableEvent) e; if (s.getGroupId().equals(groupId)) { - LOG.info("Blog left"); + LOG.info("Blog left by contact"); onBlogLeft(s.getContactId()); } } else if (e instanceof GroupRemovedEvent) { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/controller/SharingControllerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/controller/SharingControllerImpl.java index 87afdfe5215fc03a33d92bfe309c610f8e7e98ad..700beee63ec11b0a12906576dd99d8385b173894 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/controller/SharingControllerImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/controller/SharingControllerImpl.java @@ -18,7 +18,6 @@ import java.util.Set; import javax.inject.Inject; -@UiThread @NotNullByDefault public class SharingControllerImpl implements SharingController, EventListener { @@ -26,8 +25,9 @@ public class SharingControllerImpl implements SharingController, EventListener { private final ConnectionRegistry connectionRegistry; @Nullable - private SharingListener listener; - private Set<ContactId> contacts = new HashSet<>(); + private volatile SharingListener listener; + // only access on @UiThread + private final Set<ContactId> contacts = new HashSet<>(); @Inject SharingControllerImpl(EventBus eventBus, diff --git a/briar-api/src/main/java/org/briarproject/briar/api/sharing/event/ShareableLeftEvent.java b/briar-api/src/main/java/org/briarproject/briar/api/sharing/event/ContactLeftShareableEvent.java similarity index 82% rename from briar-api/src/main/java/org/briarproject/briar/api/sharing/event/ShareableLeftEvent.java rename to briar-api/src/main/java/org/briarproject/briar/api/sharing/event/ContactLeftShareableEvent.java index 0548ea00283d0396475fee6a4b743ade416d1e98..69ffbab3c927f5ba52650bd113e05a719258ae0c 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/sharing/event/ShareableLeftEvent.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/sharing/event/ContactLeftShareableEvent.java @@ -10,12 +10,12 @@ import javax.annotation.concurrent.Immutable; @Immutable @NotNullByDefault -public class ShareableLeftEvent extends Event { +public class ContactLeftShareableEvent extends Event { private final GroupId groupId; private final ContactId contactId; - public ShareableLeftEvent(GroupId groupId, ContactId contactId) { + public ContactLeftShareableEvent(GroupId groupId, ContactId contactId) { this.groupId = groupId; this.contactId = contactId; } diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/BlogSharingManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/sharing/BlogSharingManagerImpl.java index ba56908d8fbbb930db15b30c43d29acc0170e175..68db4520d1254a3ef4633835cffebadb9d022990 100644 --- a/briar-core/src/main/java/org/briarproject/briar/sharing/BlogSharingManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/sharing/BlogSharingManagerImpl.java @@ -258,7 +258,7 @@ class BlogSharingManagerImpl extends @Override public BlogInvitation build(BlogSharerSessionState localState, long time) { - return new BlogInvitation(localState.getGroupId(), + return new BlogInvitation(localState.getContactGroupId(), localState.getSessionId(), localState.getBlogAuthorName(), localState.getBlogPublicKey(), time, localState.getMessage()); @@ -338,7 +338,7 @@ class BlogSharingManagerImpl extends ContactId contactId = localState.getContactId(); BlogInvitationRequest request = new BlogInvitationRequest(localState.getInvitationId(), - localState.getSessionId(), localState.getGroupId(), + localState.getSessionId(), localState.getContactGroupId(), contactId, blog.getAuthor().getName(), msg, true, time, false, false, false, false); return new BlogInvitationRequestReceivedEvent(blog, contactId, diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/ForumSharingManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/sharing/ForumSharingManagerImpl.java index 84363a7089f624a00897171b5c30613124531fb4..8d92552557fe96e2003be37a89ee89a32592ac7b 100644 --- a/briar-core/src/main/java/org/briarproject/briar/sharing/ForumSharingManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/sharing/ForumSharingManagerImpl.java @@ -191,7 +191,7 @@ class ForumSharingManagerImpl extends @Override public ForumInvitation build(ForumSharerSessionState localState, long time) { - return new ForumInvitation(localState.getGroupId(), + return new ForumInvitation(localState.getContactGroupId(), localState.getSessionId(), localState.getForumName(), localState.getForumSalt(), time, localState.getMessage()); } @@ -268,7 +268,7 @@ class ForumSharingManagerImpl extends ContactId contactId = localState.getContactId(); ForumInvitationRequest request = new ForumInvitationRequest( localState.getInvitationId(), localState.getSessionId(), - localState.getGroupId(), contactId, forum.getName(), msg, + localState.getContactGroupId(), contactId, forum.getName(), msg, true, time, false, false, false, false); return new ForumInvitationRequestReceivedEvent(forum, contactId, request); diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/InviteeEngine.java b/briar-core/src/main/java/org/briarproject/briar/sharing/InviteeEngine.java index a8a5a16fd62037089d01d65a9e5eb5c8ab8cc706..92a534da64ccaf1e6208023b9d0157d58319200f 100644 --- a/briar-core/src/main/java/org/briarproject/briar/sharing/InviteeEngine.java +++ b/briar-core/src/main/java/org/briarproject/briar/sharing/InviteeEngine.java @@ -77,20 +77,20 @@ class InviteeEngine<IS extends InviteeSessionState, IR extends InvitationRequest if (action == InviteeSessionState.Action.LOCAL_ACCEPT) { localState.setTask(TASK_ADD_SHARED_SHAREABLE); msg = new SimpleMessage(SHARE_MSG_TYPE_ACCEPT, - localState.getGroupId(), localState.getSessionId(), + localState.getContactGroupId(), localState.getSessionId(), clock.currentTimeMillis()); } else { localState.setTask( TASK_REMOVE_SHAREABLE_FROM_LIST_SHARED_WITH_US); msg = new SimpleMessage(SHARE_MSG_TYPE_DECLINE, - localState.getGroupId(), localState.getSessionId(), + localState.getContactGroupId(), localState.getSessionId(), clock.currentTimeMillis()); } messages = Collections.singletonList(msg); logLocalAction(currentState, localState, msg); } else if (action == InviteeSessionState.Action.LOCAL_LEAVE) { BaseMessage msg = new SimpleMessage(SHARE_MSG_TYPE_LEAVE, - localState.getGroupId(), localState.getSessionId(), + localState.getContactGroupId(), localState.getSessionId(), clock.currentTimeMillis()); messages = Collections.singletonList(msg); logLocalAction(currentState, localState, msg); @@ -221,7 +221,7 @@ class InviteeEngine<IS extends InviteeSessionState, IR extends InvitationRequest } localState.setState(InviteeSessionState.State.ERROR); BaseMessage msg = - new SimpleMessage(SHARE_MSG_TYPE_ABORT, localState.getGroupId(), + new SimpleMessage(SHARE_MSG_TYPE_ABORT, localState.getContactGroupId(), localState.getSessionId(), clock.currentTimeMillis()); List<BaseMessage> messages = Collections.singletonList(msg); diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/SharerEngine.java b/briar-core/src/main/java/org/briarproject/briar/sharing/SharerEngine.java index 476580f915d64eef3784f178aa605c92067d1ca5..7d5b351834557775d4f7a634400a5f6514938813 100644 --- a/briar-core/src/main/java/org/briarproject/briar/sharing/SharerEngine.java +++ b/briar-core/src/main/java/org/briarproject/briar/sharing/SharerEngine.java @@ -86,7 +86,7 @@ class SharerEngine<I extends Invitation, SS extends SharerSessionState, IRR exte .setTask(TASK_ADD_SHAREABLE_TO_LIST_TO_BE_SHARED_BY_US); } else if (action == SharerSessionState.Action.LOCAL_LEAVE) { BaseMessage msg = new SimpleMessage(SHARE_MSG_TYPE_LEAVE, - localState.getGroupId(), localState.getSessionId(), + localState.getContactGroupId(), localState.getSessionId(), clock.currentTimeMillis()); messages = Collections.singletonList(msg); logLocalAction(currentState, nextState, msg); @@ -217,7 +217,7 @@ class SharerEngine<I extends Invitation, SS extends SharerSessionState, IRR exte localState.setState(SharerSessionState.State.ERROR); BaseMessage msg = new SimpleMessage(SHARE_MSG_TYPE_ABORT, - localState.getGroupId(), localState.getSessionId(), + localState.getContactGroupId(), localState.getSessionId(), clock.currentTimeMillis()); List<BaseMessage> messages = Collections.singletonList(msg); diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/SharingManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/sharing/SharingManagerImpl.java index 95890062904c48cdad06f648a8ce4cb70c38d03d..44ba7496069dd9d22f0b02f4a2270de4f9ed53a8 100644 --- a/briar-core/src/main/java/org/briarproject/briar/sharing/SharingManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/sharing/SharingManagerImpl.java @@ -39,7 +39,7 @@ import org.briarproject.briar.api.sharing.SharingInvitationItem; import org.briarproject.briar.api.sharing.SharingManager; import org.briarproject.briar.api.sharing.event.InvitationRequestReceivedEvent; import org.briarproject.briar.api.sharing.event.InvitationResponseReceivedEvent; -import org.briarproject.briar.api.sharing.event.ShareableLeftEvent; +import org.briarproject.briar.api.sharing.event.ContactLeftShareableEvent; import org.briarproject.briar.client.ConversationClientImpl; import java.io.IOException; @@ -302,7 +302,7 @@ abstract class SharingManagerImpl<S extends Shareable, I extends Invitation, IS // track message // TODO handle this properly without engine hacks (#376) long time = update.toSend.get(0).getTime(); - messageTracker.trackMessage(txn, localState.getGroupId(), time, + messageTracker.trackMessage(txn, localState.getContactGroupId(), time, true); db.commitTransaction(txn); @@ -366,7 +366,7 @@ abstract class SharingManagerImpl<S extends Shareable, I extends Invitation, IS // track message // TODO handle this properly without engine hacks (#376) long time = update.toSend.get(0).getTime(); - messageTracker.trackMessage(txn, localState.getGroupId(), time, true); + messageTracker.trackMessage(txn, localState.getContactGroupId(), time, true); } @Override @@ -873,7 +873,7 @@ abstract class SharingManagerImpl<S extends Shareable, I extends Invitation, IS localState.setTask(-1); // get group ID for later - GroupId groupId = localState.getGroupId(); + GroupId groupId = localState.getContactGroupId(); // get contact ID for later ContactId contactId = localState.getContactId(); @@ -899,13 +899,15 @@ abstract class SharingManagerImpl<S extends Shareable, I extends Invitation, IS db.setGroupVisibility(txn, contactId, f.getId(), INVISIBLE); removeFromList(txn, groupId, SHARED_BY_US, f); // broadcast event informing UI that contact has left the group - ShareableLeftEvent e = new ShareableLeftEvent(f.getId(), contactId); + ContactLeftShareableEvent + e = new ContactLeftShareableEvent(f.getId(), contactId); txn.attach(e); } else if (task == TASK_UNSHARE_SHAREABLE_SHARED_WITH_US) { db.setGroupVisibility(txn, contactId, f.getId(), INVISIBLE); removeFromList(txn, groupId, SHARED_WITH_US, f); // broadcast event informing UI that contact has left the group - ShareableLeftEvent e = new ShareableLeftEvent(f.getId(), contactId); + ContactLeftShareableEvent + e = new ContactLeftShareableEvent(f.getId(), contactId); txn.attach(e); } } diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/SharingSessionState.java b/briar-core/src/main/java/org/briarproject/briar/sharing/SharingSessionState.java index 048d56a5841b86184aa3bfdb024430a0b4a359ee..791ca044618283be64260b81d10330f0a2f30c91 100644 --- a/briar-core/src/main/java/org/briarproject/briar/sharing/SharingSessionState.java +++ b/briar-core/src/main/java/org/briarproject/briar/sharing/SharingSessionState.java @@ -68,7 +68,7 @@ abstract class SharingSessionState { BdfDictionary d = new BdfDictionary(); d.put(SESSION_ID, getSessionId()); d.put(STORAGE_ID, getStorageId()); - d.put(GROUP_ID, getGroupId()); + d.put(GROUP_ID, getContactGroupId()); d.put(CONTACT_ID, getContactId().getInt()); d.put(SHAREABLE_ID, getShareableId()); @@ -83,7 +83,7 @@ abstract class SharingSessionState { return storageId; } - public GroupId getGroupId() { + public GroupId getContactGroupId() { return groupId; }