summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorapiccion@chromium.org <apiccion@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-18 00:35:01 +0000
committerapiccion@chromium.org <apiccion@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-18 00:35:01 +0000
commita4ecae1396a3820d29f9e23f134ff4f6d50c0aa7 (patch)
tree27d91c5341c0b5a1ce8838b83aadd6577904b466
parente5220bf8be5a3180cb23f9022bdfa00317178e8f (diff)
downloadchromium_src-a4ecae1396a3820d29f9e23f134ff4f6d50c0aa7.zip
chromium_src-a4ecae1396a3820d29f9e23f134ff4f6d50c0aa7.tar.gz
chromium_src-a4ecae1396a3820d29f9e23f134ff4f6d50c0aa7.tar.bz2
Added a method in TemplateUrlServiceAndroid to generate Google voice search urls using the default search engine.
BUG=323811 Review URL: https://codereview.chromium.org/106103006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241427 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/search_engines/TemplateUrlService.java14
-rw-r--r--chrome/browser/search_engines/template_url_service_android.cc21
-rw-r--r--chrome/browser/search_engines/template_url_service_android.h4
3 files changed, 39 insertions, 0 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/search_engines/TemplateUrlService.java b/chrome/android/java/src/org/chromium/chrome/browser/search_engines/TemplateUrlService.java
index f12c987..e0bc518 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/search_engines/TemplateUrlService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/search_engines/TemplateUrlService.java
@@ -200,6 +200,18 @@ public class TemplateUrlService {
}
/**
+ * Finds the default search engine for the default provider and returns the url query
+ * {@link String} for {@code query} with voice input source param set.
+ * @param query The {@link String} that represents the text query the search url should
+ * represent.
+ * @return A {@link String} that contains the url of the default search engine with
+ * {@code query} inserted as the search parameter and voice input source param set.
+ */
+ public String getUrlForVoiceSearchQuery(String query) {
+ return nativeGetUrlForVoiceSearchQuery(mNativeTemplateUrlServiceAndroid, query);
+ }
+
+ /**
* Replaces the search terms from {@code query} in {@code url}.
* @param query The {@link String} that represents the text query that should replace the
* existing query in {@code url}.
@@ -225,6 +237,8 @@ public class TemplateUrlService {
private native boolean nativeIsDefaultSearchEngineGoogle(long nativeTemplateUrlServiceAndroid);
private native String nativeGetUrlForSearchQuery(long nativeTemplateUrlServiceAndroid,
String query);
+ private native String nativeGetUrlForVoiceSearchQuery(long nativeTemplateUrlServiceAndroid,
+ String query);
private native String nativeReplaceSearchTermsInUrl(long nativeTemplateUrlServiceAndroid,
String query, String currentUrl);
}
diff --git a/chrome/browser/search_engines/template_url_service_android.cc b/chrome/browser/search_engines/template_url_service_android.cc
index a60fe36..b28a3f3 100644
--- a/chrome/browser/search_engines/template_url_service_android.cc
+++ b/chrome/browser/search_engines/template_url_service_android.cc
@@ -10,12 +10,16 @@
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/google/google_util.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/search_engines/search_terms_data.h"
#include "chrome/browser/search_engines/template_url.h"
#include "chrome/browser/search_engines/template_url_prepopulate_data.h"
+#include "chrome/browser/search_engines/template_url_service.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
+#include "chrome/browser/search_engines/util.h"
#include "jni/TemplateUrlService_jni.h"
+#include "net/base/url_util.h"
using base::android::ConvertJavaStringToUTF16;
using base::android::ConvertUTF16ToJavaString;
@@ -155,6 +159,23 @@ TemplateUrlServiceAndroid::GetUrlForSearchQuery(JNIEnv* env,
}
base::android::ScopedJavaLocalRef<jstring>
+TemplateUrlServiceAndroid::GetUrlForVoiceSearchQuery(JNIEnv* env,
+ jobject obj,
+ jstring jquery) {
+ base::string16 query(ConvertJavaStringToUTF16(env, jquery));
+ std::string url;
+
+ if (!query.empty()) {
+ GURL gurl = GetDefaultSearchURLForSearchTerms(GetOriginalProfile(), query);
+ if (google_util::IsGoogleSearchUrl(gurl))
+ gurl = net::AppendQueryParameter(gurl, "inm", "vs");
+ url = gurl.spec();
+ }
+
+ return ConvertUTF8ToJavaString(env, url);
+}
+
+base::android::ScopedJavaLocalRef<jstring>
TemplateUrlServiceAndroid::ReplaceSearchTermsInUrl(JNIEnv* env,
jobject obj,
jstring jquery,
diff --git a/chrome/browser/search_engines/template_url_service_android.h b/chrome/browser/search_engines/template_url_service_android.h
index 761e246..ca06bf7 100644
--- a/chrome/browser/search_engines/template_url_service_android.h
+++ b/chrome/browser/search_engines/template_url_service_android.h
@@ -34,6 +34,10 @@ class TemplateUrlServiceAndroid {
JNIEnv* env,
jobject obj,
jstring jquery);
+ base::android::ScopedJavaLocalRef<jstring> GetUrlForVoiceSearchQuery(
+ JNIEnv* env,
+ jobject obj,
+ jstring jquery);
base::android::ScopedJavaLocalRef<jstring> ReplaceSearchTermsInUrl(
JNIEnv* env,
jobject obj,