From 4fdb9cee21d0d862ed3b551bebb48cf90d645de4 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Thu, 13 Nov 2014 19:19:30 +0100 Subject: daemon: Split out updating on_battery and warning_level So that we can reuse this code. https://bugs.freedesktop.org/show_bug.cgi?id=86144 --- src/up-daemon.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/up-daemon.c b/src/up-daemon.c index e51f1a5..0f32a18 100644 --- a/src/up-daemon.c +++ b/src/up-daemon.c @@ -832,6 +832,23 @@ up_daemon_compute_warning_level (UpDaemon *daemon, g_assert_not_reached (); } +static void +up_daemon_update_warning_level (UpDaemon *daemon) +{ + gboolean ret; + UpDaemonPrivate *priv = daemon->priv; + UpDeviceLevel warning_level; + + /* Check if the on_battery and warning_level state has changed */ + ret = (up_daemon_get_on_battery_local (daemon) && !up_daemon_get_on_ac_local (daemon)); + if (ret != priv->on_battery) { + up_daemon_set_on_battery (daemon, ret); + } + warning_level = up_daemon_get_warning_level_local (daemon); + if (warning_level != priv->warning_level) + up_daemon_set_warning_level (daemon, warning_level); +} + /** * up_daemon_device_changed_cb: **/ @@ -839,9 +856,6 @@ static void up_daemon_device_changed_cb (UpDevice *device, GParamSpec *pspec, UpDaemon *daemon) { UpDeviceKind type; - gboolean ret; - UpDaemonPrivate *priv = daemon->priv; - UpDeviceLevel warning_level; g_return_if_fail (UP_IS_DAEMON (daemon)); g_return_if_fail (UP_IS_DEVICE (device)); @@ -855,14 +869,7 @@ up_daemon_device_changed_cb (UpDevice *device, GParamSpec *pspec, UpDaemon *daem up_daemon_refresh_battery_devices (daemon); } - /* second, check if the on_battery and warning_level state has changed */ - ret = (up_daemon_get_on_battery_local (daemon) && !up_daemon_get_on_ac_local (daemon)); - if (ret != priv->on_battery) { - up_daemon_set_on_battery (daemon, ret); - } - warning_level = up_daemon_get_warning_level_local (daemon); - if (warning_level != priv->warning_level) - up_daemon_set_warning_level (daemon, warning_level); + up_daemon_update_warning_level (daemon); } typedef struct { -- cgit v1.2.1