blob: bbbfa85da791ff334e40ad5c8719286034108bab [file] [log] [blame]
// Copyright 2013 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.
#include "ash/system/system_clock_observer.h"
#include "ash/shell.h"
#include "ash/system/tray/system_tray_notifier.h"
#include "chromeos/dbus/dbus_thread_manager.h"
namespace ash {
SystemClockObserver::SystemClockObserver() {
chromeos::DBusThreadManager::Get()->GetSystemClockClient()->AddObserver(this);
chromeos::system::TimezoneSettings::GetInstance()->AddObserver(this);
can_set_time_ =
chromeos::DBusThreadManager::Get()->GetSystemClockClient()->CanSetTime();
}
SystemClockObserver::~SystemClockObserver() {
chromeos::DBusThreadManager::Get()->GetSystemClockClient()->RemoveObserver(
this);
chromeos::system::TimezoneSettings::GetInstance()->RemoveObserver(this);
}
void SystemClockObserver::SystemClockUpdated() {
Shell::Get()->system_tray_notifier()->NotifySystemClockTimeUpdated();
}
void SystemClockObserver::SystemClockCanSetTimeChanged(bool can_set_time) {
can_set_time_ = can_set_time;
Shell::Get()->system_tray_notifier()->NotifySystemClockCanSetTimeChanged(
can_set_time_);
}
void SystemClockObserver::TimezoneChanged(const icu::TimeZone& timezone) {
Shell::Get()->system_tray_notifier()->NotifyRefreshClock();
}
} // namespace ash