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;