Forráskód Böngészése

Add forbidden file name extensions

Signed-off-by: alperozturk <alper_ozturk@proton.me>
alperozturk 11 hónapja
szülő
commit
53650b92c7

+ 7 - 3
app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt

@@ -25,6 +25,7 @@ object FileNameValidator {
         "LPT0", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9",
         "LPT¹", "LPT²", "LPT³"
     )
+    private val forbiddenFileExtensions = listOf(".filepart", ".part")
 
     /**
      * Checks the validity of a file name.
@@ -66,11 +67,14 @@ object FileNameValidator {
                     reservedWindowsNames.contains(filename.removeFileExtension().uppercase())
                 )
         ) {
-            return context.getString(R.string.file_name_validator_error_reserved_names, filename.substringBefore("."))
+            return context.getString(R.string.file_name_validator_error_reserved_names, filename.substringBefore(dot()))
         }
 
-        if (capability.forbiddenFilenameExtension.isTrue) {
-            // TODO add logic
+        if (capability.forbiddenFilenameExtension.isTrue && forbiddenFileExtensions.contains(filename.uppercase())) {
+            return context.getString(
+                R.string.file_name_validator_error_forbidden_file_extensions,
+                filename.substringAfter(dot())
+            )
         }
 
         return null

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -1224,5 +1224,6 @@
     <string name="file_name_validator_error_contains_reserved_names_or_invalid_characters">Folder path contains reserved names or invalid character</string>
     <string name="file_name_validator_error_invalid_character">File name contains invalid characters: %s</string>
     <string name="file_name_validator_error_reserved_names">%s is a reserved name</string>
+    <string name="file_name_validator_error_forbidden_file_extensions">%s is a forbidden file extension</string>
     <string name="file_name_validator_error_ends_with_space_period">File name ends with a space or a period</string>
 </resources>