WiFi will now change if something else changes it

This commit is contained in:
Lucy 2022-02-07 16:24:11 -05:00
parent 0d54744537
commit 94dc038e2b
No known key found for this signature in database
GPG key ID: EBC517FAD666BBF1
2 changed files with 14 additions and 1 deletions

View file

@ -6,7 +6,7 @@ license = "LGPL-3.0-or-later"
[dependencies]
cosmic-dbus-networkmanager = { git = "https://github.com/pop-os/dbus-settings-bindings" }
futures-util = "0.3.19"
futures-util = "0.3.21"
gtk4 = "0.4.6"
itertools = "0.10.3"
once_cell = "1.9.0"

View file

@ -1,5 +1,6 @@
use crate::{task, widgets::SettingsEntry};
use cosmic_dbus_networkmanager::nm::NetworkManager;
use futures_util::StreamExt;
use gtk4::{
glib::{self, clone, source::PRIORITY_DEFAULT, MainContext, Sender},
prelude::*,
@ -53,6 +54,18 @@ async fn get_wifi_mode(tx: Sender<bool>) -> zbus::Result<()> {
let wireless_enabled = network_manager.wireless_enabled().await?;
tx.send(wireless_enabled)
.expect("Failed to send wifi enablement back to main thread");
tokio::spawn(async move {
let connection = Connection::system().await?;
let network_manager = NetworkManager::new(&connection).await?;
let mut stream = network_manager.receive_wireless_enabled_changed().await;
while let Some(wireless_enabled) = stream.next().await {
if let Ok(wireless_enabled) = wireless_enabled.get().await {
tx.send(wireless_enabled)
.expect("Failed to send wifi enablement back to main thread");
}
}
zbus::Result::Ok(())
});
Ok(())
}