diff --git a/crates/core/src/battery/mod.rs b/crates/core/src/battery/mod.rs index d63f392..a687ec4 100644 --- a/crates/core/src/battery/mod.rs +++ b/crates/core/src/battery/mod.rs @@ -15,6 +15,12 @@ pub enum Status { // Full, } +impl Status { + pub fn is_wired(self) -> bool { + matches!(self, Status::Charging | Status::Charged) + } +} + pub trait Battery { fn capacity(&mut self) -> Result, Error>; fn status(&mut self) -> Result, Error>; diff --git a/crates/core/src/view/battery.rs b/crates/core/src/view/battery.rs index db7db9a..61c37a6 100644 --- a/crates/core/src/view/battery.rs +++ b/crates/core/src/view/battery.rs @@ -104,7 +104,7 @@ impl View for Battery { pt = self.rect.min + pt!(dx, dy) + pt!(border_thickness); - if self.status != Status::Discharging { + if self.status.is_wired() { let name = if self.status == Status::Charging { "plug" } else { "check_mark-small" }; let pixmap = ICONS_PIXMAPS.get(name).unwrap(); pt += pt!((max_fill_width - pixmap.width as i32) / 2, diff --git a/crates/plato/src/app.rs b/crates/plato/src/app.rs index e0a1ccf..980ba81 100644 --- a/crates/plato/src/app.rs +++ b/crates/plato/src/app.rs @@ -222,6 +222,9 @@ pub fn run() -> Result<(), Error> { } let mut context = build_context(fb).context("can't build context")?; + + context.plugged = context.battery.status().is_ok_and(|v| v[0].is_wired()); + if context.settings.import.startup_trigger { context.batch_import(); }