From 82c255f4b81defa06889ee1ba54063dd583dae31 Mon Sep 17 00:00:00 2001 From: Brad Ebinger Date: Sat, 19 Feb 2022 02:27:45 +0000 Subject: Revert "Add a new api that does not send PUBLISH request with duplicated presence capabilities" This reverts commit 08151870e5579a2e56eb4dcfbc48326393fbeacb. Reason for revert: CL caused NPE in certain scenarios - b/220236505 Change-Id: I7d6843f6cbabd499a99f530409e247228e9a8f27 --- .../uce/presence/publish/DeviceCapabilityInfo.java | 58 ---------------------- .../rcs/uce/presence/publish/PublishProcessor.java | 21 ++------ 2 files changed, 3 insertions(+), 76 deletions(-) (limited to 'src/java') 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 8de8b01f..7fcb1ff7 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 @@ -38,7 +38,6 @@ import android.util.Log; import com.android.ims.rcs.uce.util.FeatureTags; import com.android.ims.rcs.uce.util.UceUtils; -import com.android.internal.annotations.VisibleForTesting; import java.io.PrintWriter; import java.util.Arrays; @@ -105,11 +104,6 @@ public class DeviceCapabilityInfo { private boolean mMobileData; private boolean mVtSetting; - // The service description associated with the last publication update. - private Set mLastSuccessfulCapabilities = new ArraySet<>(); - // The service description to temporarily store the presence capability being sent. - private Set mPendingPublishCapabilities; - public DeviceCapabilityInfo(int subId, String[] capToRegistrationMap) { mSubId = subId; mServiceCapRegTracker = PublishServiceDescTracker.fromCarrierConfig(capToRegistrationMap); @@ -132,8 +126,6 @@ public class DeviceCapabilityInfo { mMmTelCapabilities = new MmTelCapabilities(); mMmtelAssociatedUris = Collections.EMPTY_LIST; mRcsAssociatedUris = Collections.EMPTY_LIST; - mLastSuccessfulCapabilities.clear(); - mPendingPublishCapabilities = null; } /** @@ -181,8 +173,6 @@ public class DeviceCapabilityInfo { if (mMmtelRegistered) { mMmtelRegistered = false; } - mLastSuccessfulCapabilities.clear(); - mPendingPublishCapabilities = null; mMmtelNetworkRegType = AccessNetworkConstants.TRANSPORT_TYPE_INVALID; } @@ -252,8 +242,6 @@ public class DeviceCapabilityInfo { changed = true; } mRcsNetworkRegType = AccessNetworkConstants.TRANSPORT_TYPE_INVALID; - mLastSuccessfulCapabilities.clear(); - mPendingPublishCapabilities = null; return changed; } @@ -442,52 +430,6 @@ public class DeviceCapabilityInfo { return mPresenceCapable; } - // Get the device's capabilities with the PRESENCE mechanism. - public RcsContactUceCapability getChangedPresenceCapability(Context context) { - if (context == null) { - return null; - } - Set capableFromReg = - mServiceCapRegTracker.copyRegistrationCapabilities(); - if (isPresenceCapabilityChanged(capableFromReg)) { - RcsContactUceCapability rcsContactUceCapability = getPresenceCapabilities(context); - if (rcsContactUceCapability != null) { - mPendingPublishCapabilities = mServiceCapRegTracker.copyRegistrationCapabilities(); - } - return rcsContactUceCapability; - } - return null; - } - - public void setPresencePublishResult(boolean isSuccess) { - if (isSuccess) { - mLastSuccessfulCapabilities = mPendingPublishCapabilities; - } - mPendingPublishCapabilities = null; - } - - public void resetPresenceCapability() { - mLastSuccessfulCapabilities.clear(); - mPendingPublishCapabilities = null; - } - - @VisibleForTesting - public void addLastSuccessfulServiceDescription(ServiceDescription capability) { - mLastSuccessfulCapabilities.add(capability); - } - - @VisibleForTesting - public boolean isPresenceCapabilityChanged(Set capableFromReg) { - if (mLastSuccessfulCapabilities.isEmpty()) { - return true; - } - - if (capableFromReg.equals(mLastSuccessfulCapabilities)) { - return false; - } - return true; - } - private boolean isVolteAvailable(int networkRegType, MmTelCapabilities capabilities) { return (networkRegType == AccessNetworkConstants.TRANSPORT_TYPE_WWAN) && capabilities.isCapable(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE); diff --git a/src/java/com/android/ims/rcs/uce/presence/publish/PublishProcessor.java b/src/java/com/android/ims/rcs/uce/presence/publish/PublishProcessor.java index 0df3b17e..d8531a70 100644 --- a/src/java/com/android/ims/rcs/uce/presence/publish/PublishProcessor.java +++ b/src/java/com/android/ims/rcs/uce/presence/publish/PublishProcessor.java @@ -112,8 +112,6 @@ public class PublishProcessor { logi("onRcsDisconnected"); mRcsFeatureManager = null; mProcessorState.onRcsDisconnected(); - // reset the publish capabilities. - mDeviceCapabilities.resetPresenceCapability(); } /** @@ -154,15 +152,10 @@ public class PublishProcessor { } // Get the latest device's capabilities. - RcsContactUceCapability deviceCapability; - if (triggerType == PublishController.PUBLISH_TRIGGER_SERVICE) { - deviceCapability = mDeviceCapabilities.getDeviceCapabilities( - CAPABILITY_MECHANISM_PRESENCE, mContext); - } else { - deviceCapability = mDeviceCapabilities.getChangedPresenceCapability(mContext); - } + RcsContactUceCapability deviceCapability = + mDeviceCapabilities.getDeviceCapabilities(CAPABILITY_MECHANISM_PRESENCE, mContext); if (deviceCapability == null) { - logi("doPublishInternal: device capability hasn't changed or is null"); + logw("doPublishInternal: device capability is null"); return false; } @@ -356,8 +349,6 @@ public class PublishProcessor { // Increase the retry count mProcessorState.increaseRetryCount(); - // reset the last capabilities because of the request is failed - mDeviceCapabilities.setPresencePublishResult(false); // Reset the pending flag because it is going to resend a request. clearPendingRequest(); @@ -382,14 +373,10 @@ public class PublishProcessor { Instant responseTime = response.getResponseTimestamp(); // Record the time when the request is successful and reset the retry count. - boolean publishSuccess = false; if (response.isRequestSuccess()) { mProcessorState.setLastPublishedTime(responseTime); mProcessorState.resetRetryCount(); - publishSuccess = true; } - // set the last capabilities according to the result of request. - mDeviceCapabilities.setPresencePublishResult(publishSuccess); // Update the publish state after the request has finished. int publishState = response.getPublishState(); @@ -505,8 +492,6 @@ public class PublishProcessor { */ public void resetState() { mProcessorState.resetState(); - // reset the publish capabilities. - mDeviceCapabilities.resetPresenceCapability(); } /** -- cgit v1.2.3