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( |
127 JNIEnv* env, | 125 JNIEnv* env, |
128 const JavaParamRef<jobject>& obj, | 126 const JavaParamRef<jobject>& obj, |
129 jint index) { | 127 jint index) { |
130 TemplateURL* template_url = template_url_service_->GetTemplateURLs()[index]; | 128 TemplateURL* template_url = template_url_service_->GetTemplateURLs()[index]; |
131 if (!IsPrepopulatedTemplate(template_url) && | 129 if (template_url->show_in_default_list()) |
132 !template_url->created_by_policy()) | 130 return Java_TemplateUrl_create( |
Ian Wen
2016/09/16 20:43:04
You could say return Java_templateUrl_create(env,
ltian
2016/09/16 21:39:10
Done.
| |
133 return ScopedJavaLocalRef<jobject>(); | 131 env, index, |
134 | 132 base::android::ConvertUTF16ToJavaString(env, template_url->short_name()) , |
135 return Java_TemplateUrl_create( | 133 true); |
136 env, index, | 134 else |
137 base::android::ConvertUTF16ToJavaString(env, template_url->short_name())); | 135 return Java_TemplateUrl_create( |
136 env, index, | |
137 base::android::ConvertUTF16ToJavaString(env, template_url->short_name()) , | |
138 false); | |
138 } | 139 } |
139 | 140 |
140 bool TemplateUrlServiceAndroid::IsPrepopulatedTemplate(TemplateURL* url) { | 141 bool TemplateUrlServiceAndroid::IsPrepopulatedTemplate(TemplateURL* url) { |
141 return url->prepopulate_id() > 0; | 142 return url->prepopulate_id() > 0; |
142 } | 143 } |
143 | 144 |
144 void TemplateUrlServiceAndroid::OnTemplateURLServiceLoaded() { | 145 void TemplateUrlServiceAndroid::OnTemplateURLServiceLoaded() { |
145 template_url_subscription_.reset(); | 146 template_url_subscription_.reset(); |
146 JNIEnv* env = base::android::AttachCurrentThread(); | 147 JNIEnv* env = base::android::AttachCurrentThread(); |
147 if (weak_java_obj_.get(env).is_null()) | 148 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) { | 277 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { |
277 TemplateUrlServiceAndroid* template_url_service_android = | 278 TemplateUrlServiceAndroid* template_url_service_android = |
278 new TemplateUrlServiceAndroid(env, obj); | 279 new TemplateUrlServiceAndroid(env, obj); |
279 return reinterpret_cast<intptr_t>(template_url_service_android); | 280 return reinterpret_cast<intptr_t>(template_url_service_android); |
280 } | 281 } |
281 | 282 |
282 // static | 283 // static |
283 bool TemplateUrlServiceAndroid::Register(JNIEnv* env) { | 284 bool TemplateUrlServiceAndroid::Register(JNIEnv* env) { |
284 return RegisterNativesImpl(env); | 285 return RegisterNativesImpl(env); |
285 } | 286 } |
OLD | NEW |