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