[evolution-mapi] Bug 773419 - Age limit for offline message download ][
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-mapi] Bug 773419 - Age limit for offline message download ][
- Date: Wed, 14 Dec 2016 14:20:35 +0000 (UTC)
commit 0c91f9349a58fc0b1904d8cefb0d0da0beeb94a9
Author: Milan Crha <mcrha redhat com>
Date: Wed Dec 14 15:20:20 2016 +0100
Bug 773419 - Age limit for offline message download ][
src/camel/camel-mapi-folder.c | 30 +++++++++++++++++++++++++++++-
1 files changed, 29 insertions(+), 1 deletions(-)
---
diff --git a/src/camel/camel-mapi-folder.c b/src/camel/camel-mapi-folder.c
index 7530af1..f49f40b 100644
--- a/src/camel/camel-mapi-folder.c
+++ b/src/camel/camel-mapi-folder.c
@@ -2013,11 +2013,20 @@ camel_mapi_folder_new (CamelStore *store,
const gchar *short_name;
CamelStoreInfo *si;
gboolean filter_inbox;
+ gboolean offline_limit_by_age = FALSE;
+ CamelTimeUnit offline_limit_unit;
+ gint offline_limit_value;
service = CAMEL_SERVICE (store);
settings = camel_service_ref_settings (service);
- filter_inbox = camel_store_settings_get_filter_inbox (CAMEL_STORE_SETTINGS (settings));
+ g_object_get (
+ settings,
+ "filter-inbox", &filter_inbox,
+ "limit-by-age", &offline_limit_by_age,
+ "limit-unit", &offline_limit_unit,
+ "limit-value", &offline_limit_value,
+ NULL);
g_object_unref (settings);
@@ -2063,6 +2072,25 @@ camel_mapi_folder_new (CamelStore *store,
return NULL;
}
+ if (camel_offline_folder_can_downsync (CAMEL_OFFLINE_FOLDER (folder))) {
+ time_t when = (time_t) 0;
+
+ if (offline_limit_by_age)
+ when = camel_time_value_apply (when, offline_limit_unit, offline_limit_value);
+
+ if (when <= (time_t) 0)
+ when = (time_t) -1;
+
+ /* Ensure cache will expire when set up, otherwise
+ * it causes redownload of messages too soon. */
+ camel_data_cache_set_expire_age (mapi_folder->cache, when);
+ camel_data_cache_set_expire_access (mapi_folder->cache, when);
+ } else {
+ /* Set cache expiration for one week. */
+ camel_data_cache_set_expire_age (mapi_folder->cache, 60 * 60 * 24 * 7);
+ camel_data_cache_set_expire_access (mapi_folder->cache, 60 * 60 * 24 * 7);
+ }
+
if (filter_inbox) {
CamelFolderInfo *fi;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]