Use Concurrent HashMaps for Callback Registration

Update callback registration and deregistration to
be thread safe.

Bug: 260089133
Test: atest TelephonyRegistryManagerTest

Change-Id: I9c9d614f883243e8c4efb2961289130cae7fe3b9
This commit is contained in:
Nathan Harold
2023-02-27 18:37:04 -08:00
parent 41b6bc55c7
commit d656849e91

View File

@@ -53,9 +53,7 @@ import com.android.internal.telephony.ITelephonyRegistry;
import java.lang.ref.WeakReference;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.WeakHashMap;
@@ -83,15 +81,16 @@ public class TelephonyRegistryManager {
* A mapping between {@link SubscriptionManager.OnSubscriptionsChangedListener} and
* its callback IOnSubscriptionsChangedListener.
*/
private final Map<SubscriptionManager.OnSubscriptionsChangedListener,
IOnSubscriptionsChangedListener> mSubscriptionChangedListenerMap = new HashMap<>();
private final ConcurrentHashMap<SubscriptionManager.OnSubscriptionsChangedListener,
IOnSubscriptionsChangedListener>
mSubscriptionChangedListenerMap = new ConcurrentHashMap<>();
/**
* A mapping between {@link SubscriptionManager.OnOpportunisticSubscriptionsChangedListener} and
* its callback IOnSubscriptionsChangedListener.
*/
private final Map<SubscriptionManager.OnOpportunisticSubscriptionsChangedListener,
IOnSubscriptionsChangedListener> mOpportunisticSubscriptionChangedListenerMap
= new HashMap<>();
private final ConcurrentHashMap<SubscriptionManager.OnOpportunisticSubscriptionsChangedListener,
IOnSubscriptionsChangedListener>
mOpportunisticSubscriptionChangedListenerMap = new ConcurrentHashMap<>();
/**
* A mapping between {@link CarrierConfigManager.CarrierConfigChangeListener} and its callback