1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "ash/system/chromeos/system_clock_observer.h" 6 7#include "ash/shell.h" 8#include "ash/system/tray/system_tray_notifier.h" 9#include "chromeos/dbus/dbus_thread_manager.h" 10 11namespace ash { 12 13SystemClockObserver::SystemClockObserver() { 14 chromeos::DBusThreadManager::Get()->GetSystemClockClient() 15 ->AddObserver(this); 16 chromeos::system::TimezoneSettings::GetInstance()->AddObserver(this); 17 can_set_time_ = 18 chromeos::DBusThreadManager::Get()->GetSystemClockClient()->CanSetTime(); 19} 20 21SystemClockObserver::~SystemClockObserver() { 22 chromeos::DBusThreadManager::Get()->GetSystemClockClient() 23 ->RemoveObserver(this); 24 chromeos::system::TimezoneSettings::GetInstance()->RemoveObserver(this); 25} 26 27void SystemClockObserver::SystemClockUpdated() { 28 Shell::GetInstance()->system_tray_notifier()->NotifySystemClockTimeUpdated(); 29} 30 31void SystemClockObserver::SystemClockCanSetTimeChanged(bool can_set_time) { 32 can_set_time_ = can_set_time; 33 Shell::GetInstance()->system_tray_notifier() 34 ->NotifySystemClockCanSetTimeChanged(can_set_time_); 35} 36 37void SystemClockObserver::TimezoneChanged(const icu::TimeZone& timezone) { 38 Shell::GetInstance()->system_tray_notifier()->NotifyRefreshClock(); 39} 40 41} // namespace ash 42