1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-29 10:46:12 +00:00

Show error message when there is an external storage error

This commit is contained in:
davigonz 2017-02-06 11:54:02 +01:00
parent 28d228b296
commit 21d1265ca5
2 changed files with 22 additions and 3 deletions

View File

@ -118,7 +118,8 @@ public class RemoteOperationResult implements Serializable {
INVALID_CHARACTER_DETECT_IN_SERVER, INVALID_CHARACTER_DETECT_IN_SERVER,
DELAYED_FOR_WIFI, DELAYED_FOR_WIFI,
LOCAL_FILE_NOT_FOUND, LOCAL_FILE_NOT_FOUND,
MAINTENANCE_MODE MAINTENANCE_MODE,
SPECIFIC_SERVICE_UNAVAILABLE
} }
private boolean mSuccess = false; private boolean mSuccess = false;
@ -254,7 +255,7 @@ public class RemoteOperationResult implements Serializable {
ErrorMessageParser xmlParser = new ErrorMessageParser(); ErrorMessageParser xmlParser = new ErrorMessageParser();
try { try {
String errorMessage = xmlParser.parseXMLResponse(is); String errorMessage = xmlParser.parseXMLResponse(is);
if (errorMessage != null && errorMessage != "") { if (errorMessage != "" && errorMessage != null) {
mCode = ResultCode.SPECIFIC_FORBIDDEN; mCode = ResultCode.SPECIFIC_FORBIDDEN;
mHttpPhrase = errorMessage; mHttpPhrase = errorMessage;
} }
@ -264,6 +265,25 @@ public class RemoteOperationResult implements Serializable {
} }
} }
} }
if (mHttpCode == HttpStatus.SC_SERVICE_UNAVAILABLE) {
String bodyResponse = httpMethod.getResponseBodyAsString();
if (bodyResponse != null && bodyResponse.length() > 0) {
InputStream is = new ByteArrayInputStream(bodyResponse.getBytes());
ErrorMessageParser xmlParser = new ErrorMessageParser();
try {
String errorMessage = xmlParser.parseXMLResponse(is);
if (errorMessage != "" && errorMessage != null) {
mCode = ResultCode.SPECIFIC_SERVICE_UNAVAILABLE;
mHttpPhrase = errorMessage;
}
} catch (Exception e) {
Log_OC.w(TAG, "Error reading exception from server: " + e.getMessage());
// mCode stays as set in this(success, httpCode, headers)
}
}
}
} }
/** /**

View File

@ -96,7 +96,6 @@ public class ReadRemoteFolderOperation extends RemoteOperation {
} }
} else { } else {
// synchronization failed // synchronization failed
client.exhaustResponse(query.getResponseBodyAsStream());
result = new RemoteOperationResult(false, query); result = new RemoteOperationResult(false, query);
} }