diff options
author | Andrew Dolgov <[email protected]> | 2019-10-30 13:37:14 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2019-10-30 13:37:14 +0300 |
commit | 1cac0f13c477097694242a1271804d19547adab4 (patch) | |
tree | 552413c9f1a3a6b968638d7487b3f7cca3fe1717 /org.fox.ttcomics | |
parent | e1fee1f1de81ca15f302fa484cfd1d4478c7cac4 (diff) |
store thumbnails outside of cache/ to prevent automatic cleanup
Diffstat (limited to 'org.fox.ttcomics')
4 files changed, 34 insertions, 9 deletions
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java index 23d6a62..89f9876 100644 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java @@ -205,10 +205,10 @@ public class ComicListFragment extends StateSavedFragment implements OnItemClick }
- String cacheFilename = CommonActivity.getCacheFileName(m_activity, firstChild != null ? firstChild : filePath + "/" + fileBaseName);
+ String thumbnailFileName = CommonActivity.getThumbnailFileName(m_activity, firstChild != null ? firstChild : filePath + "/" + fileBaseName);
- if (cacheFilename != null) {
- File thumbnailFile = new File(cacheFilename);
+ if (thumbnailFileName != null) {
+ File thumbnailFile = new File(thumbnailFileName);
if (holder.thumbnail != null && thumbnailFile.exists()) {
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java index 9010dbb..3bd2631 100644 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java @@ -170,12 +170,29 @@ public class CommonActivity extends AppCompatActivity { return null;
}
+ public static File getThumbnailDir(Context ctx) {
+ File baseDir = ctx.getFilesDir();
+
+ File thumbDir = new File(baseDir, "thumbnails");
+
+ if (!thumbDir.exists())
+ thumbDir.mkdirs();
+
+ return thumbDir;
+ }
+
public static File getCacheDir(Context ctx) {
return ctx.getCacheDir();
}
+ public static String getThumbnailFileName(Context ctx, String fileName) {
+ File file = new File(getThumbnailDir(ctx), md5(fileName) + ".png");
+
+ return file.getAbsolutePath();
+ }
+
public static String getCacheFileName(Context ctx, String fileName) {
- File file = new File(getCacheDir(ctx).getAbsolutePath() + "/" + md5(fileName) + ".png");
+ File file = new File(getCacheDir(ctx), md5(fileName) + ".png");
return file.getAbsolutePath();
}
@@ -201,7 +218,15 @@ public class CommonActivity extends AppCompatActivity { }
public void cleanupCache() {
- JobIntentService.enqueueWork(getApplicationContext(), CacheCleanupService.class, 0, new Intent());
+ Intent serviceIntent = new Intent();
+ serviceIntent.putExtra("workDir", getCacheDir(getApplicationContext()).getAbsolutePath());
+
+ JobIntentService.enqueueWork(getApplicationContext(), CacheCleanupService.class, 0, serviceIntent);
+
+ serviceIntent = new Intent();
+ serviceIntent.putExtra("workDir", getThumbnailDir(getApplicationContext()).getAbsolutePath());
+
+ JobIntentService.enqueueWork(getApplicationContext(), CacheCleanupService.class, 0, serviceIntent);
}
@Override
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/DatabaseHelper.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/DatabaseHelper.java index bb249bb..780f9aa 100644 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/DatabaseHelper.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/DatabaseHelper.java @@ -326,7 +326,7 @@ public class DatabaseHelper extends SQLiteOpenHelper { // Get cover
try {
- File thumbnailFile = new File(CommonActivity.getCacheFileName(m_context, filePath));
+ File thumbnailFile = new File(CommonActivity.getThumbnailFileName(m_context, filePath));
if (!thumbnailFile.exists()) {
InputStream is = cba.getItem(0);
@@ -364,7 +364,7 @@ public class DatabaseHelper extends SQLiteOpenHelper { ++fileIndex;
- publishProgress(Integer.valueOf(fileIndex), Integer.valueOf(archives.length));
+ publishProgress(fileIndex, archives.length);
}
}
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/utils/CacheCleanupService.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/utils/CacheCleanupService.java index 871b026..28c0656 100644 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/utils/CacheCleanupService.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/utils/CacheCleanupService.java @@ -22,10 +22,10 @@ public class CacheCleanupService extends JobIntentService { } @Override protected void onHandleWork(Intent workIntent) { - Log.d(TAG, "starting..."); if (isStorageWritable()) { - File cachePath = CommonActivity.getCacheDir(this); + File cachePath = new File(workIntent.getStringExtra("workDir")); + Log.d(TAG, "starting for directory: " + cachePath); try { |