Preventing concurrent modification exception during widget restore

Change-Id: If896c5ea7136d132f30be8127b651449bde17447
diff --git a/src/com/android/launcher3/LauncherAppWidgetHost.java b/src/com/android/launcher3/LauncherAppWidgetHost.java
index a28fd25..583f85a 100644
--- a/src/com/android/launcher3/LauncherAppWidgetHost.java
+++ b/src/com/android/launcher3/LauncherAppWidgetHost.java
@@ -84,8 +84,10 @@
         mLauncher.bindPackagesUpdated(LauncherModel.getSortedWidgetsAndShortcuts(mLauncher,
                 true /* refresh */));
 
-        for (Runnable callback : mProviderChangeListeners) {
-            callback.run();
+        if (!mProviderChangeListeners.isEmpty()) {
+            for (Runnable callback : new ArrayList<>(mProviderChangeListeners)) {
+                callback.run();
+            }
         }
     }