mirror of
				https://github.com/owncloud/android-library.git
				synced 2025-10-31 02:17:41 +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