You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by bo...@apache.org on 2012/09/18 23:25:01 UTC

android commit: Fixing CB-1462, there's a difference betwene Global and Local listeners:

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 <bo...@apache.org>
Authored: Tue Sep 18 14:24:48 2012 -0700
Committer: Joe Bowser <bo...@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;
+    }
 }