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(),