summaryrefslogtreecommitdiffstats
path: root/android_webview/java
diff options
context:
space:
mode:
Diffstat (limited to 'android_webview/java')
-rw-r--r--android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java11
-rw-r--r--android_webview/java/src/org/chromium/android_webview/AwContents.java26
2 files changed, 34 insertions, 3 deletions
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java b/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java
index 5b452c5..cf39c5b 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java
@@ -5,6 +5,7 @@
package org.chromium.android_webview;
import android.content.Context;
+import android.content.Intent;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.URLUtil;
@@ -103,6 +104,16 @@ public class AwContentViewClient extends ContentViewClient implements ContentVid
public void setSystemUiVisibility(boolean enterFullscreen) {
}
+ @Override
+ public boolean doesPerformProcessText() {
+ return true;
+ }
+
+ @Override
+ public void startProcessTextIntent(Intent intent) {
+ mAwContents.startProcessTextIntent(intent);
+ }
+
/**
* Called to show the web contents in fullscreen mode.
*
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
index ab356ff..6f3b8d0 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -100,6 +100,8 @@ public class AwContents implements SmartClipProvider,
private static final int WARN = 1;
private static final String WEB_ARCHIVE_EXTENSION = ".mht";
+ // The request code should be unique per WebView/AwContents object.
+ private static final int PROCESS_TEXT_REQUEST_CODE = 100;
// Used to avoid enabling zooming in / out if resulting zooming will
// produce little visible difference.
@@ -2210,7 +2212,7 @@ public class AwContents implements SmartClipProvider,
* be thrown by Android framework if startActivityForResult is called with
* a non-Activity context.
*/
- public void startActivityForResult(Intent intent, int requestCode) {
+ void startActivityForResult(Intent intent, int requestCode) {
// Even in fullscreen mode, startActivityForResult will still use the
// initial internal access delegate because it has access to
// the hidden API View#startActivityForResult.
@@ -2218,9 +2220,27 @@ public class AwContents implements SmartClipProvider,
.super_startActivityForResult(intent, requestCode);
}
+ void startProcessTextIntent(Intent intent) {
+ // on Android M, WebView is not able to replace the text with the processed text.
+ // So set the readonly flag for M.
+ if (Build.VERSION.SDK_INT == Build.VERSION_CODES.M) {
+ intent.putExtra(Intent.EXTRA_PROCESS_TEXT_READONLY, true);
+ }
+
+ if (ContentViewCore.activityFromContext(mContext) == null) {
+ mContext.startActivity(intent);
+ return;
+ }
+
+ startActivityForResult(intent, PROCESS_TEXT_REQUEST_CODE);
+ }
+
public void onActivityResult(int requestCode, int resultCode, Intent data) {
- // TODO(hush): Forward the activity result to content view core and
- // replace the text with translated text.
+ if (requestCode == PROCESS_TEXT_REQUEST_CODE) {
+ mContentViewCore.onReceivedProcessTextResult(resultCode, data);
+ } else {
+ Log.e(TAG, "Received activity result for an unknown request code " + requestCode);
+ }
}
/**