diff --git a/library/src/main/java/com/owncloud/android/lib/resources/status/GetCapabilitiesRemoteOperation.java b/library/src/main/java/com/owncloud/android/lib/resources/status/GetCapabilitiesRemoteOperation.java index 70f084145d..acd225b18e 100644 --- a/library/src/main/java/com/owncloud/android/lib/resources/status/GetCapabilitiesRemoteOperation.java +++ b/library/src/main/java/com/owncloud/android/lib/resources/status/GetCapabilitiesRemoteOperation.java @@ -160,6 +160,12 @@ public class GetCapabilitiesRemoteOperation extends RemoteOperation { private static final String NODE_SECURITY_GUARD = "security_guard"; private static final String NODE_DIAGNOSTICS = "diagnostics"; + // needed for checking compatible filenames + private static final String FORBIDDEN_FILENAME_CHARACTERS = "forbidden_filename_characters"; + private static final String FORBIDDEN_FILENAMES = "forbidden_filenames"; + private static final String FORBIDDEN_FILENAME_EXTENSIONS = "forbidden_filename_extensions"; + private static final String FORBIDDEN_FILENAME_BASE_NAMES = "forbidden_filename_basenames"; + private OCCapability currentCapability = null; public GetCapabilitiesRemoteOperation() { @@ -438,6 +444,28 @@ private OCCapability parseResponse(String response) throws JSONException { capability.setDirectEditingEtag(respDirectEditing.getString("etag")); } + // region compatible file names + if (respFiles.has(FORBIDDEN_FILENAME_CHARACTERS)) { + JSONArray result = respFiles.getJSONArray(FORBIDDEN_FILENAME_CHARACTERS); + capability.setForbiddenFilenameCharactersJson(result.toString()); + } + + if (respFiles.has(FORBIDDEN_FILENAMES)) { + JSONArray result = respFiles.getJSONArray(FORBIDDEN_FILENAMES); + capability.setForbiddenFilenamesJson(result.toString()); + } + + if (respFiles.has(FORBIDDEN_FILENAME_EXTENSIONS)) { + JSONArray result = respFiles.getJSONArray(FORBIDDEN_FILENAME_EXTENSIONS); + capability.setForbiddenFilenameExtensionJson(result.toString()); + } + + if (respFiles.has(FORBIDDEN_FILENAME_BASE_NAMES)) { + JSONArray result = respFiles.getJSONArray(FORBIDDEN_FILENAME_BASE_NAMES); + capability.setForbiddenFilenameBaseNamesJson(result.toString()); + } + // endregion + Log_OC.d(TAG, "*** Added " + NODE_FILES); } diff --git a/library/src/main/java/com/owncloud/android/lib/resources/status/OCCapability.kt b/library/src/main/java/com/owncloud/android/lib/resources/status/OCCapability.kt index c990fb61ae..e6bdf3903b 100644 --- a/library/src/main/java/com/owncloud/android/lib/resources/status/OCCapability.kt +++ b/library/src/main/java/com/owncloud/android/lib/resources/status/OCCapability.kt @@ -104,6 +104,12 @@ class OCCapability { // Security guard var securityGuard = CapabilityBooleanType.UNKNOWN + // needed for checking compatible filenames + var forbiddenFilenameCharactersJson: String? = null + var forbiddenFilenamesJson: String? = null + var forbiddenFilenameExtensionJson: String? = null + var forbiddenFilenameBaseNamesJson: String? = null + // Etag for capabilities var etag: String? = ""