diff --git a/core/src/main/java/com/isbx/androidtools/media/ImageResizer.java b/core/src/main/java/com/isbx/androidtools/media/ImageResizer.java index fd70e0a..07eaab2 100644 --- a/core/src/main/java/com/isbx/androidtools/media/ImageResizer.java +++ b/core/src/main/java/com/isbx/androidtools/media/ImageResizer.java @@ -38,8 +38,8 @@ *

*/ public class ImageResizer { - - private static final int MAX_FILES = 10; // TODO handle files more intelligently + + private static final int MAX_FILE_LIFESPAN = 86400000; // One day in milliseconds private static final String FILE_NAME_FORMAT = "image%d.jpg"; private Context context; @@ -198,8 +198,12 @@ public Uri scaleImage(Uri sourceUri, ImageResizeConfig.Dimension targetDimension OutputStream os = null; try { - if (savedFiles >= MAX_FILES) { - savedFiles = 0; + if (savedFiles >= 1) { + String lastFileName = String.format(Locale.US, FILE_NAME_FORMAT, savedFiles - 1); + long lastModified = context.getFileStreamPath(lastFileName).lastModified(); + if (System.currentTimeMillis() - lastModified >= MAX_FILE_LIFESPAN) { + clearFiles(); + } } String fileName = String.format(Locale.US, FILE_NAME_FORMAT, savedFiles++); os = context.openFileOutput(fileName, Context.MODE_PRIVATE); @@ -308,7 +312,7 @@ public static Bitmap scaleBitmap(Bitmap source, ImageResizeConfig.Dimension targ * the current one. */ public void clearFiles() { - for (int i = 0; i < MAX_FILES; i++) { + for (int i = 0; i < savedFiles; i++) { String fileName = String.format(Locale.US, FILE_NAME_FORMAT, i); context.deleteFile(fileName); }