From d09bcafe7d7445c3b1df82c18dc034a115e40e5e Mon Sep 17 00:00:00 2001 From: OncePunchedMan <64155117+OncePunchedMan@users.noreply.github.com> Date: Tue, 27 Apr 2021 23:38:56 +0200 Subject: [PATCH] Setting: Creates folders according to manga title (#4861) * cherry-picking my changes * Update SettingsDownloadController.kt * Update SettingsDownloadController.kt * Update ReaderPresenter.kt Co-authored-by: arkon (cherry picked from commit 9278407b85719b9f574e9e1fddd85399cfb828f6) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsDownloadController.kt --- .../kanade/tachiyomi/data/preference/PreferenceKeys.kt | 2 ++ .../tachiyomi/data/preference/PreferencesHelper.kt | 2 ++ .../eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt | 9 ++++++--- .../tachiyomi/ui/setting/SettingsDownloadController.kt | 7 +++++++ app/src/main/res/values/strings.xml | 2 ++ 5 files changed, 19 insertions(+), 3 deletions(-) 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 65cfcc524..b84903d53 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 @@ -111,6 +111,8 @@ object PreferenceKeys { const val downloadOnlyOverWifi = "pref_download_only_over_wifi_key" + const val folderPerManga = "create_folder_per_manga" + const val numberOfBackups = "backup_slots" const val backupInterval = "backup_interval" 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 ae21ceccc..f16ded281 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 @@ -205,6 +205,8 @@ class PreferencesHelper(val context: Context) { fun downloadOnlyOverWifi() = prefs.getBoolean(Keys.downloadOnlyOverWifi, true) + fun folderPerManga() = prefs.getBoolean(Keys.folderPerManga, false) + fun numberOfBackups() = flowPrefs.getInt(Keys.numberOfBackups, 1) fun backupInterval() = flowPrefs.getInt(Keys.backupInterval, 0) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt index a9d140c2b..b16dae5c8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt @@ -669,11 +669,14 @@ class ReaderPresenter( notifier.onClear() // Pictures directory. - val destDir = File( - Environment.getExternalStorageDirectory().absolutePath + + val baseDir = Environment.getExternalStorageDirectory().absolutePath + File.separator + Environment.DIRECTORY_PICTURES + File.separator + context.getString(R.string.app_name) - ) + val destDir = if (preferences.folderPerManga()) { + File(baseDir + File.separator + manga.title) + } else { + File(baseDir) + } // Copy file in background. Observable.fromCallable { saveImage(page, destDir, manga) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsDownloadController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsDownloadController.kt index 7f81eb831..084092cd9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsDownloadController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsDownloadController.kt @@ -28,6 +28,7 @@ import eu.kanade.tachiyomi.util.preference.preference import eu.kanade.tachiyomi.util.preference.preferenceCategory import eu.kanade.tachiyomi.util.preference.switchPreference import eu.kanade.tachiyomi.util.preference.titleRes +import eu.kanade.tachiyomi.util.preference.summaryRes import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.widget.materialdialogs.QuadStateCheckBox import eu.kanade.tachiyomi.widget.materialdialogs.listItemsQuadStateMultiChoice @@ -67,6 +68,12 @@ class SettingsDownloadController : SettingsController() { titleRes = R.string.pref_download_only_over_wifi defaultValue = true } + switchPreference { + key = Keys.folderPerManga + titleRes = R.string.pref_create_folder_per_manga + summaryRes = R.string.pref_create_folder_per_manga_summary + defaultValue = false + } // SY --> switchPreference { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ec917e877..d7f1a075f 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -367,6 +367,8 @@ Auto-download Download new chapters Manga in excluded categories will not be downloaded even if they are also in included categories. + Saves pages into separate folders + Creates folders according to manga title Update chapter progress after reading