Conversation.markRead: Remove checks for unread

We will now always attempt to mark things unread if this method. If the
conversation's unreadCount gets out of date, set to zero, we will still
do it. If we go through the motions, and nothing is newly marked read,
we will still set the unreadCount to zero.
This commit is contained in:
Scott Nonnenberg 2017-06-07 12:20:25 -07:00
parent 6fbdd63e7e
commit aeefc530d2

View file

@ -305,42 +305,38 @@
options = options || {}; options = options || {};
_.defaults(options, {sendReadReceipts: true}); _.defaults(options, {sendReadReceipts: true});
if (this.get('unreadCount') > 0) { var conversationId = this.id;
var conversationId = this.id; Whisper.Notifications.remove(Whisper.Notifications.where({
Whisper.Notifications.remove(Whisper.Notifications.where({ conversationId: conversationId
conversationId: conversationId }));
}));
this.getUnread().then(function(unreadMessages) { this.getUnread().then(function(unreadMessages) {
var oldUnread = unreadMessages.filter(function(message) { var oldUnread = unreadMessages.filter(function(message) {
return message.get('received_at') <= newestUnreadDate; return message.get('received_at') <= newestUnreadDate;
}); });
var read = _.map(oldUnread, function(m) { var read = _.map(oldUnread, function(m) {
if (this.messageCollection.get(m.id)) { if (this.messageCollection.get(m.id)) {
m = this.messageCollection.get(m.id); m = this.messageCollection.get(m.id);
} else { } else {
console.log('Marked a message as read in the database, but ' + console.log('Marked a message as read in the database, but ' +
'it was not in messageCollection.'); 'it was not in messageCollection.');
}
m.markRead();
return {
sender : m.get('source'),
timestamp : m.get('sent_at')
};
}.bind(this));
if (read.length > 0) {
var unreadCount = unreadMessages.length - read.length;
this.save({ unreadCount: unreadCount });
if (options.sendReadReceipts) {
console.log('Sending', read.length, 'read receipts');
textsecure.messaging.syncReadMessages(read);
}
} }
m.markRead();
return {
sender : m.get('source'),
timestamp : m.get('sent_at')
};
}.bind(this)); }.bind(this));
}
var unreadCount = unreadMessages.length - read.length;
this.save({ unreadCount: unreadCount });
if (read.length && options.sendReadReceipts) {
console.log('Sending', read.length, 'read receipts');
textsecure.messaging.syncReadMessages(read);
}
}.bind(this));
}, },
fetchMessages: function() { fetchMessages: function() {