mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 13:57:57 +01:00 
			
		
		
		
	Filter tracker status (#2)
* Implement library filter for tracker status Co-authored-by: she11sh0cked <she11sh0cked@users.noreply.github.com>
This commit is contained in:
		| @@ -11,7 +11,10 @@ import eu.davidea.flexibleadapter.items.AbstractFlexibleItem | ||||
| import eu.davidea.flexibleadapter.items.IFilterable | ||||
| import eu.davidea.flexibleadapter.items.IFlexible | ||||
| import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.tachiyomi.data.database.DatabaseHelper | ||||
| import eu.kanade.tachiyomi.data.database.models.LibraryManga | ||||
| import eu.kanade.tachiyomi.data.database.models.Track | ||||
| import eu.kanade.tachiyomi.data.track.TrackManager | ||||
| import eu.kanade.tachiyomi.source.SourceManager | ||||
| import eu.kanade.tachiyomi.widget.AutofitRecyclerView | ||||
| import kotlinx.android.synthetic.main.source_grid_item.view.card | ||||
| @@ -23,6 +26,8 @@ class LibraryItem(val manga: LibraryManga, private val libraryAsList: Preference | ||||
|     AbstractFlexibleItem<LibraryHolder>(), IFilterable<String> { | ||||
|  | ||||
|     private val sourceManager: SourceManager = Injekt.get() | ||||
|     private val trackManager: TrackManager = Injekt.get() | ||||
|     private val db: DatabaseHelper = Injekt.get() | ||||
|  | ||||
|     var downloadCount = -1 | ||||
|     var unreadCount = -1 | ||||
| @@ -81,6 +86,7 @@ class LibraryItem(val manga: LibraryManga, private val libraryAsList: Preference | ||||
|             (manga.author?.contains(constraint, true) ?: false) || | ||||
|             (manga.artist?.contains(constraint, true) ?: false) || | ||||
|             sourceManager.getOrStub(manga.source).name.contains(constraint, true) || | ||||
|             filterTracks(constraint, db.getTracks(manga).executeAsBlocking()) || | ||||
|             if (constraint.contains(" ") || constraint.contains("\"")) { | ||||
|                 val genres = manga.genre?.split(", ")?.map { | ||||
|                     it.drop(it.indexOfFirst { it == ':' } + 1).toLowerCase().trim() // tachiEH tag namespaces | ||||
| @@ -109,6 +115,17 @@ class LibraryItem(val manga: LibraryManga, private val libraryAsList: Preference | ||||
|             ) | ||||
|     } | ||||
|  | ||||
|     private fun filterTracks(constraint: String, tracks: List<Track>): Boolean { | ||||
|         return tracks.any { | ||||
|             val trackService = trackManager.getService(it.sync_id) | ||||
|             if (trackService != null) { | ||||
|                 val status = trackService.getStatus(it.status) | ||||
|                 return@any status.contains(constraint, true) | ||||
|             } | ||||
|             return@any false | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private fun containsGenre(tag: String, genres: List<String>?): Boolean { | ||||
|         return if (tag.startsWith("-")) { | ||||
|             genres?.find { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user