From f218a6061159c5b3e6d40a2271b3887d0b53a2f2 Mon Sep 17 00:00:00 2001 From: davigonz Date: Fri, 22 Jun 2018 09:30:08 +0200 Subject: [PATCH] Include more methods to custom dav connections + chunked uploads [WIP] --- dav4android | 2 +- .../common/http/methods/webdav/DavMethod.java | 16 +++++++ .../ChunkedUploadRemoteFileOperation.java | 43 +++++++++++-------- .../files/CreateRemoteFolderOperation.java | 5 +-- 4 files changed, 42 insertions(+), 24 deletions(-) diff --git a/dav4android b/dav4android index d519949b..922b22b4 160000 --- a/dav4android +++ b/dav4android @@ -1 +1 @@ -Subproject commit d519949bcc53896becb7ad92bc643938f189d04e +Subproject commit 922b22b4e1f40d72d54f5f47db02cd962f46acab diff --git a/src/com/owncloud/android/lib/common/http/methods/webdav/DavMethod.java b/src/com/owncloud/android/lib/common/http/methods/webdav/DavMethod.java index 7d7d9e6d..70ee38b2 100644 --- a/src/com/owncloud/android/lib/common/http/methods/webdav/DavMethod.java +++ b/src/com/owncloud/android/lib/common/http/methods/webdav/DavMethod.java @@ -62,6 +62,22 @@ public abstract class DavMethod extends HttpBaseMethod { return mDavResource.isCallAborted(); } + // Connection parameters + @Override + public void setReadTimeout(long readTimeout, TimeUnit timeUnit) { + mDavResource.setReadTimeout(readTimeout, timeUnit); + } + + @Override + public void setConnectionTimeout(long connectionTimeout, TimeUnit timeUnit) { + mDavResource.setConnectionTimeout(connectionTimeout, timeUnit); + } + + @Override + public void setFollowRedirects(boolean followRedirects) { + mDavResource.setFollowRedirects(followRedirects); + } + @Override public void setRetryOnConnectionFailure(boolean retryOnConnectionFailure) { mDavResource.setRetryOnConnectionFailure(retryOnConnectionFailure); diff --git a/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java b/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java index cc1555b2..373d1bb1 100644 --- a/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java +++ b/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java @@ -24,24 +24,15 @@ package com.owncloud.android.lib.resources.files; -import java.io.ByteArrayInputStream; -import java.io.File; +import com.owncloud.android.lib.common.OwnCloudClient; +import com.owncloud.android.lib.common.http.HttpUtils; +import com.owncloud.android.lib.common.http.methods.webdav.MkColMethod; +import com.owncloud.android.lib.common.network.WebdavUtils; +import com.owncloud.android.lib.common.operations.RemoteOperationResult; + import java.io.IOException; -import java.io.InputStream; import java.io.RandomAccessFile; import java.nio.channels.FileChannel; -import java.util.Random; - -import org.apache.commons.httpclient.methods.PutMethod; - -import com.owncloud.android.lib.common.OwnCloudClient; -import com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity; -import com.owncloud.android.lib.common.network.ProgressiveDataTransferer; -import com.owncloud.android.lib.common.network.WebdavUtils; -import com.owncloud.android.lib.common.operations.InvalidCharacterExceptionParser; -import com.owncloud.android.lib.common.operations.RemoteOperationResult; -import com.owncloud.android.lib.common.utils.Log_OC; - public class ChunkedUploadRemoteFileOperation extends UploadRemoteFileOperation { @@ -53,16 +44,17 @@ public class ChunkedUploadRemoteFileOperation extends UploadRemoteFileOperation private static final String OC_CHUNK_X_OC_MTIME_HEADER = "X-OC-Mtime"; private static final String TAG = ChunkedUploadRemoteFileOperation.class.getSimpleName(); + private long mTransferId; + public ChunkedUploadRemoteFileOperation(String storagePath, String remotePath, String mimeType, String fileLastModifTimestamp) { super(storagePath, remotePath, mimeType, fileLastModifTimestamp); } - public ChunkedUploadRemoteFileOperation( - String storagePath, String remotePath, String mimeType, String requiredEtag, - String fileLastModifTimestamp - ) { + public ChunkedUploadRemoteFileOperation(long transferId, String storagePath, String remotePath, String mimeType, + String requiredEtag, String fileLastModifTimestamp) { super(storagePath, remotePath, mimeType, requiredEtag, fileLastModifTimestamp); + mTransferId = transferId; } @Override @@ -73,6 +65,19 @@ public class ChunkedUploadRemoteFileOperation extends UploadRemoteFileOperation FileChannel channel = null; RandomAccessFile raf = null; + //MKCOL + try { + MkColMethod mkcol = new MkColMethod( + HttpUtils.stringUrlToHttpUrl(client.getWebdavUri() + WebdavUtils.encodePath(mRemotePath)) + ); + + String a = ""; + } catch (Exception e) { + + String b = ""; + } + + //TODO // try { // File file = new File(mLocalPath); diff --git a/src/com/owncloud/android/lib/resources/files/CreateRemoteFolderOperation.java b/src/com/owncloud/android/lib/resources/files/CreateRemoteFolderOperation.java index 774d3a06..214afb92 100644 --- a/src/com/owncloud/android/lib/resources/files/CreateRemoteFolderOperation.java +++ b/src/com/owncloud/android/lib/resources/files/CreateRemoteFolderOperation.java @@ -117,7 +117,6 @@ public class CreateRemoteFolderOperation extends RemoteOperation { } catch (Exception e) { result = new RemoteOperationResult(e); Log_OC.e(TAG, "Create directory " + mRemotePath + ": " + result.getLogMessage(), e); - } return result; @@ -128,6 +127,4 @@ public class CreateRemoteFolderOperation extends RemoteOperation { mCreateFullPath); return operation.execute(client); } - - -} +} \ No newline at end of file