Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8dcb39ce authored by Rajeev Kumar's avatar Rajeev Kumar
Browse files

Prevent ConcurrentModificationException while accessing mTunableLookup.

Swapped HashMap with ConcurrentHashMap to allow multi-threaded access to mTunableLookup.

Bug: 131588251
Test: atest SystemUITests
Change-Id: I318fbd591060305b0365163ac3d2242abeabfeea
parent 9880ac98
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -41,9 +41,9 @@ import com.android.systemui.settings.CurrentUserTracker;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.util.leak.LeakDetector;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;

import javax.inject.Inject;
import javax.inject.Singleton;
@@ -69,7 +69,8 @@ public class TunerServiceImpl extends TunerService {
    // Map of Uris we listen on to their settings keys.
    private final ArrayMap<Uri, String> mListeningUris = new ArrayMap<>();
    // Map of settings keys to the listener.
    private final HashMap<String, Set<Tunable>> mTunableLookup = new HashMap<>();
    private final ConcurrentHashMap<String, Set<Tunable>> mTunableLookup =
            new ConcurrentHashMap<>();
    // Set of all tunables, used for leak detection.
    private final HashSet<Tunable> mTunables = LeakDetector.ENABLED ? new HashSet<>() : null;
    private final Context mContext;