Use percentage battery in frontend and not levels

This commit is contained in:
Simon Fondrie-Teitler
2025-08-27 13:02:26 -04:00
committed by Cooper Quintin
parent 663d0abb57
commit 16447ed8bf
4 changed files with 22 additions and 79 deletions

View File

@@ -9,18 +9,9 @@ pub mod orbic;
pub mod tmobile;
pub mod wingtech;
#[derive(Clone, Copy, PartialEq, Debug, Serialize)]
pub enum BatteryLevel {
VeryLow,
Low,
Medium,
High,
Full,
}
#[derive(Clone, Copy, PartialEq, Debug, Serialize)]
pub struct BatteryState {
level: BatteryLevel,
level: u8,
is_plugged_in: bool,
}
@@ -37,20 +28,13 @@ async fn is_plugged_in_from_file(path: &Path) -> Result<bool, RayhunterError> {
}
}
async fn get_level_from_percentage_file(path: &Path) -> Result<BatteryLevel, RayhunterError> {
match tokio::fs::read_to_string(path)
async fn get_level_from_percentage_file(path: &Path) -> Result<u8, RayhunterError> {
tokio::fs::read_to_string(path)
.await
.map_err(RayhunterError::TokioError)?
.trim_end()
.parse()
{
Ok(0..=10) => Ok(BatteryLevel::VeryLow),
Ok(11..=25) => Ok(BatteryLevel::Low),
Ok(26..=50) => Ok(BatteryLevel::Medium),
Ok(51..=75) => Ok(BatteryLevel::High),
Ok(76..=100) => Ok(BatteryLevel::Full),
_ => Err(RayhunterError::BatteryLevelParseError),
}
.or(Err(RayhunterError::BatteryLevelParseError))
}
pub async fn get_battery_status(device: &Device) -> Result<BatteryState, RayhunterError> {

View File

@@ -1,7 +1,7 @@
use std::path::Path;
use crate::{
battery::{BatteryLevel, BatteryState, is_plugged_in_from_file},
battery::{BatteryState, is_plugged_in_from_file},
error::RayhunterError,
};
@@ -16,11 +16,11 @@ pub async fn get_battery_state() -> Result<BatteryState, RayhunterError> {
.chars()
.next()
{
Some('1') => Ok(BatteryLevel::VeryLow),
Some('2') => Ok(BatteryLevel::Low),
Some('3') => Ok(BatteryLevel::Medium),
Some('4') => Ok(BatteryLevel::High),
Some('5') => Ok(BatteryLevel::Full),
Some('1') => Ok(10),
Some('2') => Ok(25),
Some('3') => Ok(50),
Some('4') => Ok(75),
Some('5') => Ok(100),
_ => Err(RayhunterError::BatteryLevelParseError),
}?,
is_plugged_in: is_plugged_in_from_file(Path::new(PLUGGED_IN_STATE_FILE)).await?,