mirror of
https://github.com/mihonapp/mihon.git
synced 2024-11-21 20:47:03 -05:00
Option to only include pinned sources in global search
This commit is contained in:
parent
8077e421e6
commit
fe65f4d6f8
5 changed files with 29 additions and 13 deletions
|
@ -143,6 +143,8 @@ object PreferenceKeys {
|
||||||
|
|
||||||
const val alwaysShowChapterTransition = "always_show_chapter_transition"
|
const val alwaysShowChapterTransition = "always_show_chapter_transition"
|
||||||
|
|
||||||
|
const val searchPinnedSourcesOnly = "search_pinned_sources_only"
|
||||||
|
|
||||||
fun trackUsername(syncId: Int) = "pref_mangasync_username_$syncId"
|
fun trackUsername(syncId: Int) = "pref_mangasync_username_$syncId"
|
||||||
|
|
||||||
fun trackPassword(syncId: Int) = "pref_mangasync_password_$syncId"
|
fun trackPassword(syncId: Int) = "pref_mangasync_password_$syncId"
|
||||||
|
|
|
@ -221,6 +221,8 @@ class PreferencesHelper(val context: Context) {
|
||||||
|
|
||||||
fun lastExtCheck() = flowPrefs.getLong("last_ext_check", 0)
|
fun lastExtCheck() = flowPrefs.getLong("last_ext_check", 0)
|
||||||
|
|
||||||
|
fun searchPinnedSourcesOnly() = prefs.getBoolean(Keys.searchPinnedSourcesOnly, false)
|
||||||
|
|
||||||
fun hiddenCatalogues() = flowPrefs.getStringSet("hidden_catalogues", emptySet())
|
fun hiddenCatalogues() = flowPrefs.getStringSet("hidden_catalogues", emptySet())
|
||||||
|
|
||||||
fun pinnedCatalogues() = flowPrefs.getStringSet("pinned_catalogues", emptySet())
|
fun pinnedCatalogues() = flowPrefs.getStringSet("pinned_catalogues", emptySet())
|
||||||
|
|
|
@ -114,21 +114,25 @@ open class GlobalSearchPresenter(
|
||||||
private fun getSourcesToQuery(): List<CatalogueSource> {
|
private fun getSourcesToQuery(): List<CatalogueSource> {
|
||||||
val filter = extensionFilter
|
val filter = extensionFilter
|
||||||
val enabledSources = getEnabledSources()
|
val enabledSources = getEnabledSources()
|
||||||
if (filter.isNullOrEmpty()) {
|
var filteredSources: List<CatalogueSource>? = null
|
||||||
return enabledSources
|
|
||||||
|
if (!filter.isNullOrEmpty()) {
|
||||||
|
filteredSources = extensionManager.installedExtensions
|
||||||
|
.filter { it.pkgName == filter }
|
||||||
|
.flatMap { it.sources }
|
||||||
|
.filter { it in enabledSources }
|
||||||
|
.filterIsInstance<CatalogueSource>()
|
||||||
}
|
}
|
||||||
|
|
||||||
val filterSources = extensionManager.installedExtensions
|
if (filteredSources != null && filteredSources.isNotEmpty()) {
|
||||||
.filter { it.pkgName == filter }
|
return filteredSources
|
||||||
.flatMap { it.sources }
|
|
||||||
.filter { it in enabledSources }
|
|
||||||
.filterIsInstance<CatalogueSource>()
|
|
||||||
|
|
||||||
if (filterSources.isEmpty()) {
|
|
||||||
return enabledSources
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return filterSources
|
val onlyPinnedSources = preferences.searchPinnedSourcesOnly()
|
||||||
|
val pinnedCatalogues = preferences.pinnedCatalogues().get()
|
||||||
|
|
||||||
|
return enabledSources
|
||||||
|
.filter { if (onlyPinnedSources) it.id.toString() in pinnedCatalogues else true }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -25,5 +25,10 @@ class SettingsBrowseController : SettingsController() {
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
switchPreference {
|
||||||
|
key = Keys.searchPinnedSourcesOnly
|
||||||
|
titleRes = R.string.pref_search_pinned_sources_only
|
||||||
|
defaultValue = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -212,7 +212,6 @@
|
||||||
<string name="ext_version_info">Version: %1$s</string>
|
<string name="ext_version_info">Version: %1$s</string>
|
||||||
<string name="ext_language_info">Language: %1$s</string>
|
<string name="ext_language_info">Language: %1$s</string>
|
||||||
<string name="ext_empty_preferences">No preferences to edit for this extension</string>
|
<string name="ext_empty_preferences">No preferences to edit for this extension</string>
|
||||||
<string name="pref_enable_automatic_extension_updates">Check for extension updates</string>
|
|
||||||
|
|
||||||
<!-- Reader section -->
|
<!-- Reader section -->
|
||||||
<string name="pref_fullscreen">Fullscreen</string>
|
<string name="pref_fullscreen">Fullscreen</string>
|
||||||
|
@ -300,10 +299,14 @@
|
||||||
<string name="pref_download_new">Download new chapters</string>
|
<string name="pref_download_new">Download new chapters</string>
|
||||||
<string name="pref_download_new_categories">Categories to include in download</string>
|
<string name="pref_download_new_categories">Categories to include in download</string>
|
||||||
|
|
||||||
<!-- Sync section -->
|
<!-- Tracking section -->
|
||||||
<string name="pref_auto_update_manga_sync">Sync chapters after reading</string>
|
<string name="pref_auto_update_manga_sync">Sync chapters after reading</string>
|
||||||
<string name="services">Services</string>
|
<string name="services">Services</string>
|
||||||
|
|
||||||
|
<!-- Browse section -->
|
||||||
|
<string name="pref_enable_automatic_extension_updates">Check for extension updates</string>
|
||||||
|
<string name="pref_search_pinned_sources_only">Only include pinned sources in global search</string>
|
||||||
|
|
||||||
<!-- Backup section -->
|
<!-- Backup section -->
|
||||||
<string name="backup">Backup</string>
|
<string name="backup">Backup</string>
|
||||||
<string name="pref_create_backup">Create backup</string>
|
<string name="pref_create_backup">Create backup</string>
|
||||||
|
|
Loading…
Reference in a new issue