From e6f3fd2e1650877722684606239b7901f87ee6b4 Mon Sep 17 00:00:00 2001
From: Juan Carlos Garrote <juanca_arrabal@hotmail.com>
Date: Wed, 15 Feb 2023 14:54:59 +0100
Subject: [PATCH] Upload workers and network operations adapted to spaces

---
 .../resources/files/UploadFileFromFileSystemOperation.kt   | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/UploadFileFromFileSystemOperation.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/UploadFileFromFileSystemOperation.kt
index 93a2357a..a863a37b 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/UploadFileFromFileSystemOperation.kt
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/UploadFileFromFileSystemOperation.kt
@@ -1,5 +1,5 @@
 /* ownCloud Android Library is available under MIT license
- *   Copyright (C) 2022 ownCloud GmbH.
+ *   Copyright (C) 2023 ownCloud GmbH.
  *
  *   Permission is hereby granted, free of charge, to any person obtaining a copy
  *   of this software and associated documentation files (the "Software"), to deal
@@ -48,6 +48,7 @@ import java.util.concurrent.atomic.AtomicBoolean
  * @author masensio
  * @author David González Verdugo
  * @author Abel García de Prada
+ * @author Juan Carlos Garrote Gascón
  */
 open class UploadFileFromFileSystemOperation(
     val localPath: String,
@@ -55,6 +56,7 @@ open class UploadFileFromFileSystemOperation(
     val mimeType: String,
     val lastModifiedTimestamp: String,
     val requiredEtag: String?,
+    val spaceWebDavUrl: String? = null,
 ) : RemoteOperation<Unit>() {
 
     protected val cancellationRequested = AtomicBoolean(false)
@@ -97,7 +99,8 @@ open class UploadFileFromFileSystemOperation(
             synchronized(dataTransferListener) { it.addDatatransferProgressListeners(dataTransferListener) }
         }
 
-        putMethod = PutMethod(URL(client.userFilesWebDavUri.toString() + WebdavUtils.encodePath(remotePath)), fileRequestBody!!).apply {
+        val baseStringUrl = spaceWebDavUrl ?: client.userFilesWebDavUri.toString()
+        putMethod = PutMethod(URL(baseStringUrl + WebdavUtils.encodePath(remotePath)), fileRequestBody!!).apply {
             retryOnConnectionFailure = false
             if (!requiredEtag.isNullOrBlank()) {
                 addRequestHeader(HttpConstants.IF_MATCH_HEADER, requiredEtag)