1 // Copyright 2014 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.
5 #include "chrome/browser/chromeos/idle_detector.h"
8 #include "base/logging.h"
9 #include "ui/base/user_activity/user_activity_detector.h"
13 IdleDetector::IdleDetector(const base::Closure
& on_idle_callback
)
14 : idle_callback_(on_idle_callback
) {}
16 IdleDetector::~IdleDetector() {
17 ui::UserActivityDetector
* user_activity_detector
=
18 ui::UserActivityDetector::Get();
19 if (user_activity_detector
&& user_activity_detector
->HasObserver(this))
20 user_activity_detector
->RemoveObserver(this);
23 void IdleDetector::OnUserActivity(const ui::Event
* event
) {
27 void IdleDetector::Start(const base::TimeDelta
& timeout
) {
29 if (!ui::UserActivityDetector::Get()->HasObserver(this))
30 ui::UserActivityDetector::Get()->AddObserver(this);
34 void IdleDetector::ResetTimer() {
35 if (timer_
.IsRunning())
38 timer_
.Start(FROM_HERE
, timeout_
, idle_callback_
);
41 } // namespace chromeos