WiFi will now change if something else changes it
This commit is contained in:
parent
0d54744537
commit
94dc038e2b
2 changed files with 14 additions and 1 deletions
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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(())
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue