createPrivacyList method

Future<void> createPrivacyList(
  1. PrivacyList privacyList
)

Implementation

Future<void> createPrivacyList(PrivacyList privacyList) {
  if (!isPrivacyListsSupported()) {
    return Future.error(Exception(feature_not_supported_error));
  }

  var completer = Completer<void>();

  var iqStanza = IqStanza(AbstractStanza.getRandomId(), IqStanzaType.SET)
    ..fromJid = _connection.fullJid;

  var queryStanza = QueryElement();
  queryStanza.setXmlns('jabber:iq:privacy');
  var listStanza = ListElement(privacyList.name);

  if (privacyList.items != null && privacyList.items!.isNotEmpty) {
    privacyList.items?.forEach((privacyListItem) {
      listStanza.addItem(PrivacyListItemElement(item: privacyListItem));
    });
  }

  queryStanza.addChild(listStanza);
  iqStanza.addChild(queryStanza);

  _unrespondedStanzas[iqStanza.id!] = Tuple2((resultStanza) {
    return;
  }, completer);

  _connection.writeStanza(iqStanza);

  return completer.future;
}