[geary: 14/14] Merge branch 'wip/131-sent-mail' into 'mainline'
- From: Michael Gratton <mjog src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary: 14/14] Merge branch 'wip/131-sent-mail' into 'mainline'
- Date: Wed, 28 Aug 2019 01:23:17 +0000 (UTC)
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]