summaryrefslogtreecommitdiffstats
path: root/location/java/com/android/internal/location/GpsLocationProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'location/java/com/android/internal/location/GpsLocationProvider.java')
-rwxr-xr-xlocation/java/com/android/internal/location/GpsLocationProvider.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/location/java/com/android/internal/location/GpsLocationProvider.java b/location/java/com/android/internal/location/GpsLocationProvider.java
index be562f1..15c4b4b 100755
--- a/location/java/com/android/internal/location/GpsLocationProvider.java
+++ b/location/java/com/android/internal/location/GpsLocationProvider.java
@@ -540,7 +540,11 @@ public class GpsLocationProvider implements LocationProviderInterface {
if (DEBUG) {
Log.d(TAG, "calling native_inject_xtra_data");
}
- native_inject_xtra_data(data, data.length);
+ if (!native_inject_xtra_data(data, data.length)) {
+ // try again later
+ mHandler.removeMessages(DOWNLOAD_XTRA_DATA);
+ mHandler.sendMessageDelayed(Message.obtain(mHandler, DOWNLOAD_XTRA_DATA), RETRY_INTERVAL);
+ }
} else {
// try again later
mHandler.removeMessages(DOWNLOAD_XTRA_DATA);
@@ -1460,7 +1464,7 @@ public class GpsLocationProvider implements LocationProviderInterface {
// XTRA Support
private native void native_inject_time(long time, long timeReference, int uncertainty);
private native boolean native_supports_xtra();
- private native void native_inject_xtra_data(byte[] data, int length);
+ private native boolean native_inject_xtra_data(byte[] data, int length);
// DEBUG Support
private native String native_get_internal_state();