Read receipts: Also mark all messages read prior to this one

We mark as read everything older than this message - to clean up old
stuff still marked unread in the database. If the user generally doesn't
read in the desktop app, so the desktop app only gets read receipts, we
can very easily end up with messages never marked as read (our previous
early read receipt handling, read receipts never sent because app was
offline).

FREEBIE
This commit is contained in:
Scott Nonnenberg 2017-06-07 11:24:21 -07:00
parent f38d8eb4ae
commit 89046484ed

View file

@ -66,9 +66,12 @@
this.messageCollection.get(message.id).fetch();
}
return this.getUnread().then(function(unreadMessages) {
this.save({unreadCount: unreadMessages.length});
}.bind(this));
// We mark as read everything older than this message - to clean up old stuff
// still marked unread in the database. If the user generally doesn't read in
// the desktop app, so the desktop app only gets read receipts, we can very
// easily end up with messages never marked as read (our previous early read
// receipt handling, read receipts never sent because app was offline)
return this.markRead(message.get('received_at'));
},
getUnread: function() {