From 87d300690801fbce4f7f26473869d7facc8e0adb Mon Sep 17 00:00:00 2001 From: Florens Douwes Date: Thu, 14 Aug 2014 12:02:51 +0200 Subject: [PATCH] Don't crash when the cache is cleared and Clover is running. Check if the dir exists each time get() is called. --- .../java/org/floens/chan/utils/FileCache.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/utils/FileCache.java b/Clover/app/src/main/java/org/floens/chan/utils/FileCache.java index 008e6c64..2b86ccc8 100644 --- a/Clover/app/src/main/java/org/floens/chan/utils/FileCache.java +++ b/Clover/app/src/main/java/org/floens/chan/utils/FileCache.java @@ -24,14 +24,12 @@ public class FileCache { this.directory = directory; this.maxSize = maxSize; - if (!directory.exists() && !directory.mkdirs()) { - Logger.e(TAG, "Unable to create file cache dir " + directory.getAbsolutePath()); - } - - calculateSize(); + makeDir(); } public File get(String key) { + makeDir(); + return new File(directory, Integer.toString(key.hashCode())); } @@ -101,6 +99,16 @@ public class FileCache { } } + private void makeDir() { + if (!directory.exists()) { + calculateSize(); + + if (!directory.mkdirs()) { + Logger.e(TAG, "Unable to create file cache dir " + directory.getAbsolutePath()); + } + } + } + private void trim() { int tries = 0; while (size > maxSize && tries++ < 10) {