From 4e02c674f8cc1c5963aef3ce15b4a0cae716f41f Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Sat, 23 Nov 2013 01:30:13 +0100 Subject: [PATCH] Still trying to fix the concurrency exception I hope this doesn't cause infinite recursion. --- .../UserInterface/DeviceActivity.java | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/kde/kdeconnect/UserInterface/DeviceActivity.java b/src/main/java/org/kde/kdeconnect/UserInterface/DeviceActivity.java index 8d704f0a..97840f7d 100644 --- a/src/main/java/org/kde/kdeconnect/UserInterface/DeviceActivity.java +++ b/src/main/java/org/kde/kdeconnect/UserInterface/DeviceActivity.java @@ -24,6 +24,7 @@ import org.kde.kdeconnect_tp.R; import java.util.ArrayList; import java.util.Collection; +import java.util.ConcurrentModificationException; import java.util.HashMap; public class DeviceActivity extends ActionBarActivity { @@ -63,18 +64,25 @@ public class DeviceActivity extends ActionBarActivity { } }); - //Buttons list - ArrayList items = new ArrayList(); - final Collection plugins = device.getLoadedPlugins().values(); - for (Plugin p : plugins) { - Button b = p.getInterfaceButton(DeviceActivity.this); - if (b != null) { - items.add(new SectionItem(p.getDisplayName())); - items.add(new ButtonItem(b)); + try { + //Buttons list + ArrayList items = new ArrayList(); + final Collection plugins = device.getLoadedPlugins().values(); + for (Plugin p : plugins) { + Button b = p.getInterfaceButton(DeviceActivity.this); + if (b != null) { + items.add(new SectionItem(p.getDisplayName())); + items.add(new ButtonItem(b)); + } } + + ListView buttonsList = (ListView)findViewById(R.id.buttons_list); + buttonsList.setAdapter(new ListAdapter(DeviceActivity.this, items)); + + } catch(ConcurrentModificationException e) { + Log.e("DeviceActivity", "ConcurrentModificationException"); + this.run(); //Try again } - ListView buttonsList = (ListView)findViewById(R.id.buttons_list); - buttonsList.setAdapter(new ListAdapter(DeviceActivity.this, items)); } });