diff --git a/Cargo.lock b/Cargo.lock index 88055f96..622c3aaa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -227,7 +227,7 @@ dependencies = [ "async-task", "concurrent-queue", "fastrand 2.0.1", - "futures-lite 2.2.0", + "futures-lite 2.3.0", "slab", ] @@ -273,7 +273,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.2.0", + "futures-lite 2.3.0", "parking", "polling 3.5.0", "rustix 0.38.31", @@ -321,13 +321,13 @@ dependencies = [ [[package]] name = "async-recursion" -version = "1.0.5" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" +checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -356,13 +356,13 @@ checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -530,7 +530,7 @@ dependencies = [ "async-task", "fastrand 2.0.1", "futures-io", - "futures-lite 2.2.0", + "futures-lite 2.3.0", "piper", "tracing", ] @@ -587,7 +587,7 @@ checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -698,7 +698,7 @@ dependencies = [ [[package]] name = "clipboard_macos" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" dependencies = [ "objc", "objc-foundation", @@ -708,7 +708,7 @@ dependencies = [ [[package]] name = "clipboard_wayland" version = "0.2.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" dependencies = [ "mime 0.1.0", "smithay-clipboard", @@ -717,7 +717,7 @@ dependencies = [ [[package]] name = "clipboard_x11" version = "0.4.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" dependencies = [ "thiserror", "x11rb", @@ -1145,7 +1145,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1165,7 +1165,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "quote", "syn 1.0.109", @@ -1218,7 +1218,7 @@ dependencies = [ [[package]] name = "cosmic-panel-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-panel#f3fd857536bf8947a2ac765b01ed7078f452a767" +source = "git+https://github.com/pop-os/cosmic-panel#3aad7907ee6b5506cf800c2a838176bacfcfa8ad" dependencies = [ "anyhow", "cosmic-config", @@ -1254,7 +1254,7 @@ dependencies = [ [[package]] name = "cosmic-text" version = "0.11.2" -source = "git+https://github.com/pop-os/cosmic-text.git#18c3d2acec5e7f64a670c6643ee3ab220bc92a89" +source = "git+https://github.com/pop-os/cosmic-text.git#b08676909f882f553ab574601b35b58276a52458" dependencies = [ "bitflags 2.4.2", "fontdb", @@ -1276,15 +1276,17 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "almost", "cosmic-config", "csscolorparser", + "dirs 5.0.1", "lazy_static", "palette", "ron", "serde", + "thiserror", ] [[package]] @@ -1388,7 +1390,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad291aa74992b9b7a7e88c38acbbf6ad7e107f1d90ee8775b7bc1fc3394f485c" dependencies = [ "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1416,7 +1418,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", "synstructure", ] @@ -1475,7 +1477,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1497,7 +1499,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ "darling_core 0.20.8", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1612,7 +1614,7 @@ dependencies = [ "darling 0.20.8", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1680,7 +1682,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1781,7 +1783,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -2092,7 +2094,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -2221,9 +2223,9 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ "fastrand 2.0.1", "futures-core", @@ -2240,7 +2242,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -2618,7 +2620,7 @@ dependencies = [ "serde", "serde_derive", "thiserror", - "toml 0.8.11", + "toml 0.8.12", "unic-langid", ] @@ -2661,7 +2663,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.52", + "syn 2.0.53", "unic-langid", ] @@ -2675,7 +2677,7 @@ dependencies = [ "i18n-config", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -2704,7 +2706,7 @@ dependencies = [ [[package]] name = "iced" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "iced_accessibility", "iced_core", @@ -2714,12 +2716,13 @@ dependencies = [ "iced_widget", "image 0.24.9", "thiserror", + "window_clipboard", ] [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "accesskit", "accesskit_unix", @@ -2728,7 +2731,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "bitflags 1.3.2", "iced_accessibility", @@ -2748,7 +2751,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "futures", "iced_core", @@ -2761,7 +2764,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "bitflags 1.3.2", "bytemuck", @@ -2785,7 +2788,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2797,7 +2800,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "iced_accessibility", "iced_core", @@ -2810,7 +2813,7 @@ dependencies = [ [[package]] name = "iced_sctk" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "enum-repr", "float-cmp", @@ -2836,7 +2839,7 @@ dependencies = [ [[package]] name = "iced_style" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "iced_core", "once_cell", @@ -2846,7 +2849,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "bytemuck", "cosmic-text", @@ -2863,7 +2866,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "bitflags 1.3.2", "bytemuck", @@ -2882,7 +2885,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "iced_renderer", "iced_runtime", @@ -3158,7 +3161,7 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libcosmic" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#5d600c70c2900ab8918d97f950c2af779636da0f" +source = "git+https://github.com/pop-os/libcosmic#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "apply", "ashpd 0.7.0", @@ -3484,7 +3487,7 @@ dependencies = [ [[package]] name = "mime" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" dependencies = [ "smithay-clipboard", ] @@ -3666,7 +3669,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -3822,7 +3825,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -3852,7 +3855,7 @@ checksum = "e8890702dbec0bad9116041ae586f84805b13eecd1d8b1df27c29998a9969d6d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -3963,7 +3966,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -3998,7 +4001,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -4446,7 +4449,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.52", + "syn 2.0.53", "walkdir", ] @@ -4591,7 +4594,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -4613,7 +4616,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -4895,7 +4898,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -4946,9 +4949,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.52" +version = "2.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" +checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" dependencies = [ "proc-macro2", "quote", @@ -4963,7 +4966,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -4984,7 +4987,7 @@ dependencies = [ "cfg-expr", "heck", "pkg-config", - "toml 0.8.11", + "toml 0.8.12", "version-compare", ] @@ -5049,7 +5052,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -5202,7 +5205,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -5227,14 +5230,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af06656561d28735e9c1cd63dfd57132c8155426aa6af24f36a00a351f88c48e" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.7", + "toml_edit 0.22.8", ] [[package]] @@ -5259,9 +5262,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.7" +version = "0.22.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18769cd1cec395d70860ceb4d932812a0b4d06b1a4bb336745a4d21b9496e992" +checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd" dependencies = [ "indexmap", "serde", @@ -5289,7 +5292,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -5550,9 +5553,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" +checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" dependencies = [ "getrandom", ] @@ -5618,7 +5621,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", "wasm-bindgen-shared", ] @@ -5652,7 +5655,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5958,7 +5961,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window_clipboard" version = "0.4.1" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" dependencies = [ "clipboard-win", "clipboard_macos", @@ -6337,7 +6340,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] diff --git a/cosmic-applet-network/src/app.rs b/cosmic-applet-network/src/app.rs index 04842a35..f7546d45 100644 --- a/cosmic-applet-network/src/app.rs +++ b/cosmic-applet-network/src/app.rs @@ -283,28 +283,26 @@ impl cosmic::Application for CosmicNetworkApplet { success, req, } => { - if let NetworkManagerRequest::SelectAccessPoint(ssid) - | NetworkManagerRequest::Password(ssid, _) - | NetworkManagerRequest::Disconnect(ssid) = &req - { + if let NetworkManagerRequest::SelectAccessPoint(ssid) = &req { if self .new_connection .as_ref() - .map(|c| c.ssid() != ssid) + .map(|c| c.ssid() == ssid) .unwrap_or_default() + && success { self.new_connection = None; } } - if !success { - if let NetworkManagerRequest::Password(_, _) = req { - if let Some( - NewConnectionState::EnterPassword { access_point, .. } - | NewConnectionState::Waiting(access_point), - ) = self.new_connection.as_ref() - { - self.new_connection - .replace(NewConnectionState::Failure(access_point.clone())); + if let NetworkManagerRequest::Password(ssid, _) = &req { + if let Some( + NewConnectionState::EnterPassword { access_point, .. } + | NewConnectionState::Waiting(access_point), + ) = self.new_connection.take() + { + if !success && ssid == &access_point.ssid { + self.new_connection = + Some(NewConnectionState::Failure(access_point.clone())); } } } @@ -315,6 +313,7 @@ impl cosmic::Application for CosmicNetworkApplet { { let mut browser = std::process::Command::new("xdg-open"); browser.arg("http://204.pop-os.org/"); + cosmic::process::spawn(browser); } @@ -332,14 +331,13 @@ impl cosmic::Application for CosmicNetworkApplet { access_point.ssid.clone(), )); - self.new_connection - .replace(NewConnectionState::EnterPassword { - access_point, - password: String::new(), - }); + self.new_connection = Some(NewConnectionState::EnterPassword { + access_point, + password: String::new(), + }); } Message::ToggleVisibleNetworks => { - self.new_connection.take(); + self.new_connection = None; self.show_visible_networks = !self.show_visible_networks; } Message::Password(entered_pw) => { @@ -387,9 +385,10 @@ impl cosmic::Application for CosmicNetworkApplet { let _ = tx.unbounded_send(NetworkManagerRequest::SelectAccessPoint(ssid)); } Message::CancelNewConnection => { - self.new_connection.take(); + self.new_connection = None; } Message::Disconnect(ssid) => { + self.new_connection = None; let tx = if let Some(tx) = self.nm_sender.as_ref() { if let Some(ActiveConnectionInfo::WiFi { state, .. }) = self .nm_state diff --git a/cosmic-applet-network/src/network_manager/mod.rs b/cosmic-applet-network/src/network_manager/mod.rs index ef0a3920..ecc03c85 100644 --- a/cosmic-applet-network/src/network_manager/mod.rs +++ b/cosmic-applet-network/src/network_manager/mod.rs @@ -243,10 +243,11 @@ async fn start_listening( .build() .await .unwrap(); - let state = enums::ActiveConnectionState::from( + let mut state = enums::ActiveConnectionState::from( active.state().await.unwrap_or_default(), ); - let s = if let enums::ActiveConnectionState::Activating = state + + while matches!(state, enums::ActiveConnectionState::Activating) { if let Ok(Some(s)) = timeout( Duration::from_secs(10), @@ -254,14 +255,13 @@ async fn start_listening( ) .await { - s.get().await.unwrap_or_default().into() + state = s.get().await.unwrap_or_default().into(); } else { - state + break; } - } else { - state - }; - matches!(s, enums::ActiveConnectionState::Activated) + } + + matches!(state, enums::ActiveConnectionState::Activated) } else { false }; @@ -331,10 +331,10 @@ async fn start_listening( .build() .await .unwrap(); - let state = enums::ActiveConnectionState::from( + let mut state = enums::ActiveConnectionState::from( active.state().await.unwrap_or_default(), ); - let s = if let enums::ActiveConnectionState::Activating = state + while matches!(state, enums::ActiveConnectionState::Activating) { if let Ok(Some(s)) = timeout( Duration::from_secs(10), @@ -342,29 +342,25 @@ async fn start_listening( ) .await { - s.get().await.unwrap_or_default().into() + state = s.get().await.unwrap_or_default().into(); } else { - state + break; } - } else { - state - }; - matches!(s, enums::ActiveConnectionState::Activated) + } + matches!(state, enums::ActiveConnectionState::Activated) } else { false }; - _ = output - .send(NetworkManagerEvent::RequestResponse { - req: NetworkManagerRequest::Password( - ssid.clone(), - password.clone(), - ), - success, - state: NetworkManagerState::new(&conn) - .await - .unwrap_or_default(), - }) - .await; + status = Some(NetworkManagerEvent::RequestResponse { + req: NetworkManagerRequest::Password( + ssid.clone(), + password.clone(), + ), + success, + state: NetworkManagerState::new(&conn) + .await + .unwrap_or_default(), + }); break; } @@ -454,7 +450,7 @@ async fn start_listening( }) .await; - break; + return State::Waiting(conn, rx); } _ = output .send(NetworkManagerEvent::RequestResponse {