From 782ae4c049e2b6fab13d7453cbb0e74610e7d200 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Fri, 12 Jan 2018 21:03:09 +0100 Subject: Move Jid class to xmpp-vala, partially refactor namespace --- xmpp-vala/src/module/xep/0048_bookmarks/conference.vala | 13 ++++++------- xmpp-vala/src/module/xep/0048_bookmarks/module.vala | 16 +++++++++------- 2 files changed, 15 insertions(+), 14 deletions(-) (limited to 'xmpp-vala/src/module/xep/0048_bookmarks') diff --git a/xmpp-vala/src/module/xep/0048_bookmarks/conference.vala b/xmpp-vala/src/module/xep/0048_bookmarks/conference.vala index 6964f83d..e5037e42 100644 --- a/xmpp-vala/src/module/xep/0048_bookmarks/conference.vala +++ b/xmpp-vala/src/module/xep/0048_bookmarks/conference.vala @@ -1,5 +1,3 @@ -using Xmpp.Core; - namespace Xmpp.Xep.Bookmarks { public class Conference : Object { @@ -21,9 +19,10 @@ public class Conference : Object { set { stanza_node.set_attribute(ATTRIBUTE_AUTOJOIN, value.to_string()); } } - public string jid { - get { return stanza_node.get_attribute(ATTRIBUTE_JID); } - set { stanza_node.set_attribute(ATTRIBUTE_JID, value); } + private Jid jid_; + public Jid jid { + get { return jid_ ?? (jid_ = Jid.parse(stanza_node.get_attribute(ATTRIBUTE_JID))); } + set { stanza_node.set_attribute(ATTRIBUTE_JID, value.to_string()); } } public string? name { @@ -73,7 +72,7 @@ public class Conference : Object { } } - public Conference(string jid) { + public Conference(Jid jid) { this.stanza_node = new StanzaNode.build("conference", NS_URI); this.jid = jid; } @@ -90,4 +89,4 @@ public class Conference : Object { } } -} \ No newline at end of file +} diff --git a/xmpp-vala/src/module/xep/0048_bookmarks/module.vala b/xmpp-vala/src/module/xep/0048_bookmarks/module.vala index 6b354c57..2c16f5f0 100644 --- a/xmpp-vala/src/module/xep/0048_bookmarks/module.vala +++ b/xmpp-vala/src/module/xep/0048_bookmarks/module.vala @@ -1,7 +1,5 @@ using Gee; -using Xmpp.Core; - namespace Xmpp.Xep.Bookmarks { private const string NS_URI = "storage:bookmarks"; @@ -10,12 +8,16 @@ public class Module : XmppStreamModule { public signal void received_conferences(XmppStream stream, Gee.List conferences); - public delegate void OnResult(XmppStream stream, Gee.List conferences); + public delegate void OnResult(XmppStream stream, Gee.List? conferences); public void get_conferences(XmppStream stream, owned OnResult listener) { StanzaNode get_node = new StanzaNode.build("storage", NS_URI).add_self_xmlns(); stream.get_module(PrivateXmlStorage.Module.IDENTITY).retrieve(stream, get_node, (stream, node) => { - Gee.List conferences = get_conferences_from_stanza(node); - listener(stream, conferences); + if (node == null) { + listener(stream, null); + } else { + Gee.List conferences = get_conferences_from_stanza(node); + listener(stream, conferences); + } }); } @@ -39,7 +41,7 @@ public class Module : XmppStreamModule { public void replace_conference(XmppStream stream, Conference orig_conference, Conference modified_conference) { get_conferences(stream, (stream, conferences) => { foreach (Conference conference in conferences) { - if (conference.autojoin == orig_conference.autojoin && conference.jid == orig_conference.jid && + if (conference.autojoin == orig_conference.autojoin && conference.jid.equals(orig_conference.jid) && conference.name == orig_conference.name && conference.nick == orig_conference.nick) { conference.autojoin = modified_conference.autojoin; conference.jid = modified_conference.jid; @@ -56,7 +58,7 @@ public class Module : XmppStreamModule { get_conferences(stream, (stream, conferences) => { Conference? rem = null; foreach (Conference conference in conferences) { - if (conference.name == conference_remove.name && conference.jid == conference_remove.jid && conference.autojoin == conference_remove.autojoin) { + if (conference.name == conference_remove.name && conference.jid.equals(conference_remove.jid) && conference.autojoin == conference_remove.autojoin) { rem = conference; break; } -- cgit v1.2.3-70-g09d2