mirror of
https://github.com/nextcloud/android.git
synced 2024-11-28 02:17:43 +03:00
Remove duplicated logics
Signed-off-by: alperozturk <alper_ozturk@proton.me>
This commit is contained in:
parent
5ae25ec56d
commit
b5e7946569
4 changed files with 32 additions and 18 deletions
|
@ -22,7 +22,7 @@ object FileNameValidator {
|
||||||
"LPT¹", "LPT²", "LPT³"
|
"LPT¹", "LPT²", "LPT³"
|
||||||
)
|
)
|
||||||
|
|
||||||
fun isValid(name: String, context: Context): String? {
|
fun isValid(name: String, context: Context, fileNames: MutableSet<String>? = null): String? {
|
||||||
val invalidCharacter = name.find { it.toString().matches(reservedWindowsChars) || it.toString().matches(reservedUnixChars) }
|
val invalidCharacter = name.find { it.toString().matches(reservedWindowsChars) || it.toString().matches(reservedUnixChars) }
|
||||||
if (invalidCharacter != null) {
|
if (invalidCharacter != null) {
|
||||||
return context.getString(R.string.file_name_validator_error_invalid_character, invalidCharacter)
|
return context.getString(R.string.file_name_validator_error_invalid_character, invalidCharacter)
|
||||||
|
@ -40,6 +40,14 @@ object FileNameValidator {
|
||||||
return context.getString(R.string.filename_empty)
|
return context.getString(R.string.filename_empty)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isFileNameAlreadyExist(name, fileNames ?: mutableSetOf())) {
|
||||||
|
return context.getString(R.string.file_already_exists)
|
||||||
|
}
|
||||||
|
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun isFileHidden(name: String): Boolean = !TextUtils.isEmpty(name) && name[0] == '.'
|
||||||
|
|
||||||
|
private fun isFileNameAlreadyExist(name: String, fileNames: MutableSet<String>): Boolean = fileNames.contains(name)
|
||||||
}
|
}
|
||||||
|
|
|
@ -248,18 +248,25 @@ class ChooseTemplateDialogFragment : DialogFragment(), View.OnClickListener, Tem
|
||||||
val errorMessage = FileNameValidator.isValid(name, requireContext())
|
val errorMessage = FileNameValidator.isValid(name, requireContext())
|
||||||
|
|
||||||
val error = when {
|
val error = when {
|
||||||
name.isEmpty() || isNameJustExtension -> null
|
isNameJustExtension -> null
|
||||||
name[0] == '.' -> getText(R.string.hidden_file_name_warning)
|
|
||||||
errorMessage != null -> errorMessage
|
errorMessage != null -> errorMessage
|
||||||
fileNames.contains(name) -> getText(R.string.file_already_exists)
|
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
|
|
||||||
positiveButton?.isEnabled = (error == null)
|
if (error != null || name.equals(DOT + selectedTemplate?.extension, ignoreCase = true)) {
|
||||||
positiveButton?.isClickable = (error == null)
|
binding.filenameContainer.error = error ?: getString(R.string.enter_filename)
|
||||||
binding.filenameContainer.isErrorEnabled = (error != null)
|
positiveButton?.isEnabled = false
|
||||||
if (error != null) {
|
positiveButton?.isClickable = false
|
||||||
binding.filenameContainer.error = error
|
binding.filenameContainer.isErrorEnabled = true
|
||||||
|
} else if (FileNameValidator.isFileHidden(name)) {
|
||||||
|
positiveButton?.isEnabled = true
|
||||||
|
positiveButton?.isClickable = true
|
||||||
|
binding.filenameContainer.isErrorEnabled = true
|
||||||
|
binding.filenameContainer.error = getText(R.string.hidden_file_name_warning)
|
||||||
|
} else {
|
||||||
|
positiveButton?.isEnabled = true
|
||||||
|
positiveButton?.isClickable = true
|
||||||
|
binding.filenameContainer.isErrorEnabled = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -117,13 +117,11 @@ class CreateFolderDialogFragment : DialogFragment(), DialogInterface.OnClickList
|
||||||
|
|
||||||
private fun checkFileNameAfterEachType(fileNames: MutableSet<String>) {
|
private fun checkFileNameAfterEachType(fileNames: MutableSet<String>) {
|
||||||
val newFileName = binding.userInput.text?.toString()?.trim() ?: ""
|
val newFileName = binding.userInput.text?.toString()?.trim() ?: ""
|
||||||
val errorMessage: String? = FileNameValidator.isValid(newFileName, requireContext())
|
val errorMessage: String? = FileNameValidator.isValid(newFileName, requireContext(), fileNames)
|
||||||
|
|
||||||
val error = when {
|
val error = when {
|
||||||
newFileName.isEmpty() -> null
|
newFileName.isEmpty() -> null
|
||||||
newFileName[0] == '.' -> getString(R.string.hidden_file_name_warning)
|
|
||||||
errorMessage != null -> errorMessage
|
errorMessage != null -> errorMessage
|
||||||
fileNames.contains(newFileName) -> getString(R.string.file_already_exists)
|
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,6 +131,10 @@ class CreateFolderDialogFragment : DialogFragment(), DialogInterface.OnClickList
|
||||||
if (positiveButton == null) {
|
if (positiveButton == null) {
|
||||||
bindButton()
|
bindButton()
|
||||||
}
|
}
|
||||||
|
} else if (FileNameValidator.isFileHidden(newFileName)) {
|
||||||
|
binding.userInputContainer.error = requireContext().getString(R.string.hidden_file_name_warning)
|
||||||
|
binding.userInputContainer.isErrorEnabled = true
|
||||||
|
positiveButton?.isEnabled = true
|
||||||
} else {
|
} else {
|
||||||
binding.userInputContainer.error = null
|
binding.userInputContainer.error = null
|
||||||
binding.userInputContainer.isErrorEnabled = false
|
binding.userInputContainer.isErrorEnabled = false
|
||||||
|
|
|
@ -159,7 +159,7 @@ public class RenameFileDialogFragment
|
||||||
newFileName = binding.userInput.getText().toString().trim();
|
newFileName = binding.userInput.getText().toString().trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
String errorMessage = FileNameValidator.INSTANCE.isValid(newFileName, requireContext());
|
String errorMessage = FileNameValidator.INSTANCE.isValid(newFileName, requireContext(), null);
|
||||||
if (errorMessage != null) {
|
if (errorMessage != null) {
|
||||||
DisplayUtils.showSnackMessage(requireActivity(), errorMessage);
|
DisplayUtils.showSnackMessage(requireActivity(), errorMessage);
|
||||||
return;
|
return;
|
||||||
|
@ -193,16 +193,13 @@ public class RenameFileDialogFragment
|
||||||
newFileName = binding.userInput.getText().toString().trim();
|
newFileName = binding.userInput.getText().toString().trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
String errorMessage = FileNameValidator.INSTANCE.isValid(newFileName, requireContext());
|
String errorMessage = FileNameValidator.INSTANCE.isValid(newFileName, requireContext(), fileNames);
|
||||||
|
|
||||||
if (!TextUtils.isEmpty(newFileName) && newFileName.charAt(0) == '.') {
|
if (FileNameValidator.INSTANCE.isFileHidden(newFileName)) {
|
||||||
binding.userInputContainer.setError(getText(R.string.hidden_file_name_warning));
|
binding.userInputContainer.setError(getText(R.string.hidden_file_name_warning));
|
||||||
} else if (errorMessage != null) {
|
} else if (errorMessage != null) {
|
||||||
binding.userInputContainer.setError(errorMessage);
|
binding.userInputContainer.setError(errorMessage);
|
||||||
positiveButton.setEnabled(false);
|
positiveButton.setEnabled(false);
|
||||||
} else if (fileNames.contains(newFileName)) {
|
|
||||||
binding.userInputContainer.setError(getText(R.string.file_already_exists));
|
|
||||||
positiveButton.setEnabled(false);
|
|
||||||
} else if (binding.userInputContainer.getError() != null) {
|
} else if (binding.userInputContainer.getError() != null) {
|
||||||
binding.userInputContainer.setError(null);
|
binding.userInputContainer.setError(null);
|
||||||
// Called to remove extra padding
|
// Called to remove extra padding
|
||||||
|
|
Loading…
Reference in a new issue