summaryrefslogtreecommitdiffstats
path: root/services/jni
diff options
context:
space:
mode:
authorghepeu <ghepeu@gmail.com>2013-07-14 21:01:49 +0200
committerGerrit Code Review <gerrit@cyanogenmod.org>2013-07-23 18:18:56 +0000
commitc9df086ec700ca5328a27405c0d70a0004cedd2a (patch)
tree947a821187c945854ea6b9d7bf36f2da9af46748 /services/jni
parent3307cd4dbaf8dd28f543336b7094be690eade0a2 (diff)
downloadframeworks_base-c9df086ec700ca5328a27405c0d70a0004cedd2a.zip
frameworks_base-c9df086ec700ca5328a27405c0d70a0004cedd2a.tar.gz
frameworks_base-c9df086ec700ca5328a27405c0d70a0004cedd2a.tar.bz2
Add support for Samsung extended AGPS
The AGPS implementation in the GPS chipset used in some Samsung devices (i9100, i9300) can make use of the Psc field. Adapt the relevant functions hiding the changes incompatible with other devices under the AGPS_USE_PSC #define. Credit to Qaweck from xda-developers forum for finding the meaning of the field. Change-Id: Ie4691c79ca379a1f5c0a87500c1b06b56ae7ac0d
Diffstat (limited to 'services/jni')
-rw-r--r--services/jni/com_android_server_location_GpsLocationProvider.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/services/jni/com_android_server_location_GpsLocationProvider.cpp b/services/jni/com_android_server_location_GpsLocationProvider.cpp
index f2ec1b3..4285ddf 100644
--- a/services/jni/com_android_server_location_GpsLocationProvider.cpp
+++ b/services/jni/com_android_server_location_GpsLocationProvider.cpp
@@ -375,7 +375,7 @@ static jint android_location_GpsLocationProvider_read_sv_status(JNIEnv* env, job
}
static void android_location_GpsLocationProvider_agps_set_reference_location_cellid(JNIEnv* env,
- jobject obj, jint type, jint mcc, jint mnc, jint lac, jint cid)
+ jobject obj, jint type, jint mcc, jint mnc, jint lac, jint psc, jint cid)
{
AGpsRefLocation location;
@@ -388,9 +388,13 @@ static void android_location_GpsLocationProvider_agps_set_reference_location_cel
case AGPS_REF_LOCATION_TYPE_GSM_CELLID:
case AGPS_REF_LOCATION_TYPE_UMTS_CELLID:
location.type = type;
+ location.u.cellID.type = type;
location.u.cellID.mcc = mcc;
location.u.cellID.mnc = mnc;
location.u.cellID.lac = lac;
+#ifdef AGPS_USE_PSC
+ location.u.cellID.psc = psc;
+#endif
location.u.cellID.cid = cid;
break;
default:
@@ -601,7 +605,7 @@ static JNINativeMethod sMethods[] = {
{"native_agps_data_conn_closed", "()V", (void*)android_location_GpsLocationProvider_agps_data_conn_closed},
{"native_agps_data_conn_failed", "()V", (void*)android_location_GpsLocationProvider_agps_data_conn_failed},
{"native_agps_set_id","(ILjava/lang/String;)V",(void*)android_location_GpsLocationProvider_agps_set_id},
- {"native_agps_set_ref_location_cellid","(IIIII)V",(void*)android_location_GpsLocationProvider_agps_set_reference_location_cellid},
+ {"native_agps_set_ref_location_cellid","(IIIIII)V",(void*)android_location_GpsLocationProvider_agps_set_reference_location_cellid},
{"native_set_agps_server", "(ILjava/lang/String;I)V", (void*)android_location_GpsLocationProvider_set_agps_server},
{"native_send_ni_response", "(II)V", (void*)android_location_GpsLocationProvider_send_ni_response},
{"native_agps_ni_message", "([BI)V", (void *)android_location_GpsLocationProvider_agps_send_ni_message},