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/07/10 22:37:11 UTC

git commit: Fix exception on second launch and stop using plugin whitelist

Repository: cordova-app-harness
Updated Branches:
  refs/heads/master ed0c8310b -> a7ece1558


Fix exception on second launch and stop using plugin whitelist


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/a7ece155
Tree: http://git-wip-us.apache.org/repos/asf/cordova-app-harness/tree/a7ece155
Diff: http://git-wip-us.apache.org/repos/asf/cordova-app-harness/diff/a7ece155

Branch: refs/heads/master
Commit: a7ece15583f005240ccf40039008662c7c04187e
Parents: ed0c831
Author: Andrew Grieve <ag...@chromium.org>
Authored: Thu Jul 10 16:36:42 2014 -0400
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Thu Jul 10 16:36:42 2014 -0400

----------------------------------------------------------------------
 AppHarnessUI/android/AppHarnessUI.java                | 14 ++++++++++----
 AppHarnessUI/android/CustomAndroidWebView.java        |  3 +--
 .../android/TwoFingerDoubleTapGestureDetector.java    |  2 +-
 3 files changed, 12 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-app-harness/blob/a7ece155/AppHarnessUI/android/AppHarnessUI.java
----------------------------------------------------------------------
diff --git a/AppHarnessUI/android/AppHarnessUI.java b/AppHarnessUI/android/AppHarnessUI.java
index 431f2d9..464418a 100644
--- a/AppHarnessUI/android/AppHarnessUI.java
+++ b/AppHarnessUI/android/AppHarnessUI.java
@@ -128,6 +128,8 @@ public class AppHarnessUI extends CordovaPlugin {
             Log.w(LOG_TAG, "create: already exists");
         } else {
             slaveWebView = new CustomAndroidWebView(this, activity);
+            // We'll set the plugin entries in initWebView.
+            slaveWebView.init(cordova, new ArrayList<PluginEntry>(), webView.getWhitelist(), preferences);
         }
         {
             initWebView(slaveWebView, pluginIdWhitelist);
@@ -136,7 +138,6 @@ public class AppHarnessUI extends CordovaPlugin {
             }
             slaveWebView.clearCache(true);
             slaveWebView.clearHistory();
-            slaveWebView.getPluginManager().setPluginIdWhitelist(pluginIdWhitelist);
             slaveWebView.loadUrl(url);
             View newView = (View)slaveWebView.getView().getParent();
             contentView.addView(newView);
@@ -192,7 +193,7 @@ public class AppHarnessUI extends CordovaPlugin {
                 slaveWebView.getView().setEnabled(false);
                 origMainView.requestFocus();
             }
-            slaveWebView.setStealTapEvents( !value);
+            slaveWebView.setStealTapEvents(!value);
             anim.setDuration(300).setInterpolator(new DecelerateInterpolator(2.0f)).start();
         }
         if (callbackContext != null) {
@@ -205,9 +206,14 @@ public class AppHarnessUI extends CordovaPlugin {
         ConfigXmlParser parser = new ConfigXmlParser();
         // TODO: Parse the app's config.xml rather than our own config.xml.
         parser.parse(activity);
-        ArrayList<PluginEntry> pluginEntries = parser.getPluginEntries();
+        ArrayList<PluginEntry> pluginEntries = new ArrayList<PluginEntry>(parser.getPluginEntries());
+        for (PluginEntry p : parser.getPluginEntries()) {
+            if (!pluginIdWhitelist.contains(p.service)) {
+                pluginEntries.remove(p);
+            }
+        }
+        slaveWebView.getPluginManager().setPluginEntries(pluginEntries);
 
-        newWebView.init(cordova, pluginEntries, webView.getWhitelist(), preferences);
         if (contentView == null) {
             contentView = (ViewGroup)activity.findViewById(android.R.id.content);
             origMainView = contentView.getChildAt(0);

http://git-wip-us.apache.org/repos/asf/cordova-app-harness/blob/a7ece155/AppHarnessUI/android/CustomAndroidWebView.java
----------------------------------------------------------------------
diff --git a/AppHarnessUI/android/CustomAndroidWebView.java b/AppHarnessUI/android/CustomAndroidWebView.java
index 86f616a..6d248cd 100644
--- a/AppHarnessUI/android/CustomAndroidWebView.java
+++ b/AppHarnessUI/android/CustomAndroidWebView.java
@@ -35,8 +35,7 @@ class CustomAndroidWebView extends AndroidWebView implements CustomCordovaWebVie
     public CustomAndroidWebView(AppHarnessUI parent, Context context) {
         super(context);
         this.parent = parent;
-        twoFingerTapDetector = new TwoFingerDoubleTapGestureDetector();
-        twoFingerTapDetector.setParent(parent);
+        twoFingerTapDetector = new TwoFingerDoubleTapGestureDetector(parent);
     }
 
     public void setStealTapEvents(boolean value){

http://git-wip-us.apache.org/repos/asf/cordova-app-harness/blob/a7ece155/AppHarnessUI/android/TwoFingerDoubleTapGestureDetector.java
----------------------------------------------------------------------
diff --git a/AppHarnessUI/android/TwoFingerDoubleTapGestureDetector.java b/AppHarnessUI/android/TwoFingerDoubleTapGestureDetector.java
index f3060c2..dc5ac40 100644
--- a/AppHarnessUI/android/TwoFingerDoubleTapGestureDetector.java
+++ b/AppHarnessUI/android/TwoFingerDoubleTapGestureDetector.java
@@ -30,7 +30,7 @@ class TwoFingerDoubleTapGestureDetector {
     private boolean mSeparateTouches = false;
     private byte mTwoFingerTapCount = 0;
 
-    public void setParent(AppHarnessUI parent) {
+    public TwoFingerDoubleTapGestureDetector(AppHarnessUI parent) {
         this.parent = parent;
     }