From c7518c6fd2991ac82dccc7c7adb967ae20f074e2 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 8 Apr 2019 16:52:34 +0200 Subject: [PATCH] Fix concurrent modification exception --- .../java/org/linphone/chat/ChatRoomCreationFragment.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/linphone/chat/ChatRoomCreationFragment.java b/app/src/main/java/org/linphone/chat/ChatRoomCreationFragment.java index 2f9239b6c..7e1be930d 100644 --- a/app/src/main/java/org/linphone/chat/ChatRoomCreationFragment.java +++ b/app/src/main/java/org/linphone/chat/ChatRoomCreationFragment.java @@ -40,6 +40,7 @@ import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; +import java.util.List; import org.linphone.LinphoneActivity; import org.linphone.LinphoneManager; import org.linphone.R; @@ -312,16 +313,20 @@ public class ChatRoomCreationFragment extends Fragment // Remove all contacts added before LIME switch was set // and that can stay because they don't have the capability mContactsSelectedLayout.removeAllViews(); + List toToggle = new ArrayList<>(); for (ContactAddress ca : mSearchAdapter.getContactsSelectedList()) { // If the ContactAddress doesn't have a contact keep it anyway if (ca.getContact() != null && !ca.hasCapability(FriendCapability.LimeX3Dh)) { - mSearchAdapter.toggleContactSelection(ca); + toToggle.add(ca); } else { if (ca.getView() != null) { mContactsSelectedLayout.addView(ca.getView()); } } } + for (ContactAddress ca : toToggle) { + mSearchAdapter.toggleContactSelection(ca); + } mContactsSelectedLayout.invalidate(); } }