Fix NullPointerException at VolumeSliceHelper

Race condition happens on accessing a map while system is destroying it.

Test: manual, robotest
Fixes: 188114877
Change-Id: I245121b95d1d4db02e3107a47c6d3ae13a5d32e5
diff --git a/src/com/android/settings/slices/VolumeSliceHelper.java b/src/com/android/settings/slices/VolumeSliceHelper.java
index bcf02e5..5e43b86 100644
--- a/src/com/android/settings/slices/VolumeSliceHelper.java
+++ b/src/com/android/settings/slices/VolumeSliceHelper.java
@@ -111,17 +111,21 @@
 
     private static void handleStreamChanged(Context context, Intent intent) {
         final int inputType = intent.getIntExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, -1);
-        for (Map.Entry<Uri, Integer> entry : sRegisteredUri.entrySet()) {
-            if (entry.getValue() == inputType) {
-                context.getContentResolver().notifyChange(entry.getKey(), null /* observer */);
-                break;
+        synchronized (sRegisteredUri) {
+            for (Map.Entry<Uri, Integer> entry : sRegisteredUri.entrySet()) {
+                if (entry.getValue() == inputType) {
+                    context.getContentResolver().notifyChange(entry.getKey(), null /* observer */);
+                    break;
+                }
             }
         }
     }
 
     private static void notifyAllStreamsChanged(Context context) {
-        sRegisteredUri.forEach((uri, audioStream) -> {
-            context.getContentResolver().notifyChange(uri, null /* observer */);
-        });
+        synchronized (sRegisteredUri) {
+            sRegisteredUri.forEach((uri, audioStream) -> {
+                context.getContentResolver().notifyChange(uri, null /* observer */);
+            });
+        }
     }
 }