Unset battery charge limit properly, fix #127
This commit is contained in:
parent
ebfebb6ea7
commit
46659a474d
3 changed files with 19 additions and 1 deletions
|
@ -174,7 +174,7 @@ impl Default for Base {
|
||||||
super::DeveloperMessage {
|
super::DeveloperMessage {
|
||||||
id: 1,
|
id: 1,
|
||||||
title: "Welcome".to_owned(),
|
title: "Welcome".to_owned(),
|
||||||
body: "Thanks for installing PowerTools! For more information, please check the wiki. For bugs and requests, please create an issue on GitHub.".to_owned(),
|
body: "Thanks for installing PowerTools! For more information, please check the wiki. For bugs and requests, please create an issue.".to_owned(),
|
||||||
url: Some("https://git.ngni.us/NG-SD-Plugins/PowerTools/wiki".to_owned()),
|
url: Some("https://git.ngni.us/NG-SD-Plugins/PowerTools/wiki".to_owned()),
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
|
@ -586,6 +586,7 @@ impl OnPowerEvent for Battery {
|
||||||
.unwrap_or_else(|mut e| errors.append(&mut e));
|
.unwrap_or_else(|mut e| errors.append(&mut e));
|
||||||
let attr_exists = MAX_BATTERY_CHARGE_LEVEL_ATTR.exists(&*self.sysfs_hwmon);
|
let attr_exists = MAX_BATTERY_CHARGE_LEVEL_ATTR.exists(&*self.sysfs_hwmon);
|
||||||
log::info!("Does battery limit attribute (max_battery_charge_level) exist? {}", attr_exists);
|
log::info!("Does battery limit attribute (max_battery_charge_level) exist? {}", attr_exists);
|
||||||
|
let mut charge_limit_set_now = false;
|
||||||
for ev in &mut self.events {
|
for ev in &mut self.events {
|
||||||
if attr_exists {
|
if attr_exists {
|
||||||
if let EventTrigger::BatteryAbove(level) = ev.trigger {
|
if let EventTrigger::BatteryAbove(level) = ev.trigger {
|
||||||
|
@ -597,12 +598,27 @@ impl OnPowerEvent for Battery {
|
||||||
setting: crate::settings::SettingVariant::Battery,
|
setting: crate::settings::SettingVariant::Battery,
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
self.state.charge_limit_set = true;
|
||||||
|
charge_limit_set_now = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ev.on_power_event(new_mode)
|
ev.on_power_event(new_mode)
|
||||||
.unwrap_or_else(|mut e| errors.append(&mut e));
|
.unwrap_or_else(|mut e| errors.append(&mut e));
|
||||||
}
|
}
|
||||||
|
if self.state.charge_limit_set != charge_limit_set_now {
|
||||||
|
// only true when charge_limit_set is false and self.state.charge_limit_set is true
|
||||||
|
self.state.charge_limit_set = false;
|
||||||
|
if attr_exists {
|
||||||
|
self.sysfs_hwmon.set(MAX_BATTERY_CHARGE_LEVEL_ATTR, 100)
|
||||||
|
.unwrap_or_else(|e| errors.push(
|
||||||
|
SettingError {
|
||||||
|
msg: format!("Failed to reset (write to) {:?}: {}", MAX_BATTERY_CHARGE_LEVEL_ATTR, e),
|
||||||
|
setting: crate::settings::SettingVariant::Battery,
|
||||||
|
}
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
if errors.is_empty() {
|
if errors.is_empty() {
|
||||||
Ok(())
|
Ok(())
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -3,6 +3,7 @@ pub struct Battery {
|
||||||
pub charge_rate_set: bool,
|
pub charge_rate_set: bool,
|
||||||
pub charge_mode_set: bool,
|
pub charge_mode_set: bool,
|
||||||
pub charger_state: ChargeState,
|
pub charger_state: ChargeState,
|
||||||
|
pub charge_limit_set: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl std::default::Default for Battery {
|
impl std::default::Default for Battery {
|
||||||
|
@ -11,6 +12,7 @@ impl std::default::Default for Battery {
|
||||||
charge_rate_set: true,
|
charge_rate_set: true,
|
||||||
charge_mode_set: true,
|
charge_mode_set: true,
|
||||||
charger_state: ChargeState::Unknown,
|
charger_state: ChargeState::Unknown,
|
||||||
|
charge_limit_set: true,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue