| 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 fd730c3daa8c38335a46bab57cd346ca751226b3..31f2ff2527b36a9a6a26c35c924a959c3353dcd0 100644
|
| --- a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc
|
| +++ b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc
|
| @@ -26,6 +26,7 @@
|
| #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"
|
| @@ -151,6 +152,7 @@ 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,
|
| @@ -1088,26 +1090,6 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
| ObserveGDataUpdates();
|
| break;
|
| }
|
| - case chrome::NOTIFICATION_PREF_CHANGED: {
|
| - std::string pref = *content::Details<std::string>(details).ptr();
|
| - PrefService* service = content::Source<PrefService>(source).ptr();
|
| - if (pref == prefs::kUse24HourClock) {
|
| - UpdateClockType(service);
|
| - } else if (pref == prefs::kLanguageXkbRemapSearchKeyTo) {
|
| - search_key_mapped_to_ =
|
| - service->GetInteger(prefs::kLanguageXkbRemapSearchKeyTo);
|
| - } else if (pref == prefs::kSpokenFeedbackEnabled) {
|
| - ash::AccessibilityObserver* observer =
|
| - tray_->accessibility_observer();
|
| - if (observer) {
|
| - observer->OnAccessibilityModeChanged(
|
| - service->GetBoolean(prefs::kSpokenFeedbackEnabled));
|
| - }
|
| - } else {
|
| - NOTREACHED();
|
| - }
|
| - break;
|
| - }
|
| case chrome::NOTIFICATION_PROFILE_CREATED: {
|
| SetProfile(content::Source<Profile>(source).ptr());
|
| registrar_.Remove(this,
|
| @@ -1126,6 +1108,25 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
| }
|
| }
|
|
|
| + virtual void OnPreferenceChanged(PrefServiceBase* service,
|
| + const std::string& pref) OVERRIDE {
|
| + if (pref == prefs::kUse24HourClock) {
|
| + UpdateClockType(static_cast<PrefService*>(service));
|
| + } else if (pref == prefs::kLanguageXkbRemapSearchKeyTo) {
|
| + search_key_mapped_to_ =
|
| + service->GetInteger(prefs::kLanguageXkbRemapSearchKeyTo);
|
| + } else if (pref == prefs::kSpokenFeedbackEnabled) {
|
| + ash::AccessibilityObserver* observer =
|
| + tray_->accessibility_observer();
|
| + if (observer) {
|
| + observer->OnAccessibilityModeChanged(
|
| + service->GetBoolean(prefs::kSpokenFeedbackEnabled));
|
| + }
|
| + } else {
|
| + NOTREACHED();
|
| + }
|
| + }
|
| +
|
| // Overridden from InputMethodManager::Observer.
|
| virtual void InputMethodChanged(
|
| input_method::InputMethodManager* manager, bool show_message) OVERRIDE {
|
|
|