From ec0d7029274aa5e6a35110be78ae5f852de04dfe Mon Sep 17 00:00:00 2001 From: joonhunshin Date: Wed, 8 Mar 2023 00:28:11 +0000 Subject: 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 --- .../ims/rcs/uce/presence/publish/DeviceCapabilityListener.java | 4 ++-- .../ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) 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 d3c82f2a..b58f7ec6 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 @@ public class DeviceCapabilityListener { * 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 7c649891..11350393 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 @@ public class DeviceCapabilityListenerTest extends ImsTestBase { 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); } -- cgit v1.2.3