From 3e0fa995ddebdc3ec3c6d0627616a1f33123095c Mon Sep 17 00:00:00 2001 From: Scott Nonnenberg Date: Fri, 21 Jul 2017 11:00:25 -0700 Subject: [PATCH] When finding all groups involving a number, load from DB not memory FREEBIE --- js/conversation_controller.js | 7 +++++-- js/keychange_listener.js | 8 +++----- js/models/conversations.js | 7 ++++--- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/js/conversation_controller.js b/js/conversation_controller.js index edb6b69a40..33299beae1 100644 --- a/js/conversation_controller.js +++ b/js/conversation_controller.js @@ -116,8 +116,11 @@ }); }, getAllGroupsInvolvingId: function(id) { - return conversations.filter(function(conversation) { - return !conversation.isPrivate() && conversation.hasMember(id); + var groups = new Whisper.GroupCollection(); + return groups.fetchGroups(id).then(function() { + return groups.map(function(group) { + return conversations.add(group); + }); }); }, updateInbox: function() { diff --git a/js/keychange_listener.js b/js/keychange_listener.js index b58272f726..b9b550f7cb 100644 --- a/js/keychange_listener.js +++ b/js/keychange_listener.js @@ -17,11 +17,9 @@ conversation.fetch().then(function() { conversation.addKeyChange(id); }); - var groups = new Whisper.GroupCollection(); - return groups.fetchGroups(id).then(function() { - groups.each(function(conversation) { - conversation = ConversationController.add(conversation); - conversation.addKeyChange(id); + ConversationController.getAllGroupsInvolvingId(id).then(function(groups) { + _.forEach(groups, function(group) { + group.addKeyChange(id); }); }); }); diff --git a/js/models/conversations.js b/js/models/conversations.js index ef148fe013..da6925dfce 100644 --- a/js/models/conversations.js +++ b/js/models/conversations.js @@ -320,9 +320,10 @@ message.save().then(this.trigger.bind(this,'newmessage', message)); if (this.isPrivate()) { - var groups = ConversationController.getAllGroupsInvolvingId(id); - _.forEach(groups, function(group) { - group.addVerifiedChange(id, verified, options); + ConversationController.getAllGroupsInvolvingId(id).then(function(groups) { + _.forEach(groups, function(group) { + group.addVerifiedChange(id, verified, options); + }); }); } },