X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/2a913bfbeb13fc93ad0ec942d359dbcaa3ad3c1e..8361540852ec87b51c85937e0f326a83e19cd8ad:/src/com/owncloud/android/operations/UploadFileOperation.java diff --git a/src/com/owncloud/android/operations/UploadFileOperation.java b/src/com/owncloud/android/operations/UploadFileOperation.java index 2ced4bfc..9c570ea0 100644 --- a/src/com/owncloud/android/operations/UploadFileOperation.java +++ b/src/com/owncloud/android/operations/UploadFileOperation.java @@ -143,7 +143,6 @@ public class UploadFileOperation extends RemoteOperation { mDataTransferListeners.add(listener); } - @Override protected RemoteOperationResult run(WebdavClient client) { RemoteOperationResult result = null; @@ -167,8 +166,7 @@ public class UploadFileOperation extends RemoteOperation { /// check location of local file; if not the expected, copy to a temporal file before upload (if COPY is the expected behaviour) if (!originalStoragePath.equals(expectedPath) && mLocalBehaviour == FileUploader.LOCAL_BEHAVIOUR_COPY) { - File ocLocalFolder = new File(FileStorageUtils.getSavePath(mAccount.name)); - if (ocLocalFolder.getUsableSpace() < originalFile.length()) { + if (FileStorageUtils.getUsableSpace(mAccount.name) < originalFile.length()) { result = new RemoteOperationResult(ResultCode.LOCAL_STORAGE_FULL); return result; // error condition when the file should be copied @@ -187,6 +185,11 @@ public class UploadFileOperation extends RemoteOperation { while ((len = in.read(buf)) > 0){ out.write(buf, 0, len); } + + } catch (Exception e) { + result = new RemoteOperationResult(ResultCode.LOCAL_STORAGE_NOT_COPIED); + return result; + } finally { try { if (in != null) in.close(); @@ -230,8 +233,11 @@ public class UploadFileOperation extends RemoteOperation { } expectedFile = new File(mFile.getStoragePath()); if (!expectedFile.equals(fileToMove) && !fileToMove.renameTo(expectedFile)) { - result = new RemoteOperationResult(ResultCode.LOCAL_STORAGE_NOT_MOVED); - return result; + mFile.setStoragePath(null); // forget the local file + // by now, treat this as a success; the file was uploaded; the user won't like that the local file is not linked, but this should be a veeery rare fail; + // the best option could be show a warning message (but not a fail) + //result = new RemoteOperationResult(ResultCode.LOCAL_STORAGE_NOT_MOVED); + //return result; } } }