diff options
-rw-r--r-- | src/bluetooth.vala | 5 | ||||
-rw-r--r-- | src/bluez.vala | 2 | ||||
-rw-r--r-- | src/desktop.vala | 1 | ||||
-rw-r--r-- | src/phone.vala | 1 | ||||
-rw-r--r-- | src/profile.vala | 12 |
5 files changed, 21 insertions, 0 deletions
diff --git a/src/bluetooth.vala b/src/bluetooth.vala index 98464a4..100bdf2 100644 --- a/src/bluetooth.vala +++ b/src/bluetooth.vala @@ -23,6 +23,10 @@ */ public interface Bluetooth: Object { + /* True if there are any bluetooth adapters on this system. + This work as a proxy for "does this hardware support bluetooth?" */ + public abstract bool supported { get; protected set; } + /* True if there are any bluetooth adapters powered up on the system. In short, whether or not this system's bluetooth is "on". */ public abstract bool powered { get; protected set; } @@ -68,6 +72,7 @@ public abstract class KillswitchBluetooth: Object, Bluetooth killswitch.notify["blocked"].connect (() => blocked = killswitch.blocked ); } + public bool supported { get; protected set; default = false; } public bool powered { get; protected set; default = false; } public bool discoverable { get; protected set; default = false; } public bool blocked { get; protected set; default = true; } diff --git a/src/bluez.vala b/src/bluez.vala index 9baacd5..8c8c1b6 100644 --- a/src/bluez.vala +++ b/src/bluez.vala @@ -70,6 +70,8 @@ public class Bluez: KillswitchBluetooth private void on_default_adapter_changed (string? object_path) { + supported = object_path != null; + if (object_path != null) try { debug (@"using default adapter at $object_path"); diff --git a/src/desktop.vala b/src/desktop.vala index 17d7cb6..7c99a45 100644 --- a/src/desktop.vala +++ b/src/desktop.vala @@ -52,6 +52,7 @@ class Desktop: Profile // build the static actions Action[] actions = {}; actions += root_action; + actions += create_supported_action (bluetooth); actions += create_enabled_action (bluetooth); actions += create_discoverable_action (bluetooth); actions += create_wizard_action (); diff --git a/src/phone.vala b/src/phone.vala index 820b9f4..18c698c 100644 --- a/src/phone.vala +++ b/src/phone.vala @@ -32,6 +32,7 @@ class Phone: Profile // build the static actions Action[] actions = {}; actions += root_action; + actions += create_supported_action (bluetooth); actions += create_enabled_action (bluetooth); actions += create_settings_action (); foreach (var a in actions) diff --git a/src/profile.vala b/src/profile.vala index cfe85e3..c32e46b 100644 --- a/src/profile.vala +++ b/src/profile.vala @@ -107,6 +107,18 @@ class Profile: Object /// Actions /// + protected Action create_supported_action (Bluetooth bluetooth) + { + var action = new SimpleAction.stateful ("bluetooth-supported", + null, + bluetooth.supported); + + bluetooth.notify["supported"].connect (() + => action.set_state (bluetooth.supported)); + + return action; + } + protected Action create_enabled_action (Bluetooth bluetooth) { var action = new SimpleAction.stateful ("bluetooth-enabled", |