Skip to content

Commit 3475330

Browse files
Merge pull request #16523 from nextcloud/changeMimetype
Forbid to change extension with template
2 parents f3a1601 + 43c549d commit 3475330

3 files changed

Lines changed: 13 additions & 4 deletions

File tree

app/src/main/java/com/owncloud/android/ui/dialog/ChooseRichDocumentsTemplateDialogFragment.kt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,9 @@ class ChooseRichDocumentsTemplateDialogFragment :
310310
ignoreCase = true
311311
)
312312
)
313-
val isEnable = isExtension && errorMessage == null
313+
val isChangedExtension = name.substringAfterLast(DOT) != selectedTemplate?.extension
314+
315+
val isEnable = isExtension && !isChangedExtension && errorMessage == null
314316

315317
positiveButton?.let {
316318
it.isEnabled = isEnable
@@ -320,7 +322,11 @@ class ChooseRichDocumentsTemplateDialogFragment :
320322
binding.filenameContainer.run {
321323
isErrorEnabled = !isEnable
322324
error = if (!isEnable) {
323-
errorMessage ?: getText(R.string.filename_empty)
325+
when {
326+
errorMessage != null -> errorMessage
327+
isChangedExtension -> getString(R.string.extension_cannot_be_changed)
328+
else -> getText(R.string.filename_empty)
329+
}
324330
} else {
325331
null
326332
}

app/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,16 +275,18 @@ class ChooseTemplateDialogFragment :
275275

276276
val isNameValid = (errorMessage == null) && !name.equals(DOT + selectedTemplate?.extension, ignoreCase = true)
277277
val isHiddenFileName = FileNameValidator.isFileHidden(name)
278+
val isChangedExtension = name.substringAfterLast(DOT) != selectedTemplate?.extension
278279

279-
binding.filenameContainer.isErrorEnabled = !isNameValid || isHiddenFileName
280+
binding.filenameContainer.isErrorEnabled = !isNameValid || isHiddenFileName || isChangedExtension
280281
binding.filenameContainer.error = when {
281282
!isNameValid -> errorMessage ?: getString(R.string.enter_filename)
282283
isHiddenFileName -> getText(R.string.hidden_file_name_warning)
284+
isChangedExtension -> getString(R.string.extension_cannot_be_changed)
283285
else -> null
284286
}
285287

286288
positiveButton?.apply {
287-
isEnabled = isNameValid && !isHiddenFileName
289+
isEnabled = isNameValid && !isHiddenFileName && !isChangedExtension
288290
isClickable = isEnabled
289291
}
290292
}

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1505,4 +1505,5 @@
15051505
<string name="sync_conflict_notification_title">File upload conflicts</string>
15061506
<string name="sync_conflict_notification_description">Upload conflicts detected. Open uploads to resolve.</string>
15071507
<string name="sync_conflict_notification_action_title">Resolve conflicts</string>
1508+
<string name="extension_cannot_be_changed">Extension cannot be changed</string>
15081509
</resources>

0 commit comments

Comments
 (0)