Home | History | Annotate | Download | only in chromeos
      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 
     11 namespace ash {
     12 
     13 SystemClockObserver::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 
     21 SystemClockObserver::~SystemClockObserver() {
     22   chromeos::DBusThreadManager::Get()->GetSystemClockClient()
     23       ->RemoveObserver(this);
     24   chromeos::system::TimezoneSettings::GetInstance()->RemoveObserver(this);
     25 }
     26 
     27 void SystemClockObserver::SystemClockUpdated() {
     28   Shell::GetInstance()->system_tray_notifier()->NotifySystemClockTimeUpdated();
     29 }
     30 
     31 void 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 
     37 void SystemClockObserver::TimezoneChanged(const icu::TimeZone& timezone) {
     38   Shell::GetInstance()->system_tray_notifier()->NotifyRefreshClock();
     39 }
     40 
     41 }  // namespace ash
     42