forked from github/cordova-android
Merge pull request #136 from brycecurtis/plugins
Loading plugins from res/xml/plugins.xml
This commit is contained in:
commit
3bf48f82af
20
framework/res/xml/plugins.xml
Executable file
20
framework/res/xml/plugins.xml
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
<!--?xml version="1.0" encoding="utf-8"?-->
|
||||||
|
<plugins>
|
||||||
|
<plugin name="App" value="com.phonegap.App"/>
|
||||||
|
<plugin name="Geolocation" value="com.phonegap.GeoBroker"/>
|
||||||
|
<plugin name="Device" value="com.phonegap.Device"/>
|
||||||
|
<plugin name="Accelerometer" value="com.phonegap.AccelListener"/>
|
||||||
|
<plugin name="Compass" value="com.phonegap.CompassListener"/>
|
||||||
|
<plugin name="Media" value="com.phonegap.AudioHandler"/>
|
||||||
|
<plugin name="Camera" value="com.phonegap.CameraLauncher"/>
|
||||||
|
<plugin name="Contacts" value="com.phonegap.ContactManager"/>
|
||||||
|
<plugin name="Crypto" value="com.phonegap.CryptoHandler"/>
|
||||||
|
<plugin name="File" value="com.phonegap.FileUtils"/>
|
||||||
|
<plugin name="Location" value="com.phonegap.GeoBroker"/>
|
||||||
|
<plugin name="Network Status" value="com.phonegap.NetworkManager"/>
|
||||||
|
<plugin name="Notification" value="com.phonegap.Notification"/>
|
||||||
|
<plugin name="Storage" value="com.phonegap.Storage"/>
|
||||||
|
<plugin name="Temperature" value="com.phonegap.TempListener"/>
|
||||||
|
<plugin name="FileTransfer" value="com.phonegap.FileTransfer"/>
|
||||||
|
<plugin name="Capture" value="com.phonegap.Capture"/>
|
||||||
|
</plugins>
|
@ -292,23 +292,6 @@ public class DroidGap extends PhonegapActivity {
|
|||||||
this.callbackServer = new CallbackServer();
|
this.callbackServer = new CallbackServer();
|
||||||
this.pluginManager = new PluginManager(appView, this);
|
this.pluginManager = new PluginManager(appView, this);
|
||||||
|
|
||||||
this.addService("App", "com.phonegap.App");
|
|
||||||
this.addService("Geolocation", "com.phonegap.GeoBroker");
|
|
||||||
this.addService("Device", "com.phonegap.Device");
|
|
||||||
this.addService("Accelerometer", "com.phonegap.AccelListener");
|
|
||||||
this.addService("Compass", "com.phonegap.CompassListener");
|
|
||||||
this.addService("Media", "com.phonegap.AudioHandler");
|
|
||||||
this.addService("Camera", "com.phonegap.CameraLauncher");
|
|
||||||
this.addService("Contacts", "com.phonegap.ContactManager");
|
|
||||||
this.addService("Crypto", "com.phonegap.CryptoHandler");
|
|
||||||
this.addService("File", "com.phonegap.FileUtils");
|
|
||||||
this.addService("Location", "com.phonegap.GeoBroker"); // Always add Location, even though it is built-in on 2.x devices. Let JavaScript decide which one to use.
|
|
||||||
this.addService("Network Status", "com.phonegap.NetworkManager");
|
|
||||||
this.addService("Notification", "com.phonegap.Notification");
|
|
||||||
this.addService("Storage", "com.phonegap.Storage");
|
|
||||||
this.addService("Temperature", "com.phonegap.TempListener");
|
|
||||||
this.addService("FileTransfer", "com.phonegap.FileTransfer");
|
|
||||||
this.addService("Capture", "com.phonegap.Capture");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -7,13 +7,16 @@
|
|||||||
*/
|
*/
|
||||||
package com.phonegap.api;
|
package com.phonegap.api;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
|
import org.xmlpull.v1.XmlPullParserException;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.res.XmlResourceParser;
|
||||||
import android.webkit.WebView;
|
import android.webkit.WebView;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -39,6 +42,33 @@ public final class PluginManager {
|
|||||||
public PluginManager(WebView app, PhonegapActivity ctx) {
|
public PluginManager(WebView app, PhonegapActivity ctx) {
|
||||||
this.ctx = ctx;
|
this.ctx = ctx;
|
||||||
this.app = app;
|
this.app = app;
|
||||||
|
this.loadPlugins();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load plugins from res/xml/plugins.xml
|
||||||
|
*/
|
||||||
|
public void loadPlugins() {
|
||||||
|
XmlResourceParser xml = ctx.getResources().getXml(com.phonegap.R.xml.plugins);
|
||||||
|
int eventType = -1;
|
||||||
|
while (eventType != XmlResourceParser.END_DOCUMENT) {
|
||||||
|
if (eventType == XmlResourceParser.START_TAG) {
|
||||||
|
String strNode = xml.getName();
|
||||||
|
if (strNode.equals("plugin")) {
|
||||||
|
String name = xml.getAttributeValue(null, "name");
|
||||||
|
String value = xml.getAttributeValue(null, "value");
|
||||||
|
System.out.println("Plugin: "+name+" => "+value);
|
||||||
|
this.addService(name, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
eventType = xml.next();
|
||||||
|
} catch (XmlPullParserException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user