diff options
Diffstat (limited to 'services/jni')
| -rw-r--r-- | services/jni/Android.mk | 8 | ||||
| -rwxr-xr-x | services/jni/com_android_server_location_GpsLocationProvider.cpp | 16 |
2 files changed, 24 insertions, 0 deletions
diff --git a/services/jni/Android.mk b/services/jni/Android.mk index d097a93..c3b6539 100644 --- a/services/jni/Android.mk +++ b/services/jni/Android.mk @@ -44,6 +44,14 @@ LOCAL_SHARED_LIBRARIES := \ libusbhost \ libsuspend +ifeq ($(BOARD_HAVE_NEW_QC_GPS),true) + LOCAL_CFLAGS += -DNEW_QC_GPS +endif + +ifeq ($(BOARD_HAVE_SAMSUNG_GPS),true) + LOCAL_CFLAGS += -DSAMSUNG_GPS +endif + ifeq ($(WITH_MALLOC_LEAK_CHECK),true) LOCAL_CFLAGS += -DMALLOC_LEAK_CHECK endif diff --git a/services/jni/com_android_server_location_GpsLocationProvider.cpp b/services/jni/com_android_server_location_GpsLocationProvider.cpp index 50bd46e..f2ec1b3 100755 --- a/services/jni/com_android_server_location_GpsLocationProvider.cpp +++ b/services/jni/com_android_server_location_GpsLocationProvider.cpp @@ -167,7 +167,11 @@ static void agps_status_callback(AGpsStatus* agps_status) uint32_t ipaddr; // ipaddr field was not included in original AGpsStatus if (agps_status->size >= sizeof(AGpsStatus)) +#ifdef NEW_QC_GPS + ipaddr = agps_status->ipv4_addr; +#else ipaddr = agps_status->ipaddr; +#endif else ipaddr = 0xFFFFFFFF; env->CallVoidMethod(mCallbacksObj, method_reportAGpsStatus, @@ -483,7 +487,11 @@ static void android_location_GpsLocationProvider_agps_data_conn_open(JNIEnv* env return; } const char *apnStr = env->GetStringUTFChars(apn, NULL); +#ifdef NEW_QC_GPS + sAGpsInterface->data_conn_open(0, apnStr, 0); +#else sAGpsInterface->data_conn_open(apnStr); +#endif env->ReleaseStringUTFChars(apn, apnStr); } @@ -493,7 +501,11 @@ static void android_location_GpsLocationProvider_agps_data_conn_closed(JNIEnv* e ALOGE("no AGPS interface in agps_data_conn_open"); return; } +#ifdef NEW_QC_GPS + sAGpsInterface->data_conn_closed(0); +#else sAGpsInterface->data_conn_closed(); +#endif } static void android_location_GpsLocationProvider_agps_data_conn_failed(JNIEnv* env, jobject obj) @@ -502,7 +514,11 @@ static void android_location_GpsLocationProvider_agps_data_conn_failed(JNIEnv* e ALOGE("no AGPS interface in agps_data_conn_open"); return; } +#ifdef NEW_QC_GPS + sAGpsInterface->data_conn_failed(0); +#else sAGpsInterface->data_conn_failed(); +#endif } static void android_location_GpsLocationProvider_set_agps_server(JNIEnv* env, jobject obj, |
