From 5eae3c0a0a272299b812560f0fa4a1080093de45 Mon Sep 17 00:00:00 2001 From: Hyunyoung Song Date: Fri, 19 Jun 2020 02:37:28 -0700 Subject: [PATCH] Remove ConcurrentModificationException for snapshot logging Bug: 159282737 Change-Id: I37edcf6aa11272b488a0633716567c48e56e5433 --- .../quickstep/logging/StatsLogCompatManager.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java index e4968077db..b3b899e801 100644 --- a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java +++ b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java @@ -44,6 +44,7 @@ import com.android.launcher3.model.data.FolderInfo; import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.model.data.LauncherAppWidgetInfo; import com.android.launcher3.model.data.WorkspaceItemInfo; +import com.android.launcher3.util.Executors; import com.android.launcher3.util.IntSparseArrayMap; import com.android.launcher3.util.LogConfig; import com.android.systemui.shared.system.SysUiStatsLog; @@ -121,11 +122,14 @@ public class StatsLogCompatManager extends StatsLogManager { writeSnapshot(atomInfo, mInstanceId); } for (FolderInfo fInfo : folders) { - ArrayList folderContents = (ArrayList) fInfo.contents.clone(); - for (ItemInfo info : folderContents) { - LauncherAtom.ItemInfo atomInfo = info.buildProto(fInfo); - writeSnapshot(atomInfo, mInstanceId); - } + try { + ArrayList folderContents = + (ArrayList) Executors.MAIN_EXECUTOR.submit(fInfo.contents::clone).get(); + for (ItemInfo info : folderContents) { + LauncherAtom.ItemInfo atomInfo = info.buildProto(fInfo); + writeSnapshot(atomInfo, mInstanceId); + } + } catch (Exception e) { } } for (ItemInfo info : appWidgets) { LauncherAtom.ItemInfo atomInfo = info.buildProto(null);