supportsOmemo method

Future<Result<OmemoError, bool>> supportsOmemo(
  1. JID jid
)

Attempts to find out if jid supports omemo:2.

On success, returns whether jid has published a device list and device bundles. On failure, returns an OmemoError.

Implementation

Future<Result<OmemoError, bool>> supportsOmemo(JID jid) async {
  final dm = getAttributes().getManagerById<DiscoManager>(discoManager)!;
  final items = await dm.discoItemsQuery(jid.toBare());

  if (items.isType<DiscoError>()) return Result(UnknownOmemoError());

  final nodes = items.get<List<DiscoItem>>();
  final result = nodes.any((item) => item.node == omemoDevicesXmlns) &&
      nodes.any((item) => item.node == omemoBundlesXmlns);
  return Result(result);
}