Destroys the Presence Service when service is down.
Also calls destroyPresenceService when UCE_SERVICE_DOWN
is received to make sure everything is cleaned up properly.
Bug: 73558136
Test: Manual
Change-Id: I3f02616c226b35e4979075c4073d1353b13e6455
diff --git a/rcs/rcsservice/src/com/android/service/ims/RcsStackAdaptor.java b/rcs/rcsservice/src/com/android/service/ims/RcsStackAdaptor.java
index 151809f..6f1a076 100644
--- a/rcs/rcsservice/src/com/android/service/ims/RcsStackAdaptor.java
+++ b/rcs/rcsservice/src/com/android/service/ims/RcsStackAdaptor.java
@@ -709,6 +709,18 @@
private void clearImsUceService() {
synchronized (mSyncObj) {
+ try {
+ logger.info("clearImsUceService: removing listener and presence service.");
+ if (mStackPresService != null) {
+ mStackPresService.removeListener(mStackPresenceServiceHandle,
+ mListenerHandle);
+ }
+ if (mStackService != null) {
+ mStackService.destroyPresenceService(mStackPresenceServiceHandle);
+ }
+ } catch (RemoteException e) {
+ logger.warn("clearImsUceService: Couldn't clean up stack service");
+ }
mImsUceManager = null;
mStackService = null;
mStackPresService = null;