From 73c44fa4abbb13ee740094dc5f99fa27239cb93b Mon Sep 17 00:00:00 2001 From: Matthew Wild <mwild1@gmail.com> Date: Thu, 25 Jun 2020 17:27:36 +0100 Subject: [PATCH] bugfix: Always send RAI subscriptions after connection --- src/plugins/converse-rai.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/plugins/converse-rai.js b/src/plugins/converse-rai.js index 846ff51..2d21f36 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++) { -- GitLab