aboutsummaryrefslogtreecommitdiff
path: root/src/java
diff options
context:
space:
mode:
authorBrad Ebinger <breadley@google.com>2022-02-19 02:27:45 +0000
committerBrad Ebinger <breadley@google.com>2022-02-22 21:40:44 +0000
commit82c255f4b81defa06889ee1ba54063dd583dae31 (patch)
tree0f1ee437cbc1e2f1bb9a50b99df995d9b18c61ea /src/java
parentf88c4378fa753df749ac04dc69ae7a1eb3e6f2dd (diff)
downloadims-82c255f4b81defa06889ee1ba54063dd583dae31.tar.gz
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
Diffstat (limited to 'src/java')
-rw-r--r--src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityInfo.java58
-rw-r--r--src/java/com/android/ims/rcs/uce/presence/publish/PublishProcessor.java21
2 files changed, 3 insertions, 76 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 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<ServiceDescription> mLastSuccessfulCapabilities = new ArraySet<>();
- // The service description to temporarily store the presence capability being sent.
- private Set<ServiceDescription> 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<ServiceDescription> 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<ServiceDescription> 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();
}
/**