From 57dca67b3f6ed73f6c583704067676f81f8b0eb1 Mon Sep 17 00:00:00 2001
From: goapunk <goapunk@riseup.net>
Date: Tue, 26 Jun 2018 18:09:07 +0200
Subject: [PATCH] Let client hooks decide if they handle a contact type

---
 .../main/java/org/briarproject/briar/blog/BlogManagerImpl.java | 2 ++
 .../briar/introduction/IntroductionManagerImpl.java            | 2 ++
 .../privategroup/invitation/GroupInvitationManagerImpl.java    | 3 +++
 .../org/briarproject/briar/sharing/SharingManagerImpl.java     | 3 +++
 4 files changed, 10 insertions(+)

diff --git a/briar-core/src/main/java/org/briarproject/briar/blog/BlogManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/blog/BlogManagerImpl.java
index 6a05b9a15..292a45db2 100644
--- a/briar-core/src/main/java/org/briarproject/briar/blog/BlogManagerImpl.java
+++ b/briar-core/src/main/java/org/briarproject/briar/blog/BlogManagerImpl.java
@@ -4,6 +4,7 @@ import org.briarproject.bramble.api.FormatException;
 import org.briarproject.bramble.api.client.ClientHelper;
 import org.briarproject.bramble.api.contact.Contact;
 import org.briarproject.bramble.api.contact.ContactManager.ContactHook;
+import org.briarproject.bramble.api.contact.RepeaterContact;
 import org.briarproject.bramble.api.data.BdfDictionary;
 import org.briarproject.bramble.api.data.BdfEntry;
 import org.briarproject.bramble.api.data.BdfList;
@@ -99,6 +100,7 @@ class BlogManagerImpl extends BdfIncomingMessageHook implements BlogManager,
 
 	@Override
 	public void removingContact(Transaction txn, Contact c) throws DbException {
+		if (c instanceof RepeaterContact) return;
 		Blog b = blogFactory.createBlog(c.getAuthor());
 		// TODO we might want to reconsider removing b, if otherwise shared
 		if (db.containsGroup(txn, b.getId())) removeBlog(txn, b);
diff --git a/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionManagerImpl.java
index 64fc1b40d..0653b4503 100644
--- a/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionManagerImpl.java
+++ b/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionManagerImpl.java
@@ -7,6 +7,7 @@ import org.briarproject.bramble.api.contact.Contact;
 import org.briarproject.bramble.api.contact.ContactId;
 import org.briarproject.bramble.api.contact.ContactManager;
 import org.briarproject.bramble.api.contact.ContactManager.ContactHook;
+import org.briarproject.bramble.api.contact.RepeaterContact;
 import org.briarproject.bramble.api.data.BdfDictionary;
 import org.briarproject.bramble.api.data.BdfList;
 import org.briarproject.bramble.api.data.MetadataParser;
@@ -119,6 +120,7 @@ class IntroductionManagerImpl extends ConversationClientImpl
 
 	@Override
 	public void addingContact(Transaction txn, Contact c) throws DbException {
+		if (c instanceof RepeaterContact) return;
 		// Create a group to share with the contact
 		Group g = getContactGroup(c);
 		db.addGroup(txn, g);
diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java
index a4aef1eca..d6435387b 100644
--- a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java
+++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java
@@ -6,6 +6,7 @@ import org.briarproject.bramble.api.client.ContactGroupFactory;
 import org.briarproject.bramble.api.contact.Contact;
 import org.briarproject.bramble.api.contact.ContactId;
 import org.briarproject.bramble.api.contact.ContactManager.ContactHook;
+import org.briarproject.bramble.api.contact.RepeaterContact;
 import org.briarproject.bramble.api.data.BdfDictionary;
 import org.briarproject.bramble.api.data.BdfList;
 import org.briarproject.bramble.api.data.MetadataParser;
@@ -113,6 +114,7 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
 
 	@Override
 	public void addingContact(Transaction txn, Contact c) throws DbException {
+		if (c instanceof RepeaterContact) return;
 		// Create a group to share with the contact
 		Group g = getContactGroup(c);
 		db.addGroup(txn, g);
@@ -137,6 +139,7 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
 
 	@Override
 	public void removingContact(Transaction txn, Contact c) throws DbException {
+		if (c instanceof RepeaterContact) return;
 		// Remove the contact group (all messages will be removed with it)
 		db.removeGroup(txn, getContactGroup(c));
 	}
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 fc57a6daa..7c0cf5d27 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
@@ -6,6 +6,7 @@ import org.briarproject.bramble.api.client.ContactGroupFactory;
 import org.briarproject.bramble.api.contact.Contact;
 import org.briarproject.bramble.api.contact.ContactId;
 import org.briarproject.bramble.api.contact.ContactManager.ContactHook;
+import org.briarproject.bramble.api.contact.RepeaterContact;
 import org.briarproject.bramble.api.data.BdfDictionary;
 import org.briarproject.bramble.api.data.BdfList;
 import org.briarproject.bramble.api.data.MetadataParser;
@@ -104,6 +105,7 @@ abstract class SharingManagerImpl<S extends Shareable>
 
 	@Override
 	public void addingContact(Transaction txn, Contact c) throws DbException {
+		if (c instanceof RepeaterContact) return;
 		// Create a group to share with the contact
 		Group g = getContactGroup(c);
 		db.addGroup(txn, g);
@@ -122,6 +124,7 @@ abstract class SharingManagerImpl<S extends Shareable>
 
 	@Override
 	public void removingContact(Transaction txn, Contact c) throws DbException {
+		if (c instanceof RepeaterContact) return;
 		// Remove the contact group (all messages will be removed with it)
 		db.removeGroup(txn, getContactGroup(c));
 	}
-- 
GitLab