Updated Branches: refs/heads/master 73abb20b3 -> 772aedc26
Fixing CB-1462, there's a difference betwene Global and Local listeners: Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/commit/772aedc2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/tree/772aedc2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/diff/772aedc2 Branch: refs/heads/master Commit: 772aedc263aa695e94c8dcd99aec05525b96f907 Parents: 73abb20 Author: Joe Bowser <bows...@apache.org> Authored: Tue Sep 18 14:24:48 2012 -0700 Committer: Joe Bowser <bows...@apache.org> Committed: Tue Sep 18 14:24:48 2012 -0700 ---------------------------------------------------------------------- .../apache/cordova/CordovaLocationListener.java | 10 ++++++++++ framework/src/org/apache/cordova/GeoBroker.java | 10 ++++++++++ 2 files changed, 20 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/772aedc2/framework/src/org/apache/cordova/CordovaLocationListener.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/CordovaLocationListener.java b/framework/src/org/apache/cordova/CordovaLocationListener.java index fcb6bf3..0ad441d 100755 --- a/framework/src/org/apache/cordova/CordovaLocationListener.java +++ b/framework/src/org/apache/cordova/CordovaLocationListener.java @@ -55,6 +55,11 @@ public class CordovaLocationListener implements LocationListener { { this.owner.fail(code, message, callbackId); } + if(this.owner.isGlobalListener(this)) + { + Log.d(TAG, "Stopping global listener"); + this.stop(); + } this.callbacks.clear(); Iterator it = this.watches.entrySet().iterator(); @@ -69,6 +74,11 @@ public class CordovaLocationListener implements LocationListener { { this.owner.win(loc, callbackId); } + if(this.owner.isGlobalListener(this)) + { + Log.d(TAG, "Stopping global listener"); + this.stop(); + } this.callbacks.clear(); Iterator it = this.watches.entrySet().iterator(); http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/772aedc2/framework/src/org/apache/cordova/GeoBroker.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/GeoBroker.java b/framework/src/org/apache/cordova/GeoBroker.java index 9b0838b..d3bf6b3 100755 --- a/framework/src/org/apache/cordova/GeoBroker.java +++ b/framework/src/org/apache/cordova/GeoBroker.java @@ -191,4 +191,14 @@ public class GeoBroker extends Plugin { this.error(result, callbackId); } + + public boolean isGlobalListener(CordovaLocationListener listener) + { + if (gpsListener != null && networkListener != null) + { + return gpsListener.equals(listener) || networkListener.equals(listener); + } + else + return false; + } }