Chromium Code Reviews| Index: chrome/browser/search_engines/template_url_service_android.cc |
| diff --git a/chrome/browser/search_engines/template_url_service_android.cc b/chrome/browser/search_engines/template_url_service_android.cc |
| index a84dd04b1317b80ba79d8ae9fc6040b2748bb0df..7f7f41e58c1dd13735ea4d8211aba0efd4f5695d 100644 |
| --- a/chrome/browser/search_engines/template_url_service_android.cc |
| +++ b/chrome/browser/search_engines/template_url_service_android.cc |
| @@ -5,18 +5,16 @@ |
| #include "chrome/browser/search_engines/template_url_service_android.h" |
| #include "base/android/jni_string.h" |
| +#include "base/bind.h" |
| #include "base/format_macros.h" |
| #include "base/strings/stringprintf.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "chrome/browser/browser_process.h" |
| -#include "chrome/browser/chrome_notification_types.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 "content/public/browser/notification_source.h" |
| #include "jni/TemplateUrlService_jni.h" |
| using base::android::ConvertJavaStringToUTF16; |
| @@ -37,27 +35,17 @@ TemplateUrlServiceAndroid::TemplateUrlServiceAndroid(JNIEnv* env, |
| : weak_java_obj_(env, obj), |
| template_url_service_( |
| TemplateURLServiceFactory::GetForProfile(GetOriginalProfile())) { |
| - registrar_.Add(this, |
| - chrome::NOTIFICATION_TEMPLATE_URL_SERVICE_LOADED, |
| - content::Source<TemplateURLService>(template_url_service_)); |
| + if (template_url_service_) { |
| + template_url_subscription_ = |
| + template_url_service_->RegisterOnLoadedCallback( |
| + base::Bind(&TemplateUrlServiceAndroid::OnTemplateURLServiceLoaded, |
| + base::Unretained(this))); |
| + } |
| } |
| TemplateUrlServiceAndroid::~TemplateUrlServiceAndroid() { |
| } |
| -void TemplateUrlServiceAndroid::Observe( |
| - int type, |
| - const content::NotificationSource& source, |
| - const content::NotificationDetails& details) { |
| - DCHECK_EQ(chrome::NOTIFICATION_TEMPLATE_URL_SERVICE_LOADED, type); |
| - JNIEnv* env = base::android::AttachCurrentThread(); |
| - if (weak_java_obj_.get(env).is_null()) |
| - return; |
| - |
| - Java_TemplateUrlService_templateUrlServiceLoaded(env, |
| - weak_java_obj_.get(env).obj()); |
| -} |
| - |
| void TemplateUrlServiceAndroid::Load(JNIEnv* env, jobject obj) { |
| template_url_service_->Load(); |
| } |
| @@ -140,6 +128,16 @@ bool TemplateUrlServiceAndroid::IsPrepopulatedTemplate(TemplateURL* url) { |
| return url->prepopulate_id() > 0; |
| } |
| +void TemplateUrlServiceAndroid::OnTemplateURLServiceLoaded() { |
| + template_url_subscription_.reset(); |
| + JNIEnv* env = base::android::AttachCurrentThread(); |
| + if (weak_java_obj_.get(env).is_null()) |
| + return; |
| + |
| + Java_TemplateUrlService_templateUrlServiceLoaded(env, |
|
Peter Kasting
2013/10/02 22:22:04
Nit: Move this arg to the next line so we don't ha
Cait (Slow)
2013/10/03 15:36:45
Done.
|
| + weak_java_obj_.get(env).obj()); |
| +} |
| + |
| base::android::ScopedJavaLocalRef<jstring> |
| TemplateUrlServiceAndroid::GetUrlForSearchQuery(JNIEnv* env, |
| jobject obj, |