diff options
author | Hyunho <hhshin@google.com> | 2023-01-11 11:59:33 +0000 |
---|---|---|
committer | Hyunho <hhshin@google.com> | 2023-01-19 04:59:05 +0000 |
commit | 6ca11dd4ebcb45ed4428a93bc7886addf142936d (patch) | |
tree | f00c52dbffbded1d8bfa7343635356c16681d6de | |
parent | 69eb9297828629aa733085d4961e3104421f1383 (diff) | |
download | ims-6ca11dd4ebcb45ed4428a93bc7886addf142936d.tar.gz |
Add the feature tags for the pager mode, larege message mode, deffered messaging and large-pager mode.main-16k-with-phones
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
Merged-In: Ie35577303aab0f67bc261686d8e5e5ee3c624707
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 |