Merge "Destroys the Presence Service when service is down."
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;