system_clock_observer.cc revision 5c02ac1a9c1b504631c0a3d2b6e737b5d738bae1
14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file. 44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "ash/system/chromeos/system_clock_observer.h" 64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 71e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "ash/shell.h" 84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "ash/system/tray/system_tray_notifier.h" 94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "chromeos/dbus/dbus_thread_manager.h" 104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace ash { 124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)SystemClockObserver::SystemClockObserver() { 144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) chromeos::DBusThreadManager::Get()->GetSystemClockClient() 154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ->AddObserver(this); 164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) chromeos::system::TimezoneSettings::GetInstance()->AddObserver(this); 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu can_set_time_ = 185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu chromeos::DBusThreadManager::Get()->GetSystemClockClient()->CanSetTime(); 194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)SystemClockObserver::~SystemClockObserver() { 224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) chromeos::DBusThreadManager::Get()->GetSystemClockClient() 234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ->RemoveObserver(this); 244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) chromeos::system::TimezoneSettings::GetInstance()->RemoveObserver(this); 254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)void SystemClockObserver::SystemClockUpdated() { 285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu Shell::GetInstance()->system_tray_notifier()->NotifySystemClockTimeUpdated(); 295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid SystemClockObserver::SystemClockCanSetTimeChanged(bool can_set_time) { 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu can_set_time_ = can_set_time; 334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) Shell::GetInstance()->system_tray_notifier() 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu ->NotifySystemClockCanSetTimeChanged(can_set_time_); 354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)void SystemClockObserver::TimezoneChanged(const icu::TimeZone& timezone) { 384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) Shell::GetInstance()->system_tray_notifier()->NotifyRefreshClock(); 394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} // namespace ash 42