From 00c0729f107a1b2acbabcbad0e857845cf72e2b8 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Mon, 18 Feb 2013 17:47:34 +0000
Subject: [PATCH] Add the new contact to the DB when the invitation process
 completes.

---
 .../invitation/AddContactActivity.java        | 27 +++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java b/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java
index a29c0763cf..1b1172c105 100644
--- a/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java
+++ b/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java
@@ -1,7 +1,15 @@
 package net.sf.briar.android.invitation;
 
+import static java.util.logging.Level.WARNING;
+
+import java.util.concurrent.Executor;
+import java.util.logging.Logger;
+
 import net.sf.briar.api.android.ReferenceManager;
 import net.sf.briar.api.crypto.CryptoComponent;
+import net.sf.briar.api.db.DatabaseComponent;
+import net.sf.briar.api.db.DatabaseExecutor;
+import net.sf.briar.api.db.DbException;
 import net.sf.briar.api.invitation.InvitationListener;
 import net.sf.briar.api.invitation.InvitationState;
 import net.sf.briar.api.invitation.InvitationTask;
@@ -14,7 +22,12 @@ import com.google.inject.Inject;
 public class AddContactActivity extends RoboActivity
 implements InvitationListener {
 
+	private static final Logger LOG =
+			Logger.getLogger(AddContactActivity.class.getName());
+
 	@Inject private CryptoComponent crypto;
+	@Inject private DatabaseComponent db;
+	@Inject @DatabaseExecutor private Executor dbExecutor;
 	@Inject private InvitationTaskFactory invitationTaskFactory;
 	@Inject private ReferenceManager referenceManager;
 
@@ -191,6 +204,20 @@ implements InvitationListener {
 		}
 	}
 
+	void addContactAndFinish(final String nickname) {
+		dbExecutor.execute(new Runnable() {
+			public void run() {
+				try {
+					db.addContact(nickname);
+				} catch(DbException e) {
+					if(LOG.isLoggable(WARNING))
+						LOG.log(WARNING, e.toString(), e);
+				}
+			}
+		});
+		finish();
+	}
+
 	public void connectionSucceeded(final int localCode, final int remoteCode) {
 		runOnUiThread(new Runnable() {
 			public void run() {
-- 
GitLab