From 9276729be5993657b4ec6536c28722f375650931 Mon Sep 17 00:00:00 2001 From: Joe Bowser Date: Tue, 15 Dec 2009 15:16:35 -0800 Subject: [PATCH] Fixing Geolocation so it grabs data from the network faster --- framework/src/com/phonegap/GeoBroker.java | 6 ++++-- framework/src/com/phonegap/GpsListener.java | 4 +++- framework/src/com/phonegap/NetworkListener.java | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/framework/src/com/phonegap/GeoBroker.java b/framework/src/com/phonegap/GeoBroker.java index 659a28d5..c8f896ef 100644 --- a/framework/src/com/phonegap/GeoBroker.java +++ b/framework/src/com/phonegap/GeoBroker.java @@ -15,6 +15,7 @@ public class GeoBroker { private WebView mAppView; private Context mCtx; private HashMap geoListeners; + private GeoListener listener; public GeoBroker(WebView view, Context ctx) { @@ -23,8 +24,9 @@ public class GeoBroker { } public void getCurrentLocation() - { - GeoListener listener = new GeoListener("global", mCtx, 10000, mAppView); + { + if (listener == null) + listener = new GeoListener("global", mCtx, 10000, mAppView); } public String start(int freq, String key) diff --git a/framework/src/com/phonegap/GpsListener.java b/framework/src/com/phonegap/GpsListener.java index 3b1f4bea..cad8f160 100644 --- a/framework/src/com/phonegap/GpsListener.java +++ b/framework/src/com/phonegap/GpsListener.java @@ -35,6 +35,7 @@ public class GpsListener implements LocationListener { private LocationManager mLocMan; private static final String LOG_TAG = "PhoneGap"; private GeoListener owner; + private boolean hasData = false; public GpsListener(Context ctx, int interval, GeoListener m) { @@ -48,6 +49,7 @@ public class GpsListener implements LocationListener { public Location getLocation() { cLoc = mLocMan.getLastKnownLocation(LocationManager.GPS_PROVIDER); + hasData = true; return cLoc; } @@ -88,7 +90,7 @@ public class GpsListener implements LocationListener { } public boolean hasLocation() { - return (cLoc != null); + return hasData; } public void stop() diff --git a/framework/src/com/phonegap/NetworkListener.java b/framework/src/com/phonegap/NetworkListener.java index 800989e1..49e1b3bd 100644 --- a/framework/src/com/phonegap/NetworkListener.java +++ b/framework/src/com/phonegap/NetworkListener.java @@ -47,7 +47,7 @@ public class NetworkListener implements LocationListener { public Location getLocation() { - cLoc = mLocMan.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); + cLoc = mLocMan.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); return cLoc; }