You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by na...@apache.org on 2014/09/18 00:25:06 UTC
git commit: Removed amazon-fireos code for geolocation.
Repository: cordova-plugin-geolocation
Updated Branches:
refs/heads/master bb6968dbc -> 8ada4de9f
Removed amazon-fireos code for geolocation.
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/8ada4de9
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/tree/8ada4de9
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/diff/8ada4de9
Branch: refs/heads/master
Commit: 8ada4de9f1854509c24d1525fb484b758c8ceb82
Parents: bb6968d
Author: Archana Naik <na...@lab126.com>
Authored: Wed Sep 17 15:24:40 2014 -0700
Committer: Archana Naik <na...@lab126.com>
Committed: Wed Sep 17 15:24:40 2014 -0700
----------------------------------------------------------------------
plugin.xml | 29 +--
src/amazon/CordovaLocationListener.java | 252 ---------------------------
src/amazon/GPSListener.java | 51 ------
src/amazon/GeoBroker.java | 205 ----------------------
src/amazon/NetworkListener.java | 33 ----
5 files changed, 1 insertion(+), 569 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/blob/8ada4de9/plugin.xml
----------------------------------------------------------------------
diff --git a/plugin.xml b/plugin.xml
index 6893217..425bf01 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -44,38 +44,11 @@ xmlns:android="http://schemas.android.com/apk/res/android"
<!-- 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/amazon/GeoBroker.java" target-dir="src/org/apache/cordova/geolocation" />
- <source-file src="src/amazon/GPSListener.java" target-dir="src/org/apache/cordova/geolocation" />
- <source-file src="src/amazon/NetworkListener.java" target-dir="src/org/apache/cordova/geolocation" />
- <source-file src="src/amazon/CordovaLocationListener.java" target-dir="src/org/apache/cordova/geolocation" />
-
+
</platform>
<!-- ios -->
http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/blob/8ada4de9/src/amazon/CordovaLocationListener.java
----------------------------------------------------------------------
diff --git a/src/amazon/CordovaLocationListener.java b/src/amazon/CordovaLocationListener.java
deleted file mode 100755
index 8a29d2f..0000000
--- a/src/amazon/CordovaLocationListener.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-*/
-package org.apache.cordova.geolocation;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Timer;
-import java.util.TimerTask;
-
-import org.apache.cordova.CallbackContext;
-
-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 {
- public static int PERMISSION_DENIED = 1;
- public static int POSITION_UNAVAILABLE = 2;
- public static int TIMEOUT = 3;
-
- protected LocationManager locationManager;
- private GeoBroker owner;
- protected boolean running = false;
-
- public HashMap<String, CallbackContext> watches = new HashMap<String, CallbackContext>();
- private List<CallbackContext> callbacks = new ArrayList<CallbackContext>();
-
- private Timer timer = null;
-
- private String TAG = "[Cordova Location Listener]";
-
- public CordovaLocationListener(LocationManager manager, GeoBroker broker, String tag) {
- this.locationManager = manager;
- this.owner = broker;
- this.TAG = tag;
- }
-
- protected void fail(int code, String message) {
- this.cancelTimer();
- for (CallbackContext callbackContext: this.callbacks)
- {
- this.owner.fail(code, message, callbackContext, false);
- }
- if(this.owner.isGlobalListener(this) && this.watches.size() == 0)
- {
- Log.d(TAG, "Stopping global listener");
- this.stop();
- }
- this.callbacks.clear();
-
- Iterator<CallbackContext> it = this.watches.values().iterator();
- while (it.hasNext()) {
- this.owner.fail(code, message, it.next(), true);
- }
- }
-
- private void win(Location loc) {
- this.cancelTimer();
- for (CallbackContext callbackContext: this.callbacks)
- {
- this.owner.win(loc, callbackContext, false);
- }
- if(this.owner.isGlobalListener(this) && this.watches.size() == 0)
- {
- Log.d(TAG, "Stopping global listener");
- this.stop();
- }
- this.callbacks.clear();
-
- Iterator<CallbackContext> it = this.watches.values().iterator();
- while (it.hasNext()) {
- this.owner.win(loc, it.next(), true);
- }
- }
-
- /**
- * Location Listener Methods
- */
-
- /**
- * Called when the provider is disabled by the user.
- *
- * @param provider
- */
- public void onProviderDisabled(String provider) {
- Log.d(TAG, "Location provider '" + provider + "' disabled.");
- this.fail(POSITION_UNAVAILABLE, "GPS provider disabled.");
- }
-
- /**
- * Called when the provider is enabled by the user.
- *
- * @param provider
- */
- public void onProviderEnabled(String provider) {
- Log.d(TAG, "Location provider "+ provider + " has been enabled");
- }
-
- /**
- * Called when the provider status changes. This method is called when a
- * provider is unable to fetch a location or if the provider has recently
- * become available after a period of unavailability.
- *
- * @param provider
- * @param status
- * @param extras
- */
- public void onStatusChanged(String provider, int status, Bundle extras) {
- Log.d(TAG, "The status of the provider " + provider + " has changed");
- if (status == 0) {
- Log.d(TAG, provider + " is OUT OF SERVICE");
- this.fail(CordovaLocationListener.POSITION_UNAVAILABLE, "Provider " + provider + " is out of service.");
- }
- else if (status == 1) {
- Log.d(TAG, provider + " is TEMPORARILY_UNAVAILABLE");
- }
- else {
- Log.d(TAG, provider + " is AVAILABLE");
- }
- }
-
- /**
- * Called when the location has changed.
- *
- * @param location
- */
- public void onLocationChanged(Location location) {
- Log.d(TAG, "The location has been updated!");
- this.win(location);
- }
-
- // PUBLIC
-
- public int size() {
- return this.watches.size() + this.callbacks.size();
- }
-
- public void addWatch(String timerId, CallbackContext callbackContext) {
- this.watches.put(timerId, callbackContext);
- if (this.size() == 1) {
- this.start();
- }
- }
- public void addCallback(CallbackContext callbackContext, int timeout) {
- if(this.timer == null) {
- this.timer = new Timer();
- }
- this.timer.schedule(new LocationTimeoutTask(callbackContext, this), timeout);
- this.callbacks.add(callbackContext);
- if (this.size() == 1) {
- this.start();
- }
- }
- public void clearWatch(String timerId) {
- if (this.watches.containsKey(timerId)) {
- this.watches.remove(timerId);
- }
- if (this.size() == 0) {
- this.stop();
- }
- }
-
- /**
- * Destroy listener.
- */
- public void destroy() {
- this.stop();
- }
-
- // LOCAL
-
- /**
- * Start requesting location updates.
- *
- * @param interval
- */
- protected void start() {
- if (!this.running) {
- if (this.locationManager.getProvider(LocationManager.NETWORK_PROVIDER) != null) {
- this.running = true;
- this.locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 10, this, Looper.getMainLooper());
- } else {
- this.fail(CordovaLocationListener.POSITION_UNAVAILABLE, "Network provider is not available.");
- }
- }
- }
-
- /**
- * Stop receiving location updates.
- */
- private void stop() {
- this.cancelTimer();
- if (this.running) {
- this.locationManager.removeUpdates(this);
- this.running = false;
- }
- }
-
- private void cancelTimer() {
- if(this.timer != null) {
- this.timer.cancel();
- this.timer.purge();
- this.timer = null;
- }
- }
-
- private class LocationTimeoutTask extends TimerTask {
-
- private CallbackContext callbackContext = null;
- private CordovaLocationListener listener = null;
-
- public LocationTimeoutTask(CallbackContext callbackContext, CordovaLocationListener listener) {
- this.callbackContext = callbackContext;
- this.listener = listener;
- }
-
- @Override
- public void run() {
- for (CallbackContext callbackContext: listener.callbacks) {
- if(this.callbackContext == callbackContext) {
- listener.callbacks.remove(callbackContext);
- break;
- }
- }
-
- if(listener.size() == 0) {
- listener.stop();
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/blob/8ada4de9/src/amazon/GPSListener.java
----------------------------------------------------------------------
diff --git a/src/amazon/GPSListener.java b/src/amazon/GPSListener.java
deleted file mode 100755
index 1d712e9..0000000
--- a/src/amazon/GPSListener.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-*/
-
-package org.apache.cordova.geolocation;
-
-import android.os.Looper;
-import android.location.LocationManager;
-
-/**
- * This class handles requests for GPS location services.
- *
- */
-public class GPSListener extends CordovaLocationListener {
- public GPSListener(LocationManager locationManager, GeoBroker m) {
- super(locationManager, m, "[Cordova GPSListener]");
- }
-
-
- /**
- * Start requesting location updates.
- *
- * @param interval
- */
- @Override
- protected void start() {
- if (!this.running) {
- if (this.locationManager.getProvider(LocationManager.GPS_PROVIDER) != null) {
- this.running = true;
- this.locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0, this, 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/8ada4de9/src/amazon/GeoBroker.java
----------------------------------------------------------------------
diff --git a/src/amazon/GeoBroker.java b/src/amazon/GeoBroker.java
deleted file mode 100755
index bd88d38..0000000
--- a/src/amazon/GeoBroker.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-*/
-package org.apache.cordova.geolocation;
-
-import org.apache.cordova.CallbackContext;
-import org.apache.cordova.CordovaPlugin;
-import org.apache.cordova.PluginResult;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import android.content.Context;
-import android.location.Location;
-import android.location.LocationManager;
-
-/*
- * This class is the interface to the Geolocation. It's bound to the geo object.
- *
- * This class only starts and stops various GeoListeners, which consist of a GPS and a Network Listener
- */
-
-public class GeoBroker extends CordovaPlugin {
- private GPSListener gpsListener;
- private NetworkListener networkListener;
- private LocationManager locationManager;
-
- /**
- * Executes the request and returns PluginResult.
- *
- * @param action The action to execute.
- * @param args JSONArry of arguments for the plugin.
- * @param callbackContext The callback id used when calling back into JavaScript.
- * @return True if the action was valid, or false if not.
- */
- public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
- if (locationManager == null) {
- locationManager = (LocationManager) this.cordova.getActivity().getSystemService(Context.LOCATION_SERVICE);
- }
- if ( locationManager.isProviderEnabled( LocationManager.GPS_PROVIDER ) ||
- locationManager.isProviderEnabled( LocationManager.NETWORK_PROVIDER )) {
- if (networkListener == null) {
- networkListener = new NetworkListener(locationManager, this);
- }
- if (gpsListener == null) {
- gpsListener = new GPSListener(locationManager, this);
- }
-
-
- if (action.equals("getLocation")) {
- boolean enableHighAccuracy = args.getBoolean(0);
- int maximumAge = args.getInt(1);
- 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));
- callbackContext.sendPluginResult(result);
- } else {
- this.getCurrentLocation(callbackContext, enableHighAccuracy, args.optInt(2, 60000));
- }
- }
- else if (action.equals("addWatch")) {
- String id = args.getString(0);
- boolean enableHighAccuracy = args.getBoolean(1);
- this.addWatch(id, callbackContext, enableHighAccuracy);
- }
- else if (action.equals("clearWatch")) {
- String id = args.getString(0);
- this.clearWatch(id);
- }
- else {
- return false;
- }
- } else {
- PluginResult.Status status = PluginResult.Status.NO_RESULT;
- String message = "Location API is not available for this device.";
- PluginResult result = new PluginResult(status, message);
- callbackContext.sendPluginResult(result);
- }
- return true;
- }
-
- private void clearWatch(String id) {
- this.gpsListener.clearWatch(id);
- this.networkListener.clearWatch(id);
- }
-
- private void getCurrentLocation(CallbackContext callbackContext, boolean enableHighAccuracy, int timeout) {
- if (enableHighAccuracy && locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
- this.gpsListener.addCallback(callbackContext, timeout);
- } else {
- this.networkListener.addCallback(callbackContext, timeout);
- }
- }
-
- private void addWatch(String timerId, CallbackContext callbackContext, boolean enableHighAccuracy) {
- if (enableHighAccuracy && locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
- this.gpsListener.addWatch(timerId, callbackContext);
- } else {
- this.networkListener.addWatch(timerId, callbackContext);
- }
- }
-
- /**
- * Called when the activity is to be shut down.
- * Stop listener.
- */
- public void onDestroy() {
- if (this.networkListener != null) {
- this.networkListener.destroy();
- this.networkListener = null;
- }
- if (this.gpsListener != null) {
- this.gpsListener.destroy();
- this.gpsListener = null;
- }
- }
-
- /**
- * Called when the view navigates.
- * Stop the listeners.
- */
- public void onReset() {
- this.onDestroy();
- }
-
- public JSONObject returnLocationJSON(Location loc) {
- JSONObject o = new JSONObject();
-
- try {
- o.put("latitude", loc.getLatitude());
- o.put("longitude", loc.getLongitude());
- o.put("altitude", (loc.hasAltitude() ? loc.getAltitude() : null));
- o.put("accuracy", loc.getAccuracy());
- o.put("heading", (loc.hasBearing() ? (loc.hasSpeed() ? loc.getBearing() : null) : null));
- o.put("velocity", loc.getSpeed());
- o.put("timestamp", loc.getTime());
- } catch (JSONException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- return o;
- }
-
- public void win(Location loc, CallbackContext callbackContext, boolean keepCallback) {
- PluginResult result = new PluginResult(PluginResult.Status.OK, this.returnLocationJSON(loc));
- result.setKeepCallback(keepCallback);
- callbackContext.sendPluginResult(result);
- }
-
- /**
- * Location failed. Send error back to JavaScript.
- *
- * @param code The error code
- * @param msg The error message
- * @throws JSONException
- */
- public void fail(int code, String msg, CallbackContext callbackContext, boolean keepCallback) {
- JSONObject obj = new JSONObject();
- String backup = null;
- try {
- obj.put("code", code);
- obj.put("message", msg);
- } catch (JSONException e) {
- obj = null;
- backup = "{'code':" + code + ",'message':'" + msg.replaceAll("'", "\'") + "'}";
- }
- PluginResult result;
- if (obj != null) {
- result = new PluginResult(PluginResult.Status.ERROR, obj);
- } else {
- result = new PluginResult(PluginResult.Status.ERROR, backup);
- }
-
- result.setKeepCallback(keepCallback);
- callbackContext.sendPluginResult(result);
- }
-
- public boolean isGlobalListener(CordovaLocationListener listener)
- {
- if (gpsListener != null && networkListener != null)
- {
- return gpsListener.equals(listener) || networkListener.equals(listener);
- }
- else
- return false;
- }
-}
http://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation/blob/8ada4de9/src/amazon/NetworkListener.java
----------------------------------------------------------------------
diff --git a/src/amazon/NetworkListener.java b/src/amazon/NetworkListener.java
deleted file mode 100755
index aeb39ce..0000000
--- a/src/amazon/NetworkListener.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-*/
-
-package org.apache.cordova.geolocation;
-
-
-import android.location.LocationManager;
-
-/**
- * This class handles requests for GPS location services.
- *
- */
-public class NetworkListener extends CordovaLocationListener {
- public NetworkListener(LocationManager locationManager, GeoBroker m) {
- super(locationManager, m, "[Cordova NetworkListener]");
- }
-}