Only remove PendingContact from UI when removed from DB

parent 7a71d2ba
......@@ -79,8 +79,10 @@ public interface ContactManager {
/**
* Removes a {@link PendingContact} that is in state
* {@link PendingContactState FAILED}.
* @param commitAction an action to run on the main thread after removing.
*/
void removePendingContact(PendingContact pendingContact) throws DbException;
void removePendingContact(PendingContact pendingContact,
Runnable commitAction) throws DbException;
/**
* Returns the contact with the given ID.
......
......@@ -222,9 +222,15 @@ class ContactManagerImpl implements ContactManager {
}
@Override
public void removePendingContact(PendingContact pendingContact) {
public void removePendingContact(PendingContact pendingContact,
Runnable commitAction) throws DbException {
// TODO replace with real implementation
pendingContacts.remove(pendingContact);
try {
Thread.sleep(250);
} catch (InterruptedException ignored) {
}
db.transaction(true, txn -> txn.attach(commitAction));
}
@Override
......
......@@ -86,8 +86,8 @@ public class PendingContactListActivity extends BriarActivity
@Override
public void onFailedPendingContactRemoved(PendingContact pendingContact) {
adapter.remove(pendingContact);
viewModel.removePendingContact(pendingContact);
viewModel.removePendingContact(pendingContact,
() -> adapter.remove(pendingContact));
}
private void onPendingContactsChanged(Collection<PendingContact> contacts) {
......
......@@ -81,10 +81,12 @@ public class PendingContactListViewModel extends AndroidViewModel
return pendingContacts;
}
void removePendingContact(PendingContact pendingContact) {
void removePendingContact(PendingContact pendingContact,
Runnable commitAction) {
dbExecutor.execute(() -> {
try {
contactManager.removePendingContact(pendingContact);
contactManager
.removePendingContact(pendingContact, commitAction);
} catch (DbException e) {
logException(LOG, WARNING, e);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment