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

Side by Side Diff: chrome/browser/search_engines/template_url_service_android.cc

Issue 2349473002: Implement native functions to query custom search engines for Android (Closed)
Patch Set: Created 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/search_engines/template_url_service_android.h" 5 #include "chrome/browser/search_engines/template_url_service_android.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 JNIEnv* env, 58 JNIEnv* env,
59 const JavaParamRef<jobject>& obj, 59 const JavaParamRef<jobject>& obj,
60 jint selected_index) { 60 jint selected_index) {
61 std::vector<TemplateURL*> template_urls = 61 std::vector<TemplateURL*> template_urls =
62 template_url_service_->GetTemplateURLs(); 62 template_url_service_->GetTemplateURLs();
63 size_t selected_index_size_t = static_cast<size_t>(selected_index); 63 size_t selected_index_size_t = static_cast<size_t>(selected_index);
64 DCHECK_LT(selected_index_size_t, template_urls.size()) << 64 DCHECK_LT(selected_index_size_t, template_urls.size()) <<
65 "Wrong index for search engine"; 65 "Wrong index for search engine";
66 66
67 TemplateURL* template_url = template_urls[selected_index_size_t]; 67 TemplateURL* template_url = template_urls[selected_index_size_t];
68 DCHECK_GT(template_url->prepopulate_id(), 0) <<
69 "Tried to select non-prepopulated search engine";
70 template_url_service_->SetUserSelectedDefaultSearchProvider(template_url); 68 template_url_service_->SetUserSelectedDefaultSearchProvider(template_url);
71 } 69 }
72 70
73 jint TemplateUrlServiceAndroid::GetDefaultSearchProvider( 71 jint TemplateUrlServiceAndroid::GetDefaultSearchProvider(
74 JNIEnv* env, 72 JNIEnv* env,
75 const JavaParamRef<jobject>& obj) { 73 const JavaParamRef<jobject>& obj) {
76 std::vector<TemplateURL*> template_urls = 74 std::vector<TemplateURL*> template_urls =
77 template_url_service_->GetTemplateURLs(); 75 template_url_service_->GetTemplateURLs();
78 TemplateURL* default_search_provider = 76 TemplateURL* default_search_provider =
79 template_url_service_->GetDefaultSearchProvider(); 77 template_url_service_->GetDefaultSearchProvider();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 jboolean TemplateUrlServiceAndroid::IsDefaultSearchEngineGoogle( 113 jboolean TemplateUrlServiceAndroid::IsDefaultSearchEngineGoogle(
116 JNIEnv* env, 114 JNIEnv* env,
117 const JavaParamRef<jobject>& obj) { 115 const JavaParamRef<jobject>& obj) {
118 TemplateURL* default_search_provider = 116 TemplateURL* default_search_provider =
119 template_url_service_->GetDefaultSearchProvider(); 117 template_url_service_->GetDefaultSearchProvider();
120 return default_search_provider && 118 return default_search_provider &&
121 default_search_provider->url_ref().HasGoogleBaseURLs( 119 default_search_provider->url_ref().HasGoogleBaseURLs(
122 template_url_service_->search_terms_data()); 120 template_url_service_->search_terms_data());
123 } 121 }
124 122
123 //function changes to retrieve not only the prepopulated search engines
124 //but also the custom search engines which have been selected as default
125 //search engine to adapt consistent design with desktop.
Ian Wen 2016/09/15 22:26:03 Remove this comment? In a jni bridge, function de
ltian 2016/09/16 00:23:18 Done.
125 base::android::ScopedJavaLocalRef<jobject> 126 base::android::ScopedJavaLocalRef<jobject>
126 TemplateUrlServiceAndroid::GetPrepopulatedTemplateUrlAt( 127 TemplateUrlServiceAndroid::GetPrepopulatedTemplateUrlAt(
127 JNIEnv* env, 128 JNIEnv* env,
128 const JavaParamRef<jobject>& obj, 129 const JavaParamRef<jobject>& obj,
129 jint index) { 130 jint index) {
130 TemplateURL* template_url = template_url_service_->GetTemplateURLs()[index]; 131 TemplateURL* template_url = template_url_service_->GetTemplateURLs()[index];
131 if (!IsPrepopulatedTemplate(template_url) && 132 if(!template_url->show_in_default_list())
132 !template_url->created_by_policy()) 133 return ScopedJavaLocalRef<jobject>();
133 return ScopedJavaLocalRef<jobject>();
134 134
135 return Java_TemplateUrl_create( 135 return Java_TemplateUrl_create(
136 env, index, 136 env, index,
137 base::android::ConvertUTF16ToJavaString(env, template_url->short_name()));
138 }
139
140 base::android::ScopedJavaLocalRef<jobject>
141 TemplateUrlServiceAndroid::GetRecentTemplateUrlAt(
Ian Wen 2016/09/15 22:26:03 How would you use this method in Java? How would t
ltian 2016/09/16 00:23:18 That makes sense. I will change that part.
142 JNIEnv* env,
143 const JavaParamRef<jobject>& obj,
144 jint index){
145 TemplateURL* template_url = template_url_service_->GetTemplateURLs()[index];
146 if(template_url->show_in_default_list())
147 return ScopedJavaLocalRef<jobject>();
148
149 return Java_TemplateUrl_create(
150 env, index,
137 base::android::ConvertUTF16ToJavaString(env, template_url->short_name())); 151 base::android::ConvertUTF16ToJavaString(env, template_url->short_name()));
138 } 152 }
139 153
140 bool TemplateUrlServiceAndroid::IsPrepopulatedTemplate(TemplateURL* url) { 154 bool TemplateUrlServiceAndroid::IsPrepopulatedTemplate(TemplateURL* url) {
141 return url->prepopulate_id() > 0; 155 return url->prepopulate_id() > 0;
142 } 156 }
143 157
144 void TemplateUrlServiceAndroid::OnTemplateURLServiceLoaded() { 158 void TemplateUrlServiceAndroid::OnTemplateURLServiceLoaded() {
145 template_url_subscription_.reset(); 159 template_url_subscription_.reset();
146 JNIEnv* env = base::android::AttachCurrentThread(); 160 JNIEnv* env = base::android::AttachCurrentThread();
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { 290 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) {
277 TemplateUrlServiceAndroid* template_url_service_android = 291 TemplateUrlServiceAndroid* template_url_service_android =
278 new TemplateUrlServiceAndroid(env, obj); 292 new TemplateUrlServiceAndroid(env, obj);
279 return reinterpret_cast<intptr_t>(template_url_service_android); 293 return reinterpret_cast<intptr_t>(template_url_service_android);
280 } 294 }
281 295
282 // static 296 // static
283 bool TemplateUrlServiceAndroid::Register(JNIEnv* env) { 297 bool TemplateUrlServiceAndroid::Register(JNIEnv* env) {
284 return RegisterNativesImpl(env); 298 return RegisterNativesImpl(env);
285 } 299 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698