summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-17 17:39:25 +0000
committersadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-17 17:39:25 +0000
commita0bd3fbc565acf25bfb77e6240d89ab4d24c5399 (patch)
tree84a7baab8427802519d1470d167def5a2f7d5be6
parent9c55f7f401c1238d4f7e28f958dd7b0e513eb85d (diff)
downloadchromium_src-a0bd3fbc565acf25bfb77e6240d89ab4d24c5399.zip
chromium_src-a0bd3fbc565acf25bfb77e6240d89ab4d24c5399.tar.gz
chromium_src-a0bd3fbc565acf25bfb77e6240d89ab4d24c5399.tar.bz2
ash: Make sure the time in the uber tray is updated when the system resumes from suspend.
BUG=110130 TEST=none Review URL: https://chromiumcodereview.appspot.com/9716015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127368 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ash/ash.gyp2
-rw-r--r--ash/shell.cc2
-rw-r--r--ash/system/power/clock_observer.h22
-rw-r--r--ash/system/power/date_format_observer.h19
-rw-r--r--ash/system/power/tray_power_date.cc6
-rw-r--r--ash/system/power/tray_power_date.h7
-rw-r--r--ash/system/tray/system_tray.cc2
-rw-r--r--ash/system/tray/system_tray.h8
-rw-r--r--chrome/browser/chromeos/system/ash_system_tray_delegate.cc13
9 files changed, 48 insertions, 33 deletions
diff --git a/ash/ash.gyp b/ash/ash.gyp
index bb22570..28284e6 100644
--- a/ash/ash.gyp
+++ b/ash/ash.gyp
@@ -123,7 +123,7 @@
'system/network/network_observer.h',
'system/network/tray_network.cc',
'system/network/tray_network.h',
- 'system/power/date_format_observer.h',
+ 'system/power/clock_observer.h',
'system/power/power_status_observer.h',
'system/power/power_supply_status.cc',
'system/power/power_supply_status.h',
diff --git a/ash/shell.cc b/ash/shell.cc
index 0f6d076..a633b33 100644
--- a/ash/shell.cc
+++ b/ash/shell.cc
@@ -557,7 +557,7 @@ void Shell::Init() {
internal::TrayUser* tray_user = new internal::TrayUser;
tray_->audio_observer_ = tray_volume;
tray_->brightness_observer_ = tray_brightness;
- tray_->date_format_observer_ = tray_power_date;
+ tray_->clock_observer_ = tray_power_date;
tray_->network_observer_ = tray_network;
tray_->power_status_observer_ = tray_power_date;
tray_->update_observer_ = tray_user;
diff --git a/ash/system/power/clock_observer.h b/ash/system/power/clock_observer.h
new file mode 100644
index 0000000..15747f0
--- /dev/null
+++ b/ash/system/power/clock_observer.h
@@ -0,0 +1,22 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_SYSTEM_POWER_CLOCK_OBSERVER_H_
+#define ASH_SYSTEM_POWER_CLOCK_OBSERVER_H_
+
+namespace ash {
+
+class ClockObserver {
+ public:
+ virtual ~ClockObserver() {}
+
+ virtual void OnDateFormatChanged() = 0;
+
+ // Force a refresh (e.g. after the system is resumed).
+ virtual void Refresh() = 0;
+};
+
+};
+
+#endif // ASH_SYSTEM_POWER_CLOCK_OBSERVER_H_
diff --git a/ash/system/power/date_format_observer.h b/ash/system/power/date_format_observer.h
deleted file mode 100644
index dd45a4f..0000000
--- a/ash/system/power/date_format_observer.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_SYSTEM_POWER_DATE_FORMAT_OBSERVER_H_
-#define ASH_SYSTEM_POWER_DATE_FORMAT_OBSERVER_H_
-
-namespace ash {
-
-class DateFormatObserver {
- public:
- virtual ~DateFormatObserver() {}
-
- virtual void OnDateFormatChanged() = 0;
-};
-
-};
-
-#endif // ASH_SYSTEM_POWER_DATE_FORMAT_OBSERVER_H_
diff --git a/ash/system/power/tray_power_date.cc b/ash/system/power/tray_power_date.cc
index 6bb8530..e5e3199 100644
--- a/ash/system/power/tray_power_date.cc
+++ b/ash/system/power/tray_power_date.cc
@@ -105,7 +105,6 @@ class DateView : public views::View {
void set_actionable(bool actionable) { actionable_ = actionable; }
- private:
void UpdateText() {
base::Time now = base::Time::Now();
if (type_ == DATE) {
@@ -139,6 +138,7 @@ class DateView : public views::View {
&DateView::UpdateText);
}
+ private:
// Overridden from views::View.
virtual bool OnMousePressed(const views::MouseEvent& event) OVERRIDE {
if (!actionable_)
@@ -355,5 +355,9 @@ void TrayPowerDate::OnDateFormatChanged() {
date_tray_->UpdateTimeFormat();
}
+void TrayPowerDate::Refresh() {
+ date_tray_->UpdateText();
+}
+
} // namespace internal
} // namespace ash
diff --git a/ash/system/power/tray_power_date.h b/ash/system/power/tray_power_date.h
index 98095f5..bfbc674 100644
--- a/ash/system/power/tray_power_date.h
+++ b/ash/system/power/tray_power_date.h
@@ -6,7 +6,7 @@
#define ASH_SYSTEM_POWER_TRAY_POWER_DATE_H_
#pragma once
-#include "ash/system/power/date_format_observer.h"
+#include "ash/system/power/clock_observer.h"
#include "ash/system/power/power_status_observer.h"
#include "ash/system/tray/system_tray_item.h"
@@ -21,7 +21,7 @@ class PowerTrayView;
class TrayPowerDate : public SystemTrayItem,
public PowerStatusObserver,
- public DateFormatObserver {
+ public ClockObserver {
public:
TrayPowerDate();
virtual ~TrayPowerDate();
@@ -38,8 +38,9 @@ class TrayPowerDate : public SystemTrayItem,
// Overridden from PowerStatusObserver.
virtual void OnPowerStatusChanged(const PowerSupplyStatus& status) OVERRIDE;
- // Overridden from DateFormatObserver.
+ // Overridden from ClockObserver.
virtual void OnDateFormatChanged() OVERRIDE;
+ virtual void Refresh() OVERRIDE;
scoped_ptr<tray::DateView> date_;
scoped_ptr<tray::DateView> date_tray_;
diff --git a/ash/system/tray/system_tray.cc b/ash/system/tray/system_tray.cc
index 2bc4135..867197ce 100644
--- a/ash/system/tray/system_tray.cc
+++ b/ash/system/tray/system_tray.cc
@@ -333,7 +333,7 @@ SystemTray::SystemTray()
: items_(),
audio_observer_(NULL),
brightness_observer_(NULL),
- date_format_observer_(NULL),
+ clock_observer_(NULL),
network_observer_(NULL),
power_status_observer_(NULL),
update_observer_(NULL),
diff --git a/ash/system/tray/system_tray.h b/ash/system/tray/system_tray.h
index 90f0a93..79f90bd 100644
--- a/ash/system/tray/system_tray.h
+++ b/ash/system/tray/system_tray.h
@@ -19,7 +19,7 @@ namespace ash {
class AudioObserver;
class BrightnessObserver;
-class DateFormatObserver;
+class ClockObserver;
class NetworkObserver;
class PowerStatusObserver;
class UpdateObserver;
@@ -62,8 +62,8 @@ class ASH_EXPORT SystemTray : public views::View,
BrightnessObserver* brightness_observer() const {
return brightness_observer_;
}
- DateFormatObserver* date_format_observer() const {
- return date_format_observer_;
+ ClockObserver* clock_observer() const {
+ return clock_observer_;
}
NetworkObserver* network_observer() const {
return network_observer_;
@@ -99,7 +99,7 @@ class ASH_EXPORT SystemTray : public views::View,
// These observers are not owned by the tray.
AudioObserver* audio_observer_;
BrightnessObserver* brightness_observer_;
- DateFormatObserver* date_format_observer_;
+ ClockObserver* clock_observer_;
NetworkObserver* network_observer_;
PowerStatusObserver* power_status_observer_;
UpdateObserver* update_observer_;
diff --git a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc
index 87a2fe9..70239a3 100644
--- a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc
+++ b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc
@@ -9,7 +9,7 @@
#include "ash/system/audio/audio_observer.h"
#include "ash/system/brightness/brightness_observer.h"
#include "ash/system/network/network_observer.h"
-#include "ash/system/power/date_format_observer.h"
+#include "ash/system/power/clock_observer.h"
#include "ash/system/power/power_status_observer.h"
#include "ash/system/tray/system_tray.h"
#include "ash/system/tray/system_tray_delegate.h"
@@ -354,6 +354,13 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
observer->OnPowerStatusChanged(power_status);
}
+ virtual void SystemResumed() OVERRIDE {
+ ash::ClockObserver* observer =
+ ash::Shell::GetInstance()->tray()->clock_observer();
+ if (observer)
+ observer->Refresh();
+ }
+
virtual void LockScreen() OVERRIDE {
}
@@ -433,8 +440,8 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
case chrome::NOTIFICATION_PREF_CHANGED: {
DCHECK_EQ(*content::Details<std::string>(details).ptr(),
prefs::kUse24HourClock);
- ash::DateFormatObserver* observer =
- ash::Shell::GetInstance()->tray()->date_format_observer();
+ ash::ClockObserver* observer =
+ ash::Shell::GetInstance()->tray()->clock_observer();
if (observer)
observer->OnDateFormatChanged();
break;