[geary: 14/14] Merge branch 'wip/131-sent-mail' into 'mainline'



commit 81e566a78f70fcebdd297074b9f3939db0af9b27
Merge: 8cb0cdcf 08c05734
Author: Michael Gratton <mike vee net>
Date:   Wed Aug 28 01:22:59 2019 +0000

    Merge branch 'wip/131-sent-mail' into 'mainline'
    
    Sent mail not immediately showing up in a conversation
    
    Closes #131
    
    See merge request GNOME/geary!281

 .../conversation-viewer/conversation-message.vala  |  4 +-
 src/engine/api/geary-abstract-local-folder.vala    |  7 +-
 src/engine/api/geary-folder.vala                   | 13 +++
 src/engine/app/app-conversation-monitor.vala       | 12 ---
 .../imap-engine-account-synchronizer.vala          | 39 ++-------
 .../imap-engine/imap-engine-email-prefetcher.vala  | 73 +++++++++++------
 .../imap-engine/imap-engine-minimal-folder.vala    | 61 +++++++++++++-
 .../replay-ops/imap-engine-create-email.vala       | 92 ++++++++++++++-------
 src/engine/imap/api/imap-folder-session.vala       | 11 +++
 src/engine/rfc822/rfc822-message.vala              |  4 +
 src/engine/smtp/smtp-client-service.vala           | 95 ++++++++++++++++++----
 test/engine/api/geary-folder-mock.vala             |  5 ++
 12 files changed, 296 insertions(+), 120 deletions(-)
---
diff --cc src/engine/imap-engine/imap-engine-account-synchronizer.vala
index 89cc77be,1fdae636..5244c9c8
--- a/src/engine/imap-engine/imap-engine-account-synchronizer.vala
+++ b/src/engine/imap-engine/imap-engine-account-synchronizer.vala
@@@ -185,32 -158,11 +174,17 @@@ private class Geary.ImapEngine.RefreshF
          }
      }
  
-     protected virtual async void sync_folder(Cancellable cancellable)
-         throws Error {
-         yield wait_for_prefetcher(cancellable);
-     }
- 
-     protected async void wait_for_prefetcher(Cancellable cancellable)
-         throws Error {
-         MinimalFolder minimal = (MinimalFolder) this.folder;
-         try {
-             yield minimal.email_prefetcher.active_sem.wait_async(cancellable);
-         } catch (Error err) {
-             Logging.debug(
-                 Logging.Flag.PERIODIC,
-                 "Error waiting for email prefetcher to complete %s: %s",
-                 folder.to_string(),
-                 err.message
-             );
-         }
+     protected virtual async void sync_folder(GLib.Cancellable cancellable)
+         throws GLib.Error {
+         yield this.folder.synchronise_remote(cancellable);
      }
  
 +    private void on_folder_close() {
 +        if (this.closed_cancellable != null) {
 +            this.closed_cancellable.cancel();
 +        }
 +    }
 +
  }
  
  /**
diff --cc src/engine/imap-engine/imap-engine-email-prefetcher.vala
index d5ccc036,d2622911..ed5c7c0c
--- a/src/engine/imap-engine/imap-engine-email-prefetcher.vala
+++ b/src/engine/imap-engine/imap-engine-email-prefetcher.vala
@@@ -7,11 -5,27 +7,23 @@@
   */
  
  /**
 - * The EmailPrefetcher monitors the supplied folder for its "opened" and "closed" signals.  When
 - * opened, the prefetcher will pull in email from the server in the background so its available
 - * in the local store.
 - *
 - * The EmailPrefetcher does not maintain a reference to the folder.
 + * Ensures all email in a folder's vector has been downloaded.
   */
  private class Geary.ImapEngine.EmailPrefetcher : Geary.BaseObject {
+ 
+ 
      public const int PREFETCH_DELAY_SEC = 1;
  
+     // Specify PROPERTIES so messages can be pre-fetched
+     // smallest first, ONLY_INCOMPLETE since complete messages
+     // don't need re-fetching, and PARTIAL_OK so that messages
+     // that don't have properties (i.e. are essentially blank)
+     // are still found and filled in.
+     private const Geary.Email.Field PREPARE_FIELDS = PROPERTIES;
+     private const ImapDB.Folder.ListFlags PREPARE_FLAGS = (
+         ONLY_INCOMPLETE | PARTIAL_OK
+     );
+ 
      private const Geary.Email.Field PREFETCH_FIELDS = Geary.Email.Field.ALL;
      private const int PREFETCH_CHUNK_BYTES = 32 * 1024;
  


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