From 4c39990edb0b9f1222fbfc80bd6366db2c465354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20Garci=CC=81a=20de=20Prada?= Date: Tue, 25 May 2021 08:56:42 +0200 Subject: [PATCH] Add copy operation to the file service --- .../lib/resources/files/CopyRemoteFileOperation.kt | 6 +++--- .../lib/resources/files/services/FileService.kt | 5 +++++ .../files/services/implementation/OCFileService.kt | 10 ++++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/CopyRemoteFileOperation.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/CopyRemoteFileOperation.kt index c1b77f11..ce47a4fd 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/CopyRemoteFileOperation.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/CopyRemoteFileOperation.kt @@ -51,13 +51,13 @@ import java.util.concurrent.TimeUnit class CopyRemoteFileOperation( private val srcRemotePath: String, private val targetRemotePath: String, -) : RemoteOperation() { +) : RemoteOperation() { /** * Performs the rename operation. * * @param client Client object to communicate with the remote ownCloud server. */ - override fun run(client: OwnCloudClient): RemoteOperationResult { + override fun run(client: OwnCloudClient): RemoteOperationResult { if (targetRemotePath == srcRemotePath) { // nothing to do! return RemoteOperationResult(ResultCode.OK) @@ -67,7 +67,7 @@ class CopyRemoteFileOperation( } /// perform remote operation - var result: RemoteOperationResult + var result: RemoteOperationResult try { val copyMethod = CopyMethod( URL(client.userFilesWebDavUri.toString() + WebdavUtils.encodePath(srcRemotePath)), diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/services/FileService.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/services/FileService.kt index 9215955c..8b03f4b9 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/services/FileService.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/services/FileService.kt @@ -35,6 +35,11 @@ interface FileService : Service { isUserLogged: Boolean ): RemoteOperationResult + fun copyFile( + sourceRemotePath: String, + targetRemotePath: String, + ): RemoteOperationResult + fun createFolder( remotePath: String, createFullPath: Boolean, diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/services/implementation/OCFileService.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/services/implementation/OCFileService.kt index 6995d91f..37d258a0 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/services/implementation/OCFileService.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/services/implementation/OCFileService.kt @@ -26,6 +26,7 @@ package com.owncloud.android.lib.resources.files.services.implementation import com.owncloud.android.lib.common.OwnCloudClient import com.owncloud.android.lib.common.operations.RemoteOperationResult import com.owncloud.android.lib.resources.files.CheckPathExistenceRemoteOperation +import com.owncloud.android.lib.resources.files.CopyRemoteFileOperation import com.owncloud.android.lib.resources.files.CreateRemoteFolderOperation import com.owncloud.android.lib.resources.files.DownloadRemoteFileOperation import com.owncloud.android.lib.resources.files.GetUrlToOpenInWebRemoteOperation @@ -50,6 +51,15 @@ class OCFileService(override val client: OwnCloudClient) : FileService { override fun getUrlToOpenInWeb(openWebEndpoint: String, fileId: String): RemoteOperationResult = GetUrlToOpenInWebRemoteOperation(openWithWebEndpoint = openWebEndpoint, fileId = fileId).execute(client) + override fun copyFile( + sourceRemotePath: String, + targetRemotePath: String + ): RemoteOperationResult = + CopyRemoteFileOperation( + srcRemotePath = sourceRemotePath, + targetRemotePath = targetRemotePath + ).execute(client) + override fun createFolder( remotePath: String, createFullPath: Boolean,