diff --git a/location/gnsspps/Android.mk b/location/gnsspps/Android.mk
index 70005ff..5a39d42 100644
--- a/location/gnsspps/Android.mk
+++ b/location/gnsspps/Android.mk
@@ -1,3 +1,4 @@
+ifneq ($(BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE),)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
@@ -30,3 +31,4 @@ LOCAL_C_INCLUDES := \
$(TARGET_OUT_HEADERS)/libloc_pla
include $(BUILD_SHARED_LIBRARY)
+endif
diff --git a/telephony/ims/src/org/codeaurora/ims/QtiCallConstants.java b/telephony/ims/src/org/codeaurora/ims/QtiCallConstants.java
index 4bbb000..ccb81e3 100644
--- a/telephony/ims/src/org/codeaurora/ims/QtiCallConstants.java
+++ b/telephony/ims/src/org/codeaurora/ims/QtiCallConstants.java
@@ -75,6 +75,9 @@ public class QtiCallConstants {
/* Call fail error code for handover not feasible */
public static final int CALL_FAIL_EXTRA_CODE_LTE_3G_HA_FAILED = 149;
+ /* Call fail error code for validate Video call number */
+ public static final int CALL_FAIL_EXTRA_CODE_LOCAL_VALIDATE_NUMBER = 150;
+
/* Call fail error code for Retry CS call*/
public static final int CALL_FAIL_EXTRA_CODE_CALL_CS_RETRY_REQUIRED =
ImsReasonInfo.CODE_LOCAL_CALL_CS_RETRY_REQUIRED;
diff --git a/telephony/ims/src/org/codeaurora/ims/QtiCarrierConfigs.java b/telephony/ims/src/org/codeaurora/ims/QtiCarrierConfigs.java
index 6df7044..328de61 100644
--- a/telephony/ims/src/org/codeaurora/ims/QtiCarrierConfigs.java
+++ b/telephony/ims/src/org/codeaurora/ims/QtiCarrierConfigs.java
@@ -56,4 +56,9 @@ public class QtiCarrierConfigs {
false - hard disabled.
true - then depends on user preference */
public static final String CONFIG_CS_RETRY = "config_carrier_cs_retry_available";
+
+ /* Controls modify call capabilities
+ FALSE - default capabilities will be retained
+ TRUE - remove modify call capabilities which will hide modify call button*/
+ public static final String REMOVE_MODIFY_CALL_CAPABILITY = "remove_modify_call_capability";
}
diff --git a/telephony/ims/src/org/codeaurora/ims/QtiImsExtBase.java b/telephony/ims/src/org/codeaurora/ims/QtiImsExtBase.java
index 98c376c..4c71f6f 100644
--- a/telephony/ims/src/org/codeaurora/ims/QtiImsExtBase.java
+++ b/telephony/ims/src/org/codeaurora/ims/QtiImsExtBase.java
@@ -107,6 +107,27 @@ public abstract class QtiImsExtBase {
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);
+ }
+
+ @Override
+ public void getHandoverConfig(IQtiImsExtListener listener) {
+ onGetHandoverConfig(listener);
+ }
+
+ @Override
+ public void setHandoverConfig(int hoConfig,
+ IQtiImsExtListener listener) {
+ onSetHandoverConfig(hoConfig, listener);
+ }
};
private QtiImsExtBinder mQtiImsExtBinder;
@@ -159,4 +180,18 @@ public abstract class QtiImsExtBase {
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
+ }
+ protected void onGetHandoverConfig(IQtiImsExtListener listener) {
+ // no-op
+ }
+ protected void onSetHandoverConfig(int hoConfig,
+ IQtiImsExtListener listener) {
+ // no-op
+ }
}
diff --git a/telephony/ims/src/org/codeaurora/ims/QtiImsExtListenerBaseImpl.java b/telephony/ims/src/org/codeaurora/ims/QtiImsExtListenerBaseImpl.java
index a7565ed..6c6304c 100644
--- a/telephony/ims/src/org/codeaurora/ims/QtiImsExtListenerBaseImpl.java
+++ b/telephony/ims/src/org/codeaurora/ims/QtiImsExtListenerBaseImpl.java
@@ -81,5 +81,21 @@ public class QtiImsExtListenerBaseImpl extends IQtiImsExtListener.Stub {
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) {
+ }
+
+ @Override
+ public void onSetHandoverConfig(int result) {
+ }
+
+ @Override
+ public void onGetHandoverConfig(int result, int hoConfig) {
+ }
}
diff --git a/telephony/ims/src/org/codeaurora/ims/QtiImsExtManager.java b/telephony/ims/src/org/codeaurora/ims/QtiImsExtManager.java
index 79716b8..3a5e14d 100644
--- a/telephony/ims/src/org/codeaurora/ims/QtiImsExtManager.java
+++ b/telephony/ims/src/org/codeaurora/ims/QtiImsExtManager.java
@@ -190,6 +190,45 @@ public class QtiImsExtManager {
}
}
+ 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);
+ }
+ }
+
+ public void getHandoverConfig(IQtiImsExtListener listener) throws QtiImsException {
+ obtainBinder();
+ try {
+ mQtiImsExt.getHandoverConfig(listener);
+ } catch(RemoteException e) {
+ throw new QtiImsException("Remote ImsService getHandoverConfig : " + e);
+ }
+ }
+
+ public void setHandoverConfig(int hoConfig, IQtiImsExtListener listener)
+ throws QtiImsException {
+ obtainBinder();
+ try {
+ mQtiImsExt.setHandoverConfig(hoConfig, listener);
+ } catch(RemoteException e) {
+ throw new QtiImsException("Remote ImsService setHandoverConfig : " + 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/telephony/ims/src/org/codeaurora/ims/internal/IQtiImsExt.aidl b/telephony/ims/src/org/codeaurora/ims/internal/IQtiImsExt.aidl
index 1bc69fc..a86914f 100644
--- a/telephony/ims/src/org/codeaurora/ims/internal/IQtiImsExt.aidl
+++ b/telephony/ims/src/org/codeaurora/ims/internal/IQtiImsExt.aidl
@@ -53,7 +53,7 @@ interface IQtiImsExt {
* SERVICE_CLASS, as defined in
* com.android.internal.telephony.CommandsInterface.
* @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 @@ interface IQtiImsExt {
* @param serviceClass is service class, that is used to get CFT
* SERVICE_CLASS, as defined in
* com.android.internal.telephony.CommandsInterface.
- * @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 @@ interface IQtiImsExt {
* 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
- * org.codeaurora.ims.qtiims.QtiImsInterfaceUtils.
+ * @param type is one of the values QTI_IMS_*_TRANSFER, as defined in
+ * org.codeaurora.ims.utils.QtiImsExtUtils.
* @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,49 @@ interface IQtiImsExt {
*/
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
+ * org.codeaurora.ims.utils.QtiImsExtUtils.
+ * @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);
+
+ /**
+ * getHandoverConfig
+ * Get IMS Handover Enabled status
+ *
+ * @param listener, provided if caller needs to be notified for get result.
+ * @return void
+ *
+ * @throws RemoteException if calling the IMS service results in an error.
+ */
+ oneway void getHandoverConfig(IQtiImsExtListener listener);
+
+ /**
+ * setHandoverConfig
+ * Set IMS Handover Enabled status
+ *
+ * @param hoConfig is one of the values QTI_IMS_HO_*, as defined in
+ * org.codeaurora.ims.utils.QtiImsExtUtils
+ * @param listener, provided if caller needs to be notified for set result.
+ * @return void
+ *
+ * @throws RemoteException if calling the IMS service results in an error.
+ */
+ oneway void setHandoverConfig(int hoConfig, IQtiImsExtListener listener);
}
diff --git a/telephony/ims/src/org/codeaurora/ims/internal/IQtiImsExtListener.aidl b/telephony/ims/src/org/codeaurora/ims/internal/IQtiImsExtListener.aidl
index 2896e65..e2de735 100644
--- a/telephony/ims/src/org/codeaurora/ims/internal/IQtiImsExtListener.aidl
+++ b/telephony/ims/src/org/codeaurora/ims/internal/IQtiImsExtListener.aidl
@@ -92,7 +92,7 @@ oneway interface IQtiImsExtListener {
/**
* Notifies client the result of call deflect request
*
- * @param is one of the values QTIIMS_REQUEST_*, as defined in
+ * @param is one of the values QTI_IMS_REQUEST_*, as defined in
* org.codeaurora.ims.utils.QtiImsExtUtils.
* @return void.
*/
@@ -102,7 +102,7 @@ oneway interface IQtiImsExtListener {
* Notifies client the result of call transfer request
*
* @param is one of the values QTI_IMS_REQUEST_*, as defined in
- * org.codeaurora.ims.qtiims.QtiImsInterfaceUtils.
+ * org.codeaurora.ims.utils.QtiImsExtUtils.
* @return void.
*/
void receiveCallTransferResponse(int result);
@@ -153,4 +153,47 @@ oneway interface IQtiImsExtListener {
*/
void notifyParticipantStatusInfo(int operation, int sipStatus,
String participantUri, boolean isEct);
+
+ /**
+ * Notifies client the result of updateVoltePreference request
+ *
+ * @param is one of the values QTI_IMS_REQUEST_*, as defined in
+ * org.codeaurora.ims.utils.QtiImsExtUtils.
+ * @return void.
+ */
+ void onVoltePreferenceUpdated(int result);
+
+ /**
+ * Notifies client the result of queryVoltePreference request
+ *
+ * @param is one of the values QTI_IMS_REQUEST_*, as defined in
+ * org.codeaurora.ims.utils.QtiImsExtUtils.
+ * @param is valid only when is QTI_IMS_REQUEST_SUCCESS and
+ * is one of the values QTI_IMS_VOLTE_PREF_*, as defined in
+ * org.codeaurora.ims.utils.QtiImsExtUtils.
+ * @return void.
+ */
+ void onVoltePreferenceQueried(int result, int mode);
+
+ /**
+ * Notifies client the value of the set handover config result.
+ *
+ * @param is one of the values QTI_IMS_REQUEST_*, as defined in
+ * org.codeaurora.ims.utils.QtiImsExtUtils
+ * @return void.
+ */
+ void onSetHandoverConfig(int status);
+
+ /**
+ * Notifies client the value of the get operation result on get handover config item.
+ *
+ * @param is one of the values QTI_IMS_REQUEST_*, as defined in
+ * org.codeaurora.ims.utils.QtiImsExtUtils
+ * @param hoConfig is valid when status is QTI_IMS_REQUEST_SUCCESS and it can have
+ * one of the values QTI_IMS_HO_* excluding QTI_IMS_HO_INVALID, as defined in
+ * org.codeaurora.ims.utils.QtiImsExtUtils
+ * @return void
+ */
+ void onGetHandoverConfig(int status, int hoConfig);
+
}
diff --git a/telephony/ims/src/org/codeaurora/ims/utils/QtiImsExtUtils.java b/telephony/ims/src/org/codeaurora/ims/utils/QtiImsExtUtils.java
index b87f270..952e68b 100644
--- a/telephony/ims/src/org/codeaurora/ims/utils/QtiImsExtUtils.java
+++ b/telephony/ims/src/org/codeaurora/ims/utils/QtiImsExtUtils.java
@@ -62,6 +62,12 @@ public class QtiImsExtUtils {
/* Default error value */
public static final int QTI_IMS_REQUEST_ERROR = 1;
+ /* name for carrier property */
+ public static final String PROPERTY_RADIO_ATEL_CARRIER = "persist.radio.atel.carrier";
+
+ /* Carrier one default mcc mnc */
+ public static final String CARRIER_ONE_DEFAULT_MCC_MNC = "405854";
+
/**
* Definitions for the call transfer type. For easier implementation,
* the transfer type is defined as a bit mask value.
@@ -93,10 +99,27 @@ public class QtiImsExtUtils {
*/
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";
+ /* Handover config params */
+ public static final int QTI_IMS_HO_INVALID = 0x00;
+ public static final int QTI_IMS_HO_ENABLE_ALL = 0x01;
+ public static final int QTI_IMS_HO_DISABLE_ALL = 0x02;
+ public static final int QTI_IMS_HO_ENABLED_WLAN_TO_WWAN_ONLY = 0x03;
+ public static final int QTI_IMS_HO_ENABLED_WWAN_TO_WLAN_ONLY = 0x04;
+
/**
* Private constructor for QtiImsExtUtils as we don't want to instantiate this class
*/
@@ -148,6 +171,14 @@ public class QtiImsExtUtils {
return isCarrierConfigEnabled(context, QtiCarrierConfigs.CONFIG_CS_RETRY);
}
+ /**
+ * Check is carrier one supported or not
+ */
+ public static boolean isCarrierOneSupported() {
+ return CARRIER_ONE_DEFAULT_MCC_MNC.equals(SystemProperties.get(
+ PROPERTY_RADIO_ATEL_CARRIER));
+ }
+
/**
* Returns true if config flag is enabled.
*/
@@ -172,6 +203,10 @@ public class QtiImsExtUtils {
QtiCarrierConfigs.HIDE_PREVIEW_IN_VT_CONFERENCE);
}
+ public static boolean shallRemoveModifyCallCapability(Context context) {
+ return isCarrierConfigEnabled(context, QtiCarrierConfigs.REMOVE_MODIFY_CALL_CAPABILITY);
+ }
+
private static PersistableBundle getConfigForDefaultImsPhoneId(Context context) {
return getConfigForPhoneId(context, getImsPhoneId());
}