diff options
author | apiccion@chromium.org <apiccion@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-18 00:35:01 +0000 |
---|---|---|
committer | apiccion@chromium.org <apiccion@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-18 00:35:01 +0000 |
commit | a4ecae1396a3820d29f9e23f134ff4f6d50c0aa7 (patch) | |
tree | 27d91c5341c0b5a1ce8838b83aadd6577904b466 | |
parent | e5220bf8be5a3180cb23f9022bdfa00317178e8f (diff) | |
download | chromium_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
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, |