You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by st...@apache.org on 2013/12/05 01:58:39 UTC
[07/17] git commit: Added amazon-fireos platform + some of the fixes
in android code.
Added amazon-fireos platform + some of the fixes in android code.
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/commit/9eb9efb6
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/tree/9eb9efb6
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/diff/9eb9efb6
Branch: refs/heads/master
Commit: 9eb9efb6eec18e6ea3b3c531f2916b015198ed79
Parents: a2f73ef
Author: Archana Naik <na...@lab126.com>
Authored: Fri Oct 18 14:59:29 2013 -0700
Committer: Archana Naik <na...@lab126.com>
Committed: Wed Oct 30 13:24:20 2013 -0700
----------------------------------------------------------------------
plugin.xml | 37 +++++++++++++++++++++++++++
src/android/CordovaLocationListener.java | 3 ++-
src/android/GPSListener.java | 4 +--
src/android/GeoBroker.java | 7 ++---
test/cordova-incl.js | 4 ++-
5 files changed, 48 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/blob/9eb9efb6/plugin.xml
----------------------------------------------------------------------
diff --git a/plugin.xml b/plugin.xml
index 777a9cc..56f1e97 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -50,6 +50,43 @@ xmlns:android="http://schemas.android.com/apk/res/android"
</platform>
+ <!-- amazon-fireos -->
+ <platform name="amazon-fireos">
+
+ <js-module src="www/Coordinates.js" name="Coordinates">
+ <clobbers target="Coordinates" />
+ </js-module>
+
+ <js-module src="www/PositionError.js" name="PositionError">
+ <clobbers target="PositionError" />
+ </js-module>
+
+ <js-module src="www/Position.js" name="Position">
+ <clobbers target="Position" />
+ </js-module>
+
+ <js-module src="www/geolocation.js" name="geolocation">
+ <clobbers target="navigator.geolocation" />
+ </js-module>
+
+ <config-file target="res/xml/config.xml" parent="/*">
+ <feature name="Geolocation">
+ <param name="android-package" value="org.apache.cordova.geolocation.GeoBroker"/>
+ </feature>
+ </config-file>
+
+ <config-file target="AndroidManifest.xml" parent="/*">
+ <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+ </config-file>
+
+ <source-file src="src/android/GeoBroker.java" target-dir="src/org/apache/cordova/geolocation" />
+ <source-file src="src/android/GPSListener.java" target-dir="src/org/apache/cordova/geolocation" />
+ <source-file src="src/android/NetworkListener.java" target-dir="src/org/apache/cordova/geolocation" />
+ <source-file src="src/android/CordovaLocationListener.java" target-dir="src/org/apache/cordova/geolocation" />
+
+ </platform>
+
<!-- ios -->
<platform name="ios">
http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/blob/9eb9efb6/src/android/CordovaLocationListener.java
----------------------------------------------------------------------
diff --git a/src/android/CordovaLocationListener.java b/src/android/CordovaLocationListener.java
index f0f70fe..b60bf59 100755
--- a/src/android/CordovaLocationListener.java
+++ b/src/android/CordovaLocationListener.java
@@ -31,6 +31,7 @@ import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
+import android.os.Looper;
import android.util.Log;
public class CordovaLocationListener implements LocationListener {
@@ -198,7 +199,7 @@ public class CordovaLocationListener implements LocationListener {
if (!this.running) {
if (this.locationManager.getProvider(LocationManager.NETWORK_PROVIDER) != null) {
this.running = true;
- this.locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 10, this);
+ this.locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 10, Looper.getMainLooper());
} else {
this.fail(CordovaLocationListener.POSITION_UNAVAILABLE, "Network provider is not available.");
}
http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/blob/9eb9efb6/src/android/GPSListener.java
----------------------------------------------------------------------
diff --git a/src/android/GPSListener.java b/src/android/GPSListener.java
index 8c41b2e..1b156d5 100755
--- a/src/android/GPSListener.java
+++ b/src/android/GPSListener.java
@@ -19,7 +19,7 @@
package org.apache.cordova.geolocation;
-
+import android.os.Looper;
import android.location.LocationManager;
/**
@@ -42,7 +42,7 @@ public class GPSListener extends CordovaLocationListener {
if (!this.running) {
if (this.locationManager.getProvider(LocationManager.GPS_PROVIDER) != null) {
this.running = true;
- this.locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0, this);
+ this.locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0, Looper.getMainLooper());
} else {
this.fail(CordovaLocationListener.POSITION_UNAVAILABLE, "GPS provider is not available.");
}
http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/blob/9eb9efb6/src/android/GeoBroker.java
----------------------------------------------------------------------
diff --git a/src/android/GeoBroker.java b/src/android/GeoBroker.java
index ea0ad1c..bd88d38 100755
--- a/src/android/GeoBroker.java
+++ b/src/android/GeoBroker.java
@@ -65,7 +65,8 @@ public class GeoBroker extends CordovaPlugin {
if (action.equals("getLocation")) {
boolean enableHighAccuracy = args.getBoolean(0);
int maximumAge = args.getInt(1);
- Location last = this.locationManager.getLastKnownLocation((enableHighAccuracy ? LocationManager.GPS_PROVIDER : LocationManager.NETWORK_PROVIDER));
+ String provider = (enableHighAccuracy && locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) ? LocationManager.GPS_PROVIDER : LocationManager.NETWORK_PROVIDER;
+ Location last = this.locationManager.getLastKnownLocation(provider);
// Check if we can use lastKnownLocation to get a quick reading and use less battery
if (last != null && (System.currentTimeMillis() - last.getTime()) <= maximumAge) {
PluginResult result = new PluginResult(PluginResult.Status.OK, this.returnLocationJSON(last));
@@ -101,7 +102,7 @@ public class GeoBroker extends CordovaPlugin {
}
private void getCurrentLocation(CallbackContext callbackContext, boolean enableHighAccuracy, int timeout) {
- if (enableHighAccuracy) {
+ if (enableHighAccuracy && locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
this.gpsListener.addCallback(callbackContext, timeout);
} else {
this.networkListener.addCallback(callbackContext, timeout);
@@ -109,7 +110,7 @@ public class GeoBroker extends CordovaPlugin {
}
private void addWatch(String timerId, CallbackContext callbackContext, boolean enableHighAccuracy) {
- if (enableHighAccuracy) {
+ if (enableHighAccuracy && locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
this.gpsListener.addWatch(timerId, callbackContext);
} else {
this.networkListener.addWatch(timerId, callbackContext);
http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/blob/9eb9efb6/test/cordova-incl.js
----------------------------------------------------------------------
diff --git a/test/cordova-incl.js b/test/cordova-incl.js
index dbcd1a6..86c82e3 100644
--- a/test/cordova-incl.js
+++ b/test/cordova-incl.js
@@ -20,7 +20,9 @@
*/
var PLAT;
-if (/Android/.exec(navigator.userAgent)) {
+if (/Chrome/.exec(navigator.userAgent)) {
+ PLAT = 'amazon-fireos';
+} else if (/Android/.exec(navigator.userAgent)) {
PLAT = 'android';
} else if (/(iPad)|(iPhone)|(iPod)/.exec(navigator.userAgent)) {
PLAT = 'ios';