From 22adbd38dca0868f0e10754314a3859bba0a7d87 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Fri, 31 Mar 2017 01:17:01 +0200 Subject: Handle MUC private messages --- .../module/xep/0030_service_discovery/flag.vala | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'xmpp-vala/src/module/xep/0030_service_discovery/flag.vala') diff --git a/xmpp-vala/src/module/xep/0030_service_discovery/flag.vala b/xmpp-vala/src/module/xep/0030_service_discovery/flag.vala index 0f82f498..7c49fc30 100644 --- a/xmpp-vala/src/module/xep/0030_service_discovery/flag.vala +++ b/xmpp-vala/src/module/xep/0030_service_discovery/flag.vala @@ -7,15 +7,34 @@ namespace Xmpp.Xep.ServiceDiscovery { public class Flag : XmppStreamFlag { public static FlagIdentity IDENTITY = new FlagIdentity(NS_URI, "service_discovery"); - private HashMap> entity_features = new HashMap>(); + private HashMap?> entity_features = new HashMap?>(); + private HashMap?> entity_identities = new HashMap?>(); public ArrayList features = new ArrayList(); + public ArrayList? get_entity_categories(string jid) { + return entity_identities.has_key(jid) ? entity_identities[jid] : null; // TODO isnt this default for hashmap + } + + public bool? has_entity_identity(string jid, string category, string type) { + if (!entity_identities.has_key(jid)) return null; + if (entity_identities[jid] == null) return false; + foreach (Identity identity in entity_identities[jid]) { + if (identity.category == category && identity.type_ == type) return true; + } + return false; + } + public bool? has_entity_feature(string jid, string feature) { if (!entity_features.has_key(jid)) return null; + if (entity_features[jid] == null) return false; return entity_features[jid].contains(feature); } - public void set_entitiy_features(string jid, ArrayList features) { + public void set_entity_identities(string jid, ArrayList? identities) { + entity_identities[jid] = identities; + } + + public void set_entity_features(string jid, ArrayList? features) { entity_features[jid] = features; } -- cgit v1.2.3-54-g00ecf