From 6fb8c64e64424a4f290f08148c83948eb5cccb52 Mon Sep 17 00:00:00 2001 From: WanderingPenwing Date: Wed, 31 Jul 2024 16:18:27 +0200 Subject: [PATCH] conditional wait --- src/main.rs | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/main.rs b/src/main.rs index 176490d..eecf3b6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -37,26 +37,26 @@ async fn main() { let notify = Arc::new(Notify::new()); let notify_cloned: Arc = Arc::clone(¬ify); - tokio::spawn(async move { - + tokio::spawn(async move { loop { - sleep(Duration::from_secs(3)).await; - let battery_charging = battery_2.time_to_empty().is_none(); - battery_2.refresh().expect("could not refresh battery"); + let connection_type = get_connection(&networks_2); + + if battery_2.state_of_charge().value == 1.0 && connection_type != Connection::None { + sleep(Duration::from_secs(20)).await; + } else { + sleep(Duration::from_secs(2)).await; + } + battery_2.refresh().expect("could not refresh battery"); if battery_2.time_to_empty().is_none() != battery_charging && battery_2.state_of_charge().value != 1.0 { notify_cloned.notify_one(); - println!("battery notif"); continue } - let connection_type = get_connection(&networks_2); - networks_2.refresh_list(); if connection_type != get_connection(&networks_2) { notify_cloned.notify_one(); - println!("network notif"); } } }); @@ -80,12 +80,8 @@ async fn main() { let sleep_or_notify = sleep(Duration::from_secs((60 - Local::now().second()).into())); tokio::select! { - _ = sleep_or_notify => { - println!("60 seconds elapsed"); - } - _ = notify.notified() => { - println!("waking up early"); - } + _ = sleep_or_notify => {} + _ = notify.notified() => {} } } }