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. Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/8408da55 Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/8408da55 Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/8408da55 Branch: refs/heads/pluggable_webview Commit: 8408da55ea2fa112b4faeec5ae70f5780eb4f4c0 Parents: 4a67dd2 Author: Ningxin Hu <[email protected]> Authored: Mon Apr 21 15:22:19 2014 +0800 Committer: Ian Clelland <[email protected]> Committed: Tue Apr 29 22:50:11 2014 -0400 ---------------------------------------------------------------------- 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(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-android/blob/8408da55/framework/src/org/apache/cordova/AndroidWebView.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/AndroidWebView.java b/framework/src/org/apache/cordova/AndroidWebView.java index 00c4bb1..a940dd5 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; + } } http://git-wip-us.apache.org/repos/asf/cordova-android/blob/8408da55/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 a24555b..8931b51 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 http://git-wip-us.apache.org/repos/asf/cordova-android/blob/8408da55/framework/src/org/apache/cordova/CordovaWebView.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/CordovaWebView.java b/framework/src/org/apache/cordova/CordovaWebView.java index f0d4a5f..d23baee 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);
