summaryrefslogtreecommitdiffstats
path: root/services/jni
diff options
context:
space:
mode:
Diffstat (limited to 'services/jni')
-rw-r--r--services/jni/Android.mk8
-rwxr-xr-xservices/jni/com_android_server_location_GpsLocationProvider.cpp16
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,