
ma1 pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android Commits: 257aa5e5 by hackademix at 2024-09-30T21:41:21+02:00 Bug 1906024 - Format download file names better a=diannaS [BP131] - - - - - 1 changed file: - android-components/components/support/ktx/src/main/java/mozilla/components/support/ktx/kotlin/String.kt Changes: ===================================== android-components/components/support/ktx/src/main/java/mozilla/components/support/ktx/kotlin/String.kt ===================================== @@ -49,6 +49,8 @@ const val MAX_URI_LENGTH = 25000 private const val FILE_PREFIX = "file://" private const val MAX_VALID_PORT = 65_535 +private const val SPACE = " " +private const val UNDERSCORE = "_" /** * Shortens URLs to be more user friendly. @@ -303,7 +305,27 @@ fun String.sanitizeFileName(): String { file.name.replace("\\.\\.+".toRegex(), ".") } else { file.name.replace(".", "") - } + }.replaceContinuousSpaces() + .replaceEscapedCharacters() + .trim() +} + + +/** + * Replaces control characters from ASCII 0 to ASCII 19 with '_' so the file name is valid + * and is correctly displayed. + */ +private fun String.replaceEscapedCharacters(): String { + val escapedCharactersRegex = "[\\x00-\\x13*\"?<>:|\\\\]".toRegex() + return replace(escapedCharactersRegex, UNDERSCORE) +} + +/** + * Replaces continuous spaces with a single space. + */ +private fun String.replaceContinuousSpaces(): String { + val escapedCharactersRegex = "[\\p{Z}\\s]+".toRegex() + return replace(escapedCharactersRegex, SPACE) } /** View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/257a... -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/257a... You're receiving this email because of your account on gitlab.torproject.org.
participants (1)
-
ma1 (@ma1)