Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fa699ea2 authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 3899 into donut

* changes:
  GpsLocationProvider: Add hooks for GPS location injection.
parents d8210899 d26ce0d9
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -270,6 +270,12 @@ static void android_location_GpsLocationProvider_inject_time(JNIEnv* env, jobjec
    sGpsInterface->inject_time(time, timeReference, uncertainty);
}

static void android_location_GpsLocationProvider_inject_location(JNIEnv* env, jobject obj,
        jdouble latitude, jdouble longitude, jfloat accuracy)
{
    sGpsInterface->inject_location(latitude, longitude, accuracy);
}

static jboolean android_location_GpsLocationProvider_supports_xtra(JNIEnv* env, jobject obj)
{
    if (!sGpsXtraInterface) {
@@ -353,6 +359,7 @@ static JNINativeMethod sMethods[] = {
    {"native_wait_for_event", "()V", (void*)android_location_GpsLocationProvider_wait_for_event},
    {"native_read_sv_status", "([I[F[F[F[I)I", (void*)android_location_GpsLocationProvider_read_sv_status},
    {"native_inject_time", "(JJI)V", (void*)android_location_GpsLocationProvider_inject_time},
    {"native_inject_location", "(DDF)V", (void*)android_location_GpsLocationProvider_inject_location},
    {"native_supports_xtra", "()Z", (void*)android_location_GpsLocationProvider_supports_xtra},
    {"native_inject_xtra_data", "([BI)V", (void*)android_location_GpsLocationProvider_inject_xtra_data},
    {"native_agps_data_conn_open", "(Ljava/lang/String;)V", (void*)android_location_GpsLocationProvider_agps_data_conn_open},
+6 −1
Original line number Diff line number Diff line
@@ -410,6 +410,10 @@ public class GpsLocationProvider extends ILocationProvider.Stub {
     * Someday we might use this for network location injection to aid the GPS
     */
    public void updateLocation(Location location) {
        if (location.hasAccuracy()) {
            native_inject_location(location.getLatitude(), location.getLongitude(),
                    location.getAccuracy());
        }
    }

    /**
@@ -1210,6 +1214,7 @@ public class GpsLocationProvider extends ILocationProvider.Stub {
    // mask[0] is ephemeris mask and mask[1] is almanac mask
    private native int native_read_sv_status(int[] svs, float[] snrs,
            float[] elevations, float[] azimuths, int[] masks);
    private native void native_inject_location(double latitude, double longitude, float accuracy);

    // XTRA Support    
    private native void native_inject_time(long time, long timeReference, int uncertainty);