Skip to content
Snippets Groups Projects
Unverified Commit 6e1ec41d authored by akwizgran's avatar akwizgran
Browse files

Handle events that affect list of available forums.

parent 18db17bf
No related branches found
No related tags found
No related merge requests found
...@@ -14,11 +14,15 @@ import org.briarproject.api.contact.Contact; ...@@ -14,11 +14,15 @@ import org.briarproject.api.contact.Contact;
import org.briarproject.api.contact.ContactId; import org.briarproject.api.contact.ContactId;
import org.briarproject.api.db.DbException; import org.briarproject.api.db.DbException;
import org.briarproject.api.db.NoSuchGroupException; import org.briarproject.api.db.NoSuchGroupException;
import org.briarproject.api.event.ContactRemovedEvent;
import org.briarproject.api.event.Event; import org.briarproject.api.event.Event;
import org.briarproject.api.event.EventBus; import org.briarproject.api.event.EventBus;
import org.briarproject.api.event.EventListener; import org.briarproject.api.event.EventListener;
import org.briarproject.api.event.GroupAddedEvent;
import org.briarproject.api.event.GroupRemovedEvent;
import org.briarproject.api.event.MessageValidatedEvent; import org.briarproject.api.event.MessageValidatedEvent;
import org.briarproject.api.forum.Forum; import org.briarproject.api.forum.Forum;
import org.briarproject.api.forum.ForumManager;
import org.briarproject.api.forum.ForumSharingManager; import org.briarproject.api.forum.ForumSharingManager;
import org.briarproject.api.sync.ClientId; import org.briarproject.api.sync.ClientId;
...@@ -43,6 +47,7 @@ implements EventListener, OnItemClickListener { ...@@ -43,6 +47,7 @@ implements EventListener, OnItemClickListener {
private ListView list = null; private ListView list = null;
// Fields that are accessed from background threads must be volatile // Fields that are accessed from background threads must be volatile
@Inject private volatile ForumManager forumManager;
@Inject private volatile ForumSharingManager forumSharingManager; @Inject private volatile ForumSharingManager forumSharingManager;
@Inject private volatile EventBus eventBus; @Inject private volatile EventBus eventBus;
...@@ -120,7 +125,22 @@ implements EventListener, OnItemClickListener { ...@@ -120,7 +125,22 @@ implements EventListener, OnItemClickListener {
} }
public void eventOccurred(Event e) { public void eventOccurred(Event e) {
if (e instanceof MessageValidatedEvent) { if (e instanceof ContactRemovedEvent) {
LOG.info("Contact removed, reloading");
loadForums();
} else if (e instanceof GroupAddedEvent) {
GroupAddedEvent g = (GroupAddedEvent) e;
if (g.getGroup().getClientId().equals(forumManager.getClientId())) {
LOG.info("Forum added, reloading");
loadForums();
}
} else if (e instanceof GroupRemovedEvent) {
GroupRemovedEvent g = (GroupRemovedEvent) e;
if (g.getGroup().getClientId().equals(forumManager.getClientId())) {
LOG.info("Forum removed, reloading");
loadForums();
}
} else if (e instanceof MessageValidatedEvent) {
MessageValidatedEvent m = (MessageValidatedEvent) e; MessageValidatedEvent m = (MessageValidatedEvent) e;
ClientId c = m.getClientId(); ClientId c = m.getClientId();
if (m.isValid() && !m.isLocal() if (m.isValid() && !m.isLocal()
...@@ -139,7 +159,6 @@ implements EventListener, OnItemClickListener { ...@@ -139,7 +159,6 @@ implements EventListener, OnItemClickListener {
subscribe(item.getForum(), shared); subscribe(item.getForum(), shared);
String subscribed = getString(R.string.subscribed_toast); String subscribed = getString(R.string.subscribed_toast);
Toast.makeText(this, subscribed, LENGTH_SHORT).show(); Toast.makeText(this, subscribed, LENGTH_SHORT).show();
loadForums();
} }
private void subscribe(final Forum f, final Collection<ContactId> shared) { private void subscribe(final Forum f, final Collection<ContactId> shared) {
......
...@@ -14,7 +14,7 @@ public interface SyncConstants { ...@@ -14,7 +14,7 @@ public interface SyncConstants {
int MAX_PACKET_PAYLOAD_LENGTH = 32 * 1024; // 32 KiB int MAX_PACKET_PAYLOAD_LENGTH = 32 * 1024; // 32 KiB
/** The maximum length of a group descriptor in bytes. */ /** The maximum length of a group descriptor in bytes. */
int MAX_GROUP_DESCRIPTOR_LENGTH = 1000; // TODO: Remove int MAX_GROUP_DESCRIPTOR_LENGTH = 100; // TODO: Remove
/** The maximum length of a message in bytes. */ /** The maximum length of a message in bytes. */
int MAX_MESSAGE_LENGTH = MAX_PACKET_PAYLOAD_LENGTH - PACKET_HEADER_LENGTH; int MAX_MESSAGE_LENGTH = MAX_PACKET_PAYLOAD_LENGTH - PACKET_HEADER_LENGTH;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment