From 5fd22c34af9258cf9ef654aa78ff31aeb3c7c318 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 21 Aug 2019 16:00:13 +0200 Subject: [PATCH] Keep cached image files until message delete or deleted by Android --- app/src/main/java/eu/faircode/email/WorkerCleanup.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/WorkerCleanup.java b/app/src/main/java/eu/faircode/email/WorkerCleanup.java index 1458ea41f6..9a65e9d9a4 100644 --- a/app/src/main/java/eu/faircode/email/WorkerCleanup.java +++ b/app/src/main/java/eu/faircode/email/WorkerCleanup.java @@ -44,7 +44,6 @@ import static android.os.Process.THREAD_PRIORITY_BACKGROUND; 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 @@ -163,12 +162,15 @@ public class WorkerCleanup extends Worker { File[] images = new File(context.getCacheDir(), "images").listFiles(); if (images != null) for (File file : images) - if (file.isFile()) - if (manual || now - file.lastModified() > CACHE_IMAGE_DURATION) { + 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) { Log.i("Deleting " + file); if (!file.delete()) Log.w("Error deleting " + file); } + } Log.i("Cleanup contacts"); int contacts = db.contact().deleteContacts(now - KEEP_CONTACTS_DURATION);