From: Gnaneshwar Gatla Date: Fri, 4 Jan 2019 23:35:04 +0000 (-0800) Subject: uce: Updating UCE API to accept ICC-ID. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=cd816ab4468d3e57410805b4a52357edcde40af5;p=android-x86%2Fframeworks-base.git uce: Updating UCE API to accept ICC-ID. Test: Manual Bug: 37437947 Change-Id: Idbf081f885f4f8c1b5dd7ac87893bd3bd08e12b0 --- diff --git a/telephony/java/com/android/ims/internal/uce/common/StatusCode.java b/telephony/java/com/android/ims/internal/uce/common/StatusCode.java index 3921cfbbfce7..7250eee70ecb 100644 --- a/telephony/java/com/android/ims/internal/uce/common/StatusCode.java +++ b/telephony/java/com/android/ims/internal/uce/common/StatusCode.java @@ -64,6 +64,10 @@ public class StatusCode implements Parcelable { public static final int UCE_NO_CHANGE_IN_CAP = 13; /** Service is unknown. */ public static final int UCE_SERVICE_UNKNOWN = 14; + /** Service cannot support Invalid Feature Tag */ + public static final int UCE_INVALID_FEATURE_TAG = 15; + /** Service is Available */ + public static final int UCE_SERVICE_AVAILABLE = 16; private int mStatusCode = UCE_SUCCESS; diff --git a/telephony/java/com/android/ims/internal/uce/uceservice/IUceService.aidl b/telephony/java/com/android/ims/internal/uce/uceservice/IUceService.aidl index 43f83cd94d57..1fb8513d410a 100644 --- a/telephony/java/com/android/ims/internal/uce/uceservice/IUceService.aidl +++ b/telephony/java/com/android/ims/internal/uce/uceservice/IUceService.aidl @@ -66,10 +66,30 @@ interface IUceService * service the client created. * * @return optionsServiceHandle + * * @hide + * + * @deprecated This is replaced with new API createOptionsServiceForSubscription() */ int createOptionsService(IOptionsListener optionsListener, inout UceLong optionsServiceListenerHdl); + /** + * Creates a options service for Capability Discovery. + * @param optionsListener IOptionsListener object. + * @param optionsServiceListenerHdl wrapper for client's listener handle to be stored. + * @param iccId the ICC-ID derived from SubscriptionInfo for the Service requested + * + * The service will fill UceLong.mUceLong with presenceListenerHandle allocated and + * used to validate callbacks received in IPresenceListener are indeed from the + * service the client created. + * + * @return optionsServiceHandle + * + * @hide + */ + int createOptionsServiceForSubscription(IOptionsListener optionsListener, + inout UceLong optionsServiceListenerHdl, + in String iccId); /** * Destroys a Options service. @@ -89,14 +109,36 @@ interface IUceService * service the client created. * * @return presenceServiceHdl + * * @hide + * + * @deprecated This is replaced with new API createPresenceServiceForSubscription() */ int createPresenceService(IPresenceListener presenceServiceListener, inout UceLong presenceServiceListenerHdl); + /** + * Creates a presence service. + * @param presenceServiceListener IPresenceListener object + * @param presenceServiceListenerHdl wrapper for client's listener handle to be stored. + * @param iccId the ICC-ID derived from SubscriptionInfo for the Service requested + * + * The service will fill UceLong.mUceLong with presenceListenerHandle allocated and + * used to validate callbacks received in IPresenceListener are indeed from the + * service the client created. + * + * @return presenceServiceHdl + * + * @hide + */ + int createPresenceServiceForSubscription(IPresenceListener presenceServiceListener, + inout UceLong presenceServiceListenerHdl, + in String iccId); /** * Destroys a presence service. + * * @param presenceServiceHdl handle returned during createPresenceService() + * * @hide */ void destroyPresenceService(int presenceServiceHdl); @@ -105,23 +147,55 @@ interface IUceService /** * Query the UCE Service for information to know whether the is registered. + * * @return boolean, true if Registered to for network events else false. + * * @hide */ boolean getServiceStatus(); /** * Query the UCE Service for presence Service. + * * @return IPresenceService object. + * * @hide + * + * @deprecated use API getPresenceServiceForSubscription() */ IPresenceService getPresenceService(); /** + * Query the UCE Service for presence Service. + * + * @param iccId the ICC-ID derived from SubscriptionInfo for the Service requested + * + * @return IPresenceService object. + * + * @hide + */ + IPresenceService getPresenceServiceForSubscription(in String iccId); + + /** * Query the UCE Service for options service object. + * * @return IOptionsService object. + * + * @deprecated use API getOptionsServiceForSubscription() + * * @hide */ IOptionsService getOptionsService(); + /** + * Query the UCE Service for options service object. + * + * @param iccId the ICC-ID derived from SubscriptionInfo for the Service requested + * + * @return IOptionsService object. + * + * @hide + */ + IOptionsService getOptionsServiceForSubscription(in String iccId); + } diff --git a/telephony/java/com/android/ims/internal/uce/uceservice/UceServiceBase.java b/telephony/java/com/android/ims/internal/uce/uceservice/UceServiceBase.java index 3660e039582d..ceb191910427 100644 --- a/telephony/java/com/android/ims/internal/uce/uceservice/UceServiceBase.java +++ b/telephony/java/com/android/ims/internal/uce/uceservice/UceServiceBase.java @@ -56,6 +56,14 @@ public abstract class UceServiceBase { return onCreateOptionsService(optionsListener, optionsServiceListenerHdl); } + @Override + public int createOptionsServiceForSubscription(IOptionsListener optionsListener, + UceLong optionsServiceListenerHdl, + String iccId) { + return onCreateOptionsService(optionsListener, optionsServiceListenerHdl, + iccId); + } + @Override public void destroyOptionsService(int optionsServiceHandle) { @@ -70,6 +78,14 @@ public abstract class UceServiceBase { } @Override + public int createPresenceServiceForSubscription(IPresenceListener presServiceListener, + UceLong presServiceListenerHdl, + String iccId) { + return onCreatePresService(presServiceListener, presServiceListenerHdl, + iccId); + } + + @Override public void destroyPresenceService(int presServiceHdl) { onDestroyPresService(presServiceHdl); } @@ -85,9 +101,19 @@ public abstract class UceServiceBase { } @Override + public IPresenceService getPresenceServiceForSubscription(String iccId) { + return onGetPresenceService(iccId); + } + + @Override public IOptionsService getOptionsService() { return onGetOptionsService(); } + + @Override + public IOptionsService getOptionsServiceForSubscription(String iccId) { + return onGetOptionsService(iccId); + } } private UceServiceBinder mBinder; @@ -120,6 +146,13 @@ public abstract class UceServiceBase { return 0; } + protected int onCreateOptionsService(IOptionsListener optionsListener, + UceLong optionsServiceListenerHdl, + String iccId) { + //no-op + return 0; + } + protected void onDestroyOptionsService(int cdServiceHandle) { //no-op return; @@ -131,6 +164,13 @@ public abstract class UceServiceBase { return 0; } + protected int onCreatePresService(IPresenceListener presServiceListener, + UceLong presServiceListenerHdl, + String iccId) { + //no-op + return 0; + } + protected void onDestroyPresService(int presServiceHdl) { //no-op return; @@ -146,8 +186,18 @@ public abstract class UceServiceBase { return null; } + protected IPresenceService onGetPresenceService(String iccId) { + //no-op + return null; + } + protected IOptionsService onGetOptionsService () { //no-op return null; } + + protected IOptionsService onGetOptionsService (String iccId) { + //no-op + return null; + } }