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;
}