1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-09 17:06:18 +00:00

OC-2678: Parse XMl Response, fix some problems in parsing method

This commit is contained in:
masensio 2014-01-31 11:26:53 +01:00
parent f3453f138f
commit 7e9efcfb35

View File

@ -199,6 +199,7 @@ public class ShareXMLParser {
*/
private ArrayList<OCShare> readData(XmlPullParser parser) throws XmlPullParserException, IOException {
ArrayList<OCShare> shares = new ArrayList<OCShare>();
OCShare share = null;
parser.require(XmlPullParser.START_TAG, ns, NODE_DATA);
Log.d(TAG, "---- NODE DATA ---");
@ -209,50 +210,34 @@ public class ShareXMLParser {
String name = parser.getName();
if (name.equalsIgnoreCase(NODE_ELEMENT)) {
shares.add(readElement(parser));
} else {
//skip(parser);
OCShare share = tryReadCreateXMLResponse(parser);
if (share.getIdRemoteShared() > -1) {
shares.add(share);
}
} else { // Parse Create XML Response
share = new OCShare();
if (name.equalsIgnoreCase(NODE_ID)) {
share.setIdRemoteShared(Integer.parseInt(readNode(parser, NODE_ID)));
} else if (name.equalsIgnoreCase(NODE_URL)) {
share.setShareLink(readNode(parser, NODE_URL));
} else if (name.equalsIgnoreCase(NODE_TOKEN)) {
share.setToken(readNode(parser, NODE_TOKEN));
} else {
skip(parser);
}
}
}
if (share != null) {
shares.add(share);
}
return shares;
}
/**
* Parse Create XML Response
* @param parser
* @return
*/
private OCShare tryReadCreateXMLResponse(XmlPullParser parser) throws XmlPullParserException, IOException {
OCShare share = new OCShare();
Log.d(TAG, "---- Create Share Response ---");
while (parser.next() != XmlPullParser.END_TAG) {
if (parser.getEventType() != XmlPullParser.START_TAG) {
continue;
}
String name = parser.getName();
if (name.equalsIgnoreCase(NODE_ID)) {
share.setIdRemoteShared(Integer.parseInt(readNode(parser, NODE_ID)));
} else if (name.equalsIgnoreCase(NODE_URL)) {
share.setShareLink(readNode(parser, NODE_URL));
} else if (name.equalsIgnoreCase(NODE_TOKEN)) {
share.setToken(readNode(parser, NODE_TOKEN));
} else {
skip(parser);
}
}
return share;
}
/**
* Parse Element node