From b90fe1c3161581f57391e475585fb1752d02bdd1 Mon Sep 17 00:00:00 2001 From: daniele-verducci Date: Tue, 20 Oct 2026 12:21:00 +0200 Subject: [PATCH 1/5] 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 3ea1c34497da056b7b2c80e43a3d0ceed524514f Mon Sep 17 00:00:00 2001 From: daniele-verducci Date: Tue, 20 Oct 2026 12:33:08 +0200 Subject: [PATCH 2/5] 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 6cd403d94adfaafacf4bc189238c8f778398c4b0 Mon Sep 17 00:00:00 2001 From: daniele-verducci Date: Tue, 20 Oct 2026 14:32:27 +0200 Subject: [PATCH 3/5] 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; } From b6b0874807438e8793da610d4540acd78463fc80 Mon Sep 17 00:00:00 2001 From: daniele-verducci Date: Mon, 26 Oct 2026 08:47:35 +0100 Subject: [PATCH 4/5] Fix spotbugs Signed-off-by: daniele-verducci --- .../com/nextcloud/android/sso/aidl/NextcloudRequest.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 ef57d6df..d9cbfe5d 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 @@ -21,6 +21,7 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.LinkedList; import java.util.List; @@ -222,18 +223,18 @@ public String getMethod() { } public Map> getHeader() { - return this.header; + return Collections.unmodifiableMap(this.header); } public Map getAdditionalParameters() { - return this.additionalParameter; + return Collections.unmodifiableMap(this.additionalParameter); } public String getAdditionalParameter(String key) { return this.additionalParameter.get(key); } public Collection getParameterV2() { - return this.parameterV2; + return Collections.unmodifiableCollection(this.parameterV2); } public String getRequestBody() { From 4fd71b242032d69aa39c22c9edfe3cec2776d8fd Mon Sep 17 00:00:00 2001 From: daniele-verducci Date: Tue, 27 Oct 2026 14:23:27 +0100 Subject: [PATCH 5/5] Restored previous code for getParameterV2() Signed-off-by: daniele-verducci --- .../java/com/nextcloud/android/sso/aidl/NextcloudRequest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 d9cbfe5d..c49ef56f 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 @@ -223,7 +223,7 @@ public String getMethod() { } public Map> getHeader() { - return Collections.unmodifiableMap(this.header); + return this.header; } public Map getAdditionalParameters() { @@ -234,7 +234,7 @@ public String getAdditionalParameter(String key) { } public Collection getParameterV2() { - return Collections.unmodifiableCollection(this.parameterV2); + return this.parameterV2; } public String getRequestBody() {