diff options
author | hush <hush@chromium.org> | 2015-10-21 13:39:09 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-10-21 20:41:27 +0000 |
commit | a58f351e3e6cc0aceac9f46802c7693c6a562557 (patch) | |
tree | e28a35d669b809e80912f254f151e4793ec1b597 /android_webview/glue | |
parent | dbaa2f075b3813bdd185132120b24aec20b23a62 (diff) | |
download | chromium_src-a58f351e3e6cc0aceac9f46802c7693c6a562557.zip chromium_src-a58f351e3e6cc0aceac9f46802c7693c6a562557.tar.gz chromium_src-a58f351e3e6cc0aceac9f46802c7693c6a562557.tar.bz2 |
Public glue layer plumbing for View#startActivityForResult
BUG=521027
Review URL: https://codereview.chromium.org/1399613002
Cr-Commit-Position: refs/heads/master@{#355390}
Diffstat (limited to 'android_webview/glue')
-rw-r--r-- | android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java index 8348baa..50fc242 100644 --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java @@ -8,6 +8,7 @@ import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.app.assist.AssistStructure.ViewNode; import android.content.Context; +import android.content.Intent; import android.content.res.Configuration; import android.graphics.Bitmap; import android.graphics.Canvas; @@ -62,6 +63,7 @@ import org.chromium.content_public.browser.NavigationHistory; import java.io.BufferedWriter; import java.io.File; +import java.lang.reflect.Method; import java.util.Iterator; import java.util.Map; import java.util.Queue; @@ -1750,6 +1752,21 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate mAwContents.setLayoutParams(layoutParams); } + // Overrides WebViewProvider.ViewDelegate.onActivityResult (not in system api jar yet). + // crbug.com/543272. + public void onActivityResult(final int requestCode, final int resultCode, final Intent data) { + if (checkNeedsPost()) { + mRunQueue.addTask(new Runnable() { + @Override + public void run() { + onActivityResult(requestCode, resultCode, data); + } + }); + return; + } + mAwContents.onActivityResult(requestCode, resultCode, data); + } + @Override public boolean performLongClick() { // Return false unless the WebView is attached to a View with a parent @@ -2245,6 +2262,19 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate } @Override + public void super_startActivityForResult(Intent intent, int requestCode) { + // TODO(hush): Use mWebViewPrivate.super_startActivityForResult + // after N release. crbug.com/543272. + try { + Method startActivityForResultMethod = + View.class.getMethod("startActivityForResult", Intent.class, int.class); + startActivityForResultMethod.invoke(mWebView, intent, requestCode); + } catch (Exception e) { + throw new RuntimeException("Invalid reflection", e); + } + } + + @Override public boolean awakenScrollBars() { mWebViewPrivate.awakenScrollBars(0); // TODO: modify the WebView.PrivateAccess to provide a return value. |