From 6fea8dc624f8bea467a4cbfc9c72be1648fab8de Mon Sep 17 00:00:00 2001 From: Alexander Bachmann Date: Fri, 7 Feb 2025 21:50:41 +0100 Subject: [PATCH] improve(bluetooth): ignore devices with unknown type and without alias --- cosmic-settings/src/pages/bluetooth/backend.rs | 8 +++++++- cosmic-settings/src/pages/bluetooth/mod.rs | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/cosmic-settings/src/pages/bluetooth/backend.rs b/cosmic-settings/src/pages/bluetooth/backend.rs index dcede1c..d490c40 100644 --- a/cosmic-settings/src/pages/bluetooth/backend.rs +++ b/cosmic-settings/src/pages/bluetooth/backend.rs @@ -158,6 +158,8 @@ impl PartialEq for Adapter { impl Eq for Adapter {} +const default_device_icon: &str = "bluetooth-symbolic"; + fn device_type_to_icon(device_type: &str) -> &'static str { match device_type { "computer" => "laptop-symbolic", @@ -173,7 +175,7 @@ fn device_type_to_icon(device_type: &str) -> &'static str { "input-mouse" => "input-mouse-symbolic", "printer" => "printer-network-symbolic", "camera-photo" => "camera-photo-symbolic", - _ => "bluetooth-symbolic", + _ => default_device_icon, } } @@ -266,6 +268,10 @@ impl Device { self.alias.is_some() } #[must_use] + pub fn is_known_device_type(&self) -> bool { + self.icon != default_device_icon + } + #[must_use] pub fn alias_or_addr(&self) -> &str { self.alias.as_ref().unwrap_or(&self.address) } diff --git a/cosmic-settings/src/pages/bluetooth/mod.rs b/cosmic-settings/src/pages/bluetooth/mod.rs index 5145cf9..68c14e8 100644 --- a/cosmic-settings/src/pages/bluetooth/mod.rs +++ b/cosmic-settings/src/pages/bluetooth/mod.rs @@ -746,6 +746,10 @@ fn available_devices() -> Section { return None::>; } + if !device.is_known_device_type() && !device.has_alias() { + return None::>; + } + let mut items = vec![ widget::icon::from_name(device.icon).size(16).into(), text(device.alias_or_addr()).wrapping(Wrapping::Word).into(),