Trim line breaks in manga info only when collapsed (#5818)

* don't trim newlines if summary expanded

* move description trim logic to separate function

* logic error oops

* let's try something

* fix bug on first load

makes it so that, description text is trimmed when entering manga from
library

Co-authored-by: Andreas <andreas.everos@gmail.com>

Co-authored-by: Andreas <andreas.everos@gmail.com>
(cherry picked from commit f683f21ee2daf6787e258b852b847582535221c1)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt
This commit is contained in:
nicki 2021-09-01 03:14:33 +05:30 committed by Jobobby04
parent 44b6983b3d
commit 15cd238223

View File

@ -376,14 +376,7 @@ class MangaInfoHeaderAdapter(
showMangaInfo(hasInfoContent) showMangaInfo(hasInfoContent)
if (hasInfoContent) { if (hasInfoContent) {
// Update description TextView. // Update description TextView.
binding.mangaSummaryText.text = if (manga.description.isNullOrBlank()) { binding.mangaSummaryText.text = updateDescription(manga.description, (fromSource || isTablet).not())
view.context.getString(R.string.unknown)
} else {
// Max lines of 3 with a blank line looks whack so we remove
// any line breaks that is 2 or more and replace it with 1
manga.description!!
.replace(Regex("[\\r\\n]{2,}", setOf(RegexOption.MULTILINE)), "\n")
}
// SY --> // SY -->
if (manga.description == "meta") { if (manga.description == "meta") {
@ -465,6 +458,8 @@ class MangaInfoHeaderAdapter(
binding.mangaSummarySection.transitionToEnd() binding.mangaSummarySection.transitionToEnd()
} }
binding.mangaSummaryText.text = updateDescription(manga.description, isCurrentlyExpanded)
binding.mangaSummaryText.maxLines = if (isCurrentlyExpanded) { binding.mangaSummaryText.maxLines = if (isCurrentlyExpanded) {
maxLines maxLines
} else { } else {
@ -472,6 +467,22 @@ class MangaInfoHeaderAdapter(
} }
} }
private fun updateDescription(description: String?, isCurrentlyExpanded: Boolean): CharSequence? {
return if (description.isNullOrBlank()) {
view.context.getString(R.string.unknown)
} else {
// Max lines of 3 with a blank line looks whack so we remove
// any line breaks that is 2 or more and replace it with 1
// however, don't do this if already expanded because we need those blank lines
if (!isCurrentlyExpanded) {
description
} else {
description
.replace(Regex("[\\r\\n]{2,}", setOf(RegexOption.MULTILINE)), "\n")
}
}
}
private fun setChipsWithNamespace(genre: String?, meta: RaisedSearchMetadata?) { private fun setChipsWithNamespace(genre: String?, meta: RaisedSearchMetadata?) {
val namespaceTags = when { val namespaceTags = when {
meta != null -> { meta != null -> {