@Override public void onRemoteOperationFinish(RemoteOperation operation, RemoteOperationResult result) { if (!result.isSuccess()) { Toast.makeText(this, R.string.todo_operation_finished_in_fail, Toast.LENGTH_SHORT).show(); Log.e(LOG_TAG, result.getLogMessage(), result.getException()); } else if (operation instanceof ReadRemoteFolderOperation) { onSuccessfulRefresh((ReadRemoteFolderOperation)operation, result); } else if (operation instanceof com.owncloud.android.lib.resources.files.UploadRemoteFileOperation) { onSuccessfulUpload((com.owncloud.android.lib.resources.files.UploadRemoteFileOperation)operation, result); } else if (operation instanceof RemoveRemoteFileOperation ) { onSuccessfulRemoteDeletion((RemoveRemoteFileOperation)operation, result); } else if (operation instanceof DownloadRemoteFileOperation ) { onSuccessfulDownload(); } else { Toast.makeText(this, R.string.todo_operation_finished_in_success, Toast.LENGTH_SHORT).show(); } }
@Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result; /// download will be performed to a temporal file, then moved to the final location File tmpFile = new File(getTmpPath()); /// perform the download try { tmpFile.getParentFile().mkdirs(); result = downloadFile(client, tmpFile); Log_OC.i(TAG, "Download of " + mRemotePath + " to " + getTmpPath() + ": " + result.getLogMessage()); } catch (Exception e) { result = new RemoteOperationResult<>(e); Log_OC.e(TAG, "Download of " + mRemotePath + " to " + getTmpPath() + ": " + result.getLogMessage(), e); } return result; }
@Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result = null; /// download will be performed to a temporal file, then moved to the final location File tmpFile = new File(getTmpPath()); /// perform the download try { tmpFile.getParentFile().mkdirs(); int status = downloadFile(client, tmpFile); result = new RemoteOperationResult(isSuccess(status), mGet); Log_OC.i(TAG, "Download of " + mRemotePath + " to " + getTmpPath() + ": " + result.getLogMessage()); } catch (Exception e) { result = new RemoteOperationResult(e); Log_OC.e(TAG, "Download of " + mRemotePath + " to " + getTmpPath() + ": " + result.getLogMessage(), e); } return result; }
/** * Performs the operation. * * @param client Client object to communicate with the remote ownCloud server. */ @Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result; try { String url = client.getNewWebdavUri() + "/comments/files/" + fileId; PostMethod postMethod = new PostMethod(url); postMethod.addRequestHeader("Content-type", "application/json"); Map<String, String> values = new HashMap<>(); values.put(ACTOR_ID, userId); values.put(ACTOR_TYPE, ACTOR_TYPE_VALUE); values.put(VERB, VERB_VALUE); values.put(MESSAGE, message); String json = new GsonBuilder().create().toJson(values, Map.class); postMethod.setRequestEntity(new StringRequestEntity(json)); int status = client.executeMethod(postMethod, POST_READ_TIMEOUT, POST_CONNECTION_TIMEOUT); result = new RemoteOperationResult(isSuccess(status), postMethod); client.exhaustResponse(postMethod.getResponseBodyAsStream()); } catch (IOException e) { result = new RemoteOperationResult(e); Log.e(TAG, "Post comment to file with id " + fileId + " failed: " + result.getLogMessage(), e); } return result; }
/** * Performs the rename operation. * * @param client Client object to communicate with the remote ownCloud server. */ @Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result; try { Uri srcWebDavUri = removeChunksFolder ? client.getUploadsWebDavUri() : client.getUserFilesWebDavUri(); DeleteMethod deleteMethod = new DeleteMethod( new URL(srcWebDavUri + WebdavUtils.encodePath(mRemotePath))); int status = client.executeHttpMethod(deleteMethod); result = isSuccess(status) ? new RemoteOperationResult<>(OK) : new RemoteOperationResult<>(deleteMethod); Log_OC.i(TAG, "Remove " + mRemotePath + ": " + result.getLogMessage()); } catch (Exception e) { result = new RemoteOperationResult<>(e); Log_OC.e(TAG, "Remove " + mRemotePath + ": " + result.getLogMessage(), e); } return result; }
@Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result; try { Uri requestUri = client.getBaseUri(); Uri.Builder uriBuilder = requestUri.buildUpon(); uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH); uriBuilder.appendEncodedPath(String.valueOf(mRemoteShareId)); DeleteMethod deleteMethod = new DeleteMethod( new URL(uriBuilder.build().toString()) ); deleteMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); int status = client.executeHttpMethod(deleteMethod); if (isSuccess(status)) { // Parse xml response and obtain the list of shares ShareToRemoteOperationResultParser parser = new ShareToRemoteOperationResultParser( new ShareXMLParser() ); result = parser.parse(deleteMethod.getResponseBodyAsString()); Log_OC.d(TAG, "Unshare " + mRemoteShareId + ": " + result.getLogMessage()); } else { result = new RemoteOperationResult<>(deleteMethod); } } catch (Exception e) { result = new RemoteOperationResult<>(e); Log_OC.e(TAG, "Unshare Link Exception " + result.getLogMessage(), e); } return result; }
@Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result; try { mPutMethod = new PutMethod( new URL(client.getUserFilesWebDavUri() + WebdavUtils.encodePath(mRemotePath))); mPutMethod.setRetryOnConnectionFailure(false); if (mCancellationRequested.get()) { // the operation was cancelled before getting it's turn to be executed in the queue of uploads result = new RemoteOperationResult<>(new OperationCancelledException()); } else { // perform the upload result = uploadFile(client); Log_OC.i(TAG, "Upload of " + mLocalPath + " to " + mRemotePath + ": " + result.getLogMessage()); } } catch (Exception e) { if (mPutMethod != null && mPutMethod.isAborted()) { result = new RemoteOperationResult<>(new OperationCancelledException()); Log_OC.e(TAG, "Upload of " + mLocalPath + " to " + mRemotePath + ": " + result.getLogMessage(), new OperationCancelledException()); } else { result = new RemoteOperationResult<>(e); Log_OC.e(TAG, "Upload of " + mLocalPath + " to " + mRemotePath + ": " + result.getLogMessage(), e); } } return result; }
private RemoteOperationResult createFolder(OwnCloudClient client) { RemoteOperationResult result; try { Uri webDavUri = createChunksFolder ? client.getUploadsWebDavUri() : client.getUserFilesWebDavUri(); final MkColMethod mkcol = new MkColMethod(new URL(webDavUri + WebdavUtils.encodePath(mRemotePath))); mkcol.setReadTimeout(READ_TIMEOUT, TimeUnit.SECONDS); mkcol.setConnectionTimeout(CONNECTION_TIMEOUT, TimeUnit.SECONDS); final int status = client.executeHttpMethod(mkcol); result = (status == HttpConstants.HTTP_CREATED) ? new RemoteOperationResult<>(ResultCode.OK) : new RemoteOperationResult<>(mkcol); Log_OC.d(TAG, "Create directory " + mRemotePath + ": " + result.getLogMessage()); client.exhaustResponse(mkcol.getResponseBodyAsStream()); } catch (Exception e) { result = new RemoteOperationResult<>(e); Log_OC.e(TAG, "Create directory " + mRemotePath + ": " + result.getLogMessage(), e); } return result; }
/** * Performs the operation. * * @param client Client object to communicate with the remote Nextcloud server. */ @Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result; try { DeleteMethod delete = new DeleteMethod(client.getNewWebdavUri() + "/trashbin/" + userId + "/trash"); int status = client.executeMethod(delete, RESTORE_READ_TIMEOUT, RESTORE_CONNECTION_TIMEOUT); result = new RemoteOperationResult(isSuccess(status), delete); client.exhaustResponse(delete.getResponseBodyAsStream()); } catch (IOException e) { result = new RemoteOperationResult(e); Log.e(TAG, "Empty trashbin failed: " + result.getLogMessage(), e); } return result; }
/** * Performs the remove operation. * * @param client Client object to communicate with the remote ownCloud server. */ @Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result; DeleteMethod delete = null; try { delete = new DeleteMethod(client.getNewWebdavUri() + WebdavUtils.encodePath(remotePath)); int status = client.executeMethod(delete, REMOVE_READ_TIMEOUT, REMOVE_CONNECTION_TIMEOUT); delete.getResponseBodyAsString(); // exhaust the response, although not interesting result = new RemoteOperationResult((delete.succeeded() || status == HttpStatus.SC_NOT_FOUND), delete); Log_OC.i(TAG, "Remove " + remotePath + ": " + result.getLogMessage()); } catch (Exception e) { result = new RemoteOperationResult(e); Log_OC.e(TAG, "Remove " + remotePath + ": " + result.getLogMessage(), e); } finally { if (delete != null) delete.releaseConnection(); } return result; } }
/** * Performs the rename operation. * * @param client Client object to communicate with the remote ownCloud server. */ @Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result = null; DeleteMethod delete = null; try { delete = new DeleteMethod(client.getWebdavUri() + WebdavUtils.encodePath(mRemotePath)); int status = client.executeMethod(delete, REMOVE_READ_TIMEOUT, REMOVE_CONNECTION_TIMEOUT); delete.getResponseBodyAsString(); // exhaust the response, although not interesting result = new RemoteOperationResult( (delete.succeeded() || status == HttpStatus.SC_NOT_FOUND), delete ); Log_OC.i(TAG, "Remove " + mRemotePath + ": " + result.getLogMessage()); } catch (Exception e) { result = new RemoteOperationResult(e); Log_OC.e(TAG, "Remove " + mRemotePath + ": " + result.getLogMessage(), e); } finally { if (delete != null) delete.releaseConnection(); } return result; }
/** * Performs the operation. * * @param client Client object to communicate with the remote ownCloud server. */ @Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result; try { String source = client.getNewWebdavUri() + "/versions/" + userId + "/versions/" + fileId + "/" + fileName; String target = client.getNewWebdavUri() + "/versions/" + userId + "/restore/" + fileId; MoveMethod move = new MoveMethod(source, target, true); int status = client.executeMethod(move, RESTORE_READ_TIMEOUT, RESTORE_CONNECTION_TIMEOUT); result = new RemoteOperationResult(isSuccess(status), move); client.exhaustResponse(move.getResponseBodyAsStream()); } catch (IOException e) { result = new RemoteOperationResult(e); Log.e(TAG, "Restore file version with id " + fileId + " failed: " + result.getLogMessage(), e); } return result; }
@Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result = null; int status = -1; DeleteMethod delete = null; try { String id = "/" + String.valueOf(mRemoteShareId); delete = new DeleteMethod(client.getBaseUri() + ShareUtils.SHARING_API_PATH + id); delete.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); status = client.executeMethod(delete); if (isSuccess(status)) { String response = delete.getResponseBodyAsString(); // Parse xml response and obtain the list of shares ShareToRemoteOperationResultParser parser = new ShareToRemoteOperationResultParser( new ShareXMLParser() ); result = parser.parse(response); Log_OC.d(TAG, "Unshare " + id + ": " + result.getLogMessage()); } else { result = new RemoteOperationResult(false, delete); } } catch (Exception e) { result = new RemoteOperationResult(e); Log_OC.e(TAG, "Unshare Link Exception " + result.getLogMessage(), e); } finally { if (delete != null) delete.releaseConnection(); } return result; }
/** * Performs the operation. * * @param client Client object to communicate with the remote ownCloud server. */ @Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result; try { String source = client.getNewWebdavUri() + WebdavUtils.encodePath(sourcePath); String target = client.getNewWebdavUri() + "/trashbin/" + userId + "/restore/" + fileName; MoveMethod move = new MoveMethod(source, target, true); int status = client.executeMethod(move, RESTORE_READ_TIMEOUT, RESTORE_CONNECTION_TIMEOUT); result = new RemoteOperationResult(isSuccess(status), move); client.exhaustResponse(move.getResponseBodyAsStream()); } catch (IOException e) { result = new RemoteOperationResult(e); Log.e(TAG, "Restore trashbin file " + sourcePath + " failed: " + result.getLogMessage(), e); } return result; }
private RemoteOperationResult createFolder(OwnCloudClient client) { RemoteOperationResult result; MkColMethod mkCol = null; try { mkCol = new MkColMethod(client.getWebdavUri() + WebdavUtils.encodePath(mRemotePath)); client.setUseNextcloudUserAgent(true); client.executeMethod(mkCol, READ_TIMEOUT, CONNECTION_TIMEOUT); if (HttpStatus.SC_METHOD_NOT_ALLOWED == mkCol.getStatusCode()) { result = new RemoteOperationResult(RemoteOperationResult.ResultCode.FOLDER_ALREADY_EXISTS); } else { result = new RemoteOperationResult(mkCol.succeeded(), mkCol); } Log_OC.d(TAG, "Create directory " + mRemotePath + ": " + result.getLogMessage()); client.exhaustResponse(mkCol.getResponseBodyAsStream()); } catch (Exception e) { result = new RemoteOperationResult(e); Log_OC.e(TAG, "Create directory " + mRemotePath + ": " + result.getLogMessage(), e); } finally { if (mkCol != null) mkCol.releaseConnection(); } return result; }
Log_OC.e(TAG, "Fetching of public key failed: " + result.getLogMessage(), result.getException()); } finally { if (getMethod != null)
result = new RemoteOperationResult<>(e); e.printStackTrace(); Log_OC.e(TAG, "Synchronizing file " + mRemotePath + ": " + result.getLogMessage(), result.getException());
/** * @param client Client object */ @Override protected RemoteOperationResult run(OwnCloudClient client) { DeleteMethod postMethod = null; RemoteOperationResult result; try { // remote request postMethod = new DeleteMethod(client.getBaseUri() + PUBLIC_KEY_URL); postMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); int status = client.executeMethod(postMethod, SYNC_READ_TIMEOUT, SYNC_CONNECTION_TIMEOUT); result = new RemoteOperationResult(status == HttpStatus.SC_OK, postMethod); client.exhaustResponse(postMethod.getResponseBodyAsStream()); } catch (Exception e) { result = new RemoteOperationResult(e); Log_OC.e(TAG, "Deletion of public key failed: " + result.getLogMessage(), result.getException()); } finally { if (postMethod != null) postMethod.releaseConnection(); } return result; }
} catch (Exception e) { result = new RemoteOperationResult(e); Log_OC.e(TAG, "Unlock file with id " + localId + " failed: " + result.getLogMessage(), result.getException()); } finally {
WebdavUtils.encodePath(mPath) + " targeting for " + (mSuccessIfAbsent ? " absence " : " existence ") + ": " + result.getLogMessage(), result.getException());