Battery: better Unknown state handling
This commit is contained in:
parent
201ea843a0
commit
cd33e5b274
2 changed files with 13 additions and 3 deletions
|
@ -176,7 +176,7 @@ void battery_update_text(char *dest, char *format)
|
||||||
? "Charging"
|
? "Charging"
|
||||||
: (battery_state.state == BATTERY_DISCHARGING)
|
: (battery_state.state == BATTERY_DISCHARGING)
|
||||||
? "Discharging"
|
? "Discharging"
|
||||||
: (battery_state.state == BATTERY_FULL || battery_state.percentage >= 100)
|
: (battery_state.state == BATTERY_FULL)
|
||||||
? "Full"
|
? "Full"
|
||||||
: "Unknown",
|
: "Unknown",
|
||||||
BATTERY_BUF_SIZE);
|
BATTERY_BUF_SIZE);
|
||||||
|
@ -194,8 +194,7 @@ void battery_update_text(char *dest, char *format)
|
||||||
strnappend(dest, buf, BATTERY_BUF_SIZE);
|
strnappend(dest, buf, BATTERY_BUF_SIZE);
|
||||||
break;
|
break;
|
||||||
case 't':
|
case 't':
|
||||||
if (battery_state.state == BATTERY_FULL ||
|
if (battery_state.state == BATTERY_FULL) {
|
||||||
(battery_state.state == BATTERY_UNKNOWN && battery_state.percentage >= 100)) {
|
|
||||||
snprintf(buf, sizeof(buf), "Full");
|
snprintf(buf, sizeof(buf), "Full");
|
||||||
strnappend(dest, buf, BATTERY_BUF_SIZE);
|
strnappend(dest, buf, BATTERY_BUF_SIZE);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -446,6 +446,17 @@ int battery_os_update(BatteryState *state)
|
||||||
/* AC state */
|
/* AC state */
|
||||||
state->ac_connected = ac_connected;
|
state->ac_connected = ac_connected;
|
||||||
|
|
||||||
|
if (state->state == BATTERY_UNKNOWN) {
|
||||||
|
if (ac_connected) {
|
||||||
|
if (total_rate_now == 0 && state->percentage >= 90)
|
||||||
|
state->state = BATTERY_FULL;
|
||||||
|
else
|
||||||
|
state->state = BATTERY_CHARGING;
|
||||||
|
} else {
|
||||||
|
state->state = BATTERY_DISCHARGING;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue