| 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 f84fe7478460ea3ec11eb8f971f6f8386c468fc3..a17d5b9d4085734b6a3636f212e245b17618a4f2 100644
|
| --- a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc
|
| +++ b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc
|
| @@ -17,6 +17,7 @@
|
| #include "ash/system/power/power_status_observer.h"
|
| #include "ash/system/tray/system_tray.h"
|
| #include "ash/system/tray/system_tray_delegate.h"
|
| +#include "ash/system/tray/system_tray_notifier.h"
|
| #include "ash/system/tray_accessibility.h"
|
| #include "ash/system/tray_caps_lock.h"
|
| #include "ash/system/user/update_observer.h"
|
| @@ -176,8 +177,7 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
| screen_locked_(false),
|
| connected_network_state_(STATE_UNKNOWN),
|
| data_promo_notification_(new DataPromoNotification()),
|
| - volume_control_delegate_(ALLOW_THIS_IN_INITIALIZER_LIST(
|
| - new VolumeController)) {
|
| + volume_control_delegate_(new VolumeController()) {
|
| // Register notifications on construction so that events such as
|
| // PROFILE_CREATED do not get missed if they happen before Initialize().
|
| registrar_.Add(this,
|
| @@ -625,7 +625,7 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
| }
|
|
|
| virtual void ToggleWifi() OVERRIDE {
|
| - GetSystemTray()->network_observer()->OnWillToggleWifi();
|
| + GetSystemTrayNotifier()->NotifyWillToggleWifi();
|
| network_menu_->ToggleWifi();
|
| }
|
|
|
| @@ -739,6 +739,10 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
| return ash::Shell::GetInstance()->system_tray();
|
| }
|
|
|
| + ash::SystemTrayNotifier* GetSystemTrayNotifier() {
|
| + return ash::Shell::GetInstance()->system_tray_notifier();
|
| + }
|
| +
|
| // Returns the last active browser. If there is no such browser, creates a new
|
| // browser window with an empty tab and returns it.
|
| Browser* GetAppropriateBrowser() {
|
| @@ -771,44 +775,22 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
| void UpdateClockType(PrefServiceBase* service) {
|
| clock_type_ = service->GetBoolean(prefs::kUse24HourClock) ?
|
| base::k24HourClock : base::k12HourClock;
|
| - ash::ClockObserver* observer = GetSystemTray()->clock_observer();
|
| - if (observer)
|
| - observer->OnDateFormatChanged();
|
| + GetSystemTrayNotifier()->NotifyDateFormatChanged();
|
| }
|
|
|
| void UpdateShowLogoutButtonInTray(PrefServiceBase* service) {
|
| - ash::LogoutButtonObserver* observer =
|
| - GetSystemTray()->logout_button_observer();
|
| - if (observer) {
|
| - observer->OnShowLogoutButtonInTrayChanged(
|
| - service->GetBoolean(prefs::kShowLogoutButtonInTray));
|
| - }
|
| - }
|
| -
|
| - void NotifyRefreshClock() {
|
| - ash::ClockObserver* observer = GetSystemTray()->clock_observer();
|
| - if (observer)
|
| - observer->Refresh();
|
| + GetSystemTrayNotifier()->NotifyShowLoginButtonChanged(
|
| + service->GetBoolean(prefs::kShowLogoutButtonInTray));
|
| }
|
|
|
| void NotifyRefreshNetwork() {
|
| - ash::NetworkObserver* observer = GetSystemTray()->network_observer();
|
| chromeos::NetworkLibrary* crosnet =
|
| chromeos::CrosLibrary::Get()->GetNetworkLibrary();
|
| - if (observer) {
|
| - ash::NetworkIconInfo info;
|
| - info.image = network_icon_->GetIconAndText(&info.description);
|
| - info.tray_icon_visible = network_icon_->ShouldShowIconInTray();
|
| - observer->OnNetworkRefresh(info);
|
| - }
|
| -
|
| - ash::NetworkObserver* vpn_observer = GetSystemTray()->vpn_observer();
|
| - if (vpn_observer) {
|
| - ash::NetworkIconInfo info;
|
| - info.image = network_icon_->GetIconAndText(&info.description);
|
| - info.tray_icon_visible = network_icon_->ShouldShowIconInTray();
|
| - vpn_observer->OnNetworkRefresh(info);
|
| - }
|
| + ash::NetworkIconInfo info;
|
| + info.image = network_icon_->GetIconAndText(&info.description);
|
| + info.tray_icon_visible = network_icon_->ShouldShowIconInTray();
|
| + GetSystemTrayNotifier()->NotifyRefreshNetwork(info);
|
| + GetSystemTrayNotifier()->NotifyVpnRefreshNetwork(info);
|
|
|
| // Update Accessibility.
|
|
|
| @@ -838,30 +820,6 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
| connected_network_state_ = connected_network_state;
|
| }
|
|
|
| - void NotifyRefreshBluetooth() {
|
| - ash::BluetoothObserver* observer = GetSystemTray()->bluetooth_observer();
|
| - if (observer)
|
| - observer->OnBluetoothRefresh();
|
| - }
|
| -
|
| - void NotifyBluetoothDiscoveringChanged() {
|
| - ash::BluetoothObserver* observer = GetSystemTray()->bluetooth_observer();
|
| - if (observer)
|
| - observer->OnBluetoothDiscoveringChanged();
|
| - }
|
| -
|
| - void NotifyRefreshIME(bool show_message) {
|
| - ash::IMEObserver* observer = GetSystemTray()->ime_observer();
|
| - if (observer)
|
| - observer->OnIMERefresh(show_message);
|
| - }
|
| -
|
| - void NotifyRefreshDrive(ash::DriveOperationStatusList& list) {
|
| - ash::DriveObserver* observer = GetSystemTray()->drive_observer();
|
| - if (observer)
|
| - observer->OnDriveRefresh(list);
|
| - }
|
| -
|
| void RefreshNetworkObserver(NetworkLibrary* crosnet) {
|
| const Network* network = crosnet->active_network();
|
| std::string new_path = network ? network->service_path() : std::string();
|
| @@ -983,29 +941,27 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
| // Overridden from AudioHandler::VolumeObserver.
|
| virtual void OnVolumeChanged() OVERRIDE {
|
| float level = AudioHandler::GetInstance()->GetVolumePercent() / 100.f;
|
| - GetSystemTray()->audio_observer()->OnVolumeChanged(level);
|
| + GetSystemTrayNotifier()->NotifyVolumeChanged(level);
|
| }
|
|
|
| // Overridden from AudioHandler::VolumeObserver.
|
| virtual void OnMuteToggled() OVERRIDE {
|
| - GetSystemTray()->audio_observer()->OnMuteToggled();
|
| + GetSystemTrayNotifier()->NotifyMuteToggled();
|
| }
|
|
|
| // Overridden from PowerManagerClient::Observer.
|
| virtual void BrightnessChanged(int level, bool user_initiated) OVERRIDE {
|
| - GetSystemTray()->brightness_observer()->
|
| - OnBrightnessChanged(static_cast<double>(level), user_initiated);
|
| + double leveld = static_cast<double>(level);
|
| + GetSystemTrayNotifier()->NotifyBrightnessChanged(leveld, user_initiated);
|
| }
|
|
|
| virtual void PowerChanged(const PowerSupplyStatus& power_status) OVERRIDE {
|
| power_supply_status_ = power_status;
|
| - FOR_EACH_OBSERVER(ash::PowerStatusObserver,
|
| - GetSystemTray()->power_status_observers(),
|
| - OnPowerStatusChanged(power_status));
|
| + GetSystemTrayNotifier()->NotifyPowerStatusChanged(power_status);
|
| }
|
|
|
| virtual void SystemResumed() OVERRIDE {
|
| - NotifyRefreshClock();
|
| + GetSystemTrayNotifier()->NotifyRefreshClock();
|
| }
|
|
|
| // Overridden from SessionManagerClient::Observer.
|
| @@ -1094,18 +1050,14 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
| severity = ash::UpdateObserver::UPDATE_NORMAL;
|
| break;
|
| }
|
| - ash::UpdateObserver* observer = GetSystemTray()->update_observer();
|
| - if (observer)
|
| - observer->OnUpdateRecommended(severity);
|
| + GetSystemTrayNotifier()->NotifyUpdateRecommended(severity);
|
| break;
|
| }
|
| case chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED: {
|
| // This notification is also sent on login screen when user avatar
|
| // is loaded from file.
|
| if (GetUserLoginStatus() != ash::user::LOGGED_IN_NONE) {
|
| - ash::UserObserver* observer = GetSystemTray()->user_observer();
|
| - if (observer)
|
| - observer->OnUserUpdate();
|
| + GetSystemTrayNotifier()->NotifyUserUpdate();
|
| }
|
| break;
|
| }
|
| @@ -1140,12 +1092,8 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
| 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));
|
| - }
|
| + GetSystemTrayNotifier()->NotifyAccessibilityModeChanged(
|
| + service->GetBoolean(prefs::kSpokenFeedbackEnabled));
|
| } else if (pref == prefs::kShowLogoutButtonInTray) {
|
| UpdateShowLogoutButtonInTray(service);
|
| } else {
|
| @@ -1156,19 +1104,19 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
| // Overridden from InputMethodManager::Observer.
|
| virtual void InputMethodChanged(
|
| input_method::InputMethodManager* manager, bool show_message) OVERRIDE {
|
| - NotifyRefreshIME(show_message);
|
| + GetSystemTrayNotifier()->NotifyRefreshIME(show_message);
|
| }
|
|
|
| virtual void InputMethodPropertyChanged(
|
| input_method::InputMethodManager* manager) OVERRIDE {
|
| - NotifyRefreshIME(false);
|
| + GetSystemTrayNotifier()->NotifyRefreshIME(false);
|
| }
|
|
|
| // google_apis::DriveServiceObserver overrides.
|
| virtual void OnProgressUpdate(
|
| const google_apis::OperationProgressStatusList& list) OVERRIDE {
|
| std::vector<ash::DriveOperationStatus> ui_list = GetDriveStatusList(list);
|
| - NotifyRefreshDrive(ui_list);
|
| + GetSystemTrayNotifier()->NotifyRefreshDrive(ui_list);
|
|
|
| // If we have something to report right now (i.e. completion status only),
|
| // we need to delayed re-check the status in few seconds to ensure we
|
| @@ -1217,38 +1165,38 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
|
|
| // Overridden from system::TimezoneSettings::Observer.
|
| virtual void TimezoneChanged(const icu::TimeZone& timezone) OVERRIDE {
|
| - NotifyRefreshClock();
|
| + GetSystemTrayNotifier()->NotifyRefreshClock();
|
| }
|
|
|
| // Overridden from BluetoothAdapter::Observer.
|
| virtual void AdapterPresentChanged(device::BluetoothAdapter* adapter,
|
| bool present) OVERRIDE {
|
| - NotifyRefreshBluetooth();
|
| + GetSystemTrayNotifier()->NotifyRefreshBluetooth();
|
| }
|
|
|
| virtual void AdapterPoweredChanged(device::BluetoothAdapter* adapter,
|
| bool powered) OVERRIDE {
|
| - NotifyRefreshBluetooth();
|
| + GetSystemTrayNotifier()->NotifyRefreshBluetooth();
|
| }
|
|
|
| virtual void AdapterDiscoveringChanged(device::BluetoothAdapter* adapter,
|
| bool discovering) OVERRIDE {
|
| - NotifyBluetoothDiscoveringChanged();
|
| + GetSystemTrayNotifier()->NotifyBluetoothDiscoveringChanged();
|
| }
|
|
|
| virtual void DeviceAdded(device::BluetoothAdapter* adapter,
|
| device::BluetoothDevice* device) OVERRIDE {
|
| - NotifyRefreshBluetooth();
|
| + GetSystemTrayNotifier()->NotifyRefreshBluetooth();
|
| }
|
|
|
| virtual void DeviceChanged(device::BluetoothAdapter* adapter,
|
| device::BluetoothDevice* device) OVERRIDE {
|
| - NotifyRefreshBluetooth();
|
| + GetSystemTrayNotifier()->NotifyRefreshBluetooth();
|
| }
|
|
|
| virtual void DeviceRemoved(device::BluetoothAdapter* adapter,
|
| device::BluetoothDevice* device) OVERRIDE {
|
| - NotifyRefreshBluetooth();
|
| + GetSystemTrayNotifier()->NotifyRefreshBluetooth();
|
| }
|
|
|
| // Overridden from SystemKeyEventListener::CapsLockObserver.
|
| @@ -1257,10 +1205,8 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
| if (!base::chromeos::IsRunningOnChromeOS() ||
|
| search_key_mapped_to_ == input_method::kCapsLockKey)
|
| search_mapped_to_caps_lock = true;
|
| -
|
| - ash::CapsLockObserver* observer = GetSystemTray()->caps_lock_observer();
|
| - if (observer)
|
| - observer->OnCapsLockChanged(enabled, search_mapped_to_caps_lock);
|
| + GetSystemTrayNotifier()->NotifyCapsLockChanged(
|
| + enabled, search_mapped_to_caps_lock);
|
| }
|
|
|
| // Overridden from ash::NetworkTrayDelegate
|
|
|