Browse Source

Extract checkInvalidCharacters

Signed-off-by: alperozturk <alper_ozturk@proton.me>
alperozturk 1 year ago
parent
commit
94b6e91909

+ 16 - 8
app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt

@@ -42,14 +42,8 @@ object FileNameValidator {
             return context.getString(R.string.file_name_validator_error_ends_with_space_period)
         }
 
-        if (capability.forbiddenFilenameCharacters.isTrue) {
-            val invalidCharacter = name.find {
-                it.toString().matches(reservedWindowsChars) ||
-                it.toString().matches(reservedUnixChars)
-            }
-            if (invalidCharacter != null) {
-                return context.getString(R.string.file_name_validator_error_invalid_character, invalidCharacter)
-            }
+        checkInvalidCharacters(name, capability, context)?.let {
+            return it
         }
 
         if (capability.forbiddenFilenames.isTrue && reservedWindowsNames.contains(name.uppercase())) {
@@ -63,6 +57,20 @@ object FileNameValidator {
         return null
     }
 
+    private fun checkInvalidCharacters(name: String, capability: OCCapability, context: Context): String? {
+        if (capability.forbiddenFilenameCharacters.isTrue) {
+            val invalidCharacter = name.find {
+                it.toString().matches(reservedWindowsChars) ||
+                    it.toString().matches(reservedUnixChars)
+            }
+            if (invalidCharacter != null) {
+                return context.getString(R.string.file_name_validator_error_invalid_character, invalidCharacter)
+            }
+        }
+
+        return null
+    }
+
     fun isFileHidden(name: String): Boolean = !TextUtils.isEmpty(name) && name[0] == '.'
 
     fun isFileNameAlreadyExist(name: String, fileNames: MutableSet<String>): Boolean = fileNames.contains(name)