Hide language tag when only one language is used (#5834)
* Hide lang tag when only one lang used * Comment the code Can't be too useless and do nothing, Ghostbear practically wrote the entire PR for me * Exclude 'all' from counting as a language Co-Authored-By: Andreas <6576096+ghostbear@users.noreply.github.com> * Use existing Preferences directly from Presenter * Replace regex with an existing value Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com> (cherry picked from commit 763bd54707ce48ef67a0d5062cfbe014675ef522) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt
This commit is contained in:
parent
b304082ca6
commit
3cb05b1442
@ -18,6 +18,7 @@ import eu.kanade.tachiyomi.source.SourceManager
|
|||||||
import eu.kanade.tachiyomi.source.model.SManga
|
import eu.kanade.tachiyomi.source.model.SManga
|
||||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||||
import eu.kanade.tachiyomi.source.online.MetadataSource
|
import eu.kanade.tachiyomi.source.online.MetadataSource
|
||||||
|
import eu.kanade.tachiyomi.source.online.all.MergedSource
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.getMainAppBarHeight
|
import eu.kanade.tachiyomi.ui.base.controller.getMainAppBarHeight
|
||||||
import eu.kanade.tachiyomi.ui.manga.MangaController
|
import eu.kanade.tachiyomi.ui.manga.MangaController
|
||||||
import eu.kanade.tachiyomi.util.lang.launchUI
|
import eu.kanade.tachiyomi.util.lang.launchUI
|
||||||
@ -334,13 +335,35 @@ class MangaInfoHeaderAdapter(
|
|||||||
// If manga source is known update source TextView.
|
// If manga source is known update source TextView.
|
||||||
val mangaSource = source?.toString()
|
val mangaSource = source?.toString()
|
||||||
with(binding.mangaSource) {
|
with(binding.mangaSource) {
|
||||||
|
if (mangaSource != null) {
|
||||||
|
val preferences = controller.presenter.preferences
|
||||||
|
val enabledLanguages = preferences.enabledLanguages().get()
|
||||||
|
.filterNot { it == "all" }
|
||||||
|
|
||||||
|
val isMergedSource = source is MergedSource
|
||||||
|
|
||||||
|
text = if (enabledLanguages.size == 1) {
|
||||||
// SY -->
|
// SY -->
|
||||||
if (source?.id == MERGED_SOURCE_ID) {
|
if (isMergedSource) {
|
||||||
text = mergedMangaReferences.map {
|
getMergedSourcesString(enabledLanguages, true)
|
||||||
sourceManager.getOrStub(it.mangaSourceId).toString()
|
}
|
||||||
}.distinct().joinToString()
|
|
||||||
} else /* SY <-- */ if (mangaSource != null) {
|
// For edge cases where user disables a source they got manga of in their library.
|
||||||
text = mangaSource
|
else /* SY <-- */ if (source.lang !in enabledLanguages) {
|
||||||
|
source.toString()
|
||||||
|
} else {
|
||||||
|
// Hide the language tag when only one language is used.
|
||||||
|
source.name
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Display the language tag when multiple languages are used.
|
||||||
|
if (isMergedSource) {
|
||||||
|
getMergedSourcesString(enabledLanguages, false)
|
||||||
|
} else {
|
||||||
|
source.toString()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
setOnClickListener {
|
setOnClickListener {
|
||||||
controller.performSearch(sourceManager.getOrStub(source.id).name)
|
controller.performSearch(sourceManager.getOrStub(source.id).name)
|
||||||
}
|
}
|
||||||
@ -486,6 +509,23 @@ class MangaInfoHeaderAdapter(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
|
private fun getMergedSourcesString(enabledLangs: List<String>, onlyName: Boolean = false): String {
|
||||||
|
return if (onlyName) {
|
||||||
|
mergedMangaReferences.map {
|
||||||
|
val source = sourceManager.getOrStub(it.mangaSourceId)
|
||||||
|
if (source.lang !in enabledLangs) {
|
||||||
|
source.toString()
|
||||||
|
} else {
|
||||||
|
source.name
|
||||||
|
}
|
||||||
|
}.distinct().joinToString()
|
||||||
|
} else {
|
||||||
|
mergedMangaReferences.map {
|
||||||
|
sourceManager.getOrStub(it.mangaSourceId).toString()
|
||||||
|
}.distinct().joinToString()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun setChipsWithNamespace(genre: List<String>?, meta: RaisedSearchMetadata?) {
|
private fun setChipsWithNamespace(genre: List<String>?, meta: RaisedSearchMetadata?) {
|
||||||
val namespaceTags = when {
|
val namespaceTags = when {
|
||||||
meta != null -> {
|
meta != null -> {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user