From 81cea2788d4398463446e2047b8c00d4f8c8f1cd Mon Sep 17 00:00:00 2001 From: davigonz Date: Mon, 28 May 2018 15:01:14 +0200 Subject: [PATCH] Upload file operation [WIP] --- .../files/UploadRemoteFileOperation.java | 23 +++++++++++++++++-- .../files/UploadRemoteFileOperation.java | 3 +-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/com/owncloud/android/lib/refactor/operations/files/UploadRemoteFileOperation.java b/src/com/owncloud/android/lib/refactor/operations/files/UploadRemoteFileOperation.java index d6a06663..565df53e 100644 --- a/src/com/owncloud/android/lib/refactor/operations/files/UploadRemoteFileOperation.java +++ b/src/com/owncloud/android/lib/refactor/operations/files/UploadRemoteFileOperation.java @@ -26,6 +26,8 @@ package com.owncloud.android.lib.refactor.operations.files; import com.owncloud.android.lib.refactor.OCContext; import com.owncloud.android.lib.refactor.operations.RemoteOperation; import java.io.File; +import java.util.concurrent.atomic.AtomicBoolean; + import at.bitfire.dav4android.DavOCResource; import okhttp3.MediaType; import okhttp3.RequestBody; @@ -41,18 +43,27 @@ public class UploadRemoteFileOperation extends RemoteOperation { private String mRemotePath; private String mMimeType; private String mFileLastModifTimestamp; + private String mRequiredEtag; + + protected final AtomicBoolean mCancellationRequested = new AtomicBoolean(false); - public UploadRemoteFileOperation(OCContext ocContext, String localPath, String remotePath, String mimetype, + public UploadRemoteFileOperation(OCContext ocContext, String localPath, String remotePath, String mimeType, String fileLastModifTimestamp) { super(ocContext); mFileToUpload = new File(localPath); mRemotePath = remotePath.replaceAll("^/+", ""); //Delete leading slashes - mMimeType = mimetype; + mMimeType = mimeType; mFileLastModifTimestamp = fileLastModifTimestamp; } + public UploadRemoteFileOperation(OCContext ocContext, String localPath, String remotePath, String mimeType, + String requiredEtag, String fileLastModifTimestamp) { + this(ocContext, localPath, remotePath, mimeType, fileLastModifTimestamp); + mRequiredEtag = requiredEtag; + } + @Override public Result exec() { @@ -80,4 +91,12 @@ public class UploadRemoteFileOperation extends RemoteOperation { return new Result(e); } } + + public void cancel() { + synchronized (mCancellationRequested) { + mCancellationRequested.set(true); + if (mPutMethod != null) + mPutMethod.abort(); + } + } } \ No newline at end of file diff --git a/src/com/owncloud/android/lib/resources/files/UploadRemoteFileOperation.java b/src/com/owncloud/android/lib/resources/files/UploadRemoteFileOperation.java index 9f7c7c19..6c232542 100644 --- a/src/com/owncloud/android/lib/resources/files/UploadRemoteFileOperation.java +++ b/src/com/owncloud/android/lib/resources/files/UploadRemoteFileOperation.java @@ -194,5 +194,4 @@ public class UploadRemoteFileOperation extends RemoteOperation { mPutMethod.abort(); } } - -} +} \ No newline at end of file