Implement lewd filter (#15)
Co-authored-by: she11sh0cked <she11sh0cked@users.noreply.github.com>
This commit is contained in:
parent
7ce15caded
commit
3c9ec48da3
@ -111,6 +111,8 @@ object PreferenceKeys {
|
|||||||
|
|
||||||
const val filterTracked = "pref_filter_tracked_key"
|
const val filterTracked = "pref_filter_tracked_key"
|
||||||
|
|
||||||
|
const val filterLewd = "pref_filter_lewd_key"
|
||||||
|
|
||||||
const val librarySortingMode = "library_sorting_mode"
|
const val librarySortingMode = "library_sorting_mode"
|
||||||
|
|
||||||
const val automaticExtUpdates = "automatic_ext_updates"
|
const val automaticExtUpdates = "automatic_ext_updates"
|
||||||
|
@ -204,6 +204,8 @@ class PreferencesHelper(val context: Context) {
|
|||||||
|
|
||||||
fun filterTracked() = flowPrefs.getInt(Keys.filterTracked, 0)
|
fun filterTracked() = flowPrefs.getInt(Keys.filterTracked, 0)
|
||||||
|
|
||||||
|
fun filterLewd() = flowPrefs.getInt(Keys.filterLewd, 0)
|
||||||
|
|
||||||
fun librarySortingMode() = flowPrefs.getInt(Keys.librarySortingMode, 0)
|
fun librarySortingMode() = flowPrefs.getInt(Keys.librarySortingMode, 0)
|
||||||
|
|
||||||
fun librarySortingAscending() = flowPrefs.getBoolean("library_sorting_ascending", true)
|
fun librarySortingAscending() = flowPrefs.getBoolean("library_sorting_ascending", true)
|
||||||
|
@ -30,6 +30,7 @@ import eu.kanade.tachiyomi.util.lang.launchIO
|
|||||||
import eu.kanade.tachiyomi.util.removeCovers
|
import eu.kanade.tachiyomi.util.removeCovers
|
||||||
import eu.kanade.tachiyomi.util.updateCoverLastModified
|
import eu.kanade.tachiyomi.util.updateCoverLastModified
|
||||||
import exh.favorites.FavoritesSyncHelper
|
import exh.favorites.FavoritesSyncHelper
|
||||||
|
import exh.isLewdSource
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
import java.util.Collections
|
import java.util.Collections
|
||||||
import java.util.Comparator
|
import java.util.Comparator
|
||||||
@ -131,6 +132,7 @@ class LibraryPresenter(
|
|||||||
val filterUnread = preferences.filterUnread().get()
|
val filterUnread = preferences.filterUnread().get()
|
||||||
val filterCompleted = preferences.filterCompleted().get()
|
val filterCompleted = preferences.filterCompleted().get()
|
||||||
val filterTracked = preferences.filterTracked().get()
|
val filterTracked = preferences.filterTracked().get()
|
||||||
|
val filterLewd = preferences.filterLewd().get()
|
||||||
|
|
||||||
val filterFn: (LibraryItem) -> Boolean = f@{ item ->
|
val filterFn: (LibraryItem) -> Boolean = f@{ item ->
|
||||||
// Filter when there isn't unread chapters.
|
// Filter when there isn't unread chapters.
|
||||||
@ -151,6 +153,11 @@ class LibraryPresenter(
|
|||||||
if (filterTracked == STATE_INCLUDE && tracks.isEmpty()) return@f false
|
if (filterTracked == STATE_INCLUDE && tracks.isEmpty()) return@f false
|
||||||
else if (filterTracked == STATE_EXCLUDE && tracks.isNotEmpty()) 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.
|
// Filter when there are no downloads.
|
||||||
if (filterDownloaded != STATE_IGNORE || filterDownloadedOnly) {
|
if (filterDownloaded != STATE_IGNORE || filterDownloadedOnly) {
|
||||||
val isDownloaded = when {
|
val isDownloaded = when {
|
||||||
|
@ -7,7 +7,6 @@ import android.view.View
|
|||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
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_EXCLUDE
|
||||||
import eu.kanade.tachiyomi.source.model.Filter.TriState.Companion.STATE_IGNORE
|
import eu.kanade.tachiyomi.source.model.Filter.TriState.Companion.STATE_IGNORE
|
||||||
import eu.kanade.tachiyomi.source.model.Filter.TriState.Companion.STATE_INCLUDE
|
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 unread = Item.TriStateGroup(R.string.action_filter_unread, this)
|
||||||
private val completed = Item.TriStateGroup(R.string.completed, this)
|
private val completed = Item.TriStateGroup(R.string.completed, this)
|
||||||
private val tracked = Item.TriStateGroup(R.string.tracked, 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 header = null
|
||||||
override val items = (
|
override val items = (
|
||||||
if (Injekt.get<TrackManager>().hasLoggedServices()) {
|
if (Injekt.get<TrackManager>().hasLoggedServices()) {
|
||||||
listOf(downloaded, unread, completed, tracked)
|
listOf(downloaded, unread, completed, tracked, lewd)
|
||||||
} else {
|
} else {
|
||||||
listOf(downloaded, unread, completed)
|
listOf(downloaded, unread, completed, lewd)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
override val footer = null
|
override val footer = null
|
||||||
@ -95,6 +95,7 @@ class LibrarySettingsSheet(
|
|||||||
} else {
|
} else {
|
||||||
tracked.state = STATE_IGNORE
|
tracked.state = STATE_IGNORE
|
||||||
}
|
}
|
||||||
|
lewd.state = preferences.filterLewd().get()
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
preferences.upgradeFilters()
|
preferences.upgradeFilters()
|
||||||
}
|
}
|
||||||
@ -113,6 +114,7 @@ class LibrarySettingsSheet(
|
|||||||
unread -> preferences.filterUnread().set(item.state)
|
unread -> preferences.filterUnread().set(item.state)
|
||||||
completed -> preferences.filterCompleted().set(item.state)
|
completed -> preferences.filterCompleted().set(item.state)
|
||||||
tracked -> preferences.filterTracked().set(item.state)
|
tracked -> preferences.filterTracked().set(item.state)
|
||||||
|
lewd -> preferences.filterLewd().set(item.state)
|
||||||
}
|
}
|
||||||
|
|
||||||
adapter.notifyItemChanged(item)
|
adapter.notifyItemChanged(item)
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
<!-- Preferences -->
|
<!-- Preferences -->
|
||||||
<!-- Filter -->
|
<!-- Filter -->
|
||||||
<string name="tracked">Tracked</string>
|
<string name="tracked">Tracked</string>
|
||||||
|
<string name="lewd">Lewd</string>
|
||||||
|
|
||||||
<!-- Subsections -->
|
<!-- Subsections -->
|
||||||
<string name="pref_category_all_sources">All Sources</string>
|
<string name="pref_category_all_sources">All Sources</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user