X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/b27ebf0310b2355cdd825c43b995e12688ae3df0..5dc43aab3cc1243f9989dd6a0c7dd3350c3f709b:/src/com/owncloud/android/operations/RemoveFileOperation.java diff --git a/src/com/owncloud/android/operations/RemoveFileOperation.java b/src/com/owncloud/android/operations/RemoveFileOperation.java index 69d0a6c3..8348b72f 100644 --- a/src/com/owncloud/android/operations/RemoveFileOperation.java +++ b/src/com/owncloud/android/operations/RemoveFileOperation.java @@ -1,10 +1,9 @@ /* ownCloud Android client application - * Copyright (C) 2012 Bartek Przybylski + * Copyright (C) 2012-2013 ownCloud Inc. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -18,10 +17,10 @@ package com.owncloud.android.operations; +import org.apache.commons.httpclient.HttpStatus; import org.apache.jackrabbit.webdav.client.methods.DeleteMethod; -import android.util.Log; - +import com.owncloud.android.Log_OC; import com.owncloud.android.datamodel.DataStorageManager; import com.owncloud.android.datamodel.OCFile; @@ -60,6 +59,16 @@ public class RemoveFileOperation extends RemoteOperation { /** + * Getter for the file to remove (or removed, if the operation was successfully performed). + * + * @return File to remove or already removed. + */ + public OCFile getFile() { + return mFileToRemove; + } + + + /** * Performs the remove operation * * @param client Client object to communicate with the remote ownCloud server. @@ -71,7 +80,7 @@ public class RemoveFileOperation extends RemoteOperation { try { delete = new DeleteMethod(client.getBaseUri() + WebdavUtils.encodePath(mFileToRemove.getRemotePath())); int status = client.executeMethod(delete, REMOVE_READ_TIMEOUT, REMOVE_CONNECTION_TIMEOUT); - if (delete.succeeded()) { + if (delete.succeeded() || status == HttpStatus.SC_NOT_FOUND) { if (mFileToRemove.isDirectory()) { mDataStorageManager.removeDirectory(mFileToRemove, true, mDeleteLocalCopy); } else { @@ -79,12 +88,12 @@ public class RemoveFileOperation extends RemoteOperation { } } delete.getResponseBodyAsString(); // exhaust the response, although not interesting - result = new RemoteOperationResult(delete.succeeded(), status); - Log.i(TAG, "Remove " + mFileToRemove.getRemotePath() + ": " + result.getLogMessage()); + result = new RemoteOperationResult((delete.succeeded() || status == HttpStatus.SC_NOT_FOUND), status); + Log_OC.i(TAG, "Remove " + mFileToRemove.getRemotePath() + ": " + result.getLogMessage()); } catch (Exception e) { result = new RemoteOperationResult(e); - Log.e(TAG, "Remove " + mFileToRemove.getRemotePath() + ": " + result.getLogMessage(), e); + Log_OC.e(TAG, "Remove " + mFileToRemove.getRemotePath() + ": " + result.getLogMessage(), e); } finally { if (delete != null)