getList method

Future<List<CubePrivacyListItem>> getList(
  1. String listName
)

Implementation

Future<List<CubePrivacyListItem>> getList(String listName) {
  return xmpp.PrivacyListsManager.getInstance(connection)
      .getListByName(listName)
      .then((listItems) {
    var usersList = <int, CubePrivacyListItem>{};

    for (var item in listItems) {
      if (item.type == xmpp.PrivacyType.JID) {
        var userId = item.value!.startsWith('muc.')
            ? getUserIdFromNickWithMucDomain(item.value!)
            : getUserIdFromJidString(item.value!);
        var action = item.action.toString().toLowerCase().split('.').last;

        var isMutual = !item.controlStanzas!
                .contains(xmpp.PrivacyControlStanza.MESSAGE) &&
            !item.controlStanzas!
                .contains(xmpp.PrivacyControlStanza.PRESENCE_IN) &&
            !item.controlStanzas!
                .contains(xmpp.PrivacyControlStanza.PRESENCE_OUT) &&
            !item.controlStanzas!.contains(xmpp.PrivacyControlStanza.IQ);

        usersList[userId] =
            CubePrivacyListItem(userId, action, isMutual: isMutual);
      }
    }

    return List.from(usersList.values);
  });
}