- RemoveRemoteFileOperation operation = new RemoveRemoteFileOperation(mFileToRemove.getRemotePath());
- result = operation.execute(client);
+ mFileToRemove = getStorageManager().getFileByPath(mRemotePath);
+
+ boolean localRemovalFailed = false;
+ if (!mOnlyLocalCopy) {
+ RemoveRemoteFileOperation operation = new RemoveRemoteFileOperation(mRemotePath);
+ result = operation.execute(client);
+ if (result.isSuccess() || result.getCode() == ResultCode.FILE_NOT_FOUND) {
+ localRemovalFailed = !(getStorageManager().removeFile(mFileToRemove, true, true));
+ }
+
+ } else {
+ localRemovalFailed = !(getStorageManager().removeFile(mFileToRemove, false, true));
+ if (!localRemovalFailed) {
+ result = new RemoteOperationResult(ResultCode.OK);
+ }
+ }