X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/7399508e050d9a2bf5a44188b6abc46501b19357..4d33ecf15e9a4fa22e1e49e563793704c7598a3f:/src/com/owncloud/android/files/services/FileUploader.java diff --git a/src/com/owncloud/android/files/services/FileUploader.java b/src/com/owncloud/android/files/services/FileUploader.java index 7c369967..df4dccda 100644 --- a/src/com/owncloud/android/files/services/FileUploader.java +++ b/src/com/owncloud/android/files/services/FileUploader.java @@ -21,7 +21,6 @@ package com.owncloud.android.files.services; import java.io.File; -import java.io.IOException; import java.util.AbstractList; import java.util.HashMap; import java.util.Iterator; @@ -30,7 +29,6 @@ import java.util.Vector; import android.accounts.Account; import android.accounts.AccountManager; -import android.accounts.AccountsException; import android.accounts.OnAccountsUpdateListener; import android.app.NotificationManager; import android.app.PendingIntent; @@ -103,6 +101,7 @@ public class FileUploader extends Service public static final int LOCAL_BEHAVIOUR_COPY = 0; public static final int LOCAL_BEHAVIOUR_MOVE = 1; public static final int LOCAL_BEHAVIOUR_FORGET = 2; + public static final int LOCAL_BEHAVIOUR_REMOVE = 3; public static final int UPLOAD_SINGLE_FILE = 0; public static final int UPLOAD_MULTIPLE_FILES = 1; @@ -534,8 +533,6 @@ public class FileUploader extends Service */ public void uploadFile(String uploadKey) { - Log_OC.v( "NOW " + TAG + ", thread " + Thread.currentThread().getName(), - "Getting upload of " + uploadKey); mCurrentUpload = mPendingUploads.get(uploadKey); if (mCurrentUpload != null) { @@ -571,13 +568,15 @@ public class FileUploader extends Service /// perform the upload if (grantResult.isSuccess()) { - Log_OC.v( "NOW " + TAG + ", thread " + Thread.currentThread().getName(), - "Executing upload of " + mCurrentUpload.getRemotePath()); OCFile parent = mStorageManager.getFileByPath(remoteParentPath); mCurrentUpload.getFile().setParentId(parent.getFileId()); uploadResult = mCurrentUpload.execute(mUploadClient); if (uploadResult.isSuccess()) { saveUploadedFile(); + + } else if (uploadResult.getCode() == ResultCode.SYNC_CONFLICT) { + mStorageManager.saveConflict(mCurrentUpload.getFile(), + mCurrentUpload.getFile().getEtagInConflict()); } } else { uploadResult = grantResult; @@ -588,10 +587,18 @@ public class FileUploader extends Service uploadResult = new RemoteOperationResult(e); } finally { - Log_OC.v("NOW " + TAG + ", thread " + Thread.currentThread().getName(), - "Removing payload " + mCurrentUpload.getRemotePath()); - Pair removeResult = - mPendingUploads.removePayload(mCurrentAccount, mCurrentUpload.getRemotePath()); + Pair removeResult; + if (mCurrentUpload.wasRenamed()) { + removeResult = mPendingUploads.removePayload( + mCurrentAccount, + mCurrentUpload.getOldFile().getRemotePath() + ); + } else { + removeResult = mPendingUploads.removePayload( + mCurrentAccount, + mCurrentUpload.getRemotePath() + ); + } /// notify result notifyUploadResult(mCurrentUpload, uploadResult); @@ -699,7 +706,7 @@ public class FileUploader extends Service if (oldFile.fileExists()) { oldFile.setStoragePath(null); mStorageManager.saveFile(oldFile); - mStorageManager.saveConflict(oldFile, false); + mStorageManager.saveConflict(oldFile, null); } // else: it was just an automatic renaming due to a name // coincidence; nothing else is needed, the storagePath is right @@ -707,7 +714,10 @@ public class FileUploader extends Service } file.setNeedsUpdateThumbnail(true); mStorageManager.saveFile(file); - mStorageManager.saveConflict(file, false); + mStorageManager.saveConflict(file, null); + + mStorageManager.triggerMediaScan(file.getStoragePath()); + } private void updateOCFile(OCFile file, RemoteFile remoteFile) {