Add IPlugin interface and change Plugin to be abstract class. Plugins can either implement IPlugin or extend Plugin.

This commit is contained in:
Bryce Curtis
2010-10-04 23:58:14 -05:00
parent cbff3812e8
commit 68146329b9
18 changed files with 161 additions and 748 deletions
+3 -53
View File
@@ -9,20 +9,14 @@ import org.json.JSONException;
import com.phonegap.api.Plugin;
import com.phonegap.api.PluginResult;
import android.content.Intent;
import android.webkit.WebView;
/*
* 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 implements Plugin {
public class GeoBroker extends Plugin {
WebView webView; // WebView object
DroidGap ctx; // DroidGap object
// List of gGeolocation listeners
private HashMap<String, GeoListener> geoListeners;
private GeoListener global;
@@ -34,26 +28,6 @@ public class GeoBroker implements Plugin {
this.geoListeners = new HashMap<String, GeoListener>();
}
/**
* Sets the context of the Command. This can then be used to do things like
* get file paths associated with the Activity.
*
* @param ctx The context of the main Activity.
*/
public void setContext(DroidGap ctx) {
this.ctx = ctx;
}
/**
* Sets the main View of the application, this is the WebView within which
* a PhoneGap app runs.
*
* @param webView The PhoneGap WebView
*/
public void setView(WebView webView) {
this.webView = webView;
}
/**
* Executes the request and returns CommandResult.
*
@@ -92,18 +66,6 @@ public class GeoBroker implements Plugin {
// Starting listeners is easier to run on main thread, so don't run async.
return true;
}
/**
* Called when the system is about to start resuming a previous activity.
*/
public void onPause() {
}
/**
* Called when the activity will start interacting with the user.
*/
public void onResume() {
}
/**
* Called when the activity is to be shut down.
@@ -124,18 +86,6 @@ public class GeoBroker implements Plugin {
this.global = null;
}
/**
* Called when an activity you launched exits, giving you the requestCode you started it with,
* the resultCode it returned, and any additional data from it.
*
* @param requestCode The request code originally supplied to startActivityForResult(),
* allowing you to identify who this result came from.
* @param resultCode The integer result code returned by the child activity through its setResult().
* @param data An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
*/
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
}
//--------------------------------------------------------------------------
// LOCAL METHODS
//--------------------------------------------------------------------------
@@ -152,7 +102,7 @@ public class GeoBroker implements Plugin {
// Create a geolocation listener just for getCurrentLocation and call it "global"
if (this.global == null) {
this.global = new GeoListener("global", this.ctx, maximumAge, this.webView);
this.global = new GeoListener(this, "global", maximumAge);
}
else {
this.global.start(maximumAge);
@@ -173,7 +123,7 @@ public class GeoBroker implements Plugin {
// Make sure this listener doesn't already exist
GeoListener listener = geoListeners.get(key);
if (listener == null) {
listener = new GeoListener(key, this.ctx, maximumAge, this.webView);
listener = new GeoListener(this, key, maximumAge);
geoListeners.put(key, listener);
}