diff --git a/src/plugins/converse-rai.js b/src/plugins/converse-rai.js index 846ff5102076c50c97cae178e1b3279b0bf62ae5..2d21f36ed8834b8729dbba5c278949191cfe6390 100644 --- a/src/plugins/converse-rai.js +++ b/src/plugins/converse-rai.js @@ -6,6 +6,7 @@ } }(this, function (converse) { var Strophe, $iq, $msg, $pres, $build, b64_sha1, _ ,Backbone, dayjs, _converse; + var interestingServers = new Set(); var subscribedServers = new Set(); converse.plugins.add("rai", { @@ -43,6 +44,12 @@ } }); + _converse.api.listen.on('raiRoomsUpdated', function (rooms) { + interestingServers = new Set(rooms.map(Strophe.getDomainFromJid)); + if(_converse.api.connection.connected()) { + updateSubscriptions(); + } + }); _converse.api.listen.on('chatBoxScrolledDown', function (view) { @@ -123,12 +130,11 @@ })); } - function updateSubscriptions(rooms) { + function updateSubscriptions() { console.debug("RAI: Updating subscriptions") - var updated_interesting_servers = new Set(rooms.map(Strophe.getDomainFromJid)); - var new_servers = new Set([...updated_interesting_servers].filter(server => !subscribedServers.has(server))); - var obsolete_servers = new Set([...subscribedServers].filter(server => !updated_interesting_servers.has(server))); - console.log("interesting servers", updated_interesting_servers); + var new_servers = new Set([...interestingServers].filter(server => !subscribedServers.has(server))); + var obsolete_servers = new Set([...subscribedServers].filter(server => !interestingServers.has(server))); + console.log("interesting servers", interestingServers); console.log("current servers", subscribedServers); console.log("new servers", new_servers); console.log("obsolete servers", obsolete_servers); @@ -142,8 +148,8 @@ function setupRoomActivityIndicators() { - _converse.api.listen.on('raiRoomsUpdated', updateSubscriptions); - + console.log("RAI: Setup"); + updateSubscriptions(); // If we already have unread notifications stored for this session, emit them now for (var i = 0; i < sessionStorage.length; i++) {