From a12f3068cbf47879d2d200dfed34dadf0a24e0ab Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 19 Oct 2020 12:47:51 +0200 Subject: [PATCH] Cleanup favicons --- .../main/java/eu/faircode/email/ContactInfo.java | 16 ++++++++++++++++ .../java/eu/faircode/email/WorkerCleanup.java | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/ContactInfo.java b/app/src/main/java/eu/faircode/email/ContactInfo.java index c85b9c9e47..07a4b310e2 100644 --- a/app/src/main/java/eu/faircode/email/ContactInfo.java +++ b/app/src/main/java/eu/faircode/email/ContactInfo.java @@ -101,6 +101,7 @@ public class ContactInfo { private static final int FAVICON_READ_BYTES = 2048; private static final long CACHE_CONTACT_DURATION = 2 * 60 * 1000L; // milliseconds private static final long CACHE_GRAVATAR_DURATION = 2 * 60 * 60 * 1000L; // milliseconds + private static final long CACHE_FAVICON_DURATION = 2 * 7 * 24 * 60 * 60 * 1000L; // milliseconds private ContactInfo() { } @@ -137,6 +138,21 @@ public class ContactInfo { return (new Date().getTime() - time > CACHE_CONTACT_DURATION); } + static void cleanup(Context context) { + long now = new Date().getTime(); + + // Favicons + Log.i("Cleanup favicons"); + File[] favicons = new File(context.getCacheDir(), "favicons").listFiles(); + if (favicons != null) + for (File file : favicons) + if (file.lastModified() + CACHE_FAVICON_DURATION < now) { + Log.i("Deleting " + file); + if (!file.delete()) + Log.w("Error deleting " + file); + } + } + static void clearCache(Context context) { clearCache(context, true); } diff --git a/app/src/main/java/eu/faircode/email/WorkerCleanup.java b/app/src/main/java/eu/faircode/email/WorkerCleanup.java index f09b44ee72..bbd5045201 100644 --- a/app/src/main/java/eu/faircode/email/WorkerCleanup.java +++ b/app/src/main/java/eu/faircode/email/WorkerCleanup.java @@ -248,6 +248,10 @@ public class WorkerCleanup extends Worker { } } + // Cleanup contact info + if (!manual) + ContactInfo.cleanup(context); + Log.i("Cleanup FTS=" + fts); if (fts) { int deleted = 0;