diff options
| author | 2020-09-22 01:17:00 +0000 | |
|---|---|---|
| committer | 2020-09-22 01:17:00 +0000 | |
| commit | 4aeb2ecda5d46cbbcae02d6344dbc356c829fdfc (patch) | |
| tree | b1503a793a79e97d7ece6ecf5d26b560e25675fe | |
| parent | 7904074696f3708db253f7e2004c2b7b5b6c2f9f (diff) | |
| parent | 3ba0f5da1d541a6c384c3c75d88b1ee5dd0be59c (diff) | |
Merge "TelephonyRegistry: Avoid adding duplicate listener" am: 6334152357 am: 3ba0f5da1d
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1433021
Change-Id: Ie577f0736765ef1c79630c116351a669f972c778
| -rw-r--r-- | core/java/android/telephony/TelephonyRegistryManager.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/core/java/android/telephony/TelephonyRegistryManager.java b/core/java/android/telephony/TelephonyRegistryManager.java index 0a47032354f5..2dbce7b0fc7b 100644 --- a/core/java/android/telephony/TelephonyRegistryManager.java +++ b/core/java/android/telephony/TelephonyRegistryManager.java @@ -104,6 +104,10 @@ public class TelephonyRegistryManager { public void addOnSubscriptionsChangedListener( @NonNull SubscriptionManager.OnSubscriptionsChangedListener listener, @NonNull Executor executor) { + if (mSubscriptionChangedListenerMap.get(listener) != null) { + Log.d(TAG, "addOnSubscriptionsChangedListener listener already present"); + return; + } IOnSubscriptionsChangedListener callback = new IOnSubscriptionsChangedListener.Stub() { @Override public void onSubscriptionsChanged () { @@ -153,6 +157,10 @@ public class TelephonyRegistryManager { public void addOnOpportunisticSubscriptionsChangedListener( @NonNull SubscriptionManager.OnOpportunisticSubscriptionsChangedListener listener, @NonNull Executor executor) { + if (mOpportunisticSubscriptionChangedListenerMap.get(listener) != null) { + Log.d(TAG, "addOnOpportunisticSubscriptionsChangedListener listener already present"); + return; + } /** * The callback methods need to be called on the executor thread where * this object was created. If the binder did that for us it'd be nice. @@ -188,6 +196,9 @@ public class TelephonyRegistryManager { */ public void removeOnOpportunisticSubscriptionsChangedListener( @NonNull SubscriptionManager.OnOpportunisticSubscriptionsChangedListener listener) { + if (mOpportunisticSubscriptionChangedListenerMap.get(listener) == null) { + return; + } try { sRegistry.removeOnSubscriptionsChangedListener(mContext.getOpPackageName(), mOpportunisticSubscriptionChangedListenerMap.get(listener)); |