mirror of
https://github.com/EFForg/rayhunter.git
synced 2026-04-27 16:09:58 -07:00
Use percentage battery in frontend and not levels
This commit is contained in:
committed by
Cooper Quintin
parent
663d0abb57
commit
16447ed8bf
@@ -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> {
|
||||
|
||||
@@ -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?,
|
||||
|
||||
Reference in New Issue
Block a user