connect method
Connects to the UPower daemon.
Implementation
Future<void> connect() async {
// Already connected
if (_propertiesChangedSubscription != null) {
return;
}
_propertiesChangedSubscription = _root.propertiesChanged.listen((signal) {
if (signal.propertiesInterface == 'org.freedesktop.UPower') {
_updateProperties(signal.changedProperties);
}
});
_updateProperties(await _root.getAllProperties('org.freedesktop.UPower'));
var deviceAdded = DBusRemoteObjectSignalStream(
object: _root,
interface: 'org.freedesktop.UPower',
name: 'DeviceAdded');
_deviceAddedSubscription = deviceAdded
.listen((signal) => _deviceAdded((signal.values[0] as DBusObjectPath)));
var deviceRemoved = DBusRemoteObjectSignalStream(
object: _root,
interface: 'org.freedesktop.UPower',
name: 'DeviceRemoved');
_deviceRemovedSubscription = deviceRemoved.listen(
(signal) => _deviceRemoved((signal.values[0] as DBusObjectPath)));
var devicePaths = await _enumerateDevices();
for (var path in devicePaths) {
await _deviceAdded(path);
}
await _displayDevice._connect();
}