OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |