diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt index bfdb36ada..ca285ec4a 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt @@ -239,6 +239,8 @@ object PreferenceKeys { const val verboseLogging = "verbose_logging" + const val autoClearChapterCache = "auto_clear_chapter_cache" + fun trackUsername(syncId: Int) = "pref_mangasync_username_$syncId" fun trackPassword(syncId: Int) = "pref_mangasync_password_$syncId" diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt index 31c5a76d3..188d7dea8 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt @@ -342,6 +342,8 @@ class PreferencesHelper(val context: Context) { fun verboseLogging() = prefs.getBoolean(Keys.verboseLogging, false) + fun autoClearChapterCache() = prefs.getBoolean(Keys.autoClearChapterCache, false) + fun setChapterSettingsDefault(manga: Manga) { prefs.edit { putInt(Keys.defaultChapterFilterByRead, manga.readFilter) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index cf76d9945..d6bc44ab8 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -35,6 +35,7 @@ import com.google.android.material.transition.platform.MaterialContainerTransfor import dev.chrisbanes.insetter.applyInsetter import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.R +import eu.kanade.tachiyomi.data.cache.ChapterCache import eu.kanade.tachiyomi.data.notification.NotificationReceiver import eu.kanade.tachiyomi.data.preference.asImmediateFlow import eu.kanade.tachiyomi.data.updater.AppUpdateChecker @@ -79,6 +80,7 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.merge import kotlinx.coroutines.flow.onEach import logcat.LogPriority +import uy.kohesive.injekt.injectLazy import java.util.LinkedList class MainActivity : BaseViewBindingActivity() { @@ -102,6 +104,8 @@ class MainActivity : BaseViewBindingActivity() { */ private val backstackLiftState = mutableMapOf() + private val chapterCache: ChapterCache by injectLazy() + // To be checked by splash screen. If true then splash screen will be removed. var ready = false @@ -518,7 +522,10 @@ class MainActivity : BaseViewBindingActivity() { // Exit confirmation (resets after 2 seconds) lifecycleScope.launchUI { resetExitConfirmation() } } else if (backstackSize == 1 || !router.handleBack()) { - // Regular back + // Regular back (i.e. closing the app) + if (preferences.autoClearChapterCache()) { + chapterCache.clear() + } super.onBackPressed() } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt index f377d1e6f..38cc47de0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt @@ -141,6 +141,11 @@ class SettingsAdvancedController : SettingsController() { onClick { clearChapterCache() } } + switchPreference { + key = Keys.autoClearChapterCache + titleRes = R.string.pref_auto_clear_chapter_cache + defaultValue = false + } preference { key = "pref_clear_database" titleRes = R.string.pref_clear_database diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 31d2c0ad6..9f993a7e3 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -458,6 +458,7 @@ Used: %1$s Cache cleared. %1$d files have been deleted An error occurred while clearing cache + Clear chapter cache on app close Clear database Delete history for manga that are not saved in your library Are you sure? Read chapters and progress of non-library manga will be lost