This source file includes following definitions.
- GetUserActivityTypeForEvent
- OnUserActivity
#include "ash/system/chromeos/power/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 ash {
namespace {
const int kNotifyIntervalSec = 5;
power_manager::UserActivityType GetUserActivityTypeForEvent(
const ui::Event* event) {
if (!event || event->type() != ui::ET_KEY_PRESSED)
return power_manager::USER_ACTIVITY_OTHER;
switch (static_cast<const ui::KeyEvent*>(event)->key_code()) {
case ui::VKEY_BRIGHTNESS_DOWN:
return power_manager::USER_ACTIVITY_BRIGHTNESS_DOWN_KEY_PRESS;
case ui::VKEY_BRIGHTNESS_UP:
return power_manager::USER_ACTIVITY_BRIGHTNESS_UP_KEY_PRESS;
case ui::VKEY_VOLUME_DOWN:
return power_manager::USER_ACTIVITY_VOLUME_DOWN_KEY_PRESS;
case ui::VKEY_VOLUME_MUTE:
return power_manager::USER_ACTIVITY_VOLUME_MUTE_KEY_PRESS;
case ui::VKEY_VOLUME_UP:
return power_manager::USER_ACTIVITY_VOLUME_UP_KEY_PRESS;
default:
return power_manager::USER_ACTIVITY_OTHER;
}
}
}
UserActivityNotifier::UserActivityNotifier(::wm::UserActivityDetector* detector)
: detector_(detector) {
detector_->AddObserver(this);
}
UserActivityNotifier::~UserActivityNotifier() {
detector_->RemoveObserver(this);
}
void UserActivityNotifier::OnUserActivity(const ui::Event* event) {
base::TimeTicks now = base::TimeTicks::Now();
if (last_notify_time_.is_null() ||
(now - last_notify_time_).InSeconds() >= kNotifyIntervalSec) {
chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->
NotifyUserActivity(GetUserActivityTypeForEvent(event));
last_notify_time_ = now;
}
}
}