Fix a concurrent modification exception in Slice provider.
Change-Id: I87449dda9a56b5e8932dc4c6bec462195cb89348
Fixes: 79372493
Test: monkey
diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java
index 55ad6b0..6d6c0ec 100644
--- a/src/com/android/settings/slices/SettingsSliceProvider.java
+++ b/src/com/android/settings/slices/SettingsSliceProvider.java
@@ -32,7 +32,6 @@
import android.support.annotation.VisibleForTesting;
import android.support.v4.graphics.drawable.IconCompat;
import android.text.TextUtils;
-import android.util.ArrayMap;
import android.util.Log;
import android.util.Pair;
@@ -42,10 +41,10 @@
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.WeakHashMap;
+import java.util.concurrent.ConcurrentHashMap;
import androidx.slice.Slice;
import androidx.slice.SliceProvider;
@@ -117,6 +116,7 @@
@VisibleForTesting
Map<Uri, SliceData> mSliceWeakDataCache;
+ @VisibleForTesting
Map<Uri, SliceData> mSliceDataCache;
public SettingsSliceProvider() {
@@ -126,7 +126,7 @@
@Override
public boolean onCreateSliceProvider() {
mSlicesDatabaseAccessor = new SlicesDatabaseAccessor(getContext());
- mSliceDataCache = new ArrayMap<>();
+ mSliceDataCache = new ConcurrentHashMap<>();
mSliceWeakDataCache = new WeakHashMap<>();
return true;
}