From d6ba051e8584bfe911f2a65b901b7576a257f206 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 28 Jul 2019 14:03:03 +0200 Subject: [PATCH] Defer cleaning up files for emergency situations --- .../java/eu/faircode/email/WorkerCleanup.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/WorkerCleanup.java b/app/src/main/java/eu/faircode/email/WorkerCleanup.java index db44617b81..092ad127f6 100644 --- a/app/src/main/java/eu/faircode/email/WorkerCleanup.java +++ b/app/src/main/java/eu/faircode/email/WorkerCleanup.java @@ -39,6 +39,7 @@ import java.util.concurrent.TimeUnit; public class WorkerCleanup extends Worker { private static final int CLEANUP_INTERVAL = 4; // hours + private static final long KEEP_FILES_DURATION = 3600 * 1000L; // milliseconds private static final long CACHE_IMAGE_DURATION = 3 * 24 * 3600 * 1000L; // milliseconds private static final long KEEP_CONTACTS_DURATION = 180 * 24 * 3600 * 1000L; // milliseconds private static final long KEEP_LOG_DURATION = 24 * 3600 * 1000L; // milliseconds @@ -110,15 +111,16 @@ public class WorkerCleanup extends Worker { // Cleanup message files Log.i("Cleanup message files"); - for (File file : files) { - long id = Long.parseLong(file.getName().split("\\.")[0]); - EntityMessage message = db.message().getMessage(id); - if (message == null || !message.content) { - Log.i("Deleting " + file); - if (!file.delete()) - Log.w("Error deleting " + file); + for (File file : files) + if (manual || file.lastModified() + KEEP_FILES_DURATION < now) { + long id = Long.parseLong(file.getName().split("\\.")[0]); + EntityMessage message = db.message().getMessage(id); + if (message == null || !message.content) { + Log.i("Deleting " + file); + if (!file.delete()) + Log.w("Error deleting " + file); + } } - } // Cleanup attachment files Log.i("Cleanup attachment files");