From ce385b22b52bfa3547bef1ae809d5d11272fa3ab Mon Sep 17 00:00:00 2001 From: "tyoshino@chromium.org" Date: Wed, 16 Apr 2014 02:31:46 +0000 Subject: Revert 264067 "app_shell: Initialize chromeos::DBusThreadManager." > app_shell: Initialize chromeos::DBusThreadManager. > > Let app_shell communicate with Chrome OS system processes. > Also start notifying the power manager about user activity. > > BUG=354711 > TBR=sky@chromium.org > > Review URL: https://codereview.chromium.org/239433002 TBR=derat@chromium.org Review URL: https://codereview.chromium.org/239823003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264071 0039d316-1c4b-4281-b951-d872f2087c98 --- ui/chromeos/ui_chromeos.gyp | 4 +- ui/chromeos/user_activity_notifier.cc | 65 +++++++++++++++++++++ ui/chromeos/user_activity_notifier.h | 41 ++++++++++++++ .../user_activity_power_manager_notifier.cc | 66 ---------------------- ui/chromeos/user_activity_power_manager_notifier.h | 42 -------------- 5 files changed, 108 insertions(+), 110 deletions(-) create mode 100644 ui/chromeos/user_activity_notifier.cc create mode 100644 ui/chromeos/user_activity_notifier.h delete mode 100644 ui/chromeos/user_activity_power_manager_notifier.cc delete mode 100644 ui/chromeos/user_activity_power_manager_notifier.h (limited to 'ui/chromeos') diff --git a/ui/chromeos/ui_chromeos.gyp b/ui/chromeos/ui_chromeos.gyp index 7f7362e..e276880 100644 --- a/ui/chromeos/ui_chromeos.gyp +++ b/ui/chromeos/ui_chromeos.gyp @@ -19,8 +19,8 @@ 'UI_CHROMEOS_IMPLEMENTATION', ], 'sources': [ - 'user_activity_power_manager_notifier.cc', - 'user_activity_power_manager_notifier.h', + 'user_activity_notifier.cc', + 'user_activity_notifier.h', ], }, ], diff --git a/ui/chromeos/user_activity_notifier.cc b/ui/chromeos/user_activity_notifier.cc new file mode 100644 index 0000000..53f3129 --- /dev/null +++ b/ui/chromeos/user_activity_notifier.cc @@ -0,0 +1,65 @@ +// Copyright 2014 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 "ui/chromeos/user_activity_notifier.h" + +#include "chromeos/dbus/dbus_thread_manager.h" +#include "chromeos/dbus/power_manager_client.h" +#include "ui/events/event.h" +#include "ui/events/event_constants.h" +#include "ui/events/keycodes/keyboard_codes_posix.h" +#include "ui/wm/core/user_activity_detector.h" + +namespace ui { +namespace { + +// Minimum number of seconds between notifications. +const int kNotifyIntervalSec = 5; + +// Returns a UserActivityType describing |event|. +power_manager::UserActivityType GetUserActivityTypeForEvent( + const Event* event) { + if (!event || event->type() != ET_KEY_PRESSED) + return power_manager::USER_ACTIVITY_OTHER; + + switch (static_cast(event)->key_code()) { + case VKEY_BRIGHTNESS_DOWN: + return power_manager::USER_ACTIVITY_BRIGHTNESS_DOWN_KEY_PRESS; + case VKEY_BRIGHTNESS_UP: + return power_manager::USER_ACTIVITY_BRIGHTNESS_UP_KEY_PRESS; + case VKEY_VOLUME_DOWN: + return power_manager::USER_ACTIVITY_VOLUME_DOWN_KEY_PRESS; + case VKEY_VOLUME_MUTE: + return power_manager::USER_ACTIVITY_VOLUME_MUTE_KEY_PRESS; + case VKEY_VOLUME_UP: + return power_manager::USER_ACTIVITY_VOLUME_UP_KEY_PRESS; + default: + return power_manager::USER_ACTIVITY_OTHER; + } +} + +} // namespace + +UserActivityNotifier::UserActivityNotifier(::wm::UserActivityDetector* detector) + : detector_(detector) { + detector_->AddObserver(this); +} + +UserActivityNotifier::~UserActivityNotifier() { + detector_->RemoveObserver(this); +} + +void UserActivityNotifier::OnUserActivity(const Event* event) { + base::TimeTicks now = base::TimeTicks::Now(); + // InSeconds() truncates rather than rounding, so it's fine for this + // comparison. + if (last_notify_time_.is_null() || + (now - last_notify_time_).InSeconds() >= kNotifyIntervalSec) { + chromeos::DBusThreadManager::Get()->GetPowerManagerClient()-> + NotifyUserActivity(GetUserActivityTypeForEvent(event)); + last_notify_time_ = now; + } +} + +} // namespace ui diff --git a/ui/chromeos/user_activity_notifier.h b/ui/chromeos/user_activity_notifier.h new file mode 100644 index 0000000..dab5955 --- /dev/null +++ b/ui/chromeos/user_activity_notifier.h @@ -0,0 +1,41 @@ +// Copyright 2014 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. + +#ifndef UI_CHROMEOS_USER_ACTIVITY_NOTIFIER_H_ +#define UI_CHROMEOS_USER_ACTIVITY_NOTIFIER_H_ + +#include "base/basictypes.h" +#include "base/compiler_specific.h" +#include "base/time/time.h" +#include "ui/chromeos/ui_chromeos_export.h" +#include "ui/wm/core/user_activity_observer.h" + +namespace wm { +class UserActivityDetector; +} // namespace wm + +namespace ui { + +// Notifies the power manager when the user is active. +class UI_CHROMEOS_EXPORT UserActivityNotifier + : public ::wm::UserActivityObserver { + public: + explicit UserActivityNotifier(::wm::UserActivityDetector* detector); + virtual ~UserActivityNotifier(); + + // UserActivityObserver implementation. + virtual void OnUserActivity(const Event* event) OVERRIDE; + + private: + ::wm::UserActivityDetector* detector_; // not owned + + // Last time that the power manager was notified. + base::TimeTicks last_notify_time_; + + DISALLOW_COPY_AND_ASSIGN(UserActivityNotifier); +}; + +} // namespace ui + +#endif // UI_CHROMEOS_USER_ACTIVITY_NOTIFIER_H_ diff --git a/ui/chromeos/user_activity_power_manager_notifier.cc b/ui/chromeos/user_activity_power_manager_notifier.cc deleted file mode 100644 index 7952b59..0000000 --- a/ui/chromeos/user_activity_power_manager_notifier.cc +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2014 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 "ui/chromeos/user_activity_power_manager_notifier.h" - -#include "chromeos/dbus/dbus_thread_manager.h" -#include "chromeos/dbus/power_manager_client.h" -#include "ui/events/event.h" -#include "ui/events/event_constants.h" -#include "ui/events/keycodes/keyboard_codes_posix.h" -#include "ui/wm/core/user_activity_detector.h" - -namespace ui { -namespace { - -// Minimum number of seconds between notifications. -const int kNotifyIntervalSec = 5; - -// Returns a UserActivityType describing |event|. -power_manager::UserActivityType GetUserActivityTypeForEvent( - const Event* event) { - if (!event || event->type() != ET_KEY_PRESSED) - return power_manager::USER_ACTIVITY_OTHER; - - switch (static_cast(event)->key_code()) { - case VKEY_BRIGHTNESS_DOWN: - return power_manager::USER_ACTIVITY_BRIGHTNESS_DOWN_KEY_PRESS; - case VKEY_BRIGHTNESS_UP: - return power_manager::USER_ACTIVITY_BRIGHTNESS_UP_KEY_PRESS; - case VKEY_VOLUME_DOWN: - return power_manager::USER_ACTIVITY_VOLUME_DOWN_KEY_PRESS; - case VKEY_VOLUME_MUTE: - return power_manager::USER_ACTIVITY_VOLUME_MUTE_KEY_PRESS; - case VKEY_VOLUME_UP: - return power_manager::USER_ACTIVITY_VOLUME_UP_KEY_PRESS; - default: - return power_manager::USER_ACTIVITY_OTHER; - } -} - -} // namespace - -UserActivityPowerManagerNotifier::UserActivityPowerManagerNotifier( - ::wm::UserActivityDetector* detector) - : detector_(detector) { - detector_->AddObserver(this); -} - -UserActivityPowerManagerNotifier::~UserActivityPowerManagerNotifier() { - detector_->RemoveObserver(this); -} - -void UserActivityPowerManagerNotifier::OnUserActivity(const Event* event) { - base::TimeTicks now = base::TimeTicks::Now(); - // InSeconds() truncates rather than rounding, so it's fine for this - // comparison. - if (last_notify_time_.is_null() || - (now - last_notify_time_).InSeconds() >= kNotifyIntervalSec) { - chromeos::DBusThreadManager::Get()->GetPowerManagerClient()-> - NotifyUserActivity(GetUserActivityTypeForEvent(event)); - last_notify_time_ = now; - } -} - -} // namespace ui diff --git a/ui/chromeos/user_activity_power_manager_notifier.h b/ui/chromeos/user_activity_power_manager_notifier.h deleted file mode 100644 index 483f1b5..0000000 --- a/ui/chromeos/user_activity_power_manager_notifier.h +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2014 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. - -#ifndef UI_CHROMEOS_USER_ACTIVITY_POWER_MANAGER_NOTIFIER_H_ -#define UI_CHROMEOS_USER_ACTIVITY_POWER_MANAGER_NOTIFIER_H_ - -#include "base/basictypes.h" -#include "base/compiler_specific.h" -#include "base/time/time.h" -#include "ui/chromeos/ui_chromeos_export.h" -#include "ui/wm/core/user_activity_observer.h" - -namespace wm { -class UserActivityDetector; -} // namespace wm - -namespace ui { - -// Notifies the power manager when the user is active. -class UI_CHROMEOS_EXPORT UserActivityPowerManagerNotifier - : public ::wm::UserActivityObserver { - public: - explicit UserActivityPowerManagerNotifier( - ::wm::UserActivityDetector* detector); - virtual ~UserActivityPowerManagerNotifier(); - - // UserActivityObserver implementation. - virtual void OnUserActivity(const Event* event) OVERRIDE; - - private: - ::wm::UserActivityDetector* detector_; // not owned - - // Last time that the power manager was notified. - base::TimeTicks last_notify_time_; - - DISALLOW_COPY_AND_ASSIGN(UserActivityPowerManagerNotifier); -}; - -} // namespace ui - -#endif // UI_CHROMEOS_USER_ACTIVITY_POWER_MANAGER_NOTIFIER_H_ -- cgit v1.1