diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityInfo.java | 6 | ||||
-rw-r--r-- | src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener.java | 20 |
2 files changed, 16 insertions, 10 deletions
diff --git a/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityInfo.java b/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityInfo.java index bc3b07ec..56c317b9 100644 --- a/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityInfo.java +++ b/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityInfo.java @@ -166,13 +166,17 @@ public class DeviceCapabilityInfo { /** * Update the status that IMS MMTEL is unregistered. + * @return Mmtel registered status before change */ - public synchronized void updateImsMmtelUnregistered() { + public synchronized boolean updateImsMmtelUnregistered() { logi("IMS MMTEL unregistered: original state=" + mMmtelRegistered); + boolean changed = false; if (mMmtelRegistered) { mMmtelRegistered = false; + changed = true; } mMmtelNetworkRegType = AccessNetworkConstants.TRANSPORT_TYPE_INVALID; + return changed; } /** 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 9874fdb3..b824aa08 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 @@ -489,7 +489,7 @@ public class DeviceCapabilityListener { public void onSubscriberAssociatedUriChanged(Uri[] uris) { synchronized (mLock) { logi("onRcsSubscriberAssociatedUriChanged"); - handleRcsSubscriberAssociatedUriChanged(uris); + handleRcsSubscriberAssociatedUriChanged(uris, false); } } }; @@ -520,7 +520,7 @@ public class DeviceCapabilityListener { public void onSubscriberAssociatedUriChanged(Uri[] uris) { synchronized (mLock) { logi("onMmTelSubscriberAssociatedUriChanged"); - handleMmTelSubscriberAssociatedUriChanged(uris); + handleMmTelSubscriberAssociatedUriChanged(uris, false); } } }; @@ -599,9 +599,9 @@ public class DeviceCapabilityListener { * This method is called when the MMTEL is unregistered. */ private void handleImsMmtelUnregistered() { - mCapabilityInfo.updateImsMmtelUnregistered(); + boolean hasChanged = mCapabilityInfo.updateImsMmtelUnregistered(); // When the MMTEL is unregistered, the mmtel associated uri should be cleared. - handleMmTelSubscriberAssociatedUriChanged(null); + handleMmTelSubscriberAssociatedUriChanged(null, hasChanged); // If the RCS is already unregistered, it informs that the IMS is unregistered. if (mCapabilityInfo.isImsRegistered() == false) { @@ -612,12 +612,13 @@ public class DeviceCapabilityListener { /* * This method is called when the MMTEL associated uri has changed. */ - private void handleMmTelSubscriberAssociatedUriChanged(Uri[] uris) { + private void handleMmTelSubscriberAssociatedUriChanged(Uri[] uris, boolean regiChanged) { Uri originalUri = mCapabilityInfo.getMmtelAssociatedUri(); mCapabilityInfo.updateMmTelAssociatedUri(uris); Uri currentUri = mCapabilityInfo.getMmtelAssociatedUri(); - boolean hasChanged = !(Objects.equals(originalUri, currentUri)); + boolean hasChanged = regiChanged || !(Objects.equals(originalUri, currentUri)); + logi("handleMmTelSubscriberAssociatedUriChanged: hasChanged=" + hasChanged); // Send internal request to send a modification PUBLISH if the MMTEL or RCS is registered. @@ -651,7 +652,7 @@ public class DeviceCapabilityListener { private void handleImsRcsUnregistered() { boolean hasChanged = mCapabilityInfo.updateImsRcsUnregistered(); // When the RCS is unregistered, the rcs associated uri should be cleared. - handleRcsSubscriberAssociatedUriChanged(null); + handleRcsSubscriberAssociatedUriChanged(null, hasChanged); // If the MMTEL is already unregistered, it informs that the IMS is unregistered. if (mCapabilityInfo.isImsRegistered() == false) { mHandler.sendImsUnregisteredMessage(); @@ -661,12 +662,13 @@ public class DeviceCapabilityListener { /* * This method is called when the RCS associated uri has changed. */ - private void handleRcsSubscriberAssociatedUriChanged(Uri[] uris) { + private void handleRcsSubscriberAssociatedUriChanged(Uri[] uris, boolean regiChanged) { Uri originalUri = mCapabilityInfo.getRcsAssociatedUri(); mCapabilityInfo.updateRcsAssociatedUri(uris); Uri currentUri = mCapabilityInfo.getRcsAssociatedUri(); - boolean hasChanged = !(Objects.equals(originalUri, currentUri)); + boolean hasChanged = regiChanged || !(Objects.equals(originalUri, currentUri)); + logi("handleRcsSubscriberAssociatedUriChanged: hasChanged=" + hasChanged); // Send internal request to send a modification PUBLISH if the MMTEL or RCS is registered. |