Added option to clean cache of online covers in advanced

This commit is contained in:
Jay 2020-08-09 20:10:33 -04:00
parent 38fac8341d
commit 696ffff401
3 changed files with 46 additions and 0 deletions

View File

@ -60,6 +60,10 @@ class CoverCache(val context: Context) {
return Formatter.formatFileSize(context, DiskUtil.getDirectorySize(cacheDir))
}
fun getOnlineCoverCacheSize(): String {
return Formatter.formatFileSize(context, DiskUtil.getDirectorySize(onlineCoverDirectory))
}
fun deleteOldCovers() {
GlobalScope.launch(Dispatchers.Default) {
val db = Injekt.get<DatabaseHelper>()
@ -86,6 +90,35 @@ class CoverCache(val context: Context) {
}
}
/**
* Clear out online covers until its under a certain size
*/
fun deleteAllCachedCovers() {
GlobalScope.launch(Dispatchers.IO) {
val directory = onlineCoverDirectory
val size = DiskUtil.getDirectorySize(directory)
if (size <= maxOnlineCacheSize) {
return@launch
}
var deletedSize = 0L
val files =
directory.listFiles()?.sortedBy { it.lastModified() }?.iterator() ?: return@launch
while (files.hasNext()) {
val file = files.next()
deletedSize += file.length()
file.delete()
}
withContext(Dispatchers.Main) {
context.toast(
context.getString(
R.string.deleted_, Formatter.formatFileSize(context, deletedSize)
)
)
}
}
lastClean = System.currentTimeMillis()
}
/**
* Clear out online covers until its under a certain size
*/

View File

@ -75,6 +75,15 @@ class SettingsAdvancedController : SettingsController() {
coverCache.deleteOldCovers()
}
}
preference {
titleRes = R.string.clean_up_cached_covers_non_library
summary = context.getString(R.string.delete_all_covers__not_in_library_used_, coverCache.getOnlineCoverCacheSize())
onClick {
context.toast(R.string.starting_cleanup)
coverCache.deleteAllCachedCovers()
}
}
preference {
titleRes = R.string.clear_cookies

View File

@ -562,6 +562,10 @@
<string name="clean_up_cached_covers">Clean up cached covers</string>
<string name="delete_old_covers_in_library_used_">Delete old and unused cached covers of
manga in your library that has been updated.\nCurrently using: %1$s</string>
<string name="clean_up_cached_covers_non_library">Clean up cached covers not in
library</string>
<string name="delete_all_covers__not_in_library_used_">Delete all covers cached that are
not in your library \nCurrently using: %1$s</string>
<!-- Browse Settings -->
<string name="pref_global_search">Global search</string>