http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/c8fafa6b/framework/src/org/apache/cordova/api/Plugin.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/api/Plugin.java 
b/framework/src/org/apache/cordova/api/Plugin.java
index 36faa03..f7c1865 100755
--- a/framework/src/org/apache/cordova/api/Plugin.java
+++ b/framework/src/org/apache/cordova/api/Plugin.java
@@ -22,9 +22,10 @@ import org.apache.cordova.CordovaWebView;
 import org.json.JSONArray;
 import org.json.JSONObject;
 
-import android.content.Context;
+//import android.content.Context;
 import android.content.Intent;
-import android.webkit.WebView;
+
+//import android.webkit.WebView;
 
 /**
  * Plugin interface must be implemented by any plugin classes.
@@ -33,50 +34,50 @@ import android.webkit.WebView;
  */
 public abstract class Plugin implements IPlugin {
 
-       public String id;
+    public String id;
     public CordovaWebView webView;                                     // 
WebView object
-    public Context ctx;                        // CordovaActivity object
-
-       /**
-        * Executes the request and returns PluginResult.
-        * 
-        * @param action                The action to execute.
-        * @param args                  JSONArry of arguments for the plugin.
-        * @param callbackId    The callback id used when calling back into 
JavaScript.
-        * @return                              A PluginResult object with a 
status and message.
-        */
-       public abstract PluginResult execute(String action, JSONArray args, 
String callbackId);
-
-       /**
-        * Identifies if action to be executed returns a value and should be 
run synchronously.
-        * 
-        * @param action        The action to execute
-        * @return                      T=returns value
-        */
-       public boolean isSynch(String action) {
-               return false;
-       }
-
-       /**
-        * Sets the context of the Plugin. 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(Context ctx) {
-               this.ctx = ctx;
-       }
-
-       /**
-        * Sets the main View of the application, this is the WebView within 
which 
-        * a Cordova app runs.
-        * 
-        * @param webView The Cordova WebView
-        */
-       public void setView(CordovaWebView webView) {
-               this.webView = webView;
-       }
-       
+    public CordovaInterface ctx;                                // 
CordovaActivity object
+
+    /**
+     * Executes the request and returns PluginResult.
+     * 
+     * @param action           The action to execute.
+     * @param args                     JSONArry of arguments for the plugin.
+     * @param callbackId       The callback id used when calling back into 
JavaScript.
+     * @return                                 A PluginResult object with a 
status and message.
+     */
+    public abstract PluginResult execute(String action, JSONArray args, String 
callbackId);
+
+    /**
+     * Identifies if action to be executed returns a value and should be run 
synchronously.
+     * 
+     * @param action   The action to execute
+     * @return                 T=returns value
+     */
+    public boolean isSynch(String action) {
+        return false;
+    }
+
+    /**
+     * Sets the context of the Plugin. 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(CordovaInterface ctx) {
+        this.ctx = ctx;
+    }
+
+    /**
+     * Sets the main View of the application, this is the WebView within which 
+     * a Cordova app runs.
+     * 
+     * @param webView The Cordova WebView
+     */
+    public void setView(CordovaWebView webView) {
+        this.webView = webView;
+    }
+
     /**
      * Called when the system is about to start resuming a previous activity. 
      * 
@@ -92,19 +93,19 @@ public abstract class Plugin implements IPlugin {
      */
     public void onResume(boolean multitasking) {
     }
-    
+
     /**
      * Called when the activity receives a new intent. 
      */
     public void onNewIntent(Intent intent) {
     }
-    
+
     /**
      * The final call you receive before your activity is destroyed. 
      */
     public void onDestroy() {
     }
-       
+
     /**
      * Called when a message is sent to plugin. 
      * 
@@ -133,7 +134,7 @@ public abstract class Plugin implements IPlugin {
      * @return                                 Return true to prevent the URL 
from loading. Default is false.
      */
     public boolean onOverrideUrlLoading(String url) {
-       return false;
+        return false;
     }
 
     /**
@@ -143,7 +144,7 @@ public abstract class Plugin implements IPlugin {
      * @param statement
      */
     public void sendJavascript(String statement) {
-      webView.sendJavascript(statement);
+        this.webView.sendJavascript(statement);
     }
 
     /**
@@ -154,10 +155,10 @@ public abstract class Plugin implements IPlugin {
      * call success(...) or error(...)
      * 
      * @param pluginResult             The result to return.
-        * @param callbackId            The callback id used when calling back 
into JavaScript.
+     * @param callbackId               The callback id used when calling back 
into JavaScript.
      */
     public void success(PluginResult pluginResult, String callbackId) {
-      webView.sendJavascript(pluginResult.toSuccessCallbackString(callbackId));
+        
this.webView.sendJavascript(pluginResult.toSuccessCallbackString(callbackId));
     }
 
     /**
@@ -167,7 +168,7 @@ public abstract class Plugin implements IPlugin {
      * @param callbackId               The callback id used when calling back 
into JavaScript.
      */
     public void success(JSONObject message, String callbackId) {
-      webView.sendJavascript(new PluginResult(PluginResult.Status.OK, 
message).toSuccessCallbackString(callbackId));
+        this.webView.sendJavascript(new PluginResult(PluginResult.Status.OK, 
message).toSuccessCallbackString(callbackId));
     }
 
     /**
@@ -177,17 +178,17 @@ public abstract class Plugin implements IPlugin {
      * @param callbackId               The callback id used when calling back 
into JavaScript.
      */
     public void success(String message, String callbackId) {
-      webView.sendJavascript(new PluginResult(PluginResult.Status.OK, 
message).toSuccessCallbackString(callbackId));
+        this.webView.sendJavascript(new PluginResult(PluginResult.Status.OK, 
message).toSuccessCallbackString(callbackId));
     }
-    
+
     /**
      * Call the JavaScript error callback for this plugin.
      * 
      * @param pluginResult             The result to return.
-        * @param callbackId            The callback id used when calling back 
into JavaScript.
+     * @param callbackId               The callback id used when calling back 
into JavaScript.
      */
     public void error(PluginResult pluginResult, String callbackId) {
-      webView.sendJavascript(pluginResult.toErrorCallbackString(callbackId));
+        
this.webView.sendJavascript(pluginResult.toErrorCallbackString(callbackId));
     }
 
     /**
@@ -197,7 +198,7 @@ public abstract class Plugin implements IPlugin {
      * @param callbackId               The callback id used when calling back 
into JavaScript.
      */
     public void error(JSONObject message, String callbackId) {
-      webView.sendJavascript(new PluginResult(PluginResult.Status.ERROR, 
message).toErrorCallbackString(callbackId));
+        this.webView.sendJavascript(new 
PluginResult(PluginResult.Status.ERROR, 
message).toErrorCallbackString(callbackId));
     }
 
     /**
@@ -207,6 +208,6 @@ public abstract class Plugin implements IPlugin {
      * @param callbackId               The callback id used when calling back 
into JavaScript.
      */
     public void error(String message, String callbackId) {
-      webView.sendJavascript(new PluginResult(PluginResult.Status.ERROR, 
message).toErrorCallbackString(callbackId));
+        this.webView.sendJavascript(new 
PluginResult(PluginResult.Status.ERROR, 
message).toErrorCallbackString(callbackId));
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/c8fafa6b/framework/src/org/apache/cordova/api/PluginEntry.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/api/PluginEntry.java 
b/framework/src/org/apache/cordova/api/PluginEntry.java
index 2c4cdb8..057c005 100755
--- a/framework/src/org/apache/cordova/api/PluginEntry.java
+++ b/framework/src/org/apache/cordova/api/PluginEntry.java
@@ -20,8 +20,8 @@ package org.apache.cordova.api;
 
 import org.apache.cordova.CordovaWebView;
 
-import android.content.Context;
-import android.webkit.WebView;
+//import android.content.Context;
+//import android.webkit.WebView;
 
 /**
  * This class represents a service entry object.
@@ -69,12 +69,12 @@ public class PluginEntry {
      * 
      * @return                      The plugin object
      */
-    @SuppressWarnings("unchecked")
-    public IPlugin createPlugin(CordovaWebView webView, Context ctx) {
+    public IPlugin createPlugin(CordovaWebView webView, CordovaInterface ctx) {
         if (this.plugin != null) {
             return this.plugin;
         }
         try {
+            @SuppressWarnings("rawtypes")
             Class c = getClassByName(this.pluginClass);
             if (isCordovaPlugin(c)) {
                 this.plugin = (IPlugin) c.newInstance();
@@ -96,7 +96,7 @@ public class PluginEntry {
      * @return
      * @throws ClassNotFoundException
      */
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings("rawtypes")
     private Class getClassByName(final String clazz) throws 
ClassNotFoundException {
         Class c = null;
         if (clazz != null) {
@@ -112,7 +112,7 @@ public class PluginEntry {
      * @param c                     The class to check the interfaces of.
      * @return                      Boolean indicating if the class implements 
org.apache.cordova.api.Plugin
      */
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings("rawtypes")
     private boolean isCordovaPlugin(Class c) {
         if (c != null) {
             return org.apache.cordova.api.Plugin.class.isAssignableFrom(c) || 
org.apache.cordova.api.IPlugin.class.isAssignableFrom(c);

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/c8fafa6b/framework/src/org/apache/cordova/api/PluginManager.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/api/PluginManager.java 
b/framework/src/org/apache/cordova/api/PluginManager.java
index d34fe92..c931477 100755
--- a/framework/src/org/apache/cordova/api/PluginManager.java
+++ b/framework/src/org/apache/cordova/api/PluginManager.java
@@ -28,10 +28,8 @@ import org.json.JSONArray;
 import org.json.JSONException;
 import org.xmlpull.v1.XmlPullParserException;
 
-import android.content.Context;
 import android.content.Intent;
 import android.content.res.XmlResourceParser;
-import android.webkit.WebView;
 
 /**
  * PluginManager is exposed to JavaScript in the Cordova WebView.
@@ -45,7 +43,7 @@ public class PluginManager {
     // List of service entries
     private final HashMap<String, PluginEntry> entries = new HashMap<String, 
PluginEntry>();
 
-    private final Context ctx;
+    private final CordovaInterface ctx;
     private final CordovaWebView app;
 
     // Flag to track first time through
@@ -61,26 +59,25 @@ public class PluginManager {
      * @param app
      * @param ctx
      */
-    public PluginManager(CordovaWebView app, Context ctx) {
+    public PluginManager(CordovaWebView app, CordovaInterface ctx) {
         this.ctx = ctx;
         this.app = app;
         this.firstRun = true;
     }
 
-
-    public PluginManager(WebView mApp, CordovaInterface mCtx) throws Exception 
{
-      this.ctx = mCtx.getContext();
-      if(CordovaWebView.class.isInstance(mApp))
-      {
-        this.app = (CordovaWebView) mApp;
-      }
-      else
-      {
-        //Throw an exception here
-        throw new Exception();
-      }
-    }
-
+    // Called by com.phonegap.api.PluginManager only
+//    public PluginManager(WebView mApp, CordovaInterface mCtx) throws 
Exception {
+//        this.ctx = mCtx; //mCtx.getContext();
+//        if (CordovaWebView.class.isInstance(mApp))
+//        {
+//            this.app = (CordovaWebView) mApp;
+//        }
+//        else
+//        {
+//            //Throw an exception here
+//            throw new Exception();
+//        }
+//    }
 
     /**
      * Init when loading a new HTML page into webview.
@@ -89,9 +86,9 @@ public class PluginManager {
         LOG.d(TAG, "init()");
 
         // If first time, then load plugins from plugins.xml file
-        if (firstRun) {
+        if (this.firstRun) {
             this.loadPlugins();
-            firstRun = false;
+            this.firstRun = false;
         }
 
         // Stop plugins on current HTML page and discard plugin objects
@@ -109,11 +106,11 @@ public class PluginManager {
      * Load plugins from res/xml/plugins.xml
      */
     public void loadPlugins() {
-        int id = ctx.getResources().getIdentifier("plugins", "xml", 
ctx.getPackageName());
+        int id = 
this.ctx.getActivity().getResources().getIdentifier("plugins", "xml", 
this.ctx.getActivity().getPackageName());
         if (id == 0) {
-            pluginConfigurationMissing();
+            this.pluginConfigurationMissing();
         }
-        XmlResourceParser xml = ctx.getResources().getXml(id);
+        XmlResourceParser xml = 
this.ctx.getActivity().getResources().getXml(id);
         int eventType = -1;
         String service = "", pluginClass = "";
         boolean onload = false;
@@ -184,14 +181,13 @@ public class PluginManager {
      * 
      * @return              JSON encoded string with a response message and 
status.
      */
-    @SuppressWarnings("unchecked")
     public String exec(final String service, final String action, final String 
callbackId, final String jsonArgs, final boolean async) {
         PluginResult cr = null;
         boolean runAsync = async;
         try {
             final JSONArray args = new JSONArray(jsonArgs);
             final IPlugin plugin = this.getPlugin(service);
-            final Context ctx = this.ctx;
+            //final CordovaInterface ctx = this.ctx;
             if (plugin != null) {
                 runAsync = async && !plugin.isSynch(action);
                 if (runAsync) {
@@ -257,7 +253,7 @@ public class PluginManager {
      * @return              IPlugin or null
      */
     private IPlugin getPlugin(String service) {
-        PluginEntry entry = entries.get(service);
+        PluginEntry entry = this.entries.get(service);
         if (entry == null) {
             return null;
         }
@@ -334,6 +330,7 @@ public class PluginManager {
      * @param data              The message data
      */
     public void postMessage(String id, Object data) {
+        this.ctx.onMessage(id, data);
         for (PluginEntry entry : this.entries.values()) {
             if (entry.plugin != null) {
                 entry.plugin.onMessage(id, data);

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/c8fafa6b/framework/src/org/apache/cordova/api/PluginResult.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/api/PluginResult.java 
b/framework/src/org/apache/cordova/api/PluginResult.java
index c3ef6d6..8f5f7fd 100755
--- a/framework/src/org/apache/cordova/api/PluginResult.java
+++ b/framework/src/org/apache/cordova/api/PluginResult.java
@@ -21,99 +21,99 @@ package org.apache.cordova.api;
 import org.json.JSONArray;
 import org.json.JSONObject;
 
-import android.util.Log;
+//import android.util.Log;
 
 public class PluginResult {
-       private final int status;
-       private final String message;
-       private boolean keepCallback = false;
-       
-       public PluginResult(Status status) {
-               this.status = status.ordinal();
-               this.message = "'" + PluginResult.StatusMessages[this.status] + 
"'";
-       }
-       
-       public PluginResult(Status status, String message) {
-               this.status = status.ordinal();
-               this.message = JSONObject.quote(message);
-       }
-
-       public PluginResult(Status status, JSONArray message) {
-               this.status = status.ordinal();
-               this.message = message.toString();
-       }
-
-       public PluginResult(Status status, JSONObject message) {
-               this.status = status.ordinal();
-               this.message = message.toString();
-       }
-
-       public PluginResult(Status status, int i) {
-               this.status = status.ordinal();
-               this.message = ""+i;
-       }
-
-       public PluginResult(Status status, float f) {
-               this.status = status.ordinal();
-               this.message = ""+f;
-       }
-
-       public PluginResult(Status status, boolean b) {
-               this.status = status.ordinal();
-               this.message = ""+b;
-       }
-       
-       public void setKeepCallback(boolean b) {
-               this.keepCallback = b;
-       }
-       
-       public int getStatus() {
-               return status;
-       }
-
-       public String getMessage() {
-               return message;
-       }
-       
-       public boolean getKeepCallback() {
-               return this.keepCallback;
-       }
-       
-       public String getJSONString() {
-               return "{status:" + this.status + ",message:" + this.message + 
",keepCallback:" + this.keepCallback + "}";
-       }
-       
-       public String toSuccessCallbackString(String callbackId) {
-               return 
"cordova.callbackSuccess('"+callbackId+"',"+this.getJSONString()+");";
-       }
-       
-       public String toErrorCallbackString(String callbackId) {
-               return "cordova.callbackError('"+callbackId+"', " + 
this.getJSONString()+ ");";
-       }
-       
-       public static String[] StatusMessages = new String[] {
-               "No result",
-               "OK",
-               "Class not found",
-               "Illegal access",
-               "Instantiation error",
-               "Malformed url",
-               "IO error",
-               "Invalid action",
-               "JSON error",
-               "Error"
-       };
-       
-       public enum Status {
-               NO_RESULT,
-               OK,
-               CLASS_NOT_FOUND_EXCEPTION,
-               ILLEGAL_ACCESS_EXCEPTION,
-               INSTANTIATION_EXCEPTION,
-               MALFORMED_URL_EXCEPTION,
-               IO_EXCEPTION,
-               INVALID_ACTION,
-               JSON_EXCEPTION,
-               ERROR
-       }
+    private final int status;
+    private final String message;
+    private boolean keepCallback = false;
+
+    public PluginResult(Status status) {
+        this.status = status.ordinal();
+        this.message = "'" + PluginResult.StatusMessages[this.status] + "'";
+    }
+
+    public PluginResult(Status status, String message) {
+        this.status = status.ordinal();
+        this.message = JSONObject.quote(message);
+    }
+
+    public PluginResult(Status status, JSONArray message) {
+        this.status = status.ordinal();
+        this.message = message.toString();
+    }
+
+    public PluginResult(Status status, JSONObject message) {
+        this.status = status.ordinal();
+        this.message = message.toString();
+    }
+
+    public PluginResult(Status status, int i) {
+        this.status = status.ordinal();
+        this.message = "" + i;
+    }
+
+    public PluginResult(Status status, float f) {
+        this.status = status.ordinal();
+        this.message = "" + f;
+    }
+
+    public PluginResult(Status status, boolean b) {
+        this.status = status.ordinal();
+        this.message = "" + b;
+    }
+
+    public void setKeepCallback(boolean b) {
+        this.keepCallback = b;
+    }
+
+    public int getStatus() {
+        return status;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public boolean getKeepCallback() {
+        return this.keepCallback;
+    }
+
+    public String getJSONString() {
+        return "{status:" + this.status + ",message:" + this.message + 
",keepCallback:" + this.keepCallback + "}";
+    }
+
+    public String toSuccessCallbackString(String callbackId) {
+        return "cordova.callbackSuccess('" + callbackId + "'," + 
this.getJSONString() + ");";
+    }
+
+    public String toErrorCallbackString(String callbackId) {
+        return "cordova.callbackError('" + callbackId + "', " + 
this.getJSONString() + ");";
+    }
+
+    public static String[] StatusMessages = new String[] {
+            "No result",
+            "OK",
+            "Class not found",
+            "Illegal access",
+            "Instantiation error",
+            "Malformed url",
+            "IO error",
+            "Invalid action",
+            "JSON error",
+            "Error"
+    };
+
+    public enum Status {
+        NO_RESULT,
+        OK,
+        CLASS_NOT_FOUND_EXCEPTION,
+        ILLEGAL_ACCESS_EXCEPTION,
+        INSTANTIATION_EXCEPTION,
+        MALFORMED_URL_EXCEPTION,
+        IO_EXCEPTION,
+        INVALID_ACTION,
+        JSON_EXCEPTION,
+        ERROR
+    }
 }

Reply via email to