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 66256e5fc..e78bf7728 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 filterTracked = "pref_filter_tracked_key" + const val filterLewd = "pref_filter_lewd_key" + const val librarySortingMode = "library_sorting_mode" const val automaticExtUpdates = "automatic_ext_updates" 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 7450f0c57..153651ce2 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 @@ -204,6 +204,8 @@ class PreferencesHelper(val context: Context) { fun filterTracked() = flowPrefs.getInt(Keys.filterTracked, 0) + fun filterLewd() = flowPrefs.getInt(Keys.filterLewd, 0) + fun librarySortingMode() = flowPrefs.getInt(Keys.librarySortingMode, 0) fun librarySortingAscending() = flowPrefs.getBoolean("library_sorting_ascending", true) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt index a06e1479c..b0f3195d4 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt @@ -30,6 +30,7 @@ import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.removeCovers import eu.kanade.tachiyomi.util.updateCoverLastModified import exh.favorites.FavoritesSyncHelper +import exh.isLewdSource import java.util.ArrayList import java.util.Collections import java.util.Comparator @@ -131,6 +132,7 @@ class LibraryPresenter( val filterUnread = preferences.filterUnread().get() val filterCompleted = preferences.filterCompleted().get() val filterTracked = preferences.filterTracked().get() + val filterLewd = preferences.filterLewd().get() val filterFn: (LibraryItem) -> Boolean = f@{ item -> // Filter when there isn't unread chapters. @@ -151,6 +153,11 @@ class LibraryPresenter( if (filterTracked == STATE_INCLUDE && tracks.isEmpty()) return@f false else if (filterTracked == STATE_EXCLUDE && tracks.isNotEmpty()) return@f false } + if (filterLewd != STATE_IGNORE) { + val isLewd = isLewdSource(item.manga.source) + if (filterLewd == STATE_INCLUDE && !isLewd) return@f false + else if (filterLewd == STATE_EXCLUDE && isLewd) return@f false + } // Filter when there are no downloads. if (filterDownloaded != STATE_IGNORE || filterDownloadedOnly) { val isDownloaded = when { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt index 0e3cbe566..50a999f0f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt @@ -7,7 +7,6 @@ import android.view.View import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.track.TrackManager -import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.source.model.Filter.TriState.Companion.STATE_EXCLUDE import eu.kanade.tachiyomi.source.model.Filter.TriState.Companion.STATE_IGNORE import eu.kanade.tachiyomi.source.model.Filter.TriState.Companion.STATE_INCLUDE @@ -74,13 +73,14 @@ class LibrarySettingsSheet( private val unread = Item.TriStateGroup(R.string.action_filter_unread, this) private val completed = Item.TriStateGroup(R.string.completed, this) private val tracked = Item.TriStateGroup(R.string.tracked, this) + private val lewd = Item.TriStateGroup(R.string.lewd, this) override val header = null override val items = ( if (Injekt.get().hasLoggedServices()) { - listOf(downloaded, unread, completed, tracked) + listOf(downloaded, unread, completed, tracked, lewd) } else { - listOf(downloaded, unread, completed) + listOf(downloaded, unread, completed, lewd) } ) override val footer = null @@ -95,6 +95,7 @@ class LibrarySettingsSheet( } else { tracked.state = STATE_IGNORE } + lewd.state = preferences.filterLewd().get() } catch (e: Exception) { preferences.upgradeFilters() } @@ -113,6 +114,7 @@ class LibrarySettingsSheet( unread -> preferences.filterUnread().set(item.state) completed -> preferences.filterCompleted().set(item.state) tracked -> preferences.filterTracked().set(item.state) + lewd -> preferences.filterLewd().set(item.state) } adapter.notifyItemChanged(item) diff --git a/app/src/main/res/values/strings_extra.xml b/app/src/main/res/values/strings_extra.xml index 9e46de092..8564f47bd 100644 --- a/app/src/main/res/values/strings_extra.xml +++ b/app/src/main/res/values/strings_extra.xml @@ -19,6 +19,7 @@ Tracked + Lewd All Sources