diff --git a/core/ContextBase.h b/core/ContextBase.h index bd9a19f9..4f8723eb 100644 --- a/core/ContextBase.h +++ b/core/ContextBase.h @@ -116,6 +116,7 @@ public: inline LocApiProxyBase* getLocApiProxy() { return mLocApiProxy; } inline bool hasAgpsExtendedCapabilities() { return mLBSProxy->hasAgpsExtendedCapabilities(); } inline bool hasCPIExtendedCapabilities() { return mLBSProxy->hasCPIExtendedCapabilities(); } + inline bool hasNativeXtraClient() { return mLBSProxy->hasNativeXtraClient(); } inline void modemPowerVote(bool power) const { return mLBSProxy->modemPowerVote(power); } inline void requestUlp(LocAdapterBase* adapter, unsigned long capabilities) { diff --git a/core/LBSProxyBase.h b/core/LBSProxyBase.h index b3736c20..94ddd0fb 100644 --- a/core/LBSProxyBase.h +++ b/core/LBSProxyBase.h @@ -69,6 +69,7 @@ public: (void)context; } + inline virtual bool hasNativeXtraClient() const { return false; } inline virtual IzatDevId_t getIzatDevId() const { return 0; } }; diff --git a/loc_api/libloc_api_50001/Android.mk b/loc_api/libloc_api_50001/Android.mk index cd4888d8..ad14e143 100644 --- a/loc_api/libloc_api_50001/Android.mk +++ b/loc_api/libloc_api_50001/Android.mk @@ -91,6 +91,10 @@ LOCAL_CFLAGS += \ -fno-short-enums \ -D_ANDROID_ \ +ifeq ($(TARGET_BUILD_VARIANT),user) + LOCAL_CFLAGS += -DTARGET_BUILD_VARIANT_USER +endif + ifeq ($(TARGET_USES_QCOM_BSP), true) LOCAL_CFLAGS += -DTARGET_USES_QCOM_BSP endif diff --git a/loc_api/libloc_api_50001/LocEngAdapter.h b/loc_api/libloc_api_50001/LocEngAdapter.h index b7f28f33..446acf4e 100644 --- a/loc_api/libloc_api_50001/LocEngAdapter.h +++ b/loc_api/libloc_api_50001/LocEngAdapter.h @@ -105,6 +105,9 @@ public: inline bool hasCPIExtendedCapabilities() { return mContext->hasCPIExtendedCapabilities(); } + inline bool hasNativeXtraClient() { + return mContext->hasNativeXtraClient(); + } inline const MsgTask* getMsgTask() { return mMsgTask; } inline enum loc_api_adapter_err diff --git a/loc_api/libloc_api_50001/loc_eng_xtra.cpp b/loc_api/libloc_api_50001/loc_eng_xtra.cpp index 9207564b..b5bf4e76 100644 --- a/loc_api/libloc_api_50001/loc_eng_xtra.cpp +++ b/loc_api/libloc_api_50001/loc_eng_xtra.cpp @@ -123,6 +123,13 @@ int loc_eng_xtra_init (loc_eng_data_s_type &loc_eng_data, loc_eng_xtra_data_s_type *xtra_module_data_ptr; ENTRY_LOG(); + if(!loc_eng_data.adapter->mSupportsTimeInjection + || loc_eng_data.adapter->hasNativeXtraClient()) { + LOC_LOGD("XTRA is already supported. disable it here.\n"); + EXIT_LOG(%d, 1); // return 1 denote failure + return 1; + } + if(callbacks == NULL) { LOC_LOGE("loc_eng_xtra_init: failed, cb is NULL"); } else {