aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyunho <hhshin@google.com>2023-01-11 11:59:33 +0000
committerHyunho <hhshin@google.com>2023-01-11 12:08:28 +0000
commitddade4d45bd249822cbee54ee4a65db911855333 (patch)
treec0a49b1267d0f9cc362cdd550b65103840166f52
parenta0118dbc82791a5eadf410d86d4d9ea7492d7031 (diff)
downloadims-ddade4d45bd249822cbee54ee4a65db911855333.tar.gz
Add the feature tags for the pager mode, larege message mode, deffered messaging and large-pager mode.
And the presence tuple of the standalone is added. Bug: b/262614903 Test: atest PublishServiceDescTrackerTest Test: In the live network, if there is the feature tag related to the standalone in the registered feature tags, the service id of standalone is included in the PIDF Change-Id: Ie35577303aab0f67bc261686d8e5e5ee3c624707
-rw-r--r--src/java/com/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker.java10
-rw-r--r--src/java/com/android/ims/rcs/uce/presence/publish/ServiceDescription.java14
-rw-r--r--src/java/com/android/ims/rcs/uce/util/FeatureTags.java12
-rw-r--r--tests/src/com/android/ims/rcs/uce/presence/publish/PublishServiceDescTrackerTest.java20
4 files changed, 54 insertions, 2 deletions
diff --git a/src/java/com/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker.java b/src/java/com/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker.java
index a107b1ad..7f7ea3e6 100644
--- a/src/java/com/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker.java
+++ b/src/java/com/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker.java
@@ -53,7 +53,7 @@ public class PublishServiceDescTracker {
*/
private static final Map<ServiceDescription, Set<String>> DEFAULT_SERVICE_DESCRIPTION_MAP;
static {
- ArrayMap<ServiceDescription, Set<String>> map = new ArrayMap<>(21);
+ ArrayMap<ServiceDescription, Set<String>> map = new ArrayMap<>(23);
map.put(ServiceDescription.SERVICE_DESCRIPTION_CHAT_IM,
Collections.singleton(FeatureTags.FEATURE_TAG_CHAT_IM));
map.put(ServiceDescription.SERVICE_DESCRIPTION_CHAT_SESSION,
@@ -111,6 +111,14 @@ public class PublishServiceDescTracker {
FeatureTags.FEATURE_TAG_CHATBOT_VERSION_V2_SUPPORTED)));
map.put(ServiceDescription.SERVICE_DESCRIPTION_CHATBOT_ROLE,
Collections.singleton(FeatureTags.FEATURE_TAG_CHATBOT_ROLE));
+ map.put(ServiceDescription.SERVICE_DESCRIPTION_SLM, new ArraySet<>(
+ Arrays.asList(FeatureTags.FEATURE_TAG_PAGER_MODE,
+ FeatureTags.FEATURE_TAG_LARGE_MODE,
+ FeatureTags.FEATURE_TAG_DEFERRED_MESSAGING,
+ FeatureTags.FEATURE_TAG_LARGE_PAGER_MODE)));
+ map.put(ServiceDescription.SERVICE_DESCRIPTION_SLM_PAGER_LARGE, new ArraySet<>(
+ Arrays.asList(FeatureTags.FEATURE_TAG_PAGER_MODE,
+ FeatureTags.FEATURE_TAG_LARGE_MODE)));
DEFAULT_SERVICE_DESCRIPTION_MAP = Collections.unmodifiableMap(map);
}
diff --git a/src/java/com/android/ims/rcs/uce/presence/publish/ServiceDescription.java b/src/java/com/android/ims/rcs/uce/presence/publish/ServiceDescription.java
index 0f271e1c..e175f2a4 100644
--- a/src/java/com/android/ims/rcs/uce/presence/publish/ServiceDescription.java
+++ b/src/java/com/android/ims/rcs/uce/presence/publish/ServiceDescription.java
@@ -169,6 +169,20 @@ public class ServiceDescription {
null /*description*/
);
+ public static final ServiceDescription SERVICE_DESCRIPTION_SLM =
+ new ServiceDescription(
+ RcsContactPresenceTuple.SERVICE_ID_SLM,
+ "2.0" /*version*/,
+ null /*description*/
+ );
+
+ public static final ServiceDescription SERVICE_DESCRIPTION_SLM_PAGER_LARGE =
+ new ServiceDescription(
+ RcsContactPresenceTuple.SERVICE_ID_SLM,
+ "2.0" /*version*/,
+ "Standalone Messaging" /*description*/
+ );
+
/** Mandatory "service-id" element */
public final @NonNull String serviceId;
/** Mandatory "version" element */
diff --git a/src/java/com/android/ims/rcs/uce/util/FeatureTags.java b/src/java/com/android/ims/rcs/uce/util/FeatureTags.java
index 8dbceda6..ed2eef4a 100644
--- a/src/java/com/android/ims/rcs/uce/util/FeatureTags.java
+++ b/src/java/com/android/ims/rcs/uce/util/FeatureTags.java
@@ -35,6 +35,18 @@ public class FeatureTags {
+ "service.ims.icsi.oma.cpm.largemsg,urn%3Aurn-7%3A3gpp-"
+ "service.ims.icsi.oma.cpm.deferred\";+g.gsma.rcs.cpm.pager-large";
+ public static final String FEATURE_TAG_PAGER_MODE =
+ "+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.msg\"";
+
+ public static final String FEATURE_TAG_LARGE_MODE =
+ "+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.largemsg\"";
+
+ public static final String FEATURE_TAG_DEFERRED_MESSAGING =
+ "+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.deferred\"";
+
+ public static final String FEATURE_TAG_LARGE_PAGER_MODE =
+ "+g.gsma.rcs.cpm.pager-large";
+
public static final String FEATURE_TAG_CHAT_IM =
"+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.rcse.im\"";
diff --git a/tests/src/com/android/ims/rcs/uce/presence/publish/PublishServiceDescTrackerTest.java b/tests/src/com/android/ims/rcs/uce/presence/publish/PublishServiceDescTrackerTest.java
index 55006299..ddd8932f 100644
--- a/tests/src/com/android/ims/rcs/uce/presence/publish/PublishServiceDescTrackerTest.java
+++ b/tests/src/com/android/ims/rcs/uce/presence/publish/PublishServiceDescTrackerTest.java
@@ -107,7 +107,6 @@ public class PublishServiceDescTrackerTest {
t1.updateImsRegistration(imsReg);
assertEquals(expectedSet, t1.copyRegistrationCapabilities());
-
expectedSet = Collections.singleton(
ServiceDescription.SERVICE_DESCRIPTION_CHATBOT_SESSION);
imsReg = createImsRegistration(
@@ -139,6 +138,25 @@ public class PublishServiceDescTrackerTest {
FeatureTags.FEATURE_TAG_VIDEO);
t1.updateImsRegistration(imsReg);
assertEquals(expectedSet, t1.copyRegistrationCapabilities());
+
+ expectedSet = Collections.singleton(
+ ServiceDescription.SERVICE_DESCRIPTION_SLM);
+ imsReg = createImsRegistration(
+ FeatureTags.FEATURE_TAG_PAGER_MODE,
+ FeatureTags.FEATURE_TAG_LARGE_MODE,
+ FeatureTags.FEATURE_TAG_DEFERRED_MESSAGING,
+ FeatureTags.FEATURE_TAG_LARGE_PAGER_MODE);
+ t1.updateImsRegistration(imsReg);
+ assertEquals(expectedSet, t1.copyRegistrationCapabilities());
+
+
+ expectedSet = Collections.singleton(
+ ServiceDescription.SERVICE_DESCRIPTION_SLM_PAGER_LARGE);
+ imsReg = createImsRegistration(
+ FeatureTags.FEATURE_TAG_PAGER_MODE,
+ FeatureTags.FEATURE_TAG_LARGE_MODE);
+ t1.updateImsRegistration(imsReg);
+ assertEquals(expectedSet, t1.copyRegistrationCapabilities());
}
@SmallTest