ContactList: Call adapter.remove() method on main thread.
This fix a long time IndexOutOfBoundsException.
--- 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) {