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:40:08 UTC

android commit: Add PluginManager.setPluginEntries, delete setPluginWhitelist

Repository: cordova-android
Updated Branches:
  refs/heads/4.0.x a4f6d9f6e -> b27720283


Add PluginManager.setPluginEntries, delete setPluginWhitelist


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

Branch: refs/heads/4.0.x
Commit: b277202838dbb95e1688123324d19968471526f3
Parents: a4f6d9f
Author: Andrew Grieve <ag...@chromium.org>
Authored: Thu Jul 10 16:39:46 2014 -0400
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Thu Jul 10 16:39:46 2014 -0400

----------------------------------------------------------------------
 .../src/org/apache/cordova/PluginManager.java   | 33 ++++++++++----------
 1 file changed, 16 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-android/blob/b2772028/framework/src/org/apache/cordova/PluginManager.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/PluginManager.java b/framework/src/org/apache/cordova/PluginManager.java
index 699f7cb..23be8e4 100755
--- a/framework/src/org/apache/cordova/PluginManager.java
+++ b/framework/src/org/apache/cordova/PluginManager.java
@@ -18,9 +18,8 @@
  */
 package org.apache.cordova;
 
+import java.util.Collection;
 import java.util.HashMap;
-import java.util.List;
-import java.util.Set;
 
 import org.apache.cordova.CordovaWebView;
 import org.apache.cordova.CallbackContext;
@@ -51,20 +50,26 @@ public class PluginManager {
     private final CordovaInterface ctx;
     private final CordovaWebView app;
 
-    private Set<String> pluginIdWhitelist;
-
-    public PluginManager(CordovaWebView cordovaWebView, CordovaInterface cordova, List<PluginEntry> pluginEntries) {
+    public PluginManager(CordovaWebView cordovaWebView, CordovaInterface cordova, Collection<PluginEntry> pluginEntries) {
         this.ctx = cordova;
         this.app = cordovaWebView;
+        setPluginEntries(pluginEntries);
+    }
+
+    public Collection<PluginEntry> getPluginEntries() {
+        return entries.values();
+    }
+
+    public void setPluginEntries(Collection<PluginEntry> pluginEntries) {
+        this.onPause(false);
+        this.onDestroy();
+        this.clearPluginObjects();
+        entries.clear();
         for (PluginEntry entry : pluginEntries) {
             addService(entry);
         }
     }
 
-    public void setPluginIdWhitelist(Set<String> pluginIdWhitelist) {
-        this.pluginIdWhitelist = pluginIdWhitelist;
-    }
-
     /**
      * Init when loading a new HTML page into webview.
      */
@@ -91,9 +96,7 @@ public class PluginManager {
     public void startupPlugins() {
         for (PluginEntry entry : this.entries.values()) {
             if (entry.onload) {
-                if (pluginIdWhitelist == null || pluginIdWhitelist.contains(entry.service)) {
-                    entry.createPlugin(this.app, this.ctx);
-                }
+                entry.createPlugin(this.app, this.ctx);
             }
         }
     }
@@ -160,11 +163,7 @@ public class PluginManager {
         }
         CordovaPlugin plugin = entry.plugin;
         if (plugin == null) {
-            if (pluginIdWhitelist == null || pluginIdWhitelist.contains(entry.service)) {
-                plugin = entry.createPlugin(this.app, this.ctx);
-            } else {
-                Log.e(TAG, "Attempted to access non-whitelisted plugin: " + entry.service);
-            }
+            plugin = entry.createPlugin(this.app, this.ctx);
         }
         return plugin;
     }