ContactList: Call adapter.remove() method on main thread.
authorDa Risk <da_risk@beem-project.com>
Fri, 01 May 2015 00:23:52 +0200
changeset 1058 0e4be11f7b13
parent 1057 757bdaef7d63
child 1059 303ed5dd4d5f
ContactList: Call adapter.remove() method on main thread. This fix a long time IndexOutOfBoundsException.
app/src/main/java/com/beem/project/beem/ui/ContactList.java
--- a/app/src/main/java/com/beem/project/beem/ui/ContactList.java	Tue Mar 24 17:23:15 2015 +0100
+++ b/app/src/main/java/com/beem/project/beem/ui/ContactList.java	Fri May 01 00:23:52 2015 +0200
@@ -422,9 +422,15 @@
 	public void onEntriesUpdated(final List<String> addresses) throws RemoteException {
 	    LOGD(TAG, "onEntries updated " + addresses);
 	    for (String cToDelete : addresses) {
-		Contact contact = new Contact(cToDelete);
-		for (ContactListAdapter adapter : contactListAdapters.values()) {
-		    adapter.remove(contact);
+		final Contact contact = new Contact(cToDelete);
+		for (final ContactListAdapter adapter : contactListAdapters.values()) {
+			runOnUiThread(new Runnable() {
+
+				@Override
+				public void run() {
+					adapter.remove(contact);
+				}
+			});
 		}
 	    }
 	    for (String newName : addresses) {