Try other constructors besides first

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

Branch: refs/heads/pluggable_webview
Commit: df05f3a3c07c0630c3d598409289db7a8f3c87e3
Parents: 8e31ef7
Author: Ian Clelland <[email protected]>
Authored: Thu Apr 24 14:58:16 2014 -0400
Committer: Ian Clelland <[email protected]>
Committed: Tue Apr 29 22:50:12 2014 -0400

----------------------------------------------------------------------
 .../src/org/apache/cordova/CordovaActivity.java   | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-android/blob/df05f3a3/framework/src/org/apache/cordova/CordovaActivity.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/CordovaActivity.java 
b/framework/src/org/apache/cordova/CordovaActivity.java
index 01eff1c..830332e 100755
--- a/framework/src/org/apache/cordova/CordovaActivity.java
+++ b/framework/src/org/apache/cordova/CordovaActivity.java
@@ -219,16 +219,18 @@ public class CordovaActivity extends Activity implements 
CordovaInterface {
         try {
             Class webViewClass = Class.forName(r);
             Constructor<CordovaWebView> [] webViewConstructors = 
webViewClass.getConstructors();
-            
-            
+
             if(CordovaWebView.class.isAssignableFrom(webViewClass)) {
-                CordovaWebView webView =  (CordovaWebView) 
webViewConstructors[0].newInstance(this);
-                return webView;
-            }
-            else
-            {
-                LOG.e(TAG, "The WebView Engine is NOT a proper WebView, 
defaulting to system WebView");
+                for (Constructor<CordovaWebView> constructor : 
webViewConstructors) {
+                    try {
+                        CordovaWebView webView = (CordovaWebView) 
constructor.newInstance(this);
+                        return webView;
+                    } catch (IllegalArgumentException e) {
+                        LOG.d(TAG, "Illegal arguments; trying next 
constructor.");
+                    }
+                }
             }
+            LOG.e(TAG, "The WebView Engine is NOT a proper WebView, defaulting 
to system WebView");
         } catch (ClassNotFoundException e) {
             LOG.e(TAG, "The WebView Engine was not found, defaulting to system 
WebView");
         } catch (InstantiationException e) {

Reply via email to