From af5173ac3c9b3da18b7a5d6d4fd301ee3117e995 Mon Sep 17 00:00:00 2001
From: goapunk <goapunk@riseup.net>
Date: Mon, 10 Sep 2018 19:24:58 +0200
Subject: [PATCH] Add a getPrivateMailbox method

---
 .../briarproject/bramble/api/contact/ContactManager.java | 5 +++++
 .../briarproject/bramble/contact/ContactManagerImpl.java | 9 +++++++++
 2 files changed, 14 insertions(+)

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 031adc52e..d8693d79f 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 4bedbf3e5..976f270f8 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);
-- 
GitLab