Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(62)

Side by Side Diff: chrome/browser/chromeos/system/ash_system_tray_delegate.cc

Issue 10837318: Revert 151911 - Fixing gdata updates in the system tray. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/chromeos/system/ash_system_tray_delegate.h" 5 #include "chrome/browser/chromeos/system/ash_system_tray_delegate.h"
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/shell_window_ids.h" 8 #include "ash/shell_window_ids.h"
9 #include "ash/system/audio/audio_observer.h" 9 #include "ash/system/audio/audio_observer.h"
10 #include "ash/system/bluetooth/bluetooth_observer.h" 10 #include "ash/system/bluetooth/bluetooth_observer.h"
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, 201 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED,
202 content::NotificationService::AllSources()); 202 content::NotificationService::AllSources());
203 if (GetUserLoginStatus() == ash::user::LOGGED_IN_NONE) { 203 if (GetUserLoginStatus() == ash::user::LOGGED_IN_NONE) {
204 registrar_.Add(this, 204 registrar_.Add(this,
205 chrome::NOTIFICATION_SESSION_STARTED, 205 chrome::NOTIFICATION_SESSION_STARTED,
206 content::NotificationService::AllSources()); 206 content::NotificationService::AllSources());
207 } 207 }
208 registrar_.Add(this, 208 registrar_.Add(this,
209 chrome::NOTIFICATION_PROFILE_CREATED, 209 chrome::NOTIFICATION_PROFILE_CREATED,
210 content::NotificationService::AllSources()); 210 content::NotificationService::AllSources());
211 registrar_.Add(this,
212 chrome::NOTIFICATION_LOGIN_USER_CHANGED,
213 content::NotificationService::AllSources());
214 211
215 accessibility_enabled_.Init(prefs::kSpokenFeedbackEnabled, 212 accessibility_enabled_.Init(prefs::kSpokenFeedbackEnabled,
216 g_browser_process->local_state(), this); 213 g_browser_process->local_state(), this);
217 214
218 network_icon_->SetResourceColorTheme(NetworkMenuIcon::COLOR_LIGHT); 215 network_icon_->SetResourceColorTheme(NetworkMenuIcon::COLOR_LIGHT);
219 network_icon_dark_->SetResourceColorTheme(NetworkMenuIcon::COLOR_DARK); 216 network_icon_dark_->SetResourceColorTheme(NetworkMenuIcon::COLOR_DARK);
220 217
221 bluetooth_adapter_ = BluetoothAdapter::DefaultAdapter(); 218 bluetooth_adapter_ = BluetoothAdapter::DefaultAdapter();
222 bluetooth_adapter_->AddObserver(this); 219 bluetooth_adapter_->AddObserver(this);
223 } 220 }
224 221
225 virtual ~SystemTrayDelegate() { 222 virtual ~SystemTrayDelegate() {
226 AudioHandler* audiohandler = AudioHandler::GetInstance(); 223 AudioHandler* audiohandler = AudioHandler::GetInstance();
227 if (audiohandler) 224 if (audiohandler)
228 audiohandler->RemoveVolumeObserver(this); 225 audiohandler->RemoveVolumeObserver(this);
229 DBusThreadManager::Get()->GetSessionManagerClient()->RemoveObserver(this); 226 DBusThreadManager::Get()->GetSessionManagerClient()->RemoveObserver(this);
230 DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); 227 DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this);
231 NetworkLibrary* crosnet = CrosLibrary::Get()->GetNetworkLibrary(); 228 NetworkLibrary* crosnet = CrosLibrary::Get()->GetNetworkLibrary();
232 if (crosnet) { 229 if (crosnet) {
233 crosnet->RemoveNetworkManagerObserver(this); 230 crosnet->RemoveNetworkManagerObserver(this);
234 crosnet->RemoveCellularDataPlanObserver(this); 231 crosnet->RemoveCellularDataPlanObserver(this);
235 } 232 }
236 input_method::InputMethodManager::GetInstance()->RemoveObserver(this); 233 input_method::InputMethodManager::GetInstance()->RemoveObserver(this);
237 system::TimezoneSettings::GetInstance()->RemoveObserver(this); 234 system::TimezoneSettings::GetInstance()->RemoveObserver(this);
238 if (SystemKeyEventListener::GetInstance()) 235 if (SystemKeyEventListener::GetInstance())
239 SystemKeyEventListener::GetInstance()->RemoveCapsLockObserver(this); 236 SystemKeyEventListener::GetInstance()->RemoveCapsLockObserver(this);
240 bluetooth_adapter_->RemoveObserver(this); 237 bluetooth_adapter_->RemoveObserver(this);
241 238
242 // Stop observing gdata operations. 239 // Stop observing gdata operations.
243 GDataSystemService* system_service = FindGDataSystemService(); 240 Profile* profile = ProfileManager::GetDefaultProfile();
244 if (system_service) { 241 if (gdata::util::IsGDataAvailable(profile)) {
245 system_service->docs_service()->operation_registry()-> 242 GDataSystemService* system_service =
246 RemoveObserver(this); 243 GDataSystemServiceFactory::FindForProfile(profile);
244 if (system_service) {
245 system_service->docs_service()->operation_registry()->
246 RemoveObserver(this);
247 }
247 } 248 }
248 } 249 }
249 250
250 // Overridden from ash::SystemTrayDelegate: 251 // Overridden from ash::SystemTrayDelegate:
251 virtual bool GetTrayVisibilityOnStartup() OVERRIDE { 252 virtual bool GetTrayVisibilityOnStartup() OVERRIDE {
252 // In case of OOBE / sign in screen tray will be shown later. 253 // In case of OOBE / sign in screen tray will be shown later.
253 return UserManager::Get()->IsUserLoggedIn(); 254 return UserManager::Get()->IsUserLoggedIn();
254 } 255 }
255 256
256 virtual const string16 GetUserDisplayName() const OVERRIDE { 257 virtual const string16 GetUserDisplayName() const OVERRIDE {
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 virtual void SwitchIME(const std::string& ime_id) OVERRIDE { 446 virtual void SwitchIME(const std::string& ime_id) OVERRIDE {
446 input_method::InputMethodManager::GetInstance()->ChangeInputMethod(ime_id); 447 input_method::InputMethodManager::GetInstance()->ChangeInputMethod(ime_id);
447 } 448 }
448 449
449 virtual void ActivateIMEProperty(const std::string& key) OVERRIDE { 450 virtual void ActivateIMEProperty(const std::string& key) OVERRIDE {
450 input_method::InputMethodManager::GetInstance()-> 451 input_method::InputMethodManager::GetInstance()->
451 ActivateInputMethodProperty(key); 452 ActivateInputMethodProperty(key);
452 } 453 }
453 454
454 virtual void CancelDriveOperation(const FilePath& file_path) OVERRIDE { 455 virtual void CancelDriveOperation(const FilePath& file_path) OVERRIDE {
455 GDataSystemService* system_service = FindGDataSystemService(); 456 Profile* profile = ProfileManager::GetDefaultProfile();
457 if (!gdata::util::IsGDataAvailable(profile))
458 return;
459
460 GDataSystemService* system_service =
461 GDataSystemServiceFactory::FindForProfile(profile);
456 if (!system_service) 462 if (!system_service)
457 return; 463 return;
458 464
459 system_service->docs_service()->operation_registry()->CancelForFilePath( 465 system_service->docs_service()->operation_registry()->CancelForFilePath(
460 file_path); 466 file_path);
461 } 467 }
462 468
463 virtual void GetDriveOperationStatusList( 469 virtual void GetDriveOperationStatusList(
464 ash::DriveOperationStatusList* list) OVERRIDE { 470 ash::DriveOperationStatusList* list) OVERRIDE {
465 GDataSystemService* system_service = FindGDataSystemService(); 471 Profile* profile = ProfileManager::GetDefaultProfile();
472 if (!gdata::util::IsGDataAvailable(profile))
473 return;
474
475 GDataSystemService* system_service =
476 GDataSystemServiceFactory::FindForProfile(profile);
466 if (!system_service) 477 if (!system_service)
467 return; 478 return;
468 479
469 *list = GetDriveStatusList( 480 *list = GetDriveStatusList(
470 system_service->docs_service()->operation_registry()-> 481 system_service->docs_service()->operation_registry()->
471 GetProgressStatusList()); 482 GetProgressStatusList());
472 } 483 }
473 484
474 485
475 virtual void GetMostRelevantNetworkIcon(ash::NetworkIconInfo* info, 486 virtual void GetMostRelevantNetworkIcon(ash::NetworkIconInfo* info,
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 } 729 }
719 730
720 void SetProfile(Profile* profile) { 731 void SetProfile(Profile* profile) {
721 pref_registrar_.reset(new PrefChangeRegistrar); 732 pref_registrar_.reset(new PrefChangeRegistrar);
722 pref_registrar_->Init(profile->GetPrefs()); 733 pref_registrar_->Init(profile->GetPrefs());
723 pref_registrar_->Add(prefs::kUse24HourClock, this); 734 pref_registrar_->Add(prefs::kUse24HourClock, this);
724 pref_registrar_->Add(prefs::kLanguageXkbRemapSearchKeyTo, this); 735 pref_registrar_->Add(prefs::kLanguageXkbRemapSearchKeyTo, this);
725 UpdateClockType(profile->GetPrefs()); 736 UpdateClockType(profile->GetPrefs());
726 search_key_mapped_to_ = 737 search_key_mapped_to_ =
727 profile->GetPrefs()->GetInteger(prefs::kLanguageXkbRemapSearchKeyTo); 738 profile->GetPrefs()->GetInteger(prefs::kLanguageXkbRemapSearchKeyTo);
728 }
729 739
730 void ObserveGDataUpdates() { 740 if (gdata::util::IsGDataAvailable(profile)) {
731 GDataSystemService* system_service = FindGDataSystemService(); 741 GDataSystemService* system_service =
732 if (!system_service) 742 GDataSystemServiceFactory::FindForProfile(profile);
733 return; 743 if (!system_service)
744 return;
734 745
735 system_service->docs_service()->operation_registry()->AddObserver(this); 746 system_service->docs_service()->operation_registry()->AddObserver(this);
747 }
736 } 748 }
737 749
738 void UpdateClockType(PrefService* service) { 750 void UpdateClockType(PrefService* service) {
739 clock_type_ = service->GetBoolean(prefs::kUse24HourClock) ? 751 clock_type_ = service->GetBoolean(prefs::kUse24HourClock) ?
740 base::k24HourClock : base::k12HourClock; 752 base::k24HourClock : base::k12HourClock;
741 ash::ClockObserver* observer = tray_->clock_observer(); 753 ash::ClockObserver* observer = tray_->clock_observer();
742 if (observer) 754 if (observer)
743 observer->OnDateFormatChanged(); 755 observer->OnDateFormatChanged();
744 } 756 }
745 757
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
1020 case chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED: { 1032 case chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED: {
1021 // This notification is also sent on login screen when user avatar 1033 // This notification is also sent on login screen when user avatar
1022 // is loaded from file. 1034 // is loaded from file.
1023 if (GetUserLoginStatus() != ash::user::LOGGED_IN_NONE) { 1035 if (GetUserLoginStatus() != ash::user::LOGGED_IN_NONE) {
1024 ash::UserObserver* observer = tray_->user_observer(); 1036 ash::UserObserver* observer = tray_->user_observer();
1025 if (observer) 1037 if (observer)
1026 observer->OnUserUpdate(); 1038 observer->OnUserUpdate();
1027 } 1039 }
1028 break; 1040 break;
1029 } 1041 }
1030 case chrome::NOTIFICATION_LOGIN_USER_CHANGED: {
1031 // GData system service exists by the time if enabled.
1032 ObserveGDataUpdates();
1033 break;
1034 }
1035 case chrome::NOTIFICATION_PREF_CHANGED: { 1042 case chrome::NOTIFICATION_PREF_CHANGED: {
1036 std::string pref = *content::Details<std::string>(details).ptr(); 1043 std::string pref = *content::Details<std::string>(details).ptr();
1037 PrefService* service = content::Source<PrefService>(source).ptr(); 1044 PrefService* service = content::Source<PrefService>(source).ptr();
1038 if (pref == prefs::kUse24HourClock) { 1045 if (pref == prefs::kUse24HourClock) {
1039 UpdateClockType(service); 1046 UpdateClockType(service);
1040 } else if (pref == prefs::kLanguageXkbRemapSearchKeyTo) { 1047 } else if (pref == prefs::kLanguageXkbRemapSearchKeyTo) {
1041 search_key_mapped_to_ = 1048 search_key_mapped_to_ =
1042 service->GetInteger(prefs::kLanguageXkbRemapSearchKeyTo); 1049 service->GetInteger(prefs::kLanguageXkbRemapSearchKeyTo);
1043 } else if (pref == prefs::kSpokenFeedbackEnabled) { 1050 } else if (pref == prefs::kSpokenFeedbackEnabled) {
1044 ash::AccessibilityObserver* observer = 1051 ash::AccessibilityObserver* observer =
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
1116 } 1123 }
1117 } 1124 }
1118 1125
1119 } 1126 }
1120 1127
1121 // Pulls the list of ongoing drive operations and initiates status update. 1128 // Pulls the list of ongoing drive operations and initiates status update.
1122 // This method is needed to ensure delayed cleanup of the latest reported 1129 // This method is needed to ensure delayed cleanup of the latest reported
1123 // status in UI in cases when there are no new changes coming (i.e. when the 1130 // status in UI in cases when there are no new changes coming (i.e. when the
1124 // last set of transfer operations completed). 1131 // last set of transfer operations completed).
1125 void RecheckGDataOperations() { 1132 void RecheckGDataOperations() {
1126 GDataSystemService* system_service = FindGDataSystemService(); 1133 Profile* profile = ProfileManager::GetDefaultProfile();
1134 if (!gdata::util::IsGDataAvailable(profile))
1135 return;
1136
1137 GDataSystemService* system_service =
1138 GDataSystemServiceFactory::FindForProfile(profile);
1127 if (!system_service) 1139 if (!system_service)
1128 return; 1140 return;
1129 1141
1130 OnProgressUpdate(system_service->docs_service()->operation_registry()-> 1142 OnProgressUpdate(system_service->docs_service()->operation_registry()->
1131 GetProgressStatusList()); 1143 GetProgressStatusList());
1132 } 1144 }
1133 1145
1134 GDataSystemService* FindGDataSystemService() {
1135 Profile* profile = ProfileManager::GetDefaultProfile();
1136 if (!gdata::util::IsGDataAvailable(profile))
1137 return NULL;
1138 return GDataSystemServiceFactory::FindForProfile(profile);
1139 }
1140
1141 // Overridden from system::TimezoneSettings::Observer. 1146 // Overridden from system::TimezoneSettings::Observer.
1142 virtual void TimezoneChanged(const icu::TimeZone& timezone) OVERRIDE { 1147 virtual void TimezoneChanged(const icu::TimeZone& timezone) OVERRIDE {
1143 NotifyRefreshClock(); 1148 NotifyRefreshClock();
1144 } 1149 }
1145 1150
1146 // Overridden from BluetoothAdapter::Observer. 1151 // Overridden from BluetoothAdapter::Observer.
1147 virtual void AdapterPresentChanged(BluetoothAdapter* adapter, 1152 virtual void AdapterPresentChanged(BluetoothAdapter* adapter,
1148 bool present) OVERRIDE { 1153 bool present) OVERRIDE {
1149 NotifyRefreshBluetooth(); 1154 NotifyRefreshBluetooth();
1150 } 1155 }
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
1249 DISALLOW_COPY_AND_ASSIGN(SystemTrayDelegate); 1254 DISALLOW_COPY_AND_ASSIGN(SystemTrayDelegate);
1250 }; 1255 };
1251 1256
1252 } // namespace 1257 } // namespace
1253 1258
1254 ash::SystemTrayDelegate* CreateSystemTrayDelegate(ash::SystemTray* tray) { 1259 ash::SystemTrayDelegate* CreateSystemTrayDelegate(ash::SystemTray* tray) {
1255 return new chromeos::SystemTrayDelegate(tray); 1260 return new chromeos::SystemTrayDelegate(tray);
1256 } 1261 }
1257 1262
1258 } // namespace chromeos 1263 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698