Update metrics daemon to use new power manager signals for locking (4 of 7).
Co-dependent with the following change:
- Issue 2685003: Update XScreenSaver to use new power manager signals for
locking (3 of 7).
TEST=Ran test suite.
BUG=chromium-os:3694
Review URL: http://codereview.chromium.org/2698002
diff --git a/metrics/metrics_daemon.cc b/metrics/metrics_daemon.cc
index 04ad686..5ccc694 100644
--- a/metrics/metrics_daemon.cc
+++ b/metrics/metrics_daemon.cc
@@ -16,8 +16,7 @@
#define SAFE_MESSAGE(e) (e.message ? e.message : "unknown error")
#define DBUS_IFACE_FLIMFLAM_MANAGER "org.chromium.flimflam.Manager"
-#define DBUS_IFACE_POWER_MANAGER "org.chromium.Power.Manager"
-#define DBUS_IFACE_SCREENSAVER_MANAGER "org.chromium.ScreenSaver.Manager"
+#define DBUS_IFACE_POWER_MANAGER "org.chromium.PowerManager"
#define DBUS_IFACE_SESSION_MANAGER "org.chromium.SessionManagerInterface"
// File to aggregate daily usage before sending to UMA.
@@ -63,13 +62,7 @@
"type='signal',"
"interface='" DBUS_IFACE_POWER_MANAGER "',"
- "path='/',"
- "member='PowerStateChanged'",
-
- "type='signal',"
- "interface='" DBUS_IFACE_SCREENSAVER_MANAGER "',"
- "path='/',"
- "member='LockStateChanged'",
+ "path='/'"
"type='signal',"
"sender='org.chromium.SessionManager',"
@@ -91,12 +84,6 @@
};
// static
-const char* MetricsDaemon::kScreenSaverStates_[] = {
-#define STATE(name, capname) #name,
-#include "screensaver_states.h"
-};
-
-// static
const char* MetricsDaemon::kSessionStates_[] = {
#define STATE(name, capname) #name,
#include "session_states.h"
@@ -181,19 +168,16 @@
dbus_message_iter_get_basic(&iter, &state_name);
daemon->NetStateChanged(state_name, ticks);
} else if (strcmp(interface, DBUS_IFACE_POWER_MANAGER) == 0) {
- CHECK(strcmp(dbus_message_get_member(message),
- "PowerStateChanged") == 0);
-
- char* state_name;
- dbus_message_iter_get_basic(&iter, &state_name);
- daemon->PowerStateChanged(state_name, now);
- } else if (strcmp(interface, DBUS_IFACE_SCREENSAVER_MANAGER) == 0) {
- CHECK(strcmp(dbus_message_get_member(message),
- "LockStateChanged") == 0);
-
- char* state_name;
- dbus_message_iter_get_basic(&iter, &state_name);
- daemon->ScreenSaverStateChanged(state_name, now);
+ const char* member = dbus_message_get_member(message);
+ if (strcmp(member, "ScreenIsLocked") == 0) {
+ daemon->SetUserActiveState(false, now);
+ } else if (strcmp(member, "ScreenIsUnlocked") == 0) {
+ daemon->SetUserActiveState(true, now);
+ } else if (strcmp(member, "PowerStateChanged") == 0) {
+ char* state_name;
+ dbus_message_iter_get_basic(&iter, &state_name);
+ daemon->PowerStateChanged(state_name, now);
+ }
} else if (strcmp(interface, DBUS_IFACE_SESSION_MANAGER) == 0) {
CHECK(strcmp(dbus_message_get_member(message),
"SessionStateChanged") == 0);
@@ -265,23 +249,6 @@
return kUnknownPowerState;
}
-void MetricsDaemon::ScreenSaverStateChanged(const char* state_name, Time now) {
- DLOG(INFO) << "screen-saver state: " << state_name;
- screensaver_state_ = LookupScreenSaverState(state_name);
- SetUserActiveState(screensaver_state_ == kScreenSaverStateUnlocked, now);
-}
-
-MetricsDaemon::ScreenSaverState
-MetricsDaemon::LookupScreenSaverState(const char* state_name) {
- for (int i = 0; i < kNumberScreenSaverStates; i++) {
- if (strcmp(state_name, kScreenSaverStates_[i]) == 0) {
- return static_cast<ScreenSaverState>(i);
- }
- }
- DLOG(WARNING) << "unknown screen-saver state: " << state_name;
- return kUnknownScreenSaverState;
-}
-
void MetricsDaemon::SessionStateChanged(const char* state_name, Time now) {
DLOG(INFO) << "user session state: " << state_name;
session_state_ = LookupSessionState(state_name);