mirror of
https://github.com/owncloud/android-library.git
synced 2025-06-08 16:36:13 +00:00
Create RemoveRemoteFileOperation and use it
This commit is contained in:
parent
81120ac7ad
commit
74c9430382
@ -1,5 +1,5 @@
|
|||||||
/* ownCloud Android Library is available under MIT license
|
/* ownCloud Android Library is available under MIT license
|
||||||
* Copyright (C) 2016 ownCloud GmbH.
|
* Copyright (C) 2018 ownCloud GmbH.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -47,11 +47,11 @@ import com.owncloud.android.lib.refactor.account.OCAccount;
|
|||||||
import com.owncloud.android.lib.refactor.authentication.credentials.OwnCloudCredentialsFactory;
|
import com.owncloud.android.lib.refactor.authentication.credentials.OwnCloudCredentialsFactory;
|
||||||
import com.owncloud.android.lib.refactor.resources.files.DownloadRemoteFileOperation;
|
import com.owncloud.android.lib.refactor.resources.files.DownloadRemoteFileOperation;
|
||||||
import com.owncloud.android.lib.refactor.resources.files.PropfindOperation;
|
import com.owncloud.android.lib.refactor.resources.files.PropfindOperation;
|
||||||
|
import com.owncloud.android.lib.refactor.resources.files.RemoveRemoteFileOperation;
|
||||||
import com.owncloud.android.lib.refactor.resources.files.UploadRemoteFileOperation;
|
import com.owncloud.android.lib.refactor.resources.files.UploadRemoteFileOperation;
|
||||||
import com.owncloud.android.lib.resources.files.FileUtils;
|
import com.owncloud.android.lib.resources.files.FileUtils;
|
||||||
import com.owncloud.android.lib.resources.files.ReadRemoteFolderOperation;
|
import com.owncloud.android.lib.resources.files.ReadRemoteFolderOperation;
|
||||||
import com.owncloud.android.lib.resources.files.RemoteFile;
|
import com.owncloud.android.lib.resources.files.RemoteFile;
|
||||||
import com.owncloud.android.lib.resources.files.RemoveRemoteFileOperation;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
@ -167,7 +167,10 @@ public class MainActivity extends Activity implements OnRemoteOperationListener,
|
|||||||
for(DavResource el : result.getData().getMembers()) {
|
for(DavResource el : result.getData().getMembers()) {
|
||||||
remoteFiles.add(new RemoteFile(el));
|
remoteFiles.add(new RemoteFile(el));
|
||||||
}
|
}
|
||||||
handler.post(() -> mFilesAdapter.addAll(remoteFiles));
|
handler.post(() -> {
|
||||||
|
mFilesAdapter.clear();
|
||||||
|
mFilesAdapter.addAll(remoteFiles);
|
||||||
|
});
|
||||||
}).start();
|
}).start();
|
||||||
// ReadRemoteFolderOperation refreshOperation = new ReadRemoteFolderOperation(FileUtils.PATH_SEPARATOR);
|
// ReadRemoteFolderOperation refreshOperation = new ReadRemoteFolderOperation(FileUtils.PATH_SEPARATOR);
|
||||||
// refreshOperation.execute(mClient, this, mHandler);
|
// refreshOperation.execute(mClient, this, mHandler);
|
||||||
@ -210,11 +213,30 @@ public class MainActivity extends Activity implements OnRemoteOperationListener,
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void startRemoteDeletion() {
|
private void startRemoteDeletion() {
|
||||||
File upFolder = new File(getCacheDir(), getString(R.string.upload_folder_path));
|
File upFolder = new File(getCacheDir(), getString(R.string.upload_folder_path));
|
||||||
File fileToUpload = upFolder.listFiles()[0];
|
File fileToUpload = upFolder.listFiles()[0];
|
||||||
String remotePath = FileUtils.PATH_SEPARATOR + fileToUpload.getName();
|
String remotePath = FileUtils.PATH_SEPARATOR + fileToUpload.getName();
|
||||||
RemoveRemoteFileOperation removeOperation = new RemoveRemoteFileOperation(remotePath);
|
|
||||||
removeOperation.execute(mClient, this, mHandler);
|
final RemoveRemoteFileOperation removeRemoteFileOperation = new RemoveRemoteFileOperation(
|
||||||
|
mOCContext,
|
||||||
|
remotePath
|
||||||
|
);
|
||||||
|
final Handler handler = new Handler();
|
||||||
|
|
||||||
|
new Thread(() -> {
|
||||||
|
final RemoveRemoteFileOperation.Result result = removeRemoteFileOperation.exec();
|
||||||
|
if (!result.isSuccess()) {
|
||||||
|
handler.post(() ->
|
||||||
|
Toast.makeText(this, result.getLogMessage(), Toast.LENGTH_LONG).show());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
handler.post(() ->
|
||||||
|
Toast.makeText(this, "Delete successful", Toast.LENGTH_LONG).show());
|
||||||
|
}).start();
|
||||||
|
|
||||||
|
|
||||||
|
// RemoveRemoteFileOperation removeOperation = new RemoveRemoteFileOperation(remotePath);
|
||||||
|
// removeOperation.execute(mClient, this, mHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startDownload() {
|
private void startDownload() {
|
||||||
@ -272,9 +294,9 @@ public class MainActivity extends Activity implements OnRemoteOperationListener,
|
|||||||
} else if (operation instanceof com.owncloud.android.lib.resources.files.UploadRemoteFileOperation) {
|
} else if (operation instanceof com.owncloud.android.lib.resources.files.UploadRemoteFileOperation) {
|
||||||
onSuccessfulUpload((com.owncloud.android.lib.resources.files.UploadRemoteFileOperation)operation, result);
|
onSuccessfulUpload((com.owncloud.android.lib.resources.files.UploadRemoteFileOperation)operation, result);
|
||||||
|
|
||||||
} else if (operation instanceof RemoveRemoteFileOperation ) {
|
// } else if (operation instanceof RemoveRemoteFileOperation ) {
|
||||||
onSuccessfulRemoteDeletion((RemoveRemoteFileOperation)operation, result);
|
// onSuccessfulRemoteDeletion((RemoveRemoteFileOperation)operation, result);
|
||||||
|
//
|
||||||
// } else if (operation instanceof DownloadRemoteFileOperation ) {
|
// } else if (operation instanceof DownloadRemoteFileOperation ) {
|
||||||
// onSuccessfulDownload((DownloadRemoteFileOperation)operation, result);
|
// onSuccessfulDownload((DownloadRemoteFileOperation)operation, result);
|
||||||
|
|
||||||
|
@ -52,8 +52,8 @@ public abstract class RemoteOperation<I extends Object> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected RemoteOperation(OCContext context) {
|
protected RemoteOperation(OCContext ocContext) {
|
||||||
mContext = context;
|
mContext = ocContext;
|
||||||
if(mClient == null) {
|
if(mClient == null) {
|
||||||
mClient = new OkHttpClient.Builder()
|
mClient = new OkHttpClient.Builder()
|
||||||
.followRedirects(false)
|
.followRedirects(false)
|
||||||
|
@ -29,6 +29,10 @@ import at.bitfire.dav4android.DavOCResource;
|
|||||||
import static com.owncloud.android.lib.refactor.operations.RemoteOperationResult.ResultCode.OK;
|
import static com.owncloud.android.lib.refactor.operations.RemoteOperationResult.ResultCode.OK;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Remote operation performing the download of a remote file in the ownCloud server.
|
||||||
|
*
|
||||||
|
* @author David A. Velasco
|
||||||
|
* @author masensio
|
||||||
* @author David González Verdugo
|
* @author David González Verdugo
|
||||||
*/
|
*/
|
||||||
public class DownloadRemoteFileOperation extends RemoteOperation<Void> {
|
public class DownloadRemoteFileOperation extends RemoteOperation<Void> {
|
||||||
@ -52,7 +56,7 @@ public class DownloadRemoteFileOperation extends RemoteOperation<Void> {
|
|||||||
);
|
);
|
||||||
davOCResource.get("*/*");
|
davOCResource.get("*/*");
|
||||||
|
|
||||||
//TODO Create local file from the downloaded one
|
//TODO Create local file from the downloaded one and implement progress listener
|
||||||
|
|
||||||
return new Result(OK);
|
return new Result(OK);
|
||||||
|
|
||||||
|
@ -0,0 +1,65 @@
|
|||||||
|
/* ownCloud Android Library is available under MIT license
|
||||||
|
* Copyright (C) 2018 ownCloud GmbH.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||||
|
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||||
|
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.owncloud.android.lib.refactor.resources.files;
|
||||||
|
|
||||||
|
import com.owncloud.android.lib.refactor.OCContext;
|
||||||
|
import com.owncloud.android.lib.refactor.operations.RemoteOperation;
|
||||||
|
import at.bitfire.dav4android.DavOCResource;
|
||||||
|
|
||||||
|
import static com.owncloud.android.lib.refactor.operations.RemoteOperationResult.ResultCode.OK;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remote operation performing the removal of a remote file or folder in the ownCloud server.
|
||||||
|
*
|
||||||
|
* @author David A. Velasco
|
||||||
|
* @author masensio
|
||||||
|
* @author David González Verdugo
|
||||||
|
*/
|
||||||
|
public class RemoveRemoteFileOperation extends RemoteOperation<Void> {
|
||||||
|
|
||||||
|
private String mRemotePath;
|
||||||
|
|
||||||
|
public RemoveRemoteFileOperation(OCContext ocContext, String remotePath) {
|
||||||
|
super(ocContext);
|
||||||
|
|
||||||
|
mRemotePath = remotePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result exec() {
|
||||||
|
try {
|
||||||
|
DavOCResource davOCResource = new DavOCResource(
|
||||||
|
getClient(),
|
||||||
|
getWebDavHttpUrl(mRemotePath)
|
||||||
|
);
|
||||||
|
davOCResource.delete(null);
|
||||||
|
|
||||||
|
return new Result(OK);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
return new Result(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -38,6 +38,7 @@ import com.owncloud.android.lib.common.utils.Log_OC;
|
|||||||
*
|
*
|
||||||
* @author David A. Velasco
|
* @author David A. Velasco
|
||||||
* @author masensio
|
* @author masensio
|
||||||
|
* @author David González Verdugo
|
||||||
*/
|
*/
|
||||||
public class RemoveRemoteFileOperation extends RemoteOperation {
|
public class RemoveRemoteFileOperation extends RemoteOperation {
|
||||||
private static final String TAG = RemoveRemoteFileOperation.class.getSimpleName();
|
private static final String TAG = RemoveRemoteFileOperation.class.getSimpleName();
|
||||||
@ -88,5 +89,4 @@ public class RemoveRemoteFileOperation extends RemoteOperation {
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user