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;