summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Brad Ebinger <breadley@google.com> 2022-05-10 16:55:16 -0700
committer Brad Ebinger <breadley@google.com> 2022-05-10 16:55:50 -0700
commit7fd1f110593a426a2d39065d6696a19ddf53dd3c (patch)
tree17c98016806a401b928bcb66f43a1eac9bad4543
parentddb4ee4491a0bf5082a93f68d529fb1bef2c3758 (diff)
Ensure create/destroy is called properly for Capability Exchange API
We were mistakenly not calling the destroy API properly for Capability Exchange API when the listener passed in was null. Instead we were calling destroy -> create. This was causing us to call destroy -> create over 4 times when switching SIMs. Bug: 228278638 Test: manual PUBLISH verification on TMO, atest FrameworksTelephonyTests Change-Id: If374f8306add45e60f64fa4031af31c8f448bb22
-rw-r--r--telephony/java/android/telephony/ims/feature/RcsFeature.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/telephony/java/android/telephony/ims/feature/RcsFeature.java b/telephony/java/android/telephony/ims/feature/RcsFeature.java
index 843827befb65..186241217588 100644
--- a/telephony/java/android/telephony/ims/feature/RcsFeature.java
+++ b/telephony/java/android/telephony/ims/feature/RcsFeature.java
@@ -118,8 +118,10 @@ public class RcsFeature extends ImsFeature {
@Override
public void setCapabilityExchangeEventListener(
@Nullable ICapabilityExchangeEventListener listener) throws RemoteException {
- CapabilityExchangeEventListener listenerWrapper =
- new CapabilityExchangeAidlWrapper(listener);
+ // Set the listener wrapper to null if the listener passed in is null. This will notify
+ // the RcsFeature to trigger the destruction of active capability exchange interface.
+ CapabilityExchangeEventListener listenerWrapper = listener != null
+ ? new CapabilityExchangeAidlWrapper(listener) : null;
executeMethodAsync(() -> mReference.setCapabilityExchangeEventListener(listenerWrapper),
"setCapabilityExchangeEventListener");
}