1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-07 16:06:08 +00:00

Fix some indentation issues

This commit is contained in:
davigonz 2019-02-21 10:41:56 +01:00 committed by David González Verdugo
parent 59ed7e42ec
commit 87a8b418de
2 changed files with 425 additions and 416 deletions

View File

@ -47,24 +47,24 @@ import static com.owncloud.android.lib.common.operations.RemoteOperationResult.R
/** /**
* Created by masensio on 08/10/2015. * Created by masensio on 08/10/2015.
* * <p>
* Retrieves a list of sharees (possible targets of a share) from the ownCloud server. * Retrieves a list of sharees (possible targets of a share) from the ownCloud server.
* * <p>
* Currently only handles users and groups. Users in other OC servers (federation) should be added later. * Currently only handles users and groups. Users in other OC servers (federation) should be added later.
* * <p>
* Depends on SHAREE API. {@See https://github.com/owncloud/documentation/issues/1626} * Depends on SHAREE API. {@See https://github.com/owncloud/documentation/issues/1626}
* * <p>
* Syntax: * Syntax:
* Entry point: ocs/v2.php/apps/files_sharing/api/v1/sharees * Entry point: ocs/v2.php/apps/files_sharing/api/v1/sharees
* HTTP method: GET * HTTP method: GET
* url argument: itemType - string, required * url argument: itemType - string, required
* url argument: format - string, optional * url argument: format - string, optional
* url argument: search - string, optional * url argument: search - string, optional
* url arguments: perPage - int, optional * url arguments: perPage - int, optional
* url arguments: page - int, optional * url arguments: page - int, optional
* * <p>
* Status codes: * Status codes:
* 100 - successful * 100 - successful
* *
* @author masensio * @author masensio
* @author David A. Velasco * @author David A. Velasco
@ -108,9 +108,9 @@ public class GetRemoteShareesOperation extends RemoteOperation<ArrayList<JSONObj
/** /**
* Constructor * Constructor
* *
* @param searchString string for searching users, optional * @param searchString string for searching users, optional
* @param page page index in the list of results; beginning in 1 * @param page page index in the list of results; beginning in 1
* @param perPage maximum number of results in a single page * @param perPage maximum number of results in a single page
*/ */
public GetRemoteShareesOperation(String searchString, int page, int perPage) { public GetRemoteShareesOperation(String searchString, int page, int perPage) {
mSearchString = searchString; mSearchString = searchString;
@ -122,7 +122,7 @@ public class GetRemoteShareesOperation extends RemoteOperation<ArrayList<JSONObj
protected RemoteOperationResult<ArrayList<JSONObject>> run(OwnCloudClient client) { protected RemoteOperationResult<ArrayList<JSONObject>> run(OwnCloudClient client) {
RemoteOperationResult<ArrayList<JSONObject>> result; RemoteOperationResult<ArrayList<JSONObject>> result;
try{ try {
Uri requestUri = client.getBaseUri(); Uri requestUri = client.getBaseUri();
Uri.Builder uriBuilder = requestUri.buildUpon() Uri.Builder uriBuilder = requestUri.buildUpon()
.appendEncodedPath(OCS_ROUTE) .appendEncodedPath(OCS_ROUTE)
@ -139,7 +139,7 @@ public class GetRemoteShareesOperation extends RemoteOperation<ArrayList<JSONObj
int status = client.executeHttpMethod(getMethod); int status = client.executeHttpMethod(getMethod);
String response = getMethod.getResponseBodyAsString(); String response = getMethod.getResponseBodyAsString();
if(isSuccess(status)) { if (isSuccess(status)) {
Log_OC.d(TAG, "Successful response: " + response); Log_OC.d(TAG, "Successful response: " + response);
// Parse the response // Parse the response
@ -163,8 +163,8 @@ public class GetRemoteShareesOperation extends RemoteOperation<ArrayList<JSONObj
}; };
ArrayList<JSONObject> data = new ArrayList<>(); // For result data ArrayList<JSONObject> data = new ArrayList<>(); // For result data
for (int i=0; i<6; i++) { for (int i = 0; i < 6; i++) {
for(int j=0; j< jsonResults[i].length(); j++){ for (int j = 0; j < jsonResults[i].length(); j++) {
JSONObject jsonResult = jsonResults[i].getJSONObject(j); JSONObject jsonResult = jsonResults[i].getJSONObject(j);
data.add(jsonResult); data.add(jsonResult);
Log_OC.d(TAG, "*** Added item: " + jsonResult.getString(PROPERTY_LABEL)); Log_OC.d(TAG, "*** Added item: " + jsonResult.getString(PROPERTY_LABEL));
@ -174,7 +174,7 @@ public class GetRemoteShareesOperation extends RemoteOperation<ArrayList<JSONObj
result = new RemoteOperationResult<>(OK); result = new RemoteOperationResult<>(OK);
result.setData(data); result.setData(data);
Log_OC.d(TAG, "*** Get Users or groups completed " ); Log_OC.d(TAG, "*** Get Users or groups completed ");
} else { } else {
result = new RemoteOperationResult<>(getMethod); result = new RemoteOperationResult<>(getMethod);

View File

@ -39,405 +39,414 @@ import java.util.ArrayList;
/** /**
* Parser for Share API Response * Parser for Share API Response
*
* @author masensio * @author masensio
* @author David González Verdugo * @author David González Verdugo
*/ */
public class ShareXMLParser { public class ShareXMLParser {
//private static final String TAG = ShareXMLParser.class.getSimpleName(); //private static final String TAG = ShareXMLParser.class.getSimpleName();
// No namespaces // No namespaces
private static final String ns = null; private static final String ns = null;
// NODES for XML Parser // NODES for XML Parser
private static final String NODE_OCS = "ocs"; private static final String NODE_OCS = "ocs";
private static final String NODE_META = "meta"; private static final String NODE_META = "meta";
private static final String NODE_STATUS = "status"; private static final String NODE_STATUS = "status";
private static final String NODE_STATUS_CODE = "statuscode"; private static final String NODE_STATUS_CODE = "statuscode";
private static final String NODE_MESSAGE = "message"; private static final String NODE_MESSAGE = "message";
private static final String NODE_DATA = "data"; private static final String NODE_DATA = "data";
private static final String NODE_ELEMENT = "element"; private static final String NODE_ELEMENT = "element";
private static final String NODE_ID = "id"; private static final String NODE_ID = "id";
private static final String NODE_ITEM_TYPE = "item_type"; private static final String NODE_ITEM_TYPE = "item_type";
private static final String NODE_ITEM_SOURCE = "item_source"; private static final String NODE_ITEM_SOURCE = "item_source";
private static final String NODE_PARENT = "parent"; private static final String NODE_PARENT = "parent";
private static final String NODE_SHARE_TYPE = "share_type"; private static final String NODE_SHARE_TYPE = "share_type";
private static final String NODE_SHARE_WITH = "share_with"; private static final String NODE_SHARE_WITH = "share_with";
private static final String NODE_FILE_SOURCE = "file_source"; private static final String NODE_FILE_SOURCE = "file_source";
private static final String NODE_PATH = "path"; private static final String NODE_PATH = "path";
private static final String NODE_PERMISSIONS = "permissions"; private static final String NODE_PERMISSIONS = "permissions";
private static final String NODE_STIME = "stime"; private static final String NODE_STIME = "stime";
private static final String NODE_EXPIRATION = "expiration"; private static final String NODE_EXPIRATION = "expiration";
private static final String NODE_TOKEN = "token"; private static final String NODE_TOKEN = "token";
private static final String NODE_STORAGE = "storage"; private static final String NODE_STORAGE = "storage";
private static final String NODE_MAIL_SEND = "mail_send"; private static final String NODE_MAIL_SEND = "mail_send";
private static final String NODE_SHARE_WITH_DISPLAY_NAME = "share_with_displayname"; private static final String NODE_SHARE_WITH_DISPLAY_NAME = "share_with_displayname";
private static final String NODE_SHARE_WITH_ADDITIONAL_INFO = "share_with_additional_info"; private static final String NODE_SHARE_WITH_ADDITIONAL_INFO = "share_with_additional_info";
private static final String NODE_NAME = "name"; private static final String NODE_NAME = "name";
private static final String NODE_URL = "url"; private static final String NODE_URL = "url";
private static final String TYPE_FOLDER = "folder"; private static final String TYPE_FOLDER = "folder";
private static final int SUCCESS = 200; private static final int SUCCESS = 200;
private static final int ERROR_WRONG_PARAMETER = 400; private static final int ERROR_WRONG_PARAMETER = 400;
private static final int ERROR_FORBIDDEN = 403; private static final int ERROR_FORBIDDEN = 403;
private static final int ERROR_NOT_FOUND = 404; private static final int ERROR_NOT_FOUND = 404;
private String mStatus; private String mStatus;
private int mStatusCode; private int mStatusCode;
private String mMessage; private String mMessage;
// Getters and Setters // Getters and Setters
public String getStatus() { public String getStatus() {
return mStatus; return mStatus;
} }
public void setStatus(String status) { public void setStatus(String status) {
this.mStatus = status; this.mStatus = status;
} }
public int getStatusCode() { public int getStatusCode() {
return mStatusCode; return mStatusCode;
} }
public void setStatusCode(int statusCode) { public void setStatusCode(int statusCode) {
this.mStatusCode = statusCode; this.mStatusCode = statusCode;
} }
public String getMessage() { public String getMessage() {
return mMessage; return mMessage;
} }
public void setMessage(String message) { public void setMessage(String message) {
this.mMessage = message; this.mMessage = message;
} }
// Constructor // Constructor
public ShareXMLParser() { public ShareXMLParser() {
mStatusCode = -1; mStatusCode = -1;
} }
public boolean isSuccess() { public boolean isSuccess() {
return mStatusCode == SUCCESS; return mStatusCode == SUCCESS;
} }
public boolean isForbidden() { public boolean isForbidden() {
return mStatusCode == ERROR_FORBIDDEN; return mStatusCode == ERROR_FORBIDDEN;
} }
public boolean isNotFound() { public boolean isNotFound() {
return mStatusCode == ERROR_NOT_FOUND; return mStatusCode == ERROR_NOT_FOUND;
} }
public boolean isWrongParameter() { public boolean isWrongParameter() {
return mStatusCode == ERROR_WRONG_PARAMETER; return mStatusCode == ERROR_WRONG_PARAMETER;
} }
/** /**
* Parse is as response of Share API * Parse is as response of Share API
* @param is *
* @return List of ShareRemoteFiles * @param is
* @throws XmlPullParserException * @return List of ShareRemoteFiles
* @throws IOException * @throws XmlPullParserException
*/ * @throws IOException
public ArrayList<OCShare> parseXMLResponse(InputStream is) throws XmlPullParserException, */
IOException { public ArrayList<OCShare> parseXMLResponse(InputStream is) throws XmlPullParserException,
IOException {
try {
// XMLPullParser try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); // XMLPullParser
factory.setNamespaceAware(true); XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser parser = Xml.newPullParser();
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false); XmlPullParser parser = Xml.newPullParser();
parser.setInput(is, null); parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
parser.nextTag(); parser.setInput(is, null);
return readOCS(parser); parser.nextTag();
return readOCS(parser);
} finally {
is.close(); } finally {
} is.close();
} }
}
/**
* Parse OCS node /**
* @param parser * Parse OCS node
* @return List of ShareRemoteFiles *
* @throws XmlPullParserException * @param parser
* @throws IOException * @return List of ShareRemoteFiles
*/ * @throws XmlPullParserException
private ArrayList<OCShare> readOCS (XmlPullParser parser) throws XmlPullParserException, * @throws IOException
IOException { */
ArrayList<OCShare> shares = new ArrayList<>(); private ArrayList<OCShare> readOCS(XmlPullParser parser) throws XmlPullParserException,
parser.require(XmlPullParser.START_TAG, ns , NODE_OCS); IOException {
while (parser.next() != XmlPullParser.END_TAG) { ArrayList<OCShare> shares = new ArrayList<>();
if (parser.getEventType() != XmlPullParser.START_TAG) { parser.require(XmlPullParser.START_TAG, ns, NODE_OCS);
continue; while (parser.next() != XmlPullParser.END_TAG) {
} if (parser.getEventType() != XmlPullParser.START_TAG) {
String name = parser.getName(); continue;
// read NODE_META and NODE_DATA }
if (name.equalsIgnoreCase(NODE_META)) { String name = parser.getName();
readMeta(parser); // read NODE_META and NODE_DATA
} else if (name.equalsIgnoreCase(NODE_DATA)) { if (name.equalsIgnoreCase(NODE_META)) {
shares = readData(parser); readMeta(parser);
} else { } else if (name.equalsIgnoreCase(NODE_DATA)) {
skip(parser); shares = readData(parser);
} } else {
skip(parser);
} }
return shares;
} }
return shares;
/** }
* Parse Meta node
* @param parser /**
* @throws XmlPullParserException * Parse Meta node
* @throws IOException *
*/ * @param parser
private void readMeta(XmlPullParser parser) throws XmlPullParserException, IOException { * @throws XmlPullParserException
parser.require(XmlPullParser.START_TAG, ns, NODE_META); * @throws IOException
//Log_OC.d(TAG, "---- NODE META ---"); */
while (parser.next() != XmlPullParser.END_TAG) { private void readMeta(XmlPullParser parser) throws XmlPullParserException, IOException {
if (parser.getEventType() != XmlPullParser.START_TAG) { parser.require(XmlPullParser.START_TAG, ns, NODE_META);
continue; //Log_OC.d(TAG, "---- NODE META ---");
} while (parser.next() != XmlPullParser.END_TAG) {
String name = parser.getName(); if (parser.getEventType() != XmlPullParser.START_TAG) {
continue;
if (name.equalsIgnoreCase(NODE_STATUS)) { }
setStatus(readNode(parser, NODE_STATUS)); String name = parser.getName();
} else if (name.equalsIgnoreCase(NODE_STATUS_CODE)) { if (name.equalsIgnoreCase(NODE_STATUS)) {
setStatusCode(Integer.parseInt(readNode(parser, NODE_STATUS_CODE))); setStatus(readNode(parser, NODE_STATUS));
} else if (name.equalsIgnoreCase(NODE_MESSAGE)) { } else if (name.equalsIgnoreCase(NODE_STATUS_CODE)) {
setMessage(readNode(parser, NODE_MESSAGE)); setStatusCode(Integer.parseInt(readNode(parser, NODE_STATUS_CODE)));
} else { } else if (name.equalsIgnoreCase(NODE_MESSAGE)) {
skip(parser); setMessage(readNode(parser, NODE_MESSAGE));
}
} else {
} skip(parser);
} }
/** }
* Parse Data node }
* @param parser
* @return /**
* @throws XmlPullParserException * Parse Data node
* @throws IOException *
*/ * @param parser
private ArrayList<OCShare> readData(XmlPullParser parser) throws XmlPullParserException, * @return
IOException { * @throws XmlPullParserException
ArrayList<OCShare> shares = new ArrayList<OCShare>(); * @throws IOException
OCShare share = null; */
private ArrayList<OCShare> readData(XmlPullParser parser) throws XmlPullParserException,
parser.require(XmlPullParser.START_TAG, ns, NODE_DATA); IOException {
//Log_OC.d(TAG, "---- NODE DATA ---"); ArrayList<OCShare> shares = new ArrayList<OCShare>();
while (parser.next() != XmlPullParser.END_TAG) { OCShare share = null;
if (parser.getEventType() != XmlPullParser.START_TAG) {
continue; parser.require(XmlPullParser.START_TAG, ns, NODE_DATA);
} //Log_OC.d(TAG, "---- NODE DATA ---");
String name = parser.getName(); while (parser.next() != XmlPullParser.END_TAG) {
if (name.equalsIgnoreCase(NODE_ELEMENT)) { if (parser.getEventType() != XmlPullParser.START_TAG) {
readElement(parser, shares); continue;
}
} else if (name.equalsIgnoreCase(NODE_ID)) {// Parse Create XML Response String name = parser.getName();
share = new OCShare(); if (name.equalsIgnoreCase(NODE_ELEMENT)) {
String value = readNode(parser, NODE_ID); readElement(parser, shares);
share.setIdRemoteShared(Integer.parseInt(value));
} else if (name.equalsIgnoreCase(NODE_ID)) {// Parse Create XML Response
} else if (name.equalsIgnoreCase(NODE_URL)) { share = new OCShare();
// NOTE: this field is received in all the public shares from OC 9.0.0 String value = readNode(parser, NODE_ID);
// in previous versions, it's received in the result of POST requests, but not share.setIdRemoteShared(Integer.parseInt(value));
// in GET requests
share.setShareType(ShareType.PUBLIC_LINK); } else if (name.equalsIgnoreCase(NODE_URL)) {
String value = readNode(parser, NODE_URL); // NOTE: this field is received in all the public shares from OC 9.0.0
share.setShareLink(value); // in previous versions, it's received in the result of POST requests, but not
// in GET requests
} else if (name.equalsIgnoreCase(NODE_TOKEN)) { share.setShareType(ShareType.PUBLIC_LINK);
share.setToken(readNode(parser, NODE_TOKEN)); String value = readNode(parser, NODE_URL);
share.setShareLink(value);
} else {
skip(parser); } else if (name.equalsIgnoreCase(NODE_TOKEN)) {
share.setToken(readNode(parser, NODE_TOKEN));
}
} } else {
skip(parser);
if (share != null) {
// this is the response of a request for creation; don't pass to isValidShare() }
shares.add(share); }
}
if (share != null) {
return shares; // this is the response of a request for creation; don't pass to isValidShare()
shares.add(share);
} }
return shares;
/**
* Parse Element node }
* @param parser
* @return
* @throws XmlPullParserException /**
* @throws IOException * Parse Element node
*/ *
private void readElement(XmlPullParser parser, ArrayList<OCShare> shares) * @param parser
throws XmlPullParserException, IOException { * @return
parser.require(XmlPullParser.START_TAG, ns, NODE_ELEMENT); * @throws XmlPullParserException
* @throws IOException
OCShare share = new OCShare(); */
private void readElement(XmlPullParser parser, ArrayList<OCShare> shares)
//Log_OC.d(TAG, "---- NODE ELEMENT ---"); throws XmlPullParserException, IOException {
while (parser.next() != XmlPullParser.END_TAG) { parser.require(XmlPullParser.START_TAG, ns, NODE_ELEMENT);
if (parser.getEventType() != XmlPullParser.START_TAG) {
continue; OCShare share = new OCShare();
}
//Log_OC.d(TAG, "---- NODE ELEMENT ---");
String name = parser.getName(); while (parser.next() != XmlPullParser.END_TAG) {
if (parser.getEventType() != XmlPullParser.START_TAG) {
if (name.equalsIgnoreCase(NODE_ELEMENT)) { continue;
// patch to work around servers responding with extra <element> surrounding all }
// the shares on the same file before
// https://github.com/owncloud/core/issues/6992 was fixed String name = parser.getName();
readElement(parser, shares);
if (name.equalsIgnoreCase(NODE_ELEMENT)) {
} else if (name.equalsIgnoreCase(NODE_ID)) { // patch to work around servers responding with extra <element> surrounding all
share.setIdRemoteShared(Integer.parseInt(readNode(parser, NODE_ID))); // the shares on the same file before
// https://github.com/owncloud/core/issues/6992 was fixed
} else if (name.equalsIgnoreCase(NODE_ITEM_TYPE)) { readElement(parser, shares);
share.setIsFolder(readNode(parser, NODE_ITEM_TYPE).equalsIgnoreCase(TYPE_FOLDER));
fixPathForFolder(share); } else if (name.equalsIgnoreCase(NODE_ID)) {
share.setIdRemoteShared(Integer.parseInt(readNode(parser, NODE_ID)));
} else if (name.equalsIgnoreCase(NODE_ITEM_SOURCE)) {
share.setItemSource(Long.parseLong(readNode(parser, NODE_ITEM_SOURCE))); } else if (name.equalsIgnoreCase(NODE_ITEM_TYPE)) {
share.setIsFolder(readNode(parser, NODE_ITEM_TYPE).equalsIgnoreCase(TYPE_FOLDER));
} else if (name.equalsIgnoreCase(NODE_PARENT)) { fixPathForFolder(share);
readNode(parser, NODE_PARENT);
} else if (name.equalsIgnoreCase(NODE_ITEM_SOURCE)) {
} else if (name.equalsIgnoreCase(NODE_SHARE_TYPE)) { share.setItemSource(Long.parseLong(readNode(parser, NODE_ITEM_SOURCE)));
int value = Integer.parseInt(readNode(parser, NODE_SHARE_TYPE));
share.setShareType(ShareType.fromValue(value)); } else if (name.equalsIgnoreCase(NODE_PARENT)) {
readNode(parser, NODE_PARENT);
} else if (name.equalsIgnoreCase(NODE_SHARE_WITH)) {
share.setShareWith(readNode(parser, NODE_SHARE_WITH)); } else if (name.equalsIgnoreCase(NODE_SHARE_TYPE)) {
int value = Integer.parseInt(readNode(parser, NODE_SHARE_TYPE));
} else if (name.equalsIgnoreCase(NODE_FILE_SOURCE)) { share.setShareType(ShareType.fromValue(value));
share.setFileSource(Long.parseLong(readNode(parser, NODE_FILE_SOURCE)));
} else if (name.equalsIgnoreCase(NODE_SHARE_WITH)) {
} else if (name.equalsIgnoreCase(NODE_PATH)) { share.setShareWith(readNode(parser, NODE_SHARE_WITH));
share.setPath(readNode(parser, NODE_PATH));
fixPathForFolder(share); } else if (name.equalsIgnoreCase(NODE_FILE_SOURCE)) {
share.setFileSource(Long.parseLong(readNode(parser, NODE_FILE_SOURCE)));
} else if (name.equalsIgnoreCase(NODE_PERMISSIONS)) {
share.setPermissions(Integer.parseInt(readNode(parser, NODE_PERMISSIONS))); } else if (name.equalsIgnoreCase(NODE_PATH)) {
share.setPath(readNode(parser, NODE_PATH));
} else if (name.equalsIgnoreCase(NODE_STIME)) { fixPathForFolder(share);
share.setSharedDate(Long.parseLong(readNode(parser, NODE_STIME)));
} else if (name.equalsIgnoreCase(NODE_PERMISSIONS)) {
} else if (name.equalsIgnoreCase(NODE_EXPIRATION)) { share.setPermissions(Integer.parseInt(readNode(parser, NODE_PERMISSIONS)));
String value = readNode(parser, NODE_EXPIRATION);
if (!(value.length() == 0)) { } else if (name.equalsIgnoreCase(NODE_STIME)) {
share.setExpirationDate(WebdavUtils.parseResponseDate(value).getTime()); share.setSharedDate(Long.parseLong(readNode(parser, NODE_STIME)));
}
} else if (name.equalsIgnoreCase(NODE_EXPIRATION)) {
} else if (name.equalsIgnoreCase(NODE_TOKEN)) { String value = readNode(parser, NODE_EXPIRATION);
share.setToken(readNode(parser, NODE_TOKEN)); if (!(value.length() == 0)) {
share.setExpirationDate(WebdavUtils.parseResponseDate(value).getTime());
} else if (name.equalsIgnoreCase(NODE_STORAGE)) { }
readNode(parser, NODE_STORAGE);
} else if (name.equalsIgnoreCase(NODE_MAIL_SEND)) { } else if (name.equalsIgnoreCase(NODE_TOKEN)) {
readNode(parser, NODE_MAIL_SEND); share.setToken(readNode(parser, NODE_TOKEN));
} else if (name.equalsIgnoreCase(NODE_SHARE_WITH_DISPLAY_NAME)) { } else if (name.equalsIgnoreCase(NODE_STORAGE)) {
share.setSharedWithDisplayName(readNode(parser, NODE_SHARE_WITH_DISPLAY_NAME)); readNode(parser, NODE_STORAGE);
} else if (name.equalsIgnoreCase(NODE_MAIL_SEND)) {
} else if (name.equalsIgnoreCase(NODE_SHARE_WITH_ADDITIONAL_INFO)) { readNode(parser, NODE_MAIL_SEND);
share.setSharedWithAdditionalInfo(readNode(parser, NODE_SHARE_WITH_ADDITIONAL_INFO));
} else if (name.equalsIgnoreCase(NODE_SHARE_WITH_DISPLAY_NAME)) {
} else if (name.equalsIgnoreCase(NODE_URL)) { share.setSharedWithDisplayName(readNode(parser, NODE_SHARE_WITH_DISPLAY_NAME));
String value = readNode(parser, NODE_URL);
share.setShareLink(value); } else if (name.equalsIgnoreCase(NODE_SHARE_WITH_ADDITIONAL_INFO)) {
share.setSharedWithAdditionalInfo(readNode(parser, NODE_SHARE_WITH_ADDITIONAL_INFO));
} else if (name.equalsIgnoreCase(NODE_NAME)) {
share.setName(readNode(parser, NODE_NAME)); } else if (name.equalsIgnoreCase(NODE_URL)) {
String value = readNode(parser, NODE_URL);
} else { share.setShareLink(value);
skip(parser);
} } else if (name.equalsIgnoreCase(NODE_NAME)) {
} share.setName(readNode(parser, NODE_NAME));
if (isValidShare(share)) { } else {
shares.add(share); skip(parser);
} }
} }
private boolean isValidShare(OCShare share) { if (isValidShare(share)) {
return (share.getRemoteId() > -1); shares.add(share);
} }
}
private void fixPathForFolder(OCShare share) {
if (share.isFolder() && share.getPath() != null && share.getPath().length() > 0 && private boolean isValidShare(OCShare share) {
!share.getPath().endsWith(FileUtils.PATH_SEPARATOR)) { return (share.getRemoteId() > -1);
share.setPath(share.getPath() + FileUtils.PATH_SEPARATOR); }
}
} private void fixPathForFolder(OCShare share) {
if (share.isFolder() && share.getPath() != null && share.getPath().length() > 0 &&
/** !share.getPath().endsWith(FileUtils.PATH_SEPARATOR)) {
* Parse a node, to obtain its text. Needs readText method share.setPath(share.getPath() + FileUtils.PATH_SEPARATOR);
* @param parser }
* @param node }
* @return Text of the node
* @throws XmlPullParserException /**
* @throws IOException * Parse a node, to obtain its text. Needs readText method
*/ *
private String readNode (XmlPullParser parser, String node) throws XmlPullParserException, * @param parser
IOException{ * @param node
parser.require(XmlPullParser.START_TAG, ns, node); * @return Text of the node
String value = readText(parser); * @throws XmlPullParserException
//Log_OC.d(TAG, "node= " + node + ", value= " + value); * @throws IOException
parser.require(XmlPullParser.END_TAG, ns, node); */
return value; private String readNode(XmlPullParser parser, String node) throws XmlPullParserException,
} IOException {
parser.require(XmlPullParser.START_TAG, ns, node);
/** String value = readText(parser);
* Read the text from a node //Log_OC.d(TAG, "node= " + node + ", value= " + value);
* @param parser parser.require(XmlPullParser.END_TAG, ns, node);
* @return Text of the node return value;
* @throws IOException }
* @throws XmlPullParserException
*/ /**
private String readText(XmlPullParser parser) throws IOException, XmlPullParserException { * Read the text from a node
String result = ""; *
if (parser.next() == XmlPullParser.TEXT) { * @param parser
result = parser.getText(); * @return Text of the node
parser.nextTag(); * @throws IOException
} * @throws XmlPullParserException
return result; */
} private String readText(XmlPullParser parser) throws IOException, XmlPullParserException {
String result = "";
/** if (parser.next() == XmlPullParser.TEXT) {
* Skip tags in parser procedure result = parser.getText();
* @param parser parser.nextTag();
* @throws XmlPullParserException }
* @throws IOException return result;
*/ }
private void skip(XmlPullParser parser) throws XmlPullParserException, IOException {
if (parser.getEventType() != XmlPullParser.START_TAG) { /**
throw new IllegalStateException(); * Skip tags in parser procedure
} *
int depth = 1; * @param parser
while (depth != 0) { * @throws XmlPullParserException
switch (parser.next()) { * @throws IOException
case XmlPullParser.END_TAG: */
depth--; private void skip(XmlPullParser parser) throws XmlPullParserException, IOException {
break; if (parser.getEventType() != XmlPullParser.START_TAG) {
case XmlPullParser.START_TAG: throw new IllegalStateException();
depth++; }
break; int depth = 1;
} while (depth != 0) {
} switch (parser.next()) {
} case XmlPullParser.END_TAG:
depth--;
break;
case XmlPullParser.START_TAG:
depth++;
break;
}
}
}
} }