daemon: Consider pending-charge when calculating the display state

Without this change if all batteries in the system are in the
pending-charge state, the display device state is set to unknown, and
its icon to battery-missing-symbolic.

This change makes the pending-charge state be considered when
calculating the DisplayDevice state, setting it to pending-charge if at
least one battery in the system is pending-charge and no other is
charging or discharging.

Closes: #81
Closes: #19
parent a074a546
......@@ -210,14 +210,18 @@ up_daemon_update_display_battery (UpDaemon *daemon)
continue;
/* If one battery is charging, the composite is charging
* If all batteries are discharging, the composite is discharging
* If all batteries are discharging or pending-charge, the composite is discharging
* If all batteries are fully charged, the composite is fully charged
* If one battery is pending-charge and no other is charging or discharging, then the composite is pending-charge
* Everything else is unknown */
if (state == UP_DEVICE_STATE_CHARGING)
state_total = UP_DEVICE_STATE_CHARGING;
else if (state == UP_DEVICE_STATE_DISCHARGING &&
state_total != UP_DEVICE_STATE_CHARGING)
state_total = UP_DEVICE_STATE_DISCHARGING;
else if (state == UP_DEVICE_STATE_PENDING_CHARGE &&
(state_total == UP_DEVICE_STATE_UNKNOWN || state_total == UP_DEVICE_STATE_PENDING_CHARGE))
state_total = UP_DEVICE_STATE_PENDING_CHARGE;
else if (state == UP_DEVICE_STATE_FULLY_CHARGED &&
state_total == UP_DEVICE_STATE_UNKNOWN)
state_total = UP_DEVICE_STATE_FULLY_CHARGED;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment