diff --git a/iOSClient/Extensions/UIAlertController+Extension.swift b/iOSClient/Extensions/UIAlertController+Extension.swift index 42d44887de..502b14a4bb 100644 --- a/iOSClient/Extensions/UIAlertController+Extension.swift +++ b/iOSClient/Extensions/UIAlertController+Extension.swift @@ -101,7 +101,6 @@ extension UIAlertController { textField.autocapitalizationType = .words } - // only allow saving if folder name exists NotificationCenter.default.addObserver( forName: UITextField.textDidChangeNotification, object: alertController.textFields?.first, diff --git a/iOSClient/NCGlobal.swift b/iOSClient/NCGlobal.swift index 8ac33b3fcf..a5d80edbc5 100644 --- a/iOSClient/NCGlobal.swift +++ b/iOSClient/NCGlobal.swift @@ -346,11 +346,6 @@ final class NCGlobal: Sendable { // let defaultSnapshotConfiguration = "DefaultPreviewConfiguration" - // FORBIDDEN CHARACTERS - // - // TODO: Remove this - let forbiddenCharacters = ["/", "\\", ":", "\"", "|", "?", "*", "<", ">"] - // DIAGNOSTICS CLIENTS // let diagnosticIssueSyncConflicts = "sync_conflicts" diff --git a/iOSClient/Networking/E2EE/NCNetworkingE2EECreateFolder.swift b/iOSClient/Networking/E2EE/NCNetworkingE2EECreateFolder.swift index b885088936..b1c2187b42 100644 --- a/iOSClient/Networking/E2EE/NCNetworkingE2EECreateFolder.swift +++ b/iOSClient/Networking/E2EE/NCNetworkingE2EECreateFolder.swift @@ -15,12 +15,8 @@ class NCNetworkingE2EECreateFolder: NSObject { let global = NCGlobal.shared func createFolder(fileName: String, serverUrl: String, sceneIdentifier: String?, session: NCSession.Session) async -> NKError { - var fileNameFolder = utility.removeForbiddenCharacters(fileName) - if fileName != fileNameFolder { - let errorDescription = String(format: NSLocalizedString("_forbidden_characters_", comment: ""), global.forbiddenCharacters.joined(separator: " ")) - let error = NKError(errorCode: global.errorConflict, errorDescription: errorDescription) - return error - } + var fileNameFolder = FileAutoRenamer.rename(fileName, isFolderPath: true, account: session.account) + let fileNameIdentifier = networkingE2EE.generateRandomIdentifier() let serverUrlFileName = serverUrl + "/" + fileNameIdentifier fileNameFolder = utilityFileSystem.createFileName(fileNameFolder, serverUrl: serverUrl, account: session.account) diff --git a/iOSClient/Networking/NCNetworking+WebDAV.swift b/iOSClient/Networking/NCNetworking+WebDAV.swift index 3b90a61b03..4eafa11603 100644 --- a/iOSClient/Networking/NCNetworking+WebDAV.swift +++ b/iOSClient/Networking/NCNetworking+WebDAV.swift @@ -209,7 +209,7 @@ extension NCNetworking { selector: String? = nil, options: NKRequestOptions = NKRequestOptions()) async -> (serverExists: Bool, error: NKError) { - var fileNameFolder = utility.removeForbiddenCharacters(fileName.trimmingCharacters(in: .whitespacesAndNewlines)) + var fileNameFolder = FileAutoRenamer.rename(fileName, isFolderPath: true, account: session.account) if !overwrite { fileNameFolder = utilityFileSystem.createFileName(fileNameFolder, serverUrl: serverUrl, account: session.account) } diff --git a/iOSClient/Settings/Advanced/File Name/NCFileNameModel.swift b/iOSClient/Settings/Advanced/File Name/NCFileNameModel.swift index e0c633ac1c..db9c9c65f2 100644 --- a/iOSClient/Settings/Advanced/File Name/NCFileNameModel.swift +++ b/iOSClient/Settings/Advanced/File Name/NCFileNameModel.swift @@ -78,13 +78,8 @@ class NCFileNameModel: ObservableObject, ViewOnAppearHandling { /// Submits the changed file name. func submitChangedName() { - let fileNameWithoutForbiddenChars = NCUtility().removeForbiddenCharacters(changedName) - if changedName != fileNameWithoutForbiddenChars { - changedName = fileNameWithoutForbiddenChars - let errorDescription = String(format: NSLocalizedString("_forbidden_characters_", comment: ""), NCGlobal.shared.forbiddenCharacters.joined(separator: " ")) - let error = NKError(errorCode: NCGlobal.shared.errorConflict, errorDescription: errorDescription) - NCContentPresenter().showInfo(error: error) - } + changedName = FileAutoRenamer.rename(changedName, account: session.account) + } /// Generates a preview file name based on current settings and file name mask. diff --git a/iOSClient/Utility/NCUtility.swift b/iOSClient/Utility/NCUtility.swift index c8183ec334..95d9279b37 100644 --- a/iOSClient/Utility/NCUtility.swift +++ b/iOSClient/Utility/NCUtility.swift @@ -275,14 +275,6 @@ final class NCUtility: NSObject, Sendable { return (usedmegabytes, totalmegabytes) } - func removeForbiddenCharacters(_ fileName: String) -> String { - var fileName = fileName - for character in global.forbiddenCharacters { - fileName = fileName.replacingOccurrences(of: character, with: "") - } - return fileName - } - func getHeightHeaderEmptyData(view: UIView, portraitOffset: CGFloat, landscapeOffset: CGFloat) -> CGFloat { var height: CGFloat = 0 if UIDevice.current.orientation.isPortrait {