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]
|
[dependencies]
|
||||||
cosmic-dbus-networkmanager = { git = "https://github.com/pop-os/dbus-settings-bindings" }
|
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"
|
gtk4 = "0.4.6"
|
||||||
itertools = "0.10.3"
|
itertools = "0.10.3"
|
||||||
once_cell = "1.9.0"
|
once_cell = "1.9.0"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
use crate::{task, widgets::SettingsEntry};
|
use crate::{task, widgets::SettingsEntry};
|
||||||
use cosmic_dbus_networkmanager::nm::NetworkManager;
|
use cosmic_dbus_networkmanager::nm::NetworkManager;
|
||||||
|
use futures_util::StreamExt;
|
||||||
use gtk4::{
|
use gtk4::{
|
||||||
glib::{self, clone, source::PRIORITY_DEFAULT, MainContext, Sender},
|
glib::{self, clone, source::PRIORITY_DEFAULT, MainContext, Sender},
|
||||||
prelude::*,
|
prelude::*,
|
||||||
|
|
@ -53,6 +54,18 @@ async fn get_wifi_mode(tx: Sender<bool>) -> zbus::Result<()> {
|
||||||
let wireless_enabled = network_manager.wireless_enabled().await?;
|
let wireless_enabled = network_manager.wireless_enabled().await?;
|
||||||
tx.send(wireless_enabled)
|
tx.send(wireless_enabled)
|
||||||
.expect("Failed to send wifi enablement back to main thread");
|
.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(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue