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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 |
125 base::android::ScopedJavaLocalRef<jobject> | 123 base::android::ScopedJavaLocalRef<jobject> |
126 TemplateUrlServiceAndroid::GetPrepopulatedTemplateUrlAt( | 124 TemplateUrlServiceAndroid::GetTemplateUrlAt(JNIEnv* env, |
127 JNIEnv* env, | 125 const JavaParamRef<jobject>& obj, |
128 const JavaParamRef<jobject>& obj, | 126 jint index) { |
129 jint index) { | |
130 TemplateURL* template_url = template_url_service_->GetTemplateURLs()[index]; | 127 TemplateURL* template_url = template_url_service_->GetTemplateURLs()[index]; |
131 if (!IsPrepopulatedTemplate(template_url) && | |
132 !template_url->created_by_policy()) | |
133 return ScopedJavaLocalRef<jobject>(); | |
134 | |
135 return Java_TemplateUrl_create( | 128 return Java_TemplateUrl_create( |
136 env, index, | 129 env, index, |
137 base::android::ConvertUTF16ToJavaString(env, template_url->short_name())); | 130 base::android::ConvertUTF16ToJavaString(env, template_url->short_name()), |
| 131 IsPrepopulatedTemplate(template_url) || |
| 132 template_url->created_by_policy()); |
138 } | 133 } |
139 | 134 |
140 bool TemplateUrlServiceAndroid::IsPrepopulatedTemplate(TemplateURL* url) { | 135 bool TemplateUrlServiceAndroid::IsPrepopulatedTemplate(TemplateURL* url) { |
141 return url->prepopulate_id() > 0; | 136 return url->prepopulate_id() > 0; |
142 } | 137 } |
143 | 138 |
144 void TemplateUrlServiceAndroid::OnTemplateURLServiceLoaded() { | 139 void TemplateUrlServiceAndroid::OnTemplateURLServiceLoaded() { |
145 template_url_subscription_.reset(); | 140 template_url_subscription_.reset(); |
146 JNIEnv* env = base::android::AttachCurrentThread(); | 141 JNIEnv* env = base::android::AttachCurrentThread(); |
147 if (weak_java_obj_.get(env).is_null()) | 142 if (weak_java_obj_.get(env).is_null()) |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { | 271 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { |
277 TemplateUrlServiceAndroid* template_url_service_android = | 272 TemplateUrlServiceAndroid* template_url_service_android = |
278 new TemplateUrlServiceAndroid(env, obj); | 273 new TemplateUrlServiceAndroid(env, obj); |
279 return reinterpret_cast<intptr_t>(template_url_service_android); | 274 return reinterpret_cast<intptr_t>(template_url_service_android); |
280 } | 275 } |
281 | 276 |
282 // static | 277 // static |
283 bool TemplateUrlServiceAndroid::Register(JNIEnv* env) { | 278 bool TemplateUrlServiceAndroid::Register(JNIEnv* env) { |
284 return RegisterNativesImpl(env); | 279 return RegisterNativesImpl(env); |
285 } | 280 } |
OLD | NEW |