From 8408da55ea2fa112b4faeec5ae70f5780eb4f4c0 Mon Sep 17 00:00:00 2001 From: Ningxin Hu Date: Mon, 21 Apr 2014 15:22:19 +0800 Subject: [PATCH] Add getView() API into CordovaWebView. This API is to get the actual View. The concrete webview implementation can use compositing instead of extending underlying webview. --- framework/src/org/apache/cordova/AndroidWebView.java | 4 ++++ framework/src/org/apache/cordova/CordovaActivity.java | 2 +- framework/src/org/apache/cordova/CordovaWebView.java | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/framework/src/org/apache/cordova/AndroidWebView.java b/framework/src/org/apache/cordova/AndroidWebView.java index 00c4bb10..a940dd5d 100755 --- a/framework/src/org/apache/cordova/AndroidWebView.java +++ b/framework/src/org/apache/cordova/AndroidWebView.java @@ -1078,4 +1078,8 @@ public class AndroidWebView extends WebView implements CordovaWebView { super.setLayoutParams(layoutParams); } + @Override + public View getView() { + return this; + } } diff --git a/framework/src/org/apache/cordova/CordovaActivity.java b/framework/src/org/apache/cordova/CordovaActivity.java index a24555b1..8931b518 100755 --- a/framework/src/org/apache/cordova/CordovaActivity.java +++ b/framework/src/org/apache/cordova/CordovaActivity.java @@ -315,7 +315,7 @@ public class CordovaActivity extends Activity implements CordovaInterface { // Add web view but make it invisible while loading URL this.appView.setVisibility(View.INVISIBLE); - this.root.addView((View) this.appView); + this.root.addView((View) this.appView.getView()); setContentView(this.root); // Clear cancel flag diff --git a/framework/src/org/apache/cordova/CordovaWebView.java b/framework/src/org/apache/cordova/CordovaWebView.java index f0d4a5f6..d23baeec 100644 --- a/framework/src/org/apache/cordova/CordovaWebView.java +++ b/framework/src/org/apache/cordova/CordovaWebView.java @@ -17,6 +17,8 @@ public interface CordovaWebView { Object pluginManager = null; Object jsMessageQueue = null; + View getView(); + void setWebViewClient(CordovaWebViewClient webViewClient); void setWebChromeClient(CordovaChromeClient webChromeClient);