From 3811f5ac277ef061104033ecf6426e9bd3fa3702 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 76511895..d5fec23d 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 @@ -33,6 +33,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 4877252e..a9a0b34b 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.MoveRemoteFileOperation @@ -46,6 +47,15 @@ class OCFileService(override val client: OwnCloudClient) : FileService { isUserLoggedIn = isUserLogged ).execute(client) + override fun copyFile( + sourceRemotePath: String, + targetRemotePath: String + ): RemoteOperationResult = + CopyRemoteFileOperation( + srcRemotePath = sourceRemotePath, + targetRemotePath = targetRemotePath + ).execute(client) + override fun createFolder( remotePath: String, createFullPath: Boolean,