Promotion of atel.lnx.2.0-00006.
CRs Change ID Subject
--------------------------------------------------------------------------------------------------------------
1046860 I7a55a4b1610b084378a9c94e52aeb63115d89144 IMS: New apis for handling volte preference setting
Change-Id: Iade95853a4585b10b1f319659444515455831479
CRs-Fixed: 1046860
diff --git a/ims/src/org/codeaurora/ims/QtiImsExtBase.java b/ims/src/org/codeaurora/ims/QtiImsExtBase.java
index 98c376c..bbecb69 100644
--- a/ims/src/org/codeaurora/ims/QtiImsExtBase.java
+++ b/ims/src/org/codeaurora/ims/QtiImsExtBase.java
@@ -107,6 +107,16 @@
onRegisterForParticipantStatusInfo(listener);
}
+ @Override
+ public void updateVoltePreference(int phoneId, int preference,
+ IQtiImsExtListener listener) {
+ onUpdateVoltePreference(phoneId, preference, listener);
+ }
+
+ @Override
+ public void queryVoltePreference(int phoneId, IQtiImsExtListener listener) {
+ onQueryVoltePreference(phoneId, listener);
+ }
};
private QtiImsExtBinder mQtiImsExtBinder;
@@ -159,4 +169,11 @@
protected void onRegisterForParticipantStatusInfo(IQtiImsExtListener listener) {
// no-op
}
+ protected void onUpdateVoltePreference(int phoneId, int preference,
+ IQtiImsExtListener listener) {
+ // no-op
+ }
+ protected void onQueryVoltePreference(int phoneId, IQtiImsExtListener listener) {
+ // no-op
+ }
}
diff --git a/ims/src/org/codeaurora/ims/QtiImsExtListenerBaseImpl.java b/ims/src/org/codeaurora/ims/QtiImsExtListenerBaseImpl.java
index a7565ed..b8fcb43 100644
--- a/ims/src/org/codeaurora/ims/QtiImsExtListenerBaseImpl.java
+++ b/ims/src/org/codeaurora/ims/QtiImsExtListenerBaseImpl.java
@@ -81,5 +81,13 @@
public void notifyParticipantStatusInfo(int operation, int sipStatus,
String participantUri, boolean isEct) {
}
+
+ @Override
+ public void onVoltePreferenceUpdated(int result) {
+ }
+
+ @Override
+ public void onVoltePreferenceQueried(int result, int mode) {
+ }
}
diff --git a/ims/src/org/codeaurora/ims/QtiImsExtManager.java b/ims/src/org/codeaurora/ims/QtiImsExtManager.java
index 79716b8..1502a6e 100644
--- a/ims/src/org/codeaurora/ims/QtiImsExtManager.java
+++ b/ims/src/org/codeaurora/ims/QtiImsExtManager.java
@@ -190,6 +190,26 @@
}
}
+ public void updateVoltePreference(int phoneId, int preference,
+ IQtiImsExtListener listener) throws QtiImsException {
+ obtainBinder();
+ try {
+ mQtiImsExt.updateVoltePreference(phoneId, preference, listener);
+ } catch(RemoteException e) {
+ throw new QtiImsException("Remote ImsService updateVoltePreference : " + e);
+ }
+ }
+
+ public void queryVoltePreference(int phoneId,
+ IQtiImsExtListener listener) throws QtiImsException {
+ obtainBinder();
+ try {
+ mQtiImsExt.queryVoltePreference(phoneId, listener);
+ } catch(RemoteException e) {
+ throw new QtiImsException("Remote ImsService queryVoltePreference : " + e);
+ }
+ }
+
/**
* Check if binder is available, else try to retrieve it from ServiceManager
* if binder still doesn't exists throw {@link QtiImsException}
diff --git a/ims/src/org/codeaurora/ims/internal/IQtiImsExt.aidl b/ims/src/org/codeaurora/ims/internal/IQtiImsExt.aidl
index 1bc69fc..ab1096c 100644
--- a/ims/src/org/codeaurora/ims/internal/IQtiImsExt.aidl
+++ b/ims/src/org/codeaurora/ims/internal/IQtiImsExt.aidl
@@ -53,7 +53,7 @@
* SERVICE_CLASS, as defined in
* <code>com.android.internal.telephony.CommandsInterface.</code>
* @param dialingNumber is the target phone number to forward calls to
- * @param QtiImsExtListener listener to request
+ * @param listener an IQtiImsExtListener instance to indicate the response
* @return void
*/
oneway void setCallForwardUncondTimer(int startHour, int startMinute, int endHour,
@@ -70,7 +70,7 @@
* @param serviceClass is service class, that is used to get CFT
* SERVICE_CLASS, as defined in
* <code>com.android.internal.telephony.CommandsInterface.</code>
- * @param QtiImsExtListener listener to request
+ * @param listener an IQtiImsExtListener instance to indicate the response
* @return void
*/
oneway void getCallForwardUncondTimer(int reason, int serviceClass,
@@ -113,10 +113,10 @@
* Transfer an established call to given number or call id
*
* @param phoneId indicates the phone instance which triggered the request
- * @param type is one of the values QTI_IMS_TRANSFER_TYPE_*, as defined in
- * <code>org.codeaurora.ims.qtiims.QtiImsInterfaceUtils.</code>
+ * @param type is one of the values QTI_IMS_*_TRANSFER, as defined in
+ * <code>org.codeaurora.ims.utils.QtiImsExtUtils.</code>
* @param number indicates the target number to transfer
- * @param listener an IQtiImsInterfaceListener instance to indicate the response
+ * @param listener an IQtiImsExtListener instance to indicate the response
* @return void
*/
oneway void sendCallTransferRequest(int phoneId, int type, String number,
@@ -172,4 +172,25 @@
*/
oneway void registerForParticipantStatusInfo(IQtiImsExtListener listener);
+ /**
+ * updateVoltePreference
+ * Updates the user's VoLTE preference to lower layers
+ *
+ * @param phoneId indicates the phone instance which triggered the request
+ * @param preference is one of the values QTI_IMS_VOLTE_PREF_*, as defined in
+ * <code>org.codeaurora.ims.utils.QtiImsExtUtils.</code>
+ * @param listener an IQtiImsExtListener instance to indicate the response
+ * @return void
+ */
+ oneway void updateVoltePreference(int phoneId, int preference, IQtiImsExtListener listener);
+
+ /**
+ * queryVoltePreference
+ * Retrieves the user's VoLTE preference from lower layers
+ *
+ * @param phoneId indicates the phone instance which triggered the request
+ * @param listener an IQtiImsExtListener instance to indicate the response
+ * @return void
+ */
+ oneway void queryVoltePreference(int phoneId, IQtiImsExtListener listener);
}
diff --git a/ims/src/org/codeaurora/ims/internal/IQtiImsExtListener.aidl b/ims/src/org/codeaurora/ims/internal/IQtiImsExtListener.aidl
index 2896e65..46240ca 100644
--- a/ims/src/org/codeaurora/ims/internal/IQtiImsExtListener.aidl
+++ b/ims/src/org/codeaurora/ims/internal/IQtiImsExtListener.aidl
@@ -92,7 +92,7 @@
/**
* Notifies client the result of call deflect request
*
- * @param <result> is one of the values QTIIMS_REQUEST_*, as defined in
+ * @param <result> is one of the values QTI_IMS_REQUEST_*, as defined in
* <code>org.codeaurora.ims.utils.QtiImsExtUtils.</code>
* @return void.
*/
@@ -102,7 +102,7 @@
* Notifies client the result of call transfer request
*
* @param <result> is one of the values QTI_IMS_REQUEST_*, as defined in
- * <code>org.codeaurora.ims.qtiims.QtiImsInterfaceUtils.</code>
+ * <code>org.codeaurora.ims.utils.QtiImsExtUtils.</code>
* @return void.
*/
void receiveCallTransferResponse(int result);
@@ -153,4 +153,25 @@
*/
void notifyParticipantStatusInfo(int operation, int sipStatus,
String participantUri, boolean isEct);
+
+ /**
+ * Notifies client the result of updateVoltePreference request
+ *
+ * @param <result> is one of the values QTI_IMS_REQUEST_*, as defined in
+ * <code>org.codeaurora.ims.utils.QtiImsExtUtils.</code>
+ * @return void.
+ */
+ void onVoltePreferenceUpdated(int result);
+
+ /**
+ * Notifies client the result of queryVoltePreference request
+ *
+ * @param <result> is one of the values QTI_IMS_REQUEST_*, as defined in
+ * <code>org.codeaurora.ims.utils.QtiImsExtUtils.</code>
+ * @param <mode> is valid only when <result> is QTI_IMS_REQUEST_SUCCESS and
+ * is one of the values QTI_IMS_VOLTE_PREF_*, as defined in
+ * <code>org.codeaurora.ims.utils.QtiImsExtUtils.</code>
+ * @return void.
+ */
+ void onVoltePreferenceQueried(int result, int mode);
}
diff --git a/ims/src/org/codeaurora/ims/utils/QtiImsExtUtils.java b/ims/src/org/codeaurora/ims/utils/QtiImsExtUtils.java
index b87f270..ada22ba 100644
--- a/ims/src/org/codeaurora/ims/utils/QtiImsExtUtils.java
+++ b/ims/src/org/codeaurora/ims/utils/QtiImsExtUtils.java
@@ -93,6 +93,16 @@
*/
public static final String EXTRA_SSAC = "Ssac";
+ /**
+ * Definitions for the volte preference values.
+ */
+ //Value representing volte preference is OFF
+ public static final int QTI_IMS_VOLTE_PREF_OFF = 0;
+ //Value representing volte preference is ON
+ public static final int QTI_IMS_VOLTE_PREF_ON = 1;
+ //Value representing volte preference is NOT known
+ public static final int QTI_IMS_VOLTE_PREF_UNKNOWN = 2;
+
/* Incoming conference call extra key */
public static final String QTI_IMS_INCOMING_CONF_EXTRA_KEY = "incomingConference";