fix(battery): exit when there is no battery detected

This commit is contained in:
Ashley Wulber 2024-05-02 17:23:46 -04:00 committed by Jeremy Soller
parent f154c16df9
commit 25447c80e4

View file

@ -191,6 +191,26 @@ async fn start_listening(
match state {
State::Ready => {
if let Ok((upower, device)) = display_device().await {
if let Ok(devices) = upower.enumerate_devices().await {
let mut has_battery = false;
for device in devices {
let Ok(d) = DeviceProxy::builder(upower.connection()).path(device) else {
continue;
};
let Ok(d) = d.build().await else {
continue;
};
if d.type_().await.unwrap_or_default() == 2
&& d.power_supply().await.unwrap_or_default()
{
has_battery = true;
break;
}
}
if !has_battery {
std::process::exit(0);
}
}
_ = output
.send(DeviceDbusEvent::Update {
on_battery: upower