From e45e81da7f28b0173ee708d897f5ec38e4eb8099 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 24 Jul 2025 16:23:02 -0300 Subject: [PATCH] Don't add line breaks behind paragraphs and lists within the app details description --- .../org/fdroid/ui/details/AppDetailsItem.kt | 13 ++++++------ .../ui/main/details/HtmlDescriptionTest.kt | 21 +++++++++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/next/src/main/kotlin/org/fdroid/ui/details/AppDetailsItem.kt b/next/src/main/kotlin/org/fdroid/ui/details/AppDetailsItem.kt index 1909ca3fe..fa8f8cc69 100644 --- a/next/src/main/kotlin/org/fdroid/ui/details/AppDetailsItem.kt +++ b/next/src/main/kotlin/org/fdroid/ui/details/AppDetailsItem.kt @@ -212,10 +212,11 @@ private fun AppVersion?.getAntiFeatures( @VisibleForTesting internal fun getHtmlDescription(description: String?): String? { - return description?.replace("(\\s)(https://\\S+[^\\s.])([\\s\\n.])".toRegex()) { - val prefix = it.groups[1]?.value ?: it.value - val url = it.groups[2]?.value ?: it.value - val suffix = it.groups[3]?.value ?: it.value - "$prefix$url$suffix" - }?.replace("\n", "
\n") + return description?.replace("".toRegex(), "") + ?.replace("(\\s)(https://\\S+[^\\s.])([\\s\\n.])".toRegex()) { + val prefix = it.groups[1]?.value ?: it.value + val url = it.groups[2]?.value ?: it.value + val suffix = it.groups[3]?.value ?: it.value + "$prefix$url$suffix" + }?.replace("(?|ul>|)\n".toRegex(), "
\n") } diff --git a/next/src/test/java/org/fdroid/ui/main/details/HtmlDescriptionTest.kt b/next/src/test/java/org/fdroid/ui/main/details/HtmlDescriptionTest.kt index 81aa63e1d..88d3f9c83 100644 --- a/next/src/test/java/org/fdroid/ui/main/details/HtmlDescriptionTest.kt +++ b/next/src/test/java/org/fdroid/ui/main/details/HtmlDescriptionTest.kt @@ -4,6 +4,9 @@ import org.fdroid.ui.details.getHtmlDescription import org.junit.Test import kotlin.test.assertEquals +/** + * Tests modifications to app details descriptions done in [getHtmlDescription]. + */ class HtmlDescriptionTest { @Test fun testLinks() { @@ -28,4 +31,22 @@ class HtmlDescriptionTest { val expectedDescription = """please visit our website: https://wikimediafoundation.org/.""" assertEquals(expectedDescription, getHtmlDescription(description)) } + + @Test + fun testHeadlineRemoval() { + val description = """

SimpleX - the first messaging platform that has no user identifiers, not even random numbers!

+

Security assessment was done by Trail of Bits in November 2022.

+

SimpleX Chat features:

+