fix(battery): exit when there is no battery detected
This commit is contained in:
parent
f154c16df9
commit
25447c80e4
1 changed files with 20 additions and 0 deletions
|
|
@ -191,6 +191,26 @@ async fn start_listening(
|
||||||
match state {
|
match state {
|
||||||
State::Ready => {
|
State::Ready => {
|
||||||
if let Ok((upower, device)) = display_device().await {
|
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
|
_ = output
|
||||||
.send(DeviceDbusEvent::Update {
|
.send(DeviceDbusEvent::Update {
|
||||||
on_battery: upower
|
on_battery: upower
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue