mirror of
https://github.com/owncloud/android-library.git
synced 2025-06-07 16:06:08 +00:00
Revert "Allow conditional read of list of files in a folder based on ETag"; server does not work that way
This reverts commit 5ff9062ea8fefb1bf2b3952b9d64daa4f9922a39.
This commit is contained in:
parent
b87d2c9e7c
commit
67d7217d13
@ -61,8 +61,8 @@ import javax.net.ssl.SSLException;
|
|||||||
*/
|
*/
|
||||||
public class RemoteOperationResult implements Serializable {
|
public class RemoteOperationResult implements Serializable {
|
||||||
|
|
||||||
/** Generated - should be refreshed every time the class changes!! */;
|
/** Generated - should be refreshed every time the class changes!! */;
|
||||||
private static final long serialVersionUID = -1909603208238358633L;
|
private static final long serialVersionUID = 1129130415603799707L;
|
||||||
|
|
||||||
private static final String TAG = RemoteOperationResult.class.getSimpleName();
|
private static final String TAG = RemoteOperationResult.class.getSimpleName();
|
||||||
|
|
||||||
@ -100,20 +100,19 @@ public class RemoteOperationResult implements Serializable {
|
|||||||
ACCOUNT_NOT_THE_SAME,
|
ACCOUNT_NOT_THE_SAME,
|
||||||
INVALID_CHARACTER_IN_NAME,
|
INVALID_CHARACTER_IN_NAME,
|
||||||
SHARE_NOT_FOUND,
|
SHARE_NOT_FOUND,
|
||||||
LOCAL_STORAGE_NOT_REMOVED,
|
LOCAL_STORAGE_NOT_REMOVED,
|
||||||
FORBIDDEN,
|
FORBIDDEN,
|
||||||
SHARE_FORBIDDEN,
|
SHARE_FORBIDDEN,
|
||||||
OK_REDIRECT_TO_NON_SECURE_CONNECTION,
|
OK_REDIRECT_TO_NON_SECURE_CONNECTION,
|
||||||
INVALID_MOVE_INTO_DESCENDANT,
|
INVALID_MOVE_INTO_DESCENDANT,
|
||||||
INVALID_COPY_INTO_DESCENDANT,
|
INVALID_COPY_INTO_DESCENDANT,
|
||||||
PARTIAL_MOVE_DONE,
|
PARTIAL_MOVE_DONE,
|
||||||
PARTIAL_COPY_DONE,
|
PARTIAL_COPY_DONE,
|
||||||
SHARE_WRONG_PARAMETER,
|
SHARE_WRONG_PARAMETER,
|
||||||
WRONG_SERVER_RESPONSE,
|
WRONG_SERVER_RESPONSE,
|
||||||
INVALID_CHARACTER_DETECT_IN_SERVER,
|
INVALID_CHARACTER_DETECT_IN_SERVER,
|
||||||
DELAYED_FOR_WIFI,
|
DELAYED_FOR_WIFI,
|
||||||
LOCAL_FILE_NOT_FOUND,
|
LOCAL_FILE_NOT_FOUND
|
||||||
NOT_MODIFIED
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean mSuccess = false;
|
private boolean mSuccess = false;
|
||||||
@ -128,7 +127,7 @@ public class RemoteOperationResult implements Serializable {
|
|||||||
|
|
||||||
public RemoteOperationResult(ResultCode code) {
|
public RemoteOperationResult(ResultCode code) {
|
||||||
mCode = code;
|
mCode = code;
|
||||||
mSuccess = (code == ResultCode.OK || code == ResultCode.OK_SSL ||
|
mSuccess = (code == ResultCode.OK || code == ResultCode.OK_SSL ||
|
||||||
code == ResultCode.OK_NO_SSL ||
|
code == ResultCode.OK_NO_SSL ||
|
||||||
code == ResultCode.OK_REDIRECT_TO_NON_SECURE_CONNECTION);
|
code == ResultCode.OK_REDIRECT_TO_NON_SECURE_CONNECTION);
|
||||||
mData = null;
|
mData = null;
|
||||||
@ -158,11 +157,9 @@ public class RemoteOperationResult implements Serializable {
|
|||||||
case HttpStatus.SC_INSUFFICIENT_STORAGE:
|
case HttpStatus.SC_INSUFFICIENT_STORAGE:
|
||||||
mCode = ResultCode.QUOTA_EXCEEDED;
|
mCode = ResultCode.QUOTA_EXCEEDED;
|
||||||
break;
|
break;
|
||||||
case HttpStatus.SC_FORBIDDEN:
|
case HttpStatus.SC_FORBIDDEN:
|
||||||
mCode = ResultCode.FORBIDDEN;
|
mCode = ResultCode.FORBIDDEN;
|
||||||
break;
|
break;
|
||||||
case HttpStatus.SC_NOT_MODIFIED:
|
|
||||||
mCode = ResultCode.NOT_MODIFIED;
|
|
||||||
default:
|
default:
|
||||||
mCode = ResultCode.UNHANDLED_HTTP_CODE;
|
mCode = ResultCode.UNHANDLED_HTTP_CODE;
|
||||||
Log_OC.d(TAG, "RemoteOperationResult has processed UNHANDLED_HTTP_CODE: " +
|
Log_OC.d(TAG, "RemoteOperationResult has processed UNHANDLED_HTTP_CODE: " +
|
||||||
@ -409,13 +406,10 @@ public class RemoteOperationResult implements Serializable {
|
|||||||
return "The file name contains an forbidden character";
|
return "The file name contains an forbidden character";
|
||||||
|
|
||||||
} else if (mCode == ResultCode.FILE_NOT_FOUND) {
|
} else if (mCode == ResultCode.FILE_NOT_FOUND) {
|
||||||
return "Local file does not exist";
|
return "Local file does not exist";
|
||||||
|
|
||||||
} else if (mCode == ResultCode.SYNC_CONFLICT) {
|
} else if (mCode == ResultCode.SYNC_CONFLICT) {
|
||||||
return "Synchronization conflict";
|
return "Synchronization conflict";
|
||||||
|
|
||||||
} else if (mCode == ResultCode.NOT_MODIFIED) {
|
|
||||||
return "Resource in server was not modified";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return "Operation finished with HTTP status code " + mHttpCode + " (" +
|
return "Operation finished with HTTP status code " + mHttpCode + " (" +
|
||||||
|
@ -47,42 +47,28 @@ import com.owncloud.android.lib.common.utils.Log_OC;
|
|||||||
|
|
||||||
public class ReadRemoteFolderOperation extends RemoteOperation {
|
public class ReadRemoteFolderOperation extends RemoteOperation {
|
||||||
|
|
||||||
private static final String TAG = ReadRemoteFolderOperation.class.getSimpleName();
|
private static final String TAG = ReadRemoteFolderOperation.class.getSimpleName();
|
||||||
|
|
||||||
private static final String IF_NONE_MATCH_HEADER = "If-None-Match";
|
private String mRemotePath;
|
||||||
|
private ArrayList<Object> mFolderAndFiles;
|
||||||
private String mRemotePath;
|
|
||||||
private String mETagToNotMatch;
|
/**
|
||||||
private ArrayList<Object> mFolderAndFiles;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
* @param remotePath Remote path of the file.
|
* @param remotePath Remote path of the file.
|
||||||
*/
|
*/
|
||||||
public ReadRemoteFolderOperation(String remotePath) {
|
public ReadRemoteFolderOperation(String remotePath) {
|
||||||
mRemotePath = remotePath;
|
mRemotePath = remotePath;
|
||||||
mETagToNotMatch = "";
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* @param remotePath Remote path of the file.
|
|
||||||
*/
|
|
||||||
public ReadRemoteFolderOperation(String remotePath, String eTagToNotMatch) {
|
|
||||||
mRemotePath = remotePath;
|
|
||||||
mETagToNotMatch = (eTagToNotMatch == null) ? "" : eTagToNotMatch;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Performs the read operation.
|
* Performs the read operation.
|
||||||
*
|
*
|
||||||
* @param client Client object to communicate with the remote ownCloud server.
|
* @param client Client object to communicate with the remote ownCloud server.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected RemoteOperationResult run(OwnCloudClient client) {
|
protected RemoteOperationResult run(OwnCloudClient client) {
|
||||||
RemoteOperationResult result = null;
|
RemoteOperationResult result = null;
|
||||||
PropFindMethod query = null;
|
PropFindMethod query = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -90,17 +76,13 @@ public class ReadRemoteFolderOperation extends RemoteOperation {
|
|||||||
query = new PropFindMethod(client.getWebdavUri() + WebdavUtils.encodePath(mRemotePath),
|
query = new PropFindMethod(client.getWebdavUri() + WebdavUtils.encodePath(mRemotePath),
|
||||||
WebdavUtils.getAllPropSet(), // PropFind Properties
|
WebdavUtils.getAllPropSet(), // PropFind Properties
|
||||||
DavConstants.DEPTH_1);
|
DavConstants.DEPTH_1);
|
||||||
if (mETagToNotMatch.length() > 0) {
|
|
||||||
query.addRequestHeader(IF_NONE_MATCH_HEADER, "\"" + mETagToNotMatch + "\"");
|
|
||||||
}
|
|
||||||
|
|
||||||
int status = client.executeMethod(query);
|
int status = client.executeMethod(query);
|
||||||
|
|
||||||
// check and process response
|
// check and process response
|
||||||
boolean isSuccess = (
|
boolean isSuccess = (
|
||||||
status == HttpStatus.SC_MULTI_STATUS ||
|
status == HttpStatus.SC_MULTI_STATUS ||
|
||||||
status == HttpStatus.SC_OK
|
status == HttpStatus.SC_OK
|
||||||
);
|
);
|
||||||
if (isSuccess) {
|
if (isSuccess) {
|
||||||
// get data from remote folder
|
// get data from remote folder
|
||||||
MultiStatus dataInServer = query.getResponseBodyAsMultiStatus();
|
MultiStatus dataInServer = query.getResponseBodyAsMultiStatus();
|
||||||
@ -113,7 +95,7 @@ public class ReadRemoteFolderOperation extends RemoteOperation {
|
|||||||
result.setData(mFolderAndFiles);
|
result.setData(mFolderAndFiles);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// synchronization failed, or no change in folder (mETagToNotMatch matched)
|
// synchronization failed
|
||||||
client.exhaustResponse(query.getResponseBodyAsStream());
|
client.exhaustResponse(query.getResponseBodyAsStream());
|
||||||
result = new RemoteOperationResult(false, status, query.getResponseHeaders());
|
result = new RemoteOperationResult(false, status, query.getResponseHeaders());
|
||||||
}
|
}
|
||||||
@ -138,6 +120,10 @@ public class ReadRemoteFolderOperation extends RemoteOperation {
|
|||||||
|
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isMultiStatus(int status) {
|
||||||
|
return (status == HttpStatus.SC_MULTI_STATUS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user