From 3ed1ec8aadc58239345b27f4c30a7063607484b4 Mon Sep 17 00:00:00 2001 From: daniele-verducci Date: Tue, 20 Oct 2026 12:21:00 +0200 Subject: [PATCH 1/3] Documented MOVE WebDAV method in README Signed-off-by: daniele-verducci --- README.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ef477196..daba6a7c 100644 --- a/README.md +++ b/README.md @@ -235,7 +235,7 @@ public class MyActivity extends AppCompatActivity { #### 5.3) **WebDAV** -Currently the following `WebDAV` Methods are supported: `PROPFIND` / `MKCOL` +Currently the following `WebDAV` Methods are supported: `PROPFIND`, `MKCOL`, `MOVE`. The following examples shows how to use the `PROPFIND` method with a depth of 0. @@ -251,6 +251,18 @@ final var nextcloudRequest = new NextcloudRequest.Builder() .build(); ``` +For the `MOVE` method, the `Destination` and `Overwrite` additional parameters must be specified: + +``` +final var nextcloudRequest = new NextcloudRequest.Builder() + .setMethod("MOVE") + .setUrl(Uri.encode("/remote.php/webdav/" + remotePath, "/")) + .setAdditionalParameter(NextcloudRequest.ADDITIONAL_PARAMETER_MOVE_DESTINATION, "/remote.php/webdav/" + destinationPath) + .setAdditionalParameter(NextcloudRequest.ADDITIONAL_PARAMETER_MOVE_OVERWRITE, true) + .build(); +``` + + ## Additional info In case that you require some SSO features that were introduced in a specific Nextcloud Files app version, you can run a simple version check using the following helper method: From 022e98da689f91b5bad1a21c1e10c64e99b382d1 Mon Sep 17 00:00:00 2001 From: daniele-verducci Date: Tue, 20 Oct 2026 12:33:08 +0200 Subject: [PATCH 2/3] Fixed codacy Signed-off-by: daniele-verducci --- README.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index daba6a7c..88988843 100644 --- a/README.md +++ b/README.md @@ -251,15 +251,21 @@ final var nextcloudRequest = new NextcloudRequest.Builder() .build(); ``` -For the `MOVE` method, the `Destination` and `Overwrite` additional parameters must be specified: +For the `MOVE` method, the `Destination` and `Overwrite` params must be added: ``` final var nextcloudRequest = new NextcloudRequest.Builder() - .setMethod("MOVE") - .setUrl(Uri.encode("/remote.php/webdav/" + remotePath, "/")) - .setAdditionalParameter(NextcloudRequest.ADDITIONAL_PARAMETER_MOVE_DESTINATION, "/remote.php/webdav/" + destinationPath) - .setAdditionalParameter(NextcloudRequest.ADDITIONAL_PARAMETER_MOVE_OVERWRITE, true) - .build(); + .setMethod("MOVE") + .setUrl(Uri.encode("/remote.php/webdav/" + remotePath, "/")) + .setAdditionalParameter( + NextcloudRequest.ADDITIONAL_PARAMETER_MOVE_DESTINATION, + "/remote.php/webdav/" + destinationPath + ) + .setAdditionalParameter( + NextcloudRequest.ADDITIONAL_PARAMETER_MOVE_OVERWRITE, + true + ) + .build(); ``` From df0fb2a9d6cd5f1547a658f05363367e619fbc35 Mon Sep 17 00:00:00 2001 From: daniele-verducci Date: Tue, 20 Oct 2026 14:32:27 +0200 Subject: [PATCH 3/3] Implemented AdditionalParameters in NextcloudRequest Signed-off-by: daniele-verducci --- .../android/sso/aidl/NextcloudRequest.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/src/main/java/com/nextcloud/android/sso/aidl/NextcloudRequest.java b/lib/src/main/java/com/nextcloud/android/sso/aidl/NextcloudRequest.java index 3aea3889..ef57d6df 100644 --- a/lib/src/main/java/com/nextcloud/android/sso/aidl/NextcloudRequest.java +++ b/lib/src/main/java/com/nextcloud/android/sso/aidl/NextcloudRequest.java @@ -34,9 +34,15 @@ public class NextcloudRequest implements Serializable { private static final long serialVersionUID = 215521212534240L; //assign a long value + public static final String ADDITIONAL_PARAMETER_MOVE_DESTINATION = "Destination"; + public static final String ADDITIONAL_PARAMETER_MOVE_OVERWRITE = "Overwrite"; + + private String method; private Map> header = new HashMap<>(); private Map parameter = new HashMap<>(); + private Map additionalParameter = new HashMap<>(); + private String requestBody; private String url; private String token; @@ -123,6 +129,16 @@ public Builder addParameter(QueryParam parameter) { return this; } + + public Builder setAdditionalParameters(Map ap) { + ncr.additionalParameter = ap; + return this; + } + public Builder setAdditionalParameter(String key, String value) { + ncr.additionalParameter.put(key, value); + return this; + } + private static void nullCheck(Object o) { if (o == null) { throw new IllegalArgumentException("null is not allowed here"); @@ -209,6 +225,13 @@ public Map> getHeader() { return this.header; } + public Map getAdditionalParameters() { + return this.additionalParameter; + } + public String getAdditionalParameter(String key) { + return this.additionalParameter.get(key); + } + public Collection getParameterV2() { return this.parameterV2; }