diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/contact/ContactManager.java b/bramble-api/src/main/java/org/briarproject/bramble/api/contact/ContactManager.java index 031adc52ecacd6a1e8228ac3b9db533e0520e1a4..d8693d79fd046ef5acb5ca8329885427b80b7512 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/contact/ContactManager.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/contact/ContactManager.java @@ -91,6 +91,11 @@ public interface ContactManager { */ Collection<Contact> getContactsByType(ContactType type) throws DbException; + /** + * Returns the paired mailbox or null if not paired with a mailbox. + */ + PrivateMailbox getPrivateMailbox() throws DbException; + /** * Removes a contact and all associated state. */ diff --git a/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactManagerImpl.java index 4bedbf3e52b670b7472012d4853f6ed1ae784095..976f270f8d2baca22ebb103722fbd16b96da03ec 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactManagerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactManagerImpl.java @@ -4,6 +4,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.ContactType; +import org.briarproject.bramble.api.contact.PrivateMailbox; import org.briarproject.bramble.api.crypto.SecretKey; import org.briarproject.bramble.api.db.DatabaseComponent; import org.briarproject.bramble.api.db.DbException; @@ -188,6 +189,14 @@ class ContactManagerImpl implements ContactManager { return contacts; } + @Override + public PrivateMailbox getPrivateMailbox() throws DbException { + Collection<Contact> privateMailbox = getContactsByType(PRIVATE_MAILBOX); + if (privateMailbox.isEmpty()) + return null; + return (PrivateMailbox) privateMailbox.iterator().next(); + } + @Override public void removeContact(ContactId c) throws DbException { Transaction txn = db.startTransaction(false);