Commit 7b443684 authored by serya@chromium.org's avatar serya@chromium.org

Fixing gdata updates in the system tray.

BUG=141826
TEST=Manual test.


Review URL: https://chromiumcodereview.appspot.com/10854160

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151911 0039d316-1c4b-4281-b951-d872f2087c98
parent 9911993f
...@@ -208,6 +208,9 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, ...@@ -208,6 +208,9 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
registrar_.Add(this, registrar_.Add(this,
chrome::NOTIFICATION_PROFILE_CREATED, chrome::NOTIFICATION_PROFILE_CREATED,
content::NotificationService::AllSources()); content::NotificationService::AllSources());
registrar_.Add(this,
chrome::NOTIFICATION_LOGIN_USER_CHANGED,
content::NotificationService::AllSources());
accessibility_enabled_.Init(prefs::kSpokenFeedbackEnabled, accessibility_enabled_.Init(prefs::kSpokenFeedbackEnabled,
g_browser_process->local_state(), this); g_browser_process->local_state(), this);
...@@ -237,14 +240,10 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, ...@@ -237,14 +240,10 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
bluetooth_adapter_->RemoveObserver(this); bluetooth_adapter_->RemoveObserver(this);
// Stop observing gdata operations. // Stop observing gdata operations.
Profile* profile = ProfileManager::GetDefaultProfile(); GDataSystemService* system_service = FindGDataSystemService();
if (gdata::util::IsGDataAvailable(profile)) { if (system_service) {
GDataSystemService* system_service = system_service->docs_service()->operation_registry()->
GDataSystemServiceFactory::FindForProfile(profile); RemoveObserver(this);
if (system_service) {
system_service->docs_service()->operation_registry()->
RemoveObserver(this);
}
} }
} }
...@@ -453,12 +452,7 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, ...@@ -453,12 +452,7 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
} }
virtual void CancelDriveOperation(const FilePath& file_path) OVERRIDE { virtual void CancelDriveOperation(const FilePath& file_path) OVERRIDE {
Profile* profile = ProfileManager::GetDefaultProfile(); GDataSystemService* system_service = FindGDataSystemService();
if (!gdata::util::IsGDataAvailable(profile))
return;
GDataSystemService* system_service =
GDataSystemServiceFactory::FindForProfile(profile);
if (!system_service) if (!system_service)
return; return;
...@@ -468,12 +462,7 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, ...@@ -468,12 +462,7 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
virtual void GetDriveOperationStatusList( virtual void GetDriveOperationStatusList(
ash::DriveOperationStatusList* list) OVERRIDE { ash::DriveOperationStatusList* list) OVERRIDE {
Profile* profile = ProfileManager::GetDefaultProfile(); GDataSystemService* system_service = FindGDataSystemService();
if (!gdata::util::IsGDataAvailable(profile))
return;
GDataSystemService* system_service =
GDataSystemServiceFactory::FindForProfile(profile);
if (!system_service) if (!system_service)
return; return;
...@@ -736,15 +725,14 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, ...@@ -736,15 +725,14 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
UpdateClockType(profile->GetPrefs()); UpdateClockType(profile->GetPrefs());
search_key_mapped_to_ = search_key_mapped_to_ =
profile->GetPrefs()->GetInteger(prefs::kLanguageXkbRemapSearchKeyTo); profile->GetPrefs()->GetInteger(prefs::kLanguageXkbRemapSearchKeyTo);
}
if (gdata::util::IsGDataAvailable(profile)) { void ObserveGDataUpdates() {
GDataSystemService* system_service = GDataSystemService* system_service = FindGDataSystemService();
GDataSystemServiceFactory::FindForProfile(profile); if (!system_service)
if (!system_service) return;
return;
system_service->docs_service()->operation_registry()->AddObserver(this); system_service->docs_service()->operation_registry()->AddObserver(this);
}
} }
void UpdateClockType(PrefService* service) { void UpdateClockType(PrefService* service) {
...@@ -1039,6 +1027,11 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, ...@@ -1039,6 +1027,11 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
} }
break; break;
} }
case chrome::NOTIFICATION_LOGIN_USER_CHANGED: {
// GData system service exists by the time if enabled.
ObserveGDataUpdates();
break;
}
case chrome::NOTIFICATION_PREF_CHANGED: { case chrome::NOTIFICATION_PREF_CHANGED: {
std::string pref = *content::Details<std::string>(details).ptr(); std::string pref = *content::Details<std::string>(details).ptr();
PrefService* service = content::Source<PrefService>(source).ptr(); PrefService* service = content::Source<PrefService>(source).ptr();
...@@ -1130,12 +1123,7 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, ...@@ -1130,12 +1123,7 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
// status in UI in cases when there are no new changes coming (i.e. when the // status in UI in cases when there are no new changes coming (i.e. when the
// last set of transfer operations completed). // last set of transfer operations completed).
void RecheckGDataOperations() { void RecheckGDataOperations() {
Profile* profile = ProfileManager::GetDefaultProfile(); GDataSystemService* system_service = FindGDataSystemService();
if (!gdata::util::IsGDataAvailable(profile))
return;
GDataSystemService* system_service =
GDataSystemServiceFactory::FindForProfile(profile);
if (!system_service) if (!system_service)
return; return;
...@@ -1143,6 +1131,13 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, ...@@ -1143,6 +1131,13 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
GetProgressStatusList()); GetProgressStatusList());
} }
GDataSystemService* FindGDataSystemService() {
Profile* profile = ProfileManager::GetDefaultProfile();
if (!gdata::util::IsGDataAvailable(profile))
return NULL;
return GDataSystemServiceFactory::FindForProfile(profile);
}
// Overridden from system::TimezoneSettings::Observer. // Overridden from system::TimezoneSettings::Observer.
virtual void TimezoneChanged(const icu::TimeZone& timezone) OVERRIDE { virtual void TimezoneChanged(const icu::TimeZone& timezone) OVERRIDE {
NotifyRefreshClock(); NotifyRefreshClock();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment