From 3d9f8fa53a86ba5ad50aabf6413cead99c944f90 Mon Sep 17 00:00:00 2001 From: Thierry Strudel Date: Mon, 10 Oct 2016 11:27:35 -0700 Subject: [PATCH] Update to 07.00.00.253.030 Change-Id: I3aaa31b773ca20cd08913abdd4936d3bd06513ef --- location/gnsspps/Android.mk | 2 + .../org/codeaurora/ims/QtiCallConstants.java | 3 + .../org/codeaurora/ims/QtiCarrierConfigs.java | 5 ++ .../src/org/codeaurora/ims/QtiImsExtBase.java | 35 ++++++++++++ .../ims/QtiImsExtListenerBaseImpl.java | 16 ++++++ .../org/codeaurora/ims/QtiImsExtManager.java | 39 +++++++++++++ .../codeaurora/ims/internal/IQtiImsExt.aidl | 55 +++++++++++++++++-- .../ims/internal/IQtiImsExtListener.aidl | 47 +++++++++++++++- .../codeaurora/ims/utils/QtiImsExtUtils.java | 35 ++++++++++++ 9 files changed, 230 insertions(+), 7 deletions(-) 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()); }