mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2025-12-24 12:19:41 +00:00
fetchConversation: Minimize scans across loaded messages
FREEBIE
This commit is contained in:
@@ -564,7 +564,11 @@
|
||||
if (typeof unreadCount !== 'number') {
|
||||
unreadCount = 0;
|
||||
}
|
||||
var startingLoadedUnread = this.getLoadedUnreadCount();
|
||||
|
||||
var startingLoadedUnread = 0;
|
||||
if (unreadCount > 0) {
|
||||
startingLoadedUnread = this.getLoadedUnreadCount();
|
||||
}
|
||||
return new Promise(function(resolve) {
|
||||
var upper;
|
||||
if (this.length === 0) {
|
||||
@@ -586,12 +590,17 @@
|
||||
};
|
||||
this.fetch(options).then(resolve);
|
||||
}.bind(this)).then(function() {
|
||||
var loadedUnread = this.getLoadedUnreadCount();
|
||||
if (startingLoadedUnread === loadedUnread) {
|
||||
// that fetch didn't get us any more unread. stop fetching more.
|
||||
return;
|
||||
}
|
||||
if (loadedUnread < unreadCount) {
|
||||
if (unreadCount > 0) {
|
||||
if (unreadCount <= startingLoadedUnread) {
|
||||
return;
|
||||
}
|
||||
|
||||
var loadedUnread = this.getLoadedUnreadCount();
|
||||
if (startingLoadedUnread === loadedUnread) {
|
||||
// that fetch didn't get us any more unread. stop fetching more.
|
||||
return;
|
||||
}
|
||||
|
||||
return this.fetchConversation(conversationId, limit, unreadCount);
|
||||
}
|
||||
}.bind(this));
|
||||
|
||||
Reference in New Issue
Block a user