[geary/mjog/invert-folder-class-hierarchy] engine: Ensure that MinimalFolder email counts are always updated



commit 5351acca94e4ddbef062d80daba62bf5d217cf13
Author: Michael Gratton <mike vee net>
Date:   Sun Mar 7 21:27:04 2021 +1100

    engine: Ensure that MinimalFolder email counts are always updated
    
    Any call to `ImapDB.Folder.create_or_update` needs to be followed by
    updating the folder's email counts otherwise, addition, removal or
    flag changes could put the numbers out.

 src/engine/imap-engine/replay-ops/imap-engine-create-email.vala  | 1 +
 src/engine/imap-engine/replay-ops/imap-engine-expand-vector.vala | 1 +
 src/engine/imap-engine/replay-ops/imap-engine-fetch-email.vala   | 1 +
 3 files changed, 3 insertions(+)
---
diff --git a/src/engine/imap-engine/replay-ops/imap-engine-create-email.vala 
b/src/engine/imap-engine/replay-ops/imap-engine-create-email.vala
index 76bab6f49..a0f9c260a 100644
--- a/src/engine/imap-engine/replay-ops/imap-engine-create-email.vala
+++ b/src/engine/imap-engine/replay-ops/imap-engine-create-email.vala
@@ -70,6 +70,7 @@ private class Geary.ImapEngine.CreateEmail : SendReplayOperation {
                     this.engine.harvester,
                     this.cancellable
                 );
+            yield this.engine.update_email_counts(cancellable);
 
             if (results.size > 0) {
                 this.created_id = Collection.first(results.keys).id;
diff --git a/src/engine/imap-engine/replay-ops/imap-engine-expand-vector.vala 
b/src/engine/imap-engine/replay-ops/imap-engine-expand-vector.vala
index 4e2403c78..e821f5301 100644
--- a/src/engine/imap-engine/replay-ops/imap-engine-expand-vector.vala
+++ b/src/engine/imap-engine/replay-ops/imap-engine-expand-vector.vala
@@ -149,6 +149,7 @@ private class Geary.ImapEngine.ExpandVector : ReplayOperation {
                 yield this.engine.local_folder.create_or_merge_email_async(
                     list, this.engine.harvester, cancellable
                 );
+            yield this.engine.update_email_counts(this.cancellable);
 
             foreach (Email email in created_or_merged.keys) {
                 if (created_or_merged.get(email)) {
diff --git a/src/engine/imap-engine/replay-ops/imap-engine-fetch-email.vala 
b/src/engine/imap-engine/replay-ops/imap-engine-fetch-email.vala
index 986b512cb..977ca55b2 100644
--- a/src/engine/imap-engine/replay-ops/imap-engine-fetch-email.vala
+++ b/src/engine/imap-engine/replay-ops/imap-engine-fetch-email.vala
@@ -64,6 +64,7 @@ private class Geary.ImapEngine.FetchEmail : SendReplayOperation {
                     this.engine.harvester,
                     cancellable
                 );
+                yield this.engine.update_email_counts(this.cancellable);
                 this.fetched_email.add_all(updated.keys);
             }
         }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]