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 ed834d8da..f14f31dce 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
@@ -283,6 +283,8 @@ object PreferenceKeys {
const val sources_tab_categories = "sources_tab_categories"
+ const val sources_tab_categories_filter = "sources_tab_categories_filter"
+
const val sources_tab_source_categories = "sources_tab_source_categories"
const val sourcesSort = "sources_sort"
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 5525fcd99..d35ddba03 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
@@ -403,6 +403,8 @@ class PreferencesHelper(val context: Context) {
fun sourcesTabCategories() = flowPrefs.getStringSet(Keys.sources_tab_categories, mutableSetOf())
+ fun sourcesTabCategoriesFilter() = flowPrefs.getBoolean(Keys.sources_tab_categories_filter, false)
+
fun sourcesTabSourcesInCategories() = flowPrefs.getStringSet(Keys.sources_tab_source_categories, mutableSetOf())
fun sourceSorting() = flowPrefs.getInt(Keys.sourcesSort, 0)
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcePresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcePresenter.kt
index 830d5819d..306c97310 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcePresenter.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcePresenter.kt
@@ -73,7 +73,7 @@ class SourcePresenter(
val sourcesAndCategoriesCombined = preferences.sourcesTabSourcesInCategories().get()
val sourcesAndCategories = if (sourcesAndCategoriesCombined.isNotEmpty()) sourcesAndCategoriesCombined.map {
val temp = it.split("|")
- Pair(temp[0], temp[1])
+ temp[0] to temp[1]
} else null
val sourcesInCategories = sourcesAndCategories?.map { it.first }
@@ -126,6 +126,10 @@ class SourcePresenter(
}
}
+ if (preferences.sourcesTabCategoriesFilter().get()) {
+ sourcesInCategories?.let { sourcesIds -> sourceItems = sourceItems.filterNot { it.source.id.toString() in sourcesIds } }
+ }
+
// SY -->
categories.forEach {
sourceItems = it.sources.sortedBy { sourceItem -> sourceItem.source.name.toLowerCase() } + sourceItems
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 672eca8dc..42b23619e 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
@@ -35,6 +35,12 @@ class SettingsBrowseController : SettingsController() {
router.pushController(SourceCategoryController().withFadeTransaction())
}
}
+ switchPreference {
+ key = Keys.sources_tab_categories_filter
+ titleRes = R.string.pref_source_source_filtering
+ summaryRes = R.string.pref_source_source_filtering_summery
+ defaultValue = false
+ }
switchPreference {
key = Keys.useNewSourceNavigation
titleRes = R.string.pref_source_navigation
diff --git a/app/src/main/res/values/strings_sy.xml b/app/src/main/res/values/strings_sy.xml
index 7280074b3..1ba47fd53 100644
--- a/app/src/main/res/values/strings_sy.xml
+++ b/app/src/main/res/values/strings_sy.xml
@@ -179,6 +179,8 @@
Display language code next to name
Latest tab position
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
+ Filter sources in categories
+ Filter the sources that are in categories, making the sources not get put under the language if they are in a category
Replace latest button
Replace latest button with a custom browse view that includes both latest and browse
Local source hidden folders