mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Prioritize pinned sources in global search (closes #1739)
This commit is contained in:
		@@ -30,14 +30,14 @@ import uy.kohesive.injekt.injectLazy
 | 
			
		||||
 *
 | 
			
		||||
 * @param sourceManager manages the different sources.
 | 
			
		||||
 * @param db manages the database calls.
 | 
			
		||||
 * @param preferencesHelper manages the preference calls.
 | 
			
		||||
 * @param preferences manages the preference calls.
 | 
			
		||||
 */
 | 
			
		||||
open class CatalogueSearchPresenter(
 | 
			
		||||
    val initialQuery: String? = "",
 | 
			
		||||
    val initialExtensionFilter: String? = null,
 | 
			
		||||
    val sourceManager: SourceManager = Injekt.get(),
 | 
			
		||||
    val db: DatabaseHelper = Injekt.get(),
 | 
			
		||||
    val preferencesHelper: PreferencesHelper = Injekt.get()
 | 
			
		||||
    val preferences: PreferencesHelper = Injekt.get()
 | 
			
		||||
) : BasePresenter<CatalogueSearchController>() {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -94,18 +94,20 @@ open class CatalogueSearchPresenter(
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns a list of enabled sources ordered by language and name.
 | 
			
		||||
     * Returns a list of enabled sources ordered by language and name, with pinned catalogues
 | 
			
		||||
     * prioritized.
 | 
			
		||||
     *
 | 
			
		||||
     * @return list containing enabled sources.
 | 
			
		||||
     */
 | 
			
		||||
    protected open fun getEnabledSources(): List<CatalogueSource> {
 | 
			
		||||
        val languages = preferencesHelper.enabledLanguages().getOrDefault()
 | 
			
		||||
        val hiddenCatalogues = preferencesHelper.hiddenCatalogues().getOrDefault()
 | 
			
		||||
        val languages = preferences.enabledLanguages().getOrDefault()
 | 
			
		||||
        val hiddenCatalogues = preferences.hiddenCatalogues().getOrDefault()
 | 
			
		||||
        val pinnedCatalogues = preferences.pinnedCatalogues().getOrDefault()
 | 
			
		||||
 | 
			
		||||
        return sourceManager.getCatalogueSources()
 | 
			
		||||
                .filter { it.lang in languages }
 | 
			
		||||
                .filterNot { it.id.toString() in hiddenCatalogues }
 | 
			
		||||
                .sortedBy { "(${it.lang}) ${it.name}" }
 | 
			
		||||
                .sortedWith(compareBy({ it.id.toString() !in pinnedCatalogues }, { "(${it.lang}) ${it.name}" }))
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun getSourcesToQuery(): List<CatalogueSource> {
 | 
			
		||||
 
 | 
			
		||||
@@ -70,7 +70,7 @@ class SearchPresenter(
 | 
			
		||||
        manga: Manga,
 | 
			
		||||
        replace: Boolean
 | 
			
		||||
    ) {
 | 
			
		||||
        val flags = preferencesHelper.migrateFlags().getOrDefault()
 | 
			
		||||
        val flags = preferences.migrateFlags().getOrDefault()
 | 
			
		||||
        val migrateChapters = MigrationFlags.hasChapters(flags)
 | 
			
		||||
        val migrateCategories = MigrationFlags.hasCategories(flags)
 | 
			
		||||
        val migrateTracks = MigrationFlags.hasTracks(flags)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user