Add option to fallback to LocApiV02

In case the lbs or izat libs are not
present, fall back to LocApiV02 to
obtain the qmi client handle. This
change will enable basic GPS functionality
without lbs or izat lib dependencies

CRs-fixed: 649065

Change-Id: Ic2c8418d785e891ad0a660a615cd5111fafc4ff2
This commit is contained in:
Tushar Janefalkar 2014-05-27 17:10:23 -07:00 committed by Gerrit - the friendly Code Review server
parent cccee0b97a
commit fd8712acd2

View file

@ -66,16 +66,31 @@ LocApiBase* ContextBase::createLocApi(LOC_API_ADAPTER_EVENT_MASK_T exMask)
// first if can not be MPQ
if (TARGET_MPQ != loc_get_target()) {
if (NULL == (locApi = mLBSProxy->getLocApi(mMsgTask, exMask, this))) {
void *handle = NULL;
//try to see if LocApiV02 is present
if((handle = dlopen("libloc_api_v02.so", RTLD_NOW)) != NULL) {
LOC_LOGD("%s:%d]: libloc_api_v02.so is present", __func__, __LINE__);
getLocApi_t* getter = (getLocApi_t*)dlsym(handle, "getLocApi");
if(getter != NULL) {
LOC_LOGD("%s:%d]: getter is not NULL for LocApiV02", __func__, __LINE__);
locApi = (*getter)(mMsgTask, exMask, this);
}
}
// only RPC is the option now
void* handle = dlopen("libloc_api-rpc-qc.so", RTLD_NOW);
else {
LOC_LOGD("%s:%d]: libloc_api_v02.so is NOT present. Trying RPC",
__func__, __LINE__);
handle = dlopen("libloc_api-rpc-qc.so", RTLD_NOW);
if (NULL != handle) {
getLocApi_t* getter = (getLocApi_t*)dlsym(handle, "getLocApi");
if (NULL != getter) {
LOC_LOGD("%s:%d]: getter is not NULL in RPC", __func__, __LINE__);
locApi = (*getter)(mMsgTask, exMask, this);
}
}
}
}
}
// locApi could still be NULL at this time
// we would then create a dummy one