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/05/18 00:43:40 UTC

android commit: removed CordovaLocationListner

Updated Branches:
  refs/heads/3.0.0 4765c6fcc -> dbc6dd73f


removed CordovaLocationListner


Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/dbc6dd73
Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/dbc6dd73
Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/dbc6dd73

Branch: refs/heads/3.0.0
Commit: dbc6dd73f3ebf1c4a731719de6957cc6bb2200cc
Parents: 4765c6f
Author: Steven Gill <st...@gmail.com>
Authored: Fri May 17 15:38:08 2013 -0700
Committer: Steven Gill <st...@gmail.com>
Committed: Fri May 17 15:38:08 2013 -0700

----------------------------------------------------------------------
 .../apache/cordova/CordovaLocationListener.java    |  251 ---------------
 1 files changed, 0 insertions(+), 251 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-android/blob/dbc6dd73/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
deleted file mode 100644
index 01c828b..0000000
--- a/framework/src/org/apache/cordova/CordovaLocationListener.java
+++ /dev/null
@@ -1,251 +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;
-
-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.api.CallbackContext;
-
-import android.location.Location;
-import android.location.LocationListener;
-import android.location.LocationManager;
-import android.os.Bundle;
-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);
-            } 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();
-			}
-		}    	
-    }
-}