aboutsummaryrefslogtreecommitdiff
path: root/src/utils/battery.rs
diff options
context:
space:
mode:
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
commitc8a74d47efb50caf6ad39e16b45b897dc5841eea (patch)
tree1a036063d7dacac75519d6caa71e47a841fb946b /src/utils/battery.rs
parent0de57f2e49a1aeeb47cf82ece0b0ad158f477da7 (diff)
show charging iconmy
Diffstat (limited to 'src/utils/battery.rs')
-rw-r--r--src/utils/battery.rs15
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)
}