You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ag...@apache.org on 2014/05/06 21:29:17 UTC

[03/34] git commit: Fixes to Push code. Now navigating from Javascript.

Fixes to Push code. Now navigating from Javascript.


Project: http://git-wip-us.apache.org/repos/asf/cordova-app-harness/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-app-harness/commit/074ca493
Tree: http://git-wip-us.apache.org/repos/asf/cordova-app-harness/tree/074ca493
Diff: http://git-wip-us.apache.org/repos/asf/cordova-app-harness/diff/074ca493

Branch: refs/heads/master
Commit: 074ca493f1ff9f6c086d9b517ac694b2c4d87f5b
Parents: f6d6d34
Author: Braden Shepherdson <br...@gmail.com>
Authored: Tue Jan 14 13:54:17 2014 -0500
Committer: Braden Shepherdson <br...@gmail.com>
Committed: Tue Jan 14 13:54:17 2014 -0500

----------------------------------------------------------------------
 src/android/Push.java | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-app-harness/blob/074ca493/src/android/Push.java
----------------------------------------------------------------------
diff --git a/src/android/Push.java b/src/android/Push.java
index 6b12b73..2845762 100644
--- a/src/android/Push.java
+++ b/src/android/Push.java
@@ -10,6 +10,7 @@ import java.util.Map;
 
 import fi.iki.elonen.NanoHTTPD;
 
+import org.apache.cordova.Config;
 import org.apache.cordova.CordovaArgs;
 import org.apache.cordova.CallbackContext;
 import org.apache.cordova.CordovaPlugin;
@@ -17,6 +18,8 @@ import org.apache.cordova.LOG;
 import org.json.JSONException;
 import org.json.JSONObject;
 
+import android.annotation.SuppressLint;
+import android.os.Build;
 import android.net.Uri;
 import android.util.Log;
 
@@ -45,6 +48,11 @@ public class Push extends CordovaPlugin {
         return false;
     }
 
+    public void onReset() {
+        Log.w(LOG_TAG, "onReset");
+
+    }
+
     private void listen(CallbackContext callbackContext) {
         // First, check that we're not already listening.
         if (listening) {
@@ -72,10 +80,25 @@ public class Push extends CordovaPlugin {
             callbackContext.success(latestPush);
             latestPush = null;
         } else {
-            callbackContext.success((JSONObject) null); // TODO: Is this legal?
+            callbackContext.success(0);
         }
     }
 
+    private void restartAppHarness() {
+        this.cordova.getActivity().runOnUiThread(new Runnable() {
+            @SuppressLint("NewApi")
+            @Override
+            public void run() {
+                String toInject = "window.location = '" + Config.getStartUrl() + "'";
+                if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
+                    webView.loadUrl("javascript:" + toInject);
+                } else {
+                    webView.evaluateJavascript(toInject, null);
+                }
+            }
+        });
+    }
+
     private class PushServer extends NanoHTTPD {
         public PushServer() {
             super(Push.PORT);
@@ -105,6 +128,7 @@ public class Push extends CordovaPlugin {
                     payload.put("type", "serve");
                     payload.put("url", params.get("url").get(0));
                     Push.this.latestPush = payload;
+                    Push.this.restartAppHarness();
                     return new Response(Response.Status.OK, "text/plain", "Push successful");
                 } catch (JSONException je) {
                     Log.w(LOG_TAG, "JSONException while building 'serve' mode push data", je);