Merge "Fix ConcurrentModificationException in QuickstepWidgetHolder" into udc-dev am: 8f85ad38ba

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/22934145

Change-Id: I6d9dcb2cb095acc5b5d3c896cc94078c2eec2d18
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Sihua Ma
2023-05-02 22:07:38 +00:00
committed by Automerger Merge Worker
@@ -95,7 +95,11 @@ public final class QuickstepWidgetHolder extends LauncherWidgetHolder {
i -> MAIN_EXECUTOR.execute(() ->
sHolders.forEach(h -> h.mAppWidgetRemovedCallback.accept(i))),
() -> MAIN_EXECUTOR.execute(() ->
sHolders.forEach(h -> h.mProviderChangedListeners.forEach(
sHolders.forEach(h ->
// Listeners might remove themselves from the list during the
// iteration. Creating a copy of the list to avoid exceptions
// for concurrent modification.
new ArrayList<>(h.mProviderChangedListeners).forEach(
ProviderChangedListener::notifyWidgetProvidersChanged))),
UI_HELPER_EXECUTOR.getLooper());
if (!WidgetsModel.GO_DISABLE_WIDGETS) {