mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Implement lewd filter (#15)
Co-authored-by: she11sh0cked <she11sh0cked@users.noreply.github.com>
This commit is contained in:
		| @@ -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" | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -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<TrackManager>().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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user