Block PUBLISH execution when the MmTel registered to avoid multiple
PUBLISH triggers.

Block PUBLISH execution when the MmTel registered to avoid multiple
PUBLISH tiggers. But PUBLISH will perform when Capability changed callback
is called.

Bug: 243163530
Test: atest DeviceCapabilityListenerTest
Test: manually
1. MmTel registered
2. Airplan mode on - off
3. Check publish trigger

Change-Id: I6c0cb370a0eb0c587c8dea63338f6cc6eb9a0e77
diff --git a/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener.java b/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener.java
index d3c82f2..b58f7ec 100644
--- a/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener.java
+++ b/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener.java
@@ -590,9 +590,9 @@
      * This method is called when the MMTEL is registered.
      */
     private void handleImsMmtelRegistered(int imsTransportType) {
+        // update capability, but not trigger PUBLISH message.
+        // PUBLISH message will be sent when the Capability status changed callback is called.
         mCapabilityInfo.updateImsMmtelRegistered(imsTransportType);
-        mHandler.sendTriggeringPublishMessage(
-                PublishController.PUBLISH_TRIGGER_MMTEL_REGISTERED);
     }
 
     /*
diff --git a/tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java b/tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java
index 7c64989..1135039 100644
--- a/tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java
+++ b/tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java
@@ -154,7 +154,8 @@
         waitForHandlerActionDelayed(handler, HANDLER_WAIT_TIMEOUT_MS, HANDLER_SENT_DELAY_MS);
 
         verify(mDeviceCapability).updateImsMmtelRegistered(1);
-        verify(mCallback).requestPublishFromInternal(
+        // update capability, but not trigger PUBLISH message when MmTel registered.
+        verify(mCallback, never()).requestPublishFromInternal(
                 PublishController.PUBLISH_TRIGGER_MMTEL_REGISTERED);
     }