1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-07 16:06:08 +00:00

Use DavOCResource again

This commit is contained in:
davigonz 2018-05-24 14:05:27 +02:00
parent dae28aee48
commit 5d0362dc4d
3 changed files with 20 additions and 41 deletions

@ -1 +1 @@
Subproject commit 980eb7ece17314f6c88f87319be1541c579c4b94 Subproject commit a149a3ff92a1149f02012086ed4de4b442efece5

View File

@ -27,6 +27,7 @@ package com.owncloud.android.lib.refactor.operations;
import com.owncloud.android.lib.refactor.OCContext; import com.owncloud.android.lib.refactor.OCContext;
import com.owncloud.android.lib.refactor.RemoteOperation; import com.owncloud.android.lib.refactor.RemoteOperation;
import at.bitfire.dav4android.DavOCResource;
import at.bitfire.dav4android.DavResource; import at.bitfire.dav4android.DavResource;
import at.bitfire.dav4android.PropertyUtils; import at.bitfire.dav4android.PropertyUtils;
import okhttp3.HttpUrl; import okhttp3.HttpUrl;
@ -45,14 +46,15 @@ public class PropfindOperation extends RemoteOperation<DavResource> {
@Override @Override
public Result exec() { public Result exec() {
try { try {
final HttpUrl location = HttpUrl.parse(getWebDavHttpUrl("/").toString()); final HttpUrl location = HttpUrl.parse(getWebDavHttpUrl(mRemotePath).toString());
DavResource davResource = new DavResource(getClient(), location); DavOCResource davOCResource = new DavOCResource(getClient(), location);
davResource.propfind(1, PropertyUtils.INSTANCE.getAllPropSet()); davOCResource.propfind(1, PropertyUtils.INSTANCE.getAllPropSet());
return new Result(OK, davOCResource);
return new Result(OK, davResource);
} catch (Exception e) { } catch (Exception e) {
return new Result(e); return new Result(e);
} }
} }
} }

View File

@ -26,13 +26,11 @@ package com.owncloud.android.lib.refactor.operations;
import com.owncloud.android.lib.refactor.OCContext; import com.owncloud.android.lib.refactor.OCContext;
import com.owncloud.android.lib.refactor.RemoteOperation; import com.owncloud.android.lib.refactor.RemoteOperation;
import com.owncloud.android.lib.refactor.RemoteOperationResult;
import java.io.File; import java.io.File;
import at.bitfire.dav4android.DavResource; import at.bitfire.dav4android.DavOCResource;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.Request;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import static com.owncloud.android.lib.refactor.RemoteOperationResult.ResultCode.OK; import static com.owncloud.android.lib.refactor.RemoteOperationResult.ResultCode.OK;
@ -42,11 +40,6 @@ import static com.owncloud.android.lib.refactor.RemoteOperationResult.ResultCode
*/ */
public class UploadRemoteFileOperation extends RemoteOperation<Void> { public class UploadRemoteFileOperation extends RemoteOperation<Void> {
private static final String CONTENT_TYPE_HEADER = "Content-Type";
private static final String OC_TOTAL_LENGTH_HEADER = "OC-Total-Length";
private static final String OC_X_OC_MTIME_HEADER = "X-OC-Mtime";
private static final String IF_MATCH_HEADER = "If-Match";
private File mFileToUpload; private File mFileToUpload;
private String mRemotePath; private String mRemotePath;
private String mMimeType; private String mMimeType;
@ -71,20 +64,19 @@ public class UploadRemoteFileOperation extends RemoteOperation<Void> {
MediaType mediaType = MediaType.parse(mMimeType); MediaType mediaType = MediaType.parse(mMimeType);
RequestBody requestBody = RequestBody.create(mediaType, mFileToUpload); RequestBody requestBody = RequestBody.create(mediaType, mFileToUpload);
DavResource davResource = new DavResource( DavOCResource davOCResource = new DavOCResource(
getClient() getClient(),
.newBuilder() getWebDavHttpUrl(mRemotePath)
.addInterceptor(chain -> );
chain.proceed(
addUploadHeaders(chain.request())
.build()))
.followRedirects(false)
.build(),
getWebDavHttpUrl(mRemotePath));
davResource.put(requestBody, davOCResource.put(
requestBody,
null, null,
false); false,
"multipart/form-data",
String.valueOf(mFileToUpload.length()),
mFileLastModifTimestamp
);
} catch (Exception e) { } catch (Exception e) {
return new Result(e); return new Result(e);
@ -92,19 +84,4 @@ public class UploadRemoteFileOperation extends RemoteOperation<Void> {
return new Result(OK); return new Result(OK);
} }
/**
* Add headers needed to upload a file
* @param request request in which include the headers
* @return request with upload headers
*/
private Request.Builder addUploadHeaders (Request request) {
Request.Builder builder = request.newBuilder();
builder.addHeader(CONTENT_TYPE_HEADER, "multipart/form-data");
builder.addHeader(OC_TOTAL_LENGTH_HEADER, String.valueOf(mFileToUpload.length()));
builder.addHeader(OC_X_OC_MTIME_HEADER, mFileLastModifTimestamp);
return builder;
}
} }