diff options
author | Özgür Kesim <oec@codeblau.de> | 2022-02-05 17:04:27 +0100 |
---|---|---|
committer | Özgür Kesim <oec@codeblau.de> | 2022-02-05 17:04:27 +0100 |
commit | c8a74d47efb50caf6ad39e16b45b897dc5841eea (patch) | |
tree | 1a036063d7dacac75519d6caa71e47a841fb946b /src/utils | |
parent | 0de57f2e49a1aeeb47cf82ece0b0ad158f477da7 (diff) |
show charging iconmy
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/battery.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/utils/battery.rs b/src/utils/battery.rs index 432e22a..f1361ea 100644 --- a/src/utils/battery.rs +++ b/src/utils/battery.rs @@ -1,6 +1,7 @@ use crate::config::CONFIG; use crate::types::ThreadsData; use battery::Manager; +use battery::State; // TODO: better error handeling @@ -18,15 +19,23 @@ pub async fn get_battery() -> ThreadsData { return ThreadsData::Battery(String::from("Cannot Get Battery!")); }; - let percentage = if let Some(battery) = batteries.next() { - f32::from(battery.unwrap().state_of_charge()) * 100.0 + let battery = batteries.next(); + let (icon, percentage); + + if let Some(bat) = battery { + let b = bat.unwrap(); + percentage = f32::from(b.state_of_charge()) * 100.0; + icon = match b.state() { + State::Charging => &CONFIG.battery.charging_icon, + _ => &CONFIG.battery.icon, + }; } else { return ThreadsData::Battery(String::from("Cannot Read Battery!")); }; let result = format!( " {} {:.0}% {}", - CONFIG.battery.icon, percentage, CONFIG.seperator + icon, percentage, CONFIG.seperator ); ThreadsData::Battery(result) } |