Chromium Code Reviews| Index: chrome/browser/chromeos/system/ash_system_tray_delegate.cc |
| diff --git a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc |
| index 9ac78405ad2f5b8083346b689229034c196988d9..db249a5b6edd460ebb6c6075fbe2883d2d32b176 100644 |
| --- a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc |
| +++ b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc |
| @@ -27,7 +27,6 @@ |
| #include "base/chromeos/chromeos_version.h" |
| #include "base/logging.h" |
| #include "base/memory/weak_ptr.h" |
| -#include "base/prefs/public/pref_observer.h" |
| #include "base/utf_string_conversions.h" |
| #include "chrome/browser/browser_process.h" |
| #include "chrome/browser/chromeos/accessibility/accessibility_util.h" |
| @@ -153,7 +152,6 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, |
| public NetworkLibrary::NetworkManagerObserver, |
| public NetworkLibrary::NetworkObserver, |
| public NetworkLibrary::CellularDataPlanObserver, |
| - public PrefObserver, |
| public google_apis::DriveServiceObserver, |
| public content::NotificationObserver, |
| public input_method::InputMethodManager::Observer, |
| @@ -218,8 +216,11 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, |
| if (SystemKeyEventListener::GetInstance()) |
| SystemKeyEventListener::GetInstance()->AddCapsLockObserver(this); |
| - accessibility_enabled_.Init(prefs::kSpokenFeedbackEnabled, |
| - g_browser_process->local_state(), this); |
| + accessibility_enabled_.Init( |
| + prefs::kSpokenFeedbackEnabled, |
| + g_browser_process->local_state(), |
| + base::Bind(&SystemTrayDelegate::OnPreferenceChanged, |
| + base::Unretained(this))); |
| network_icon_->SetResourceColorTheme(NetworkMenuIcon::COLOR_LIGHT); |
| network_icon_dark_->SetResourceColorTheme(NetworkMenuIcon::COLOR_DARK); |
| @@ -752,11 +753,19 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, |
| PrefService* prefs = profile->GetPrefs(); |
| pref_registrar_.reset(new PrefChangeRegistrar); |
| pref_registrar_->Init(prefs); |
| - pref_registrar_->Add(prefs::kUse24HourClock, this); |
| - pref_registrar_->Add(prefs::kLanguageRemapSearchKeyTo, this); |
| - pref_registrar_->Add(prefs::kShowLogoutButtonInTray, this); |
| - UpdateClockType(prefs); |
| - UpdateShowLogoutButtonInTray(prefs); |
| + pref_registrar_->Add(prefs::kUse24HourClock, |
|
Mattias Nissler (ping if slow)
2012/11/13 14:11:31
nit: I'd put a linebreak here as well for consiste
Jói
2012/11/13 14:22:38
Done.
|
| + base::Bind(&SystemTrayDelegate::UpdateClockType, |
| + base::Unretained(this))); |
| + pref_registrar_->Add( |
| + prefs::kLanguageRemapSearchKeyTo, |
| + base::Bind(&SystemTrayDelegate::OnLanguageRemapSearchKeyToChanged, |
| + base::Unretained(this))); |
| + pref_registrar_->Add( |
| + prefs::kShowLogoutButtonInTray, |
| + base::Bind(&SystemTrayDelegate::UpdateShowLogoutButtonInTray, |
| + base::Unretained(this))); |
| + UpdateClockType(); |
| + UpdateShowLogoutButtonInTray(); |
| search_key_mapped_to_ = |
| profile->GetPrefs()->GetInteger(prefs::kLanguageRemapSearchKeyTo); |
| } |
| @@ -769,20 +778,20 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, |
| system_service->drive_service()->AddObserver(this); |
| } |
| - void UpdateClockType(PrefServiceBase* service) { |
| - clock_type_ = service->GetBoolean(prefs::kUse24HourClock) ? |
| + void UpdateClockType() { |
| + clock_type_ = pref_registrar_->prefs()->GetBoolean(prefs::kUse24HourClock) ? |
| base::k24HourClock : base::k12HourClock; |
| ash::ClockObserver* observer = GetSystemTray()->clock_observer(); |
| if (observer) |
| observer->OnDateFormatChanged(); |
| } |
| - void UpdateShowLogoutButtonInTray(PrefServiceBase* service) { |
| + void UpdateShowLogoutButtonInTray() { |
| ash::LogoutButtonObserver* observer = |
| GetSystemTray()->logout_button_observer(); |
| if (observer) { |
| observer->OnShowLogoutButtonInTrayChanged( |
| - service->GetBoolean(prefs::kShowLogoutButtonInTray)); |
| + pref_registrar_->prefs()->GetBoolean(prefs::kShowLogoutButtonInTray)); |
| } |
| } |
| @@ -1133,24 +1142,18 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, |
| } |
| } |
| - virtual void OnPreferenceChanged(PrefServiceBase* service, |
| - const std::string& pref) OVERRIDE { |
| - if (pref == prefs::kUse24HourClock) { |
| - UpdateClockType(service); |
| - } else if (pref == prefs::kLanguageRemapSearchKeyTo) { |
| - search_key_mapped_to_ = |
| - service->GetInteger(prefs::kLanguageRemapSearchKeyTo); |
| - } else if (pref == prefs::kSpokenFeedbackEnabled) { |
| - ash::AccessibilityObserver* observer = |
| - GetSystemTray()->accessibility_observer(); |
| - if (observer) { |
| - observer->OnAccessibilityModeChanged( |
| - service->GetBoolean(prefs::kSpokenFeedbackEnabled)); |
| - } |
| - } else if (pref == prefs::kShowLogoutButtonInTray) { |
| - UpdateShowLogoutButtonInTray(service); |
| - } else { |
| - NOTREACHED(); |
| + void OnLanguageRemapSearchKeyToChanged() { |
| + search_key_mapped_to_ = pref_registrar_->prefs()->GetInteger( |
| + prefs::kLanguageRemapSearchKeyTo); |
| + } |
| + |
| + void OnSpokenFeedbackEnabledChanged() { |
| + ash::AccessibilityObserver* observer = |
| + GetSystemTray()->accessibility_observer(); |
| + if (observer) { |
| + observer->OnAccessibilityModeChanged( |
| + accessibility_enabled_->prefs()->GetBoolean( |
| + prefs::kSpokenFeedbackEnabled)); |
| } |
| } |