diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/ChooseRichDocumentsTemplateDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/ChooseRichDocumentsTemplateDialogFragment.kt
index dedef04d701e..6df85f4a26d8 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/ChooseRichDocumentsTemplateDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/ChooseRichDocumentsTemplateDialogFragment.kt
@@ -310,7 +310,9 @@ class ChooseRichDocumentsTemplateDialogFragment :
ignoreCase = true
)
)
- val isEnable = isExtension && errorMessage == null
+ val isChangedExtension = name.substringAfterLast(DOT) != selectedTemplate?.extension
+
+ val isEnable = isExtension && !isChangedExtension && errorMessage == null
positiveButton?.let {
it.isEnabled = isEnable
@@ -320,7 +322,11 @@ class ChooseRichDocumentsTemplateDialogFragment :
binding.filenameContainer.run {
isErrorEnabled = !isEnable
error = if (!isEnable) {
- errorMessage ?: getText(R.string.filename_empty)
+ when {
+ errorMessage != null -> errorMessage
+ isChangedExtension -> getString(R.string.extension_cannot_be_changed)
+ else -> getText(R.string.filename_empty)
+ }
} else {
null
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.kt
index 4f0d97f6a385..733205a9db3a 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.kt
@@ -275,16 +275,18 @@ class ChooseTemplateDialogFragment :
val isNameValid = (errorMessage == null) && !name.equals(DOT + selectedTemplate?.extension, ignoreCase = true)
val isHiddenFileName = FileNameValidator.isFileHidden(name)
+ val isChangedExtension = name.substringAfterLast(DOT) != selectedTemplate?.extension
- binding.filenameContainer.isErrorEnabled = !isNameValid || isHiddenFileName
+ binding.filenameContainer.isErrorEnabled = !isNameValid || isHiddenFileName || isChangedExtension
binding.filenameContainer.error = when {
!isNameValid -> errorMessage ?: getString(R.string.enter_filename)
isHiddenFileName -> getText(R.string.hidden_file_name_warning)
+ isChangedExtension -> getString(R.string.extension_cannot_be_changed)
else -> null
}
positiveButton?.apply {
- isEnabled = isNameValid && !isHiddenFileName
+ isEnabled = isNameValid && !isHiddenFileName && !isChangedExtension
isClickable = isEnabled
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index dee81fb3f3e0..8c775e245054 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1504,4 +1504,5 @@
File upload conflicts
Upload conflicts detected. Open uploads to resolve.
Resolve conflicts
+ Extension cannot be changed