From 839904eed81bf9cd87c27de49903dddb64ae3937 Mon Sep 17 00:00:00 2001 From: destradaa Date: Wed, 11 Sep 2013 12:42:51 -0700 Subject: [PATCH] Fix exceptions in the Flp Hal layer: - JNI exception accessing a geofence method with wrong signature - FlpHardwareProvider exception when the monitoring status contains no location information Bug: 10691492 Change-Id: I1959712912af712dc9dc344f20afd1112da46efc --- .../com/android/server/location/FlpHardwareProvider.java | 8 +++++++- .../com_android_server_location_FlpHardwareProvider.cpp | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/location/FlpHardwareProvider.java b/services/java/com/android/server/location/FlpHardwareProvider.java index ebeccfb6e6bf2..60893b83943a0 100644 --- a/services/java/com/android/server/location/FlpHardwareProvider.java +++ b/services/java/com/android/server/location/FlpHardwareProvider.java @@ -141,10 +141,16 @@ public class FlpHardwareProvider { } private void onGeofenceMonitorStatus(int status, int source, Location location) { + // allow the location to be optional in this event + Location updatedLocation = null; + if(location != null) { + updatedLocation = updateLocationInformation(location); + } + getGeofenceHardwareSink().reportGeofenceMonitorStatus( GeofenceHardware.MONITORING_TYPE_FUSED_HARDWARE, status, - updateLocationInformation(location), + updatedLocation, source); } diff --git a/services/jni/com_android_server_location_FlpHardwareProvider.cpp b/services/jni/com_android_server_location_FlpHardwareProvider.cpp index b403ee68f3c45..a1875210af253 100644 --- a/services/jni/com_android_server_location_FlpHardwareProvider.cpp +++ b/services/jni/com_android_server_location_FlpHardwareProvider.cpp @@ -318,7 +318,7 @@ static void TranslateGeofenceFromGeofenceHardwareRequestParcelable( jmethodID getNotificationResponsiveness = env->GetMethodID( geofenceRequestClass, "getNotificationResponsiveness", - "()D"); + "()I"); options->notification_responsivenes_ms = env->CallIntMethod( geofenceRequestObject, getNotificationResponsiveness);