commit df9d65b1bebb00d294fbc8187f0395c2c75c8f7a Author: Arlo Breault arlolra@gmail.com Date: Mon Feb 29 12:56:10 2016 -0800
Update participants list with new followers --- projects/instantbird/bug-955324.patch | 52 +++++++++++++++++++++++++++++++++++ projects/instantbird/config | 1 + 2 files changed, 53 insertions(+)
diff --git a/projects/instantbird/bug-955324.patch b/projects/instantbird/bug-955324.patch new file mode 100644 index 0000000..c16b0db --- /dev/null +++ b/projects/instantbird/bug-955324.patch @@ -0,0 +1,52 @@ +# HG changeset patch +# User Arlo Breault arlolra@gmail.com +# Date 1456775633 28800 +# Mon Feb 29 11:53:53 2016 -0800 +# Node ID 6e6444a94b87a64b6ac316280f810709b632d461 +# Parent f2acd8984cea1a68e57a2c30e93a3089a9bce76d +Bug 955324 - Starting/stopping to follow someone doesn't update the participant list of the timeline + +diff --git a/chat/protocols/twitter/twitter.js b/chat/protocols/twitter/twitter.js +--- a/chat/protocols/twitter/twitter.js ++++ b/chat/protocols/twitter/twitter.js +@@ -569,16 +569,17 @@ Account.prototype = { + // friendships/destroy will return the user in case of success. + // Error cases would return a non 200 HTTP code and not call our callback. + this.signAndSend("1.1/friendships/destroy.json", null, + [["screen_name", aUserName]], function(aData, aXHR) { + let user = JSON.parse(aData); + if (!("id_str" in user)) + return; // Unexpected response... + this._friends.delete(user.id_str); ++ this.timeline.removeParticipant(user.screen_name); + let date = aXHR.getResponseHeader("Date"); + this.timeline.systemMessage(_("event.unfollow", user.screen_name), false, + new Date(date) / 1000); + }, null, this); + }, + addBuddy: function(aTag, aName) { + this.follow(aName); + }, +@@ -775,19 +776,21 @@ Account.prototype = { + // Overwrite the existing _friends list (if any). + this._friends = new Set(msg.friends.map(aId => aId.toString())); + } + else if ("event" in msg) { + let user, event; + switch(msg.event) { + case "follow": + if (msg.source.screen_name == this.name) { +- this._friends.add(msg.target.id_str); + user = msg.target; + event = "follow"; ++ this.setUserInfo(user); ++ this._friends.add(user.id_str); ++ this.timeline._ensureParticipantExists(user.screen_name); + } + else if (msg.target.screen_name == this.name) { + user = msg.source; + event = "followed"; + } + if (user) { + this.setUserInfo(user); + this.timeline.systemMessage(_("event." + event, user.screen_name), diff --git a/projects/instantbird/config b/projects/instantbird/config index 8fb173e..b9d846c 100644 --- a/projects/instantbird/config +++ b/projects/instantbird/config @@ -76,6 +76,7 @@ input_files: - filename: trac-17896.patch - filename: trac-17494.patch - filename: trac-13312.patch + - filename: bug-955324.patch - filename: version.patch - filename: search-context-menu.patch - filename: search-preferences-xul.patch