Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java

Issue 23654021: Expose the ability to perform a search from CVC. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove useless method Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
index a17709480fe324dacbf204f607f37d1785d3dc1f..01c096f693e210351c2027311340387dbb512cab 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
@@ -5,8 +5,10 @@
package org.chromium.content.browser;
import android.app.Activity;
+import android.app.SearchManager;
import android.content.ContentResolver;
import android.content.Context;
+import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
@@ -21,9 +23,11 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.ResultReceiver;
+import android.provider.Browser;
import android.provider.Settings;
import android.provider.Settings.Secure;
import android.text.Editable;
+import android.text.TextUtils;
import android.util.Log;
import android.util.Pair;
import android.view.ActionMode;
@@ -2094,33 +2098,71 @@ import java.util.Map;
SelectActionModeCallback.ActionHandler actionHandler =
new SelectActionModeCallback.ActionHandler() {
@Override
- public boolean selectAll() {
- return mImeAdapter.selectAll();
+ public void selectAll() {
+ mImeAdapter.selectAll();
}
@Override
- public boolean cut() {
- return mImeAdapter.cut();
+ public void cut() {
+ mImeAdapter.cut();
}
@Override
- public boolean copy() {
- return mImeAdapter.copy();
+ public void copy() {
+ mImeAdapter.copy();
}
@Override
- public boolean paste() {
- return mImeAdapter.paste();
+ public void paste() {
+ mImeAdapter.paste();
}
@Override
- public boolean isSelectionEditable() {
- return mSelectionEditable;
+ public void share() {
+ final String query = getSelectedText();
+ if (TextUtils.isEmpty(query)) return;
+
+ Intent send = new Intent(Intent.ACTION_SEND);
+ send.setType("text/plain");
+ send.putExtra(Intent.EXTRA_TEXT, query);
+ try {
+ Intent i = Intent.createChooser(send, getContext().getString(
+ R.string.actionbar_share));
+ i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ getContext().startActivity(i);
+ } catch (android.content.ActivityNotFoundException ex) {
+ // If no app handles it, do nothing.
+ }
+ }
+
+ @Override
+ public void search() {
+ final String query = getSelectedText();
+ if (TextUtils.isEmpty(query)) return;
+
+ // See if ContentViewClient wants to override
+ if (getContentViewClient().doesPerformWebSearch()) {
+ getContentViewClient().performWebSearch(query);
+ return;
+ }
+
+ Intent i = new Intent(Intent.ACTION_WEB_SEARCH);
+ i.putExtra(SearchManager.EXTRA_NEW_SEARCH, true);
+ i.putExtra(SearchManager.QUERY, query);
+ i.putExtra(Browser.EXTRA_APPLICATION_ID, getContext().getPackageName());
+ if (!(getContext() instanceof Activity)) {
+ i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ }
+ try {
+ getContext().startActivity(i);
+ } catch (android.content.ActivityNotFoundException ex) {
+ // If no app handles it, do nothing.
+ }
}
@Override
- public String getSelectedText() {
- return ContentViewCore.this.getSelectedText();
+ public boolean isSelectionEditable() {
+ return mSelectionEditable;
}
@Override
@@ -2129,6 +2171,23 @@ import java.util.Map;
if (mUnselectAllOnActionModeDismiss) mImeAdapter.unselect();
getContentViewClient().onContextualActionBarHidden();
}
+
+ @Override
+ public boolean isShareAvailable() {
+ Intent intent = new Intent(Intent.ACTION_SEND);
+ intent.setType("text/plain");
+ return getContext().getPackageManager().queryIntentActivities(intent,
+ PackageManager.MATCH_DEFAULT_ONLY).size() > 0;
+ }
+
+ @Override
+ public boolean isWebSearchAvailable() {
+ if (getContentViewClient().doesPerformWebSearch()) return true;
+ Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
+ intent.putExtra(SearchManager.EXTRA_NEW_SEARCH, true);
+ return getContext().getPackageManager().queryIntentActivities(intent,
+ PackageManager.MATCH_DEFAULT_ONLY).size() > 0;
+ }
};
mActionMode = null;
// On ICS, startActionMode throws an NPE when getParent() is null.

Powered by Google App Engine
This is Rietveld 408576698