[tor-commits] [Git][tpo/applications/firefox-android][firefox-android-115.2.1-13.5-1] Bug 1906024 - Format download file names better a=diannaS [BP131]

ma1 (@ma1) git at gitlab.torproject.org
Mon Sep 30 22:34:05 UTC 2024



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/257aa5e5be63fe9ec2a14f2f2ad5b3b0a929dcd1

-- 
View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/257aa5e5be63fe9ec2a14f2f2ad5b3b0a929dcd1
You're receiving this email because of your account on gitlab.torproject.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tor-commits/attachments/20240930/21dd8cf7/attachment-0001.htm>


More information about the tor-commits mailing list