diff --git a/Cargo.toml b/Cargo.toml index 827f81c..62a9545 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ repository = "https://github.com/Xetibo/ReSet" license = "GPL-3.0-only" [dependencies] -reset_daemon = "0.6.6" +reset_daemon = "0.6.9" re_set-lib = "0.8.6" adw = { version = "0.5.3", package = "libadwaita", features = ["v1_4"] } dbus = "0.9.7" diff --git a/src/components/base/utils.rs b/src/components/base/utils.rs index 8a08ab8..0e6fdb1 100644 --- a/src/components/base/utils.rs +++ b/src/components/base/utils.rs @@ -13,7 +13,7 @@ use gtk::gio; use crate::components::{ input::source_box::{start_input_box_listener, SourceBox}, output::sink_box::{start_output_box_listener, SinkBox}, - utils::{AUDIO, BASE, DBUS_PATH, WIRELESS}, + utils::{BASE, DBUS_PATH, WIRELESS}, }; #[derive(Default, PartialEq, Eq)] @@ -65,13 +65,11 @@ pub fn start_audio_listener( source_box: Option>, ) { gio::spawn_blocking(move || { - let conn = Connection::new_session().unwrap(); + let mut conn = Connection::new_session().unwrap(); if listeners.pulse_listener.load(Ordering::SeqCst) { return; } - let mut conn = start_dbus_audio_listener(conn); - if let Some(sink_box) = sink_box { conn = start_output_box_listener(conn, sink_box); } @@ -84,22 +82,8 @@ pub fn start_audio_listener( loop { let _ = conn.process(Duration::from_millis(1000)); if !listeners.pulse_listener.load(Ordering::SeqCst) { - stop_dbus_audio_listener(conn); break; } - // thread::sleep(Duration::from_millis(1000)); - // TODO is this really how we should do this? } }); } - -fn start_dbus_audio_listener(conn: Connection) -> Connection { - let proxy = conn.with_proxy(BASE, DBUS_PATH, Duration::from_millis(1000)); - let _: Result<(), Error> = proxy.method_call(AUDIO, "StartAudioListener", ()); - conn -} - -fn stop_dbus_audio_listener(conn: Connection) { - let proxy = conn.with_proxy(BASE, DBUS_PATH, Duration::from_millis(1000)); - let _: Result<(), Error> = proxy.method_call(AUDIO, "StopAudioListener", ()); -} diff --git a/src/components/bluetooth/bluetooth_box.rs b/src/components/bluetooth/bluetooth_box.rs index a78e556..5581026 100644 --- a/src/components/bluetooth/bluetooth_box.rs +++ b/src/components/bluetooth/bluetooth_box.rs @@ -1,6 +1,5 @@ use std::sync::atomic::Ordering; use std::sync::Arc; -use std::thread; use std::time::{Duration, SystemTime}; use adw::glib; @@ -379,7 +378,6 @@ pub fn start_bluetooth_listener(listeners: Arc, bluetooth_box: Arc, wifi_box: Arc) -> Arc { - let wifi_status = get_wifi_status(); let imp = wifi_box.imp(); let wifibox_ref = wifi_box.clone(); imp.reset_saved_networks.set_activatable(true); @@ -57,9 +56,6 @@ fn setup_callbacks(listeners: Arc, wifi_box: Arc) -> Arc, wifi_box: Arc) -> Arc) { gio::spawn_blocking(move || { let devices = get_wifi_devices(); let access_points = get_access_points(); + let wifi_status = get_wifi_status(); { let imp = wifibox_ref.imp(); let list = imp.reset_model_list.write().unwrap(); @@ -123,6 +121,9 @@ pub fn scan_for_wifi(wifi_box: Arc) { let mut wifi_entries_path = wifi_entries_path.write().unwrap(); let imp = wifibox_ref.imp(); + imp.reset_wifi_switch.set_active(wifi_status); + imp.reset_wifi_switch.set_state(wifi_status); + let list = imp.reset_model_list.read().unwrap(); imp.reset_wifi_device.set_model(Some(&*list)); let map = imp.reset_wifi_devices.read().unwrap(); diff --git a/src/main.rs b/src/main.rs index 03a7e00..887c5e9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,8 +10,6 @@ use gtk::prelude::*; use gtk::{gio, Application, CssProvider}; use reset_daemon::run_daemon; - - mod components; const APP_ID: &str = "org.Xetibo.ReSet"; @@ -55,13 +53,8 @@ fn build_ui(app: &Application) { fn shutdown(_: &Application) { thread::spawn(|| { let conn = Connection::new_session().unwrap(); - let proxy = conn.with_proxy( - BASE, - DBUS_PATH, - Duration::from_millis(100), - ); - let res: Result<(), Error> = - proxy.method_call(BASE, "UnregisterClient", ("ReSet",)); + let proxy = conn.with_proxy(BASE, DBUS_PATH, Duration::from_millis(100)); + let res: Result<(), Error> = proxy.method_call(BASE, "UnregisterClient", ("ReSet",)); res }); } @@ -69,17 +62,12 @@ fn shutdown(_: &Application) { async fn daemon_check() { let handle = thread::spawn(|| { let conn = Connection::new_session().unwrap(); - let proxy = conn.with_proxy( - BASE, - DBUS_PATH, - Duration::from_millis(100), - ); - let res: Result<(), Error> = - proxy.method_call(BASE, "RegisterClient", ("ReSet",)); + let proxy = conn.with_proxy(BASE, DBUS_PATH, Duration::from_millis(100)); + let res: Result<(), Error> = proxy.method_call(BASE, "RegisterClient", ("ReSet",)); res }); let res = handle.join(); if res.unwrap().is_err() { run_daemon().await; - } + } }