From abfaafeedeb461a25d1775aafa4811dbc6aede82 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Mon, 16 Mar 2026 11:38:32 -0300 Subject: [PATCH] Remove zero whitespace from CJK languages in app details where that text could get copied to the clipboard --- .../main/kotlin/org/fdroid/ui/details/AppDetailsItem.kt | 7 ++++--- app/src/main/kotlin/org/fdroid/ui/search/SearchHelper.kt | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/org/fdroid/ui/details/AppDetailsItem.kt b/app/src/main/kotlin/org/fdroid/ui/details/AppDetailsItem.kt index 56a23ed8a..4fe2c41c5 100644 --- a/app/src/main/kotlin/org/fdroid/ui/details/AppDetailsItem.kt +++ b/app/src/main/kotlin/org/fdroid/ui/details/AppDetailsItem.kt @@ -21,6 +21,7 @@ import org.fdroid.index.v2.PackageVersion import org.fdroid.install.InstallState import org.fdroid.install.SessionInstallManager import org.fdroid.ui.categories.CategoryItem +import org.fdroid.ui.search.SearchHelper.removeZeroWhiteSpace data class AppDetailsItem( val app: AppMetadata, @@ -91,9 +92,9 @@ data class AppDetailsItem( networkState = networkState, preferredRepoId = preferredRepoId, repositories = repositories, - name = dbApp.name ?: "Unknown App", - summary = dbApp.summary, - description = getHtmlDescription(dbApp.getDescription(localeList)), + name = dbApp.name?.removeZeroWhiteSpace() ?: "Unknown App", + summary = dbApp.summary?.removeZeroWhiteSpace() ?: "", + description = getHtmlDescription(dbApp.getDescription(localeList)?.removeZeroWhiteSpace()), icon = if (installedVersionCode == null) { dbApp.getIcon(localeList)?.getImageModel(repository, proxy) diff --git a/app/src/main/kotlin/org/fdroid/ui/search/SearchHelper.kt b/app/src/main/kotlin/org/fdroid/ui/search/SearchHelper.kt index 272e4e6a7..18bd6db27 100644 --- a/app/src/main/kotlin/org/fdroid/ui/search/SearchHelper.kt +++ b/app/src/main/kotlin/org/fdroid/ui/search/SearchHelper.kt @@ -12,6 +12,9 @@ object SearchHelper { return Normalizer.normalize(this, NFKD).replace(normalizerRegex, "") } + /** Removes zero-width spaces from the string. Useful when string is copy and pasted. */ + fun String.removeZeroWhiteSpace(): String = this.replace("\u200B", "") + /** * Normalize the query by removing diacritics and adding zero-width spaces after ideographic * characters.