From 1ddceaadd694546de65e72c8cfa554dc4c7d4324 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 16 Oct 2019 13:06:21 -0300 Subject: [PATCH] Always replace pending contacts no matter their state when link is re-entered --- .../bramble/api/contact/ContactManager.java | 6 ------ .../bramble/contact/ContactManagerImpl.java | 6 ------ .../contact/add/remote/AddContactViewModel.java | 17 +++++++++-------- 3 files changed, 9 insertions(+), 20 deletions(-) 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 af305978a..b213044aa 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 @@ -141,12 +141,6 @@ public interface ContactManager { Collection> getPendingContacts() throws DbException; - /** - * Returns the state of the given {@link PendingContact}. - */ - @Nullable - PendingContactState getPendingContactState(PendingContactId p); - /** * Removes a {@link PendingContact}. */ 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 e64ff66da..2ebd2848b 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 @@ -172,12 +172,6 @@ class ContactManagerImpl implements ContactManager, EventListener { return pairs; } - @Override - @Nullable - public PendingContactState getPendingContactState(PendingContactId p) { - return states.get(p); - } - @Override public void removePendingContact(PendingContactId p) throws DbException { db.transaction(false, txn -> db.removePendingContact(txn, p)); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactViewModel.java index 901f5773d..4e3e48493 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactViewModel.java @@ -12,6 +12,7 @@ import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.contact.PendingContact; import org.briarproject.bramble.api.db.DatabaseExecutor; import org.briarproject.bramble.api.db.DbException; +import org.briarproject.bramble.api.db.NoSuchPendingContactException; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.briar.android.viewmodel.LiveEvent; import org.briarproject.briar.android.viewmodel.LiveResult; @@ -26,7 +27,6 @@ import javax.inject.Inject; import static java.util.logging.Level.WARNING; import static java.util.logging.Logger.getLogger; import static org.briarproject.bramble.api.contact.HandshakeLinkConstants.LINK_REGEX; -import static org.briarproject.bramble.api.contact.PendingContactState.FAILED; import static org.briarproject.bramble.util.LogUtils.logException; @NotNullByDefault @@ -122,14 +122,15 @@ public class AddContactViewModel extends AndroidViewModel { public void updatePendingContact(String name, PendingContact p) { dbExecutor.execute(() -> { - if (contactManager.getPendingContactState(p.getId()) == FAILED) { - try { - contactManager.removePendingContact(p.getId()); - } catch (DbException e) { - logException(LOG, WARNING, e); - addContactResult.postValue(new LiveResult<>(e)); - } + try { + contactManager.removePendingContact(p.getId()); addContact(name); + } catch(NoSuchPendingContactException e) { + logException(LOG, WARNING, e); + // no error in UI as pending contact was converted into contact + } catch (DbException e) { + logException(LOG, WARNING, e); + addContactResult.postValue(new LiveResult<>(e)); } }); }