You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by bc...@apache.org on 2012/05/15 17:00:35 UTC

[1/2] android commit: Enable onMessage() to return a value.

Updated Branches:
  refs/heads/CordovaWebView 441785b51 -> d683bd374


Enable onMessage() to return a value.


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

Branch: refs/heads/CordovaWebView
Commit: d683bd37441a9b19f9777ec4c60b74d4c3a67867
Parents: 9f5f497
Author: Bryce Curtis <cu...@gmail.com>
Authored: Tue May 15 10:00:02 2012 -0500
Committer: Bryce Curtis <cu...@gmail.com>
Committed: Tue May 15 10:00:02 2012 -0500

----------------------------------------------------------------------
 framework/src/org/apache/cordova/AudioHandler.java |    4 +++-
 framework/src/org/apache/cordova/DroidGap.java     |    4 +++-
 .../org/apache/cordova/api/CordovaInterface.java   |    3 ++-
 framework/src/org/apache/cordova/api/IPlugin.java  |    3 ++-
 framework/src/org/apache/cordova/api/Plugin.java   |    4 +++-
 .../src/org/apache/cordova/api/PluginManager.java  |   14 +++++++++++---
 6 files changed, 24 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/d683bd37/framework/src/org/apache/cordova/AudioHandler.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/AudioHandler.java b/framework/src/org/apache/cordova/AudioHandler.java
index 8acb52c..1de3cfb 100755
--- a/framework/src/org/apache/cordova/AudioHandler.java
+++ b/framework/src/org/apache/cordova/AudioHandler.java
@@ -140,8 +140,9 @@ public class AudioHandler extends Plugin {
      * 
      * @param id            The message id
      * @param data          The message data
+     * @return              Object to stop propagation or null
      */
-    public void onMessage(String id, Object data) {
+    public Object onMessage(String id, Object data) {
 
         // If phone message
         if (id.equals("telephone")) {
@@ -167,6 +168,7 @@ public class AudioHandler extends Plugin {
                 this.pausedForPhone.clear();
             }
         }
+        return null;
     }
 
     //--------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/d683bd37/framework/src/org/apache/cordova/DroidGap.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/DroidGap.java b/framework/src/org/apache/cordova/DroidGap.java
index 21164e3..aeca772 100755
--- a/framework/src/org/apache/cordova/DroidGap.java
+++ b/framework/src/org/apache/cordova/DroidGap.java
@@ -1050,8 +1050,9 @@ public class DroidGap extends Activity implements CordovaInterface {
      * 
      * @param id            The message id
      * @param data          The message data
+     * @return              Object or null
      */
-    public void onMessage(String id, Object data) {
+    public Object onMessage(String id, Object data) {
         LOG.d(TAG, "onMessage(" + id + "," + data + ")");
         if ("splashscreen".equals(id)) {
             if ("hide".equals(data.toString())) {
@@ -1079,6 +1080,7 @@ public class DroidGap extends Activity implements CordovaInterface {
         else if ("exit".equals(id)) {
             this.endActivity();
         }
+        return null;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/d683bd37/framework/src/org/apache/cordova/api/CordovaInterface.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/api/CordovaInterface.java b/framework/src/org/apache/cordova/api/CordovaInterface.java
index c4a1925..fa6e1f8 100755
--- a/framework/src/org/apache/cordova/api/CordovaInterface.java
+++ b/framework/src/org/apache/cordova/api/CordovaInterface.java
@@ -73,7 +73,8 @@ public interface CordovaInterface {
      * 
      * @param id            The message id
      * @param data          The message data
+     * @return              Object or null
      */
-    public void onMessage(String id, Object data);
+    public Object onMessage(String id, Object data);
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/d683bd37/framework/src/org/apache/cordova/api/IPlugin.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/api/IPlugin.java b/framework/src/org/apache/cordova/api/IPlugin.java
index 173a304..e410ac9 100755
--- a/framework/src/org/apache/cordova/api/IPlugin.java
+++ b/framework/src/org/apache/cordova/api/IPlugin.java
@@ -94,8 +94,9 @@ public interface IPlugin {
      * 
      * @param id            The message id
      * @param data          The message data
+     * @return              Object to stop propagation or null
      */
-    public void onMessage(String id, Object data);
+    public Object onMessage(String id, Object data);
 
     /**
      * Called when an activity you launched exits, giving you the requestCode you started it with,

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/d683bd37/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 2e6d462..871a964 100755
--- a/framework/src/org/apache/cordova/api/Plugin.java
+++ b/framework/src/org/apache/cordova/api/Plugin.java
@@ -107,8 +107,10 @@ public abstract class Plugin implements IPlugin {
      * 
      * @param id            The message id
      * @param data          The message data
+     * @return              Object to stop propagation or null
      */
-    public void onMessage(String id, Object data) {
+    public Object onMessage(String id, Object data) {
+        return null;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/d683bd37/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 fa40e07..1714eb8 100755
--- a/framework/src/org/apache/cordova/api/PluginManager.java
+++ b/framework/src/org/apache/cordova/api/PluginManager.java
@@ -314,14 +314,22 @@ public class PluginManager {
      * 
      * @param id                The message id
      * @param data              The message data
+     * @return
      */
-    public void postMessage(String id, Object data) {
-        this.ctx.onMessage(id, data);
+    public Object postMessage(String id, Object data) {
+        Object obj = this.ctx.onMessage(id, data);
+        if (obj != null) {
+            return obj;
+        }
         for (PluginEntry entry : this.entries.values()) {
             if (entry.plugin != null) {
-                entry.plugin.onMessage(id, data);
+                obj = entry.plugin.onMessage(id, data);
+                if (obj != null) {
+                    return obj;
+                }
             }
         }
+        return null;
     }
 
     /**