addRosterItem method

Future<IqStanzaResult> addRosterItem(
  1. Buddy rosterItem
)

Implementation

Future<IqStanzaResult> addRosterItem(Buddy rosterItem) {
  var completer = Completer<IqStanzaResult>();
  var iqStanza = IqStanza(AbstractStanza.getRandomId(), IqStanzaType.SET);
  var queryElement = XmppElement();
  queryElement.name = 'query';
  queryElement.addAttribute(XmppAttribute('xmlns', 'jabber:iq:roster'));
  iqStanza.addChild(queryElement);
  var itemElement = XmppElement();
  itemElement.name = 'item';
  queryElement.addChild(itemElement);
  itemElement.addAttribute(XmppAttribute('jid', rosterItem.jid!.userAtDomain));
  if (rosterItem.name != null) {
    itemElement.addAttribute(XmppAttribute('name', rosterItem.name));
  }
  _myUnrespondedIqStanzas[iqStanza.id!] = Tuple2(iqStanza, completer);
  _connection.writeStanza(iqStanza);
  return completer.future;
}