summaryrefslogtreecommitdiff
path: root/lib/bluetooth/device.vala
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bluetooth/device.vala')
-rw-r--r--lib/bluetooth/device.vala22
1 files changed, 18 insertions, 4 deletions
diff --git a/lib/bluetooth/device.vala b/lib/bluetooth/device.vala
index e4df528..74f8d83 100644
--- a/lib/bluetooth/device.vala
+++ b/lib/bluetooth/device.vala
@@ -3,7 +3,7 @@
*/
public class AstalBluetooth.Device : Object {
private IDevice proxy;
- public Battery battery;
+ private Battery battery;
internal ObjectPath object_path { owned get; private set; }
@@ -21,6 +21,15 @@ public class AstalBluetooth.Device : Object {
});
}
+ internal void set_battery(Battery battery) {
+ this.battery = battery;
+
+ notify_property("battery_percentage");
+ battery.notify["percentage"].connect((obj, pspec) => {
+ notify_property("battery_percentage");
+ });
+ }
+
/**
* List of 128-bit UUIDs that represents the available remote services.
*/
@@ -105,10 +114,14 @@ public class AstalBluetooth.Device : Object {
}
/**
- * The percentage of battery left as an unsigned 8-bit integer.
+ * The percentage of battery left on the device if it has one, else 0.
*/
- public uint battery_percentage { get { return battery.percentage; } }
-
+ public uint battery_percentage {
+ get {
+ if (battery != null) return battery.percentage;
+ else return 0;
+ }
+ }
/**
* The name alias for the remote device.
@@ -144,6 +157,7 @@ public class AstalBluetooth.Device : Object {
yield proxy.disconnect();
}
+
/**
* This method connects a specific profile of this device.
* The UUID provided is the remote service UUID for the profile.