Only add locale language to enabled languages if it is not English based

This commit is contained in:
Jays2Kings 2023-08-03 20:02:47 -04:00
parent 7cf4a42b87
commit 177e0cfcae
9 changed files with 17 additions and 16 deletions

View file

@ -217,7 +217,10 @@ class PreferencesHelper(val context: Context) {
fun browseAsList() = flowPrefs.getBoolean(Keys.catalogueAsList, false)
fun enabledLanguages() = flowPrefs.getStringSet(Keys.enabledLanguages, setOf("all", "en", Locale.getDefault().language))
fun enabledLanguages() = flowPrefs.getStringSet(
Keys.enabledLanguages,
setOfNotNull("all", "en", Locale.getDefault().language.takeIf { !it.startsWith("en") }),
)
fun sourceSorting() = flowPrefs.getInt(Keys.sourcesSort, 0)

View file

@ -88,16 +88,17 @@ interface Source {
return fetchPageList(chapter).awaitSingle()
}
fun includeLangInName(isMultiLingual: Boolean, extensionManager: ExtensionManager? = null): Boolean {
fun includeLangInName(enabledLanguages: Set<String>, extensionManager: ExtensionManager? = null): Boolean {
val httpSource = this as? HttpSource ?: return true
val extManager = extensionManager ?: Injekt.get()
val allExt = httpSource.getExtension(extManager)?.lang == "all"
val onlyAll = httpSource.extOnlyHasAllLanguage(extManager)
val isMultiLingual = enabledLanguages.filterNot { it == "all" }.size > 1
return (isMultiLingual && allExt) || (lang == "all" && !onlyAll)
}
fun nameBasedOnEnabledLanguages(isMultiLingual: Boolean, extensionManager: ExtensionManager? = null): String {
return if (includeLangInName(isMultiLingual, extensionManager)) toString() else name
fun nameBasedOnEnabledLanguages(enabledLanguages: Set<String>, extensionManager: ExtensionManager? = null): String {
return if (includeLangInName(enabledLanguages, extensionManager)) toString() else name
}
}

View file

@ -433,10 +433,9 @@ class MangaHeaderHolder(
)
with(binding.mangaSource) {
val enabledLanguages = presenter.preferences.enabledLanguages().get()
.filterNot { it == "all" }
text = buildSpannedString {
append(presenter.source.nameBasedOnEnabledLanguages(enabledLanguages.size > 1))
append(presenter.source.nameBasedOnEnabledLanguages(enabledLanguages))
if (presenter.source is SourceManager.StubSource &&
presenter.source.name != presenter.source.id.toString()
) {

View file

@ -19,8 +19,7 @@ class MigrationSourceAdapter(
) {
val extensionManager: ExtensionManager = Injekt.get()
val isMultiLingual =
Injekt.get<PreferencesHelper>().enabledLanguages().get().filterNot { it == "all" }.size > 1
val enabledLanguages = Injekt.get<PreferencesHelper>().enabledLanguages().get()
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)

View file

@ -16,7 +16,7 @@ class MigrationSourceHolder(view: View, val adapter: MigrationSourceAdapter) :
}
fun bind(source: HttpSource, sourceEnabled: Boolean) {
binding.title.text = source.nameBasedOnEnabledLanguages(adapter.isMultiLingual, adapter.extensionManager)
binding.title.text = source.nameBasedOnEnabledLanguages(adapter.enabledLanguages, adapter.extensionManager)
// Update circle letter image.
itemView.post {
val icon = source.icon()

View file

@ -377,7 +377,7 @@ class StatsDetailsController :
when (it) {
is Category -> it.name
is Source -> it.nameBasedOnEnabledLanguages(
presenter.isMultiLingual,
presenter.enabledLanguages,
presenter.extensionManager,
)
else -> it.toString()
@ -519,7 +519,7 @@ class StatsDetailsController :
when (val firstValue = selectedValues.first()) {
is Category -> firstValue.name
is Source -> firstValue.nameBasedOnEnabledLanguages(
presenter.isMultiLingual,
presenter.enabledLanguages,
presenter.extensionManager,
)
else -> firstValue.toString()

View file

@ -52,7 +52,7 @@ class StatsDetailsPresenter(
private var mangasDistinct = libraryMangas.distinct()
val sources = getEnabledSources()
val extensionManager by injectLazy<ExtensionManager>()
val isMultiLingual = prefs.enabledLanguages().get().filterNot { it == "all" }.size > 1
val enabledLanguages = prefs.enabledLanguages().get()
var selectedStat: Stats? = null
var selectedSeriesType = mutableSetOf<String>()
@ -287,7 +287,7 @@ class StatsDetailsPresenter(
meanScore = mangaList.getMeanScoreRounded(),
chaptersRead = mangaList.sumOf { it.read },
totalChapters = mangaList.sumOf { it.totalChapters },
label = source.nameBasedOnEnabledLanguages(isMultiLingual, extensionManager),
label = source.nameBasedOnEnabledLanguages(enabledLanguages, extensionManager),
icon = source.icon(),
readDuration = mangaList.getReadDuration(),
id = sourceId,

View file

@ -20,8 +20,7 @@ class SourceAdapter(val controller: BrowseController) :
val sourceListener: SourceListener = controller
val isMultiLingual =
Injekt.get<PreferencesHelper>().enabledLanguages().get().filterNot { it == "all" }.size > 1
val enabledLanguages = Injekt.get<PreferencesHelper>().enabledLanguages().get()
val extensionManager = controller.presenter.extensionManager

View file

@ -32,7 +32,7 @@ class SourceHolder(view: View, val adapter: SourceAdapter) :
val underPinnedSection = item.header?.code?.equals(SourcePresenter.PINNED_KEY) ?: false
val underLastUsedSection = item.header?.code?.equals(SourcePresenter.LAST_USED_KEY) ?: false
val isPinned = item.isPinned ?: underPinnedSection
val showLanguage = source.includeLangInName(adapter.isMultiLingual, adapter.extensionManager)
val showLanguage = source.includeLangInName(adapter.enabledLanguages, adapter.extensionManager)
val sourceName = if (showLanguage && (underPinnedSection || underLastUsedSection)) source.toString() else source.name
binding.title.text = sourceName