From e78f0f59d64396b584d6dda5450b0073bc28384e Mon Sep 17 00:00:00 2001 From: alperozturk Date: Mon, 16 Sep 2024 11:54:22 +0200 Subject: [PATCH 1/8] Translation improvements, no need nx version checks Signed-off-by: alperozturk --- .../fileNameValidator/FileNameValidator.kt | 61 ++++++++++--------- app/src/main/res/values/strings.xml | 3 +- 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt b/app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt index ac738ce371a5..3488cf722f03 100644 --- a/app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt +++ b/app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt @@ -17,7 +17,6 @@ import com.nextcloud.utils.extensions.forbiddenFilenames import com.nextcloud.utils.extensions.removeFileExtension import com.owncloud.android.R import com.owncloud.android.datamodel.OCFile -import com.owncloud.android.lib.resources.status.NextcloudVersion import com.owncloud.android.lib.resources.status.OCCapability object FileNameValidator { @@ -49,44 +48,48 @@ object FileNameValidator { } } - if (capability.version.isNewerOrEqual(NextcloudVersion.nextcloud_30)) { - checkInvalidCharacters(filename, capability, context)?.let { - return it - } + checkInvalidCharacters(filename, capability, context)?.let { + return it + } - capability.run { - val filenameVariants = setOf(filename.lowercase(), filename.removeFileExtension().lowercase()) + capability.run { + val filenameVariants = setOf(filename.lowercase(), filename.removeFileExtension().lowercase()) - forbiddenFilenameBaseNames().let { - val forbiddenBaseNames = forbiddenFilenameBaseNames().map { it.lowercase() } + forbiddenFilenameBaseNames().let { + val forbiddenBaseNames = forbiddenFilenameBaseNames().map { it.lowercase() } - for (forbiddenBaseName in forbiddenBaseNames) { - if (forbiddenBaseName in filenameVariants) { - return context.getString( - R.string.file_name_validator_error_reserved_names, - forbiddenBaseName - ) - } + for (forbiddenBaseName in forbiddenBaseNames) { + if (forbiddenBaseName in filenameVariants) { + return context.getString( + R.string.file_name_validator_error_reserved_names, + forbiddenBaseName + ) } } + } - forbiddenFilenamesJson?.let { - val forbiddenFilenames = forbiddenFilenames().map { it.lowercase() } + forbiddenFilenamesJson?.let { + val forbiddenFilenames = forbiddenFilenames().map { it.lowercase() } - for (forbiddenFilename in forbiddenFilenames) { - if (forbiddenFilename in filenameVariants) { - return context.getString( - R.string.file_name_validator_error_reserved_names, - forbiddenFilename - ) - } + for (forbiddenFilename in forbiddenFilenames) { + if (forbiddenFilename in filenameVariants) { + return context.getString( + R.string.file_name_validator_error_reserved_names, + forbiddenFilename + ) } } + } - forbiddenFilenameExtensionJson?.let { - for (forbiddenExtension in forbiddenFilenameExtension()) { - if (filename.endsWith(forbiddenExtension, ignoreCase = true)) { - return context.getString( + forbiddenFilenameExtensionJson?.let { + for (forbiddenExtension in forbiddenFilenameExtension()) { + if (filename.endsWith(forbiddenExtension, ignoreCase = true)) { + return if (forbiddenExtension == StringConstants.SPACE) { + context.getString( + R.string.file_name_validator_error_forbidden_space_character_extensions, + ) + } else { + context.getString( R.string.file_name_validator_error_forbidden_file_extensions, forbiddenExtension ) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cab13cb89017..f371865fea1c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1237,11 +1237,12 @@ Permissions are required to open search result otherwise it will redirected to web… Current folder name is invalid, please rename the folder. Redirecting to root %s. Please rename the file before moving or copying - Some contents cannot able to uploaded due to contains reserved names or invalid character + Some content cannot be uploaded since it contains reserved names or invalid characters Folder path contains reserved names or invalid character Name contains an invalid character: %s %s is a forbidden name %s is a forbidden file extension + A space character is not allowed in file names Sync Please select a server… From 71b7e18c6afd58cb4496275a4d0fda3b15867902 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Mon, 16 Sep 2024 11:54:47 +0200 Subject: [PATCH 2/8] Code analytic fix Signed-off-by: alperozturk --- .../com/nextcloud/utils/fileNameValidator/FileNameValidator.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt b/app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt index 3488cf722f03..7b027b9038ba 100644 --- a/app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt +++ b/app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt @@ -86,7 +86,7 @@ object FileNameValidator { if (filename.endsWith(forbiddenExtension, ignoreCase = true)) { return if (forbiddenExtension == StringConstants.SPACE) { context.getString( - R.string.file_name_validator_error_forbidden_space_character_extensions, + R.string.file_name_validator_error_forbidden_space_character_extensions ) } else { context.getString( From 0a18c6b79d40068ad4c259cb524a3f3d12676fbd Mon Sep 17 00:00:00 2001 From: rakekniven <2069590+rakekniven@users.noreply.github.com> Date: Mon, 16 Sep 2024 12:10:47 +0200 Subject: [PATCH 3/8] Update app/src/main/res/values/strings.xml Co-authored-by: Kate <26026535+provokateurin@users.noreply.github.com> Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com> --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f371865fea1c..e1bd3ea262ce 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1242,7 +1242,7 @@ Name contains an invalid character: %s %s is a forbidden name %s is a forbidden file extension - A space character is not allowed in file names + A space character is not allowed in file names Sync Please select a server… From d35fbbf97305186de41596152502f59d997623da Mon Sep 17 00:00:00 2001 From: alperozturk Date: Mon, 16 Sep 2024 12:30:54 +0200 Subject: [PATCH 4/8] Version check needed no need try to parse empty array Signed-off-by: alperozturk --- .../fileNameValidator/FileNameValidator.kt | 73 ++++++++++--------- 1 file changed, 38 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt b/app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt index 7b027b9038ba..a7332da57660 100644 --- a/app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt +++ b/app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt @@ -17,6 +17,7 @@ import com.nextcloud.utils.extensions.forbiddenFilenames import com.nextcloud.utils.extensions.removeFileExtension import com.owncloud.android.R import com.owncloud.android.datamodel.OCFile +import com.owncloud.android.lib.resources.status.NextcloudVersion import com.owncloud.android.lib.resources.status.OCCapability object FileNameValidator { @@ -48,51 +49,53 @@ object FileNameValidator { } } - checkInvalidCharacters(filename, capability, context)?.let { - return it - } + if (capability.version.isNewerOrEqual(NextcloudVersion.nextcloud_30)) { + checkInvalidCharacters(filename, capability, context)?.let { + return it + } - capability.run { - val filenameVariants = setOf(filename.lowercase(), filename.removeFileExtension().lowercase()) + capability.run { + val filenameVariants = setOf(filename.lowercase(), filename.removeFileExtension().lowercase()) - forbiddenFilenameBaseNames().let { - val forbiddenBaseNames = forbiddenFilenameBaseNames().map { it.lowercase() } + forbiddenFilenameBaseNames().let { + val forbiddenBaseNames = forbiddenFilenameBaseNames().map { it.lowercase() } - for (forbiddenBaseName in forbiddenBaseNames) { - if (forbiddenBaseName in filenameVariants) { - return context.getString( - R.string.file_name_validator_error_reserved_names, - forbiddenBaseName - ) + for (forbiddenBaseName in forbiddenBaseNames) { + if (forbiddenBaseName in filenameVariants) { + return context.getString( + R.string.file_name_validator_error_reserved_names, + forbiddenBaseName + ) + } } } - } - forbiddenFilenamesJson?.let { - val forbiddenFilenames = forbiddenFilenames().map { it.lowercase() } + forbiddenFilenamesJson?.let { + val forbiddenFilenames = forbiddenFilenames().map { it.lowercase() } - for (forbiddenFilename in forbiddenFilenames) { - if (forbiddenFilename in filenameVariants) { - return context.getString( - R.string.file_name_validator_error_reserved_names, - forbiddenFilename - ) + for (forbiddenFilename in forbiddenFilenames) { + if (forbiddenFilename in filenameVariants) { + return context.getString( + R.string.file_name_validator_error_reserved_names, + forbiddenFilename + ) + } } } - } - forbiddenFilenameExtensionJson?.let { - for (forbiddenExtension in forbiddenFilenameExtension()) { - if (filename.endsWith(forbiddenExtension, ignoreCase = true)) { - return if (forbiddenExtension == StringConstants.SPACE) { - context.getString( - R.string.file_name_validator_error_forbidden_space_character_extensions - ) - } else { - context.getString( - R.string.file_name_validator_error_forbidden_file_extensions, - forbiddenExtension - ) + forbiddenFilenameExtensionJson?.let { + for (forbiddenExtension in forbiddenFilenameExtension()) { + if (filename.endsWith(forbiddenExtension, ignoreCase = true)) { + return if (forbiddenExtension == StringConstants.SPACE) { + context.getString( + R.string.file_name_validator_error_forbidden_space_character_extensions + ) + } else { + context.getString( + R.string.file_name_validator_error_forbidden_file_extensions, + forbiddenExtension + ) + } } } } From 1473d80edd1dcb42dd4f977b80cd1e797f2fc8ad Mon Sep 17 00:00:00 2001 From: alperozturk Date: Tue, 17 Sep 2024 09:25:23 +0200 Subject: [PATCH 5/8] Update tests Signed-off-by: alperozturk --- .../java/com/nextcloud/utils/FileNameValidatorTests.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/androidTest/java/com/nextcloud/utils/FileNameValidatorTests.kt b/app/src/androidTest/java/com/nextcloud/utils/FileNameValidatorTests.kt index 881c96ae535d..7febed5c02ad 100644 --- a/app/src/androidTest/java/com/nextcloud/utils/FileNameValidatorTests.kt +++ b/app/src/androidTest/java/com/nextcloud/utils/FileNameValidatorTests.kt @@ -81,7 +81,7 @@ class FileNameValidatorTests : AbstractOnServerIT() { assertEquals(null, result2) } else { assertEquals( - targetContext.getString(R.string.file_name_validator_error_forbidden_file_extensions, " "), + targetContext.getString(R.string.file_name_validator_error_forbidden_space_character_extensions), result ) assertEquals( From f62f7bcdef26bad7bf7f237d765a14fa1f3020f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alper=20=C3=96zt=C3=BCrk?= <67455295+alperozturk96@users.noreply.github.com> Date: Wed, 18 Sep 2024 09:31:02 +0200 Subject: [PATCH 6/8] Update app/src/main/res/values/strings.xml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tom <70907959+ZetaTom@users.noreply.github.com> Signed-off-by: Alper Öztürk <67455295+alperozturk96@users.noreply.github.com> --- app/src/main/res/values/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e1bd3ea262ce..406e74c4a6b1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1238,8 +1238,8 @@ Current folder name is invalid, please rename the folder. Redirecting to root %s. Please rename the file before moving or copying Some content cannot be uploaded since it contains reserved names or invalid characters - Folder path contains reserved names or invalid character - Name contains an invalid character: %s + Folder path contains reserved names or invalid characters + Name contains invalid characters: %s %s is a forbidden name %s is a forbidden file extension A space character is not allowed in file names From 90ca031210435f7a575f9808e2e71e5f2334bae1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alper=20=C3=96zt=C3=BCrk?= <67455295+alperozturk96@users.noreply.github.com> Date: Wed, 18 Sep 2024 09:35:04 +0200 Subject: [PATCH 7/8] Update app/src/main/res/values/strings.xml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tom <70907959+ZetaTom@users.noreply.github.com> Signed-off-by: Alper Öztürk <67455295+alperozturk96@users.noreply.github.com> --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 406e74c4a6b1..fef2c233f7f1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1235,7 +1235,7 @@ Event not found, you can always sync to update. Redirecting to web… Contact not found, you can always sync to update. Redirecting to web… Permissions are required to open search result otherwise it will redirected to web… - Current folder name is invalid, please rename the folder. Redirecting to root + Current folder name is invalid, please rename the folder. Redirecting home… %s. Please rename the file before moving or copying Some content cannot be uploaded since it contains reserved names or invalid characters Folder path contains reserved names or invalid characters From d259376638fc31c10a0fd7d0bfd43795c040a675 Mon Sep 17 00:00:00 2001 From: rakekniven <2069590+rakekniven@users.noreply.github.com> Date: Wed, 18 Sep 2024 15:01:31 +0200 Subject: [PATCH 8/8] Precise wording for spaces in filenames Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com> --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fef2c233f7f1..5e4bb7f61a5c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1242,7 +1242,7 @@ Name contains invalid characters: %s %s is a forbidden name %s is a forbidden file extension - A space character is not allowed in file names + Filenames must not contain spaces at the beginning or end Sync Please select a server…