From d83f938e0737d52b306fdb746790bf612aad8f82 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Sat, 5 Sep 2020 20:13:44 -0400 Subject: [PATCH] Add a option to allow local source to read hidden folders --- .../eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt | 2 ++ .../kanade/tachiyomi/data/preference/PreferencesHelper.kt | 2 ++ .../main/java/eu/kanade/tachiyomi/source/LocalSource.kt | 8 +++++++- .../tachiyomi/ui/setting/SettingsBrowseController.kt | 6 ++++++ app/src/main/res/values/strings_sy.xml | 2 ++ 5 files changed, 19 insertions(+), 1 deletion(-) 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 7c947a0bf..75ab0f9a8 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 @@ -308,4 +308,6 @@ object PreferenceKeys { const val saveChaptersAsCBZ = "save_chapter_as_cbz" const val saveChaptersAsCBZLevel = "save_chapter_as_cbz_level" + + const val allowLocalSourceHiddenFolders = "allow_local_source_hidden_folders" } 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 e8bee046b..0b21a5a83 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 @@ -413,4 +413,6 @@ class PreferencesHelper(val context: Context) { fun saveChaptersAsCBZ() = flowPrefs.getBoolean(Keys.saveChaptersAsCBZ, false) fun saveChaptersAsCBZLevel() = flowPrefs.getInt(Keys.saveChaptersAsCBZLevel, 0) + + fun allowLocalSourceHiddenFolders() = flowPrefs.getBoolean(Keys.allowLocalSourceHiddenFolders, false) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/LocalSource.kt b/app/src/main/java/eu/kanade/tachiyomi/source/LocalSource.kt index 2a3c6a44f..fb3459382 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/LocalSource.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/LocalSource.kt @@ -4,6 +4,7 @@ import android.content.Context import com.google.gson.GsonBuilder import com.google.gson.JsonParser import eu.kanade.tachiyomi.R +import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.source.model.FilterList import eu.kanade.tachiyomi.source.model.MangasPage @@ -26,6 +27,8 @@ import junrar.Archive import junrar.rarfile.FileHeader import rx.Observable import timber.log.Timber +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get class LocalSource(private val context: Context) : CatalogueSource { companion object { @@ -74,6 +77,9 @@ class LocalSource(private val context: Context) : CatalogueSource { override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { val baseDirs = getBaseDirectories(context) + // SY --> + val allowLocalSourceHiddenFolders = Injekt.get().allowLocalSourceHiddenFolders().get() + // SY <-- val time = if (filters === LATEST_FILTERS) System.currentTimeMillis() - LATEST_THRESHOLD else 0L var mangaDirs = baseDirs @@ -81,7 +87,7 @@ class LocalSource(private val context: Context) : CatalogueSource { .mapNotNull { it.listFiles()?.toList() } .flatten() .filter { it.isDirectory } - .filterNot { it.name.startsWith('.') } + .filterNot { it.name.startsWith('.') /* SY --> */ && !allowLocalSourceHiddenFolders /* SY <-- */ } .filter { if (time == 0L) it.name.contains(query, ignoreCase = true) else it.lastModified() >= time } .distinctBy { it.name } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsBrowseController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsBrowseController.kt index e9ce98beb..af37c8666 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsBrowseController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsBrowseController.kt @@ -40,6 +40,12 @@ class SettingsBrowseController : SettingsController() { summaryRes = R.string.pref_source_navigation_summery defaultValue = false } + switchPreference { + key = Keys.allowLocalSourceHiddenFolders + titleRes = R.string.pref_local_source_hidden_folders + summaryRes = R.string.pref_local_source_hidden_folders_summery + defaultValue = false + } } preferenceCategory { diff --git a/app/src/main/res/values/strings_sy.xml b/app/src/main/res/values/strings_sy.xml index 154715def..dea0d5c98 100644 --- a/app/src/main/res/values/strings_sy.xml +++ b/app/src/main/res/values/strings_sy.xml @@ -180,6 +180,8 @@ Do you want the latest tab to be the first tab in browse? This will make it the default tab when opening browse, not recommended if your on data or a metered network Replace latest button Replace latest button with a custom browse view that includes both latest and browse + Local source hidden folders + Allow local source to read hidden folders Save Chapters as CBZ