From bf183fe04d795785c290cdf061e2a8cfa4700889 Mon Sep 17 00:00:00 2001 From: Manuel Plazas Palacio Date: Tue, 22 Aug 2023 15:24:59 +0200 Subject: [PATCH] Solving bug when copyin or moving --- .../files/CheckPathExistenceRemoteOperation.kt | 10 ++++++---- .../services/implementation/OCServerInfoService.kt | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/CheckPathExistenceRemoteOperation.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/CheckPathExistenceRemoteOperation.kt index 7a32d5c1..c9c7289d 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/CheckPathExistenceRemoteOperation.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/CheckPathExistenceRemoteOperation.kt @@ -27,6 +27,7 @@ import com.owncloud.android.lib.common.OwnCloudClient import com.owncloud.android.lib.common.http.HttpConstants import com.owncloud.android.lib.common.http.methods.webdav.DavUtils.allPropSet import com.owncloud.android.lib.common.http.methods.webdav.PropfindMethod +import com.owncloud.android.lib.common.network.WebdavUtils import com.owncloud.android.lib.common.operations.RemoteOperation import com.owncloud.android.lib.common.operations.RemoteOperationResult import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode @@ -53,11 +54,12 @@ class CheckPathExistenceRemoteOperation( ) : RemoteOperation() { override fun run(client: OwnCloudClient): RemoteOperationResult { - val baseStringUrl = spaceWebDavUrl ?: if (isUserLoggedIn) client.baseFilesWebDavUri.toString() + val baseStringUrl = spaceWebDavUrl ?: if (isUserLoggedIn) client.baseFilesWebDavUri.toString() + WebdavUtils.encodePath(remotePath) else client.userFilesWebDavUri.toString() + val stringUrl = if (isUserLoggedIn) baseStringUrl + WebdavUtils.encodePath(remotePath) else baseStringUrl return try { - val propFindMethod = PropfindMethod(URL(baseStringUrl), 0, allPropSet).apply { + val propFindMethod = PropfindMethod(URL(stringUrl), 0, allPropSet).apply { setReadTimeout(TIMEOUT.toLong(), TimeUnit.SECONDS) setConnectionTimeout(TIMEOUT.toLong(), TimeUnit.SECONDS) } @@ -68,7 +70,7 @@ class CheckPathExistenceRemoteOperation( * 207 MULTI_STATUS: path exists. */ Timber.d( - "Existence check for $baseStringUrl finished with HTTP status $status${if (!isSuccess(status)) "(FAIL)" else ""}" + "Existence check for $stringUrl finished with HTTP status $status${if (!isSuccess(status)) "(FAIL)" else ""}" ) if (isSuccess(status)) RemoteOperationResult(ResultCode.OK).apply { data = true } else RemoteOperationResult(propFindMethod).apply { data = false } @@ -77,7 +79,7 @@ class CheckPathExistenceRemoteOperation( val result = RemoteOperationResult(e) Timber.e( e, - "Existence check for $baseStringUrl : ${result.logMessage}" + "Existence check for $stringUrl : ${result.logMessage}" ) result } diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/services/implementation/OCServerInfoService.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/services/implementation/OCServerInfoService.kt index 0997f712..56715fcd 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/services/implementation/OCServerInfoService.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/services/implementation/OCServerInfoService.kt @@ -40,7 +40,7 @@ class OCServerInfoService : ServerInfoService { ): RemoteOperationResult = CheckPathExistenceRemoteOperation( remotePath = path, - isUserLoggedIn = true, + isUserLoggedIn = isUserLoggedIn, ).execute(client) override fun getRemoteStatus(