addAndActivateConnection method

Future<NetworkManagerActiveConnection> addAndActivateConnection(
  1. {Map<String, Map<String, DBusValue>> connection = const {},
  2. required NetworkManagerDevice device,
  3. NetworkManagerAccessPoint? accessPoint}
)

Adds a new connection for device and activates it.

Optionally, connection settings may be specified as a template. Missing settings are automatically filled in.

Implementation

Future<NetworkManagerActiveConnection> addAndActivateConnection(
    {Map<String, Map<String, DBusValue>> connection = const {},
    required NetworkManagerDevice device,
    NetworkManagerAccessPoint? accessPoint}) async {
  var result = await _manager!.callMethod(
      _managerInterfaceName,
      'AddAndActivateConnection',
      [
        DBusDict(
            DBusSignature('s'),
            DBusSignature('a{sv}'),
            connection.map((key, value) =>
                MapEntry(DBusString(key), DBusDict.stringVariant(value)))),
        device._object.path,
        accessPoint?._object.path ?? DBusObjectPath('/'),
      ],
      replySignature: DBusSignature('oo'));
  var path = result.returnValues[1] as DBusObjectPath;
  return activeConnectionAdded
      .firstWhere((connection) => connection._object.path == path);
}