diff options
author | Brad Ebinger <breadley@google.com> | 2018-03-08 11:37:35 -0800 |
---|---|---|
committer | Brad Ebinger <breadley@google.com> | 2018-03-12 22:54:26 +0000 |
commit | b4a9fd73f11945a62f5724e2c23a0ca3b4a9e9ed (patch) | |
tree | f865d4052c1259f0619e755ba2165ae3aebfe644 | |
parent | 6e391e4b2854df455eb2c9d9dd94f71216b6e554 (diff) | |
download | ims-b4a9fd73f11945a62f5724e2c23a0ca3b4a9e9ed.tar.gz |
Add ImsManager#removeRegistrationListener
Adds a removeRegistrationListener API to
complement the existing add method.
Bug: 73951668
Test: Manual
Change-Id: I3c31236ec51480c819936a7ba1fac882d5a42200
-rw-r--r-- | src/java/com/android/ims/ImsManager.java | 22 | ||||
-rw-r--r-- | src/java/com/android/ims/MmTelFeatureConnection.java | 2 |
2 files changed, 22 insertions, 2 deletions
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java index a5d4e485..b012c40e 100644 --- a/src/java/com/android/ims/ImsManager.java +++ b/src/java/com/android/ims/ImsManager.java @@ -1570,7 +1570,6 @@ public class ImsManager { throw new NullPointerException("registration callback can't be null"); } - checkAndThrowExceptionIfServiceUnavailable(); try { mMmTelFeatureConnection.addRegistrationCallback(callback); log("Registration Callback registered."); @@ -1582,6 +1581,27 @@ public class ImsManager { } /** + * Removes a previously added registration callback that was added via + * {@link #addRegistrationCallback(ImsRegistrationImplBase.Callback)} . + * @param callback A {@link ImsRegistrationImplBase.Callback} that was previously added. + * @throws ImsException when the ImsService connection is not available. + */ + public void removeRegistrationListener(ImsRegistrationImplBase.Callback callback) + throws ImsException { + if (callback == null) { + throw new NullPointerException("registration callback can't be null"); + } + + try { + mMmTelFeatureConnection.removeRegistrationCallback(callback); + log("Registration callback removed."); + } catch (RemoteException e) { + throw new ImsException("removeRegistrationCallback(IRIB)", e, + ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN); + } + } + + /** * Adds a callback that gets called when MMTel capability status has changed, for example when * Voice over IMS or VT over IMS is not available currently. * @param callback A {@link ImsFeature.CapabilityCallback} that will notify the caller when diff --git a/src/java/com/android/ims/MmTelFeatureConnection.java b/src/java/com/android/ims/MmTelFeatureConnection.java index 2d11ae60..6028f6f3 100644 --- a/src/java/com/android/ims/MmTelFeatureConnection.java +++ b/src/java/com/android/ims/MmTelFeatureConnection.java @@ -196,7 +196,7 @@ public class MmTelFeatureConnection { IImsRegistration imsRegistration = getRegistration(); if (imsRegistration != null) { try { - getRegistration().addRegistrationCallback(mRegistrationCallbackAdapter); + getRegistration().removeRegistrationCallback(mRegistrationCallbackAdapter); } catch (RemoteException e) { Log.w(TAG, "removeConnection: couldn't remove registration callback"); } |