From f683f21ee2daf6787e258b852b847582535221c1 Mon Sep 17 00:00:00 2001 From: nicki <72807749+curche@users.noreply.github.com> Date: Wed, 1 Sep 2021 03:14:33 +0530 Subject: [PATCH] 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 Co-authored-by: Andreas --- .../ui/manga/info/MangaInfoHeaderAdapter.kt | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt index 57608d5e3e..eaea7093ec 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt @@ -292,14 +292,7 @@ class MangaInfoHeaderAdapter( showMangaInfo(hasInfoContent) if (hasInfoContent) { // Update description TextView. - binding.mangaSummaryText.text = if (manga.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 - manga.description!! - .replace(Regex("[\\r\\n]{2,}", setOf(RegexOption.MULTILINE)), "\n") - } + binding.mangaSummaryText.text = updateDescription(manga.description, (fromSource || isTablet).not()) // Update genres list if (!manga.genre.isNullOrBlank()) { @@ -357,6 +350,8 @@ class MangaInfoHeaderAdapter( binding.mangaSummarySection.transitionToEnd() } + binding.mangaSummaryText.text = updateDescription(manga.description, isCurrentlyExpanded) + binding.mangaSummaryText.maxLines = if (isCurrentlyExpanded) { maxLines } else { @@ -364,6 +359,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") + } + } + } + /** * Update favorite button with correct drawable and text. *