From ff31677d7cd0eef768987961d976ecab4ad3d7ba Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 26 Oct 2024 09:36:40 +0200 Subject: [PATCH] Default contact age limit --- .../main/java/eu/faircode/email/EntityContact.java | 12 ++++++++---- .../java/eu/faircode/email/FragmentOptionsSend.java | 2 +- .../main/java/eu/faircode/email/WorkerCleanup.java | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/EntityContact.java b/app/src/main/java/eu/faircode/email/EntityContact.java index 72be1b80c0..27b1e914ae 100644 --- a/app/src/main/java/eu/faircode/email/EntityContact.java +++ b/app/src/main/java/eu/faircode/email/EntityContact.java @@ -39,6 +39,7 @@ import org.json.JSONObject; import java.io.Serializable; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Objects; @@ -102,9 +103,13 @@ public class EntityContact implements Serializable { @NonNull EntityAccount account, @NonNull EntityFolder folder, @NonNull EntityMessage message) { - if (account.protocol == EntityAccount.TYPE_IMAP) { - int days = (folder.isOutgoing() ? folder.keep_days : folder.sync_days); - if (message.received < account.created - days * 24 * 3600 * 1000L) + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + int purge_contact_age = prefs.getInt("purge_contact_age", 1); + if (purge_contact_age > 0) { + long now = new Date().getTime(); + long ago = now - purge_contact_age * 30 * 24 * 3600 * 1000L; + if (message.received < ago) return; } @@ -114,7 +119,6 @@ public class EntityContact implements Serializable { EntityFolder.JUNK.equals(folder.type)) return; - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean suggest_sent = prefs.getBoolean("suggest_sent", true); boolean suggest_received = prefs.getBoolean("suggest_received", false); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java b/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java index 8906b00f7b..ba20cb0159 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java @@ -944,7 +944,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - int purge_contact_age = prefs.getInt("purge_contact_age", 0); + int purge_contact_age = prefs.getInt("purge_contact_age", 1); int purge_contact_freq = prefs.getInt("purge_contact_freq", 0); swKeyboard.setChecked(prefs.getBoolean("keyboard", true)); diff --git a/app/src/main/java/eu/faircode/email/WorkerCleanup.java b/app/src/main/java/eu/faircode/email/WorkerCleanup.java index 855eb8a4e1..31e423e2b7 100644 --- a/app/src/main/java/eu/faircode/email/WorkerCleanup.java +++ b/app/src/main/java/eu/faircode/email/WorkerCleanup.java @@ -334,7 +334,7 @@ public class WorkerCleanup extends Worker { Fts4DbHelper.optimize(sdb); } - int purge_contact_age = prefs.getInt("purge_contact_age", 0); + int purge_contact_age = prefs.getInt("purge_contact_age", 1); int purge_contact_freq = prefs.getInt("purge_contact_freq", 0); Log.breadcrumb("worker", "cleanup", "contacts" +