Fix the exception of accessing an ArrayMap

- ArrayMap is not thread-safe.
- When accessing the map across threads at the same time, the map may
throw a ConcurrentModificationException.
- Convert the map to a synchronizedMap to avoid the exception.

Fixes: 159813482
Test: robotest
Change-Id: I3b8bdd435c7c546acf736fa8aafd2ceaed94d081
diff --git a/src/com/android/settings/slices/SliceBackgroundWorker.java b/src/com/android/settings/slices/SliceBackgroundWorker.java
index 6eb154e..2b02999 100644
--- a/src/com/android/settings/slices/SliceBackgroundWorker.java
+++ b/src/com/android/settings/slices/SliceBackgroundWorker.java
@@ -33,6 +33,7 @@
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
@@ -190,7 +191,8 @@
 
         private static NotifySliceChangeHandler sHandler;
 
-        private final Map<Uri, Long> mLastUpdateTimeLookup = new ArrayMap<>();
+        private final Map<Uri, Long> mLastUpdateTimeLookup = Collections.synchronizedMap(
+                new ArrayMap<>());
 
         private static NotifySliceChangeHandler getInstance() {
             if (sHandler == null) {