summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2020-09-22 02:02:49 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-09-22 02:02:49 +0000
commit2e2bd28efa8ed9024ea6386c0208e00d9a7d58c3 (patch)
tree1927df962310ca87643d84c88b94edb1f2601434
parent7f6b82a3ffa55ae1fff78032b880c5420ccb1c59 (diff)
parent3565a854aeb09a3a15f98b66b31aa857aecc447c (diff)
Merge "TelephonyRegistry: Avoid adding duplicate listener" am: 6334152357 am: 3ba0f5da1d am: 4aeb2ecda5 am: 276ee5c666 am: 3565a854ae
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1433021 Change-Id: I1328d6bc805987cc52fb7264a4b96a0300a87492
-rw-r--r--core/java/android/telephony/TelephonyRegistryManager.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/core/java/android/telephony/TelephonyRegistryManager.java b/core/java/android/telephony/TelephonyRegistryManager.java
index 6d48dc36ceb4..24ed29a66654 100644
--- a/core/java/android/telephony/TelephonyRegistryManager.java
+++ b/core/java/android/telephony/TelephonyRegistryManager.java
@@ -101,6 +101,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 () {
@@ -150,6 +154,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.
@@ -185,6 +193,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));