mirror of
				https://github.com/owncloud/android-library.git
				synced 2025-11-03 20:08:00 +00:00 
			
		
		
		
	Remove GetSharesForFileXMLParser
This commit is contained in:
		
							parent
							
								
									984cbbc124
								
							
						
					
					
						commit
						f166bcdd8b
					
				@ -1,353 +0,0 @@
 | 
				
			|||||||
/* ownCloud Android Library is available under MIT license
 | 
					 | 
				
			||||||
 *   Copyright (C) 2014 ownCloud (http://www.owncloud.org/)
 | 
					 | 
				
			||||||
 *   
 | 
					 | 
				
			||||||
 *   Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
					 | 
				
			||||||
 *   of this software and associated documentation files (the "Software"), to deal
 | 
					 | 
				
			||||||
 *   in the Software without restriction, including without limitation the rights
 | 
					 | 
				
			||||||
 *   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
					 | 
				
			||||||
 *   copies of the Software, and to permit persons to whom the Software is
 | 
					 | 
				
			||||||
 *   furnished to do so, subject to the following conditions:
 | 
					 | 
				
			||||||
 *   
 | 
					 | 
				
			||||||
 *   The above copyright notice and this permission notice shall be included in
 | 
					 | 
				
			||||||
 *   all copies or substantial portions of the Software.
 | 
					 | 
				
			||||||
 *   
 | 
					 | 
				
			||||||
 *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
 | 
					 | 
				
			||||||
 *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | 
					 | 
				
			||||||
 *   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
 | 
					 | 
				
			||||||
 *   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 
 | 
					 | 
				
			||||||
 *   BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 
 | 
					 | 
				
			||||||
 *   ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 
 | 
					 | 
				
			||||||
 *   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
					 | 
				
			||||||
 *   THE SOFTWARE.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
package com.owncloud.android.lib.utils;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.io.IOException;
 | 
					 | 
				
			||||||
import java.io.InputStream;
 | 
					 | 
				
			||||||
import java.util.ArrayList;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import org.xmlpull.v1.XmlPullParser;
 | 
					 | 
				
			||||||
import org.xmlpull.v1.XmlPullParserException;
 | 
					 | 
				
			||||||
import org.xmlpull.v1.XmlPullParserFactory;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import android.util.Log;
 | 
					 | 
				
			||||||
import android.util.Xml;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.owncloud.android.lib.operations.common.OCShare;
 | 
					 | 
				
			||||||
import com.owncloud.android.lib.operations.common.ShareType;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Parser for Share API Response: GetSharesForFile Operation
 | 
					 | 
				
			||||||
 * @author masensio
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
public class GetSharesForFileXMLParser {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	private static final String TAG = GetSharesForFileXMLParser.class.getSimpleName();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// No namespaces
 | 
					 | 
				
			||||||
	private static final String ns = null;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// NODES for XML Parser
 | 
					 | 
				
			||||||
	private static final String NODE_OCS = "ocs";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	private static final String NODE_META = "meta";
 | 
					 | 
				
			||||||
	private static final String NODE_STATUS = "status";
 | 
					 | 
				
			||||||
	private static final String NODE_STATUS_CODE = "statuscode";
 | 
					 | 
				
			||||||
	//private static final String NODE_MESSAGE = "message";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	private static final String NODE_DATA = "data";
 | 
					 | 
				
			||||||
	private static final String NODE_ELEMENT = "element";
 | 
					 | 
				
			||||||
	private static final String NODE_ID = "id";
 | 
					 | 
				
			||||||
	private static final String NODE_ITEM_TYPE = "item_type";
 | 
					 | 
				
			||||||
	private static final String NODE_ITEM_SOURCE = "item_source";
 | 
					 | 
				
			||||||
	private static final String NODE_PARENT = "parent";
 | 
					 | 
				
			||||||
	private static final String NODE_SHARE_TYPE = "share_type";
 | 
					 | 
				
			||||||
	private static final String NODE_SHARE_WITH = "share_with";
 | 
					 | 
				
			||||||
	private static final String NODE_FILE_SOURCE = "file_source";
 | 
					 | 
				
			||||||
	private static final String NODE_PATH = "path";
 | 
					 | 
				
			||||||
	private static final String NODE_PERMISSIONS = "permissions";
 | 
					 | 
				
			||||||
	private static final String NODE_STIME = "stime";
 | 
					 | 
				
			||||||
	private static final String NODE_EXPIRATION = "expiration";
 | 
					 | 
				
			||||||
	private static final String NODE_TOKEN = "token";
 | 
					 | 
				
			||||||
	private static final String NODE_STORAGE = "storage";
 | 
					 | 
				
			||||||
	private static final String NODE_MAIL_SEND = "mail_send";
 | 
					 | 
				
			||||||
	private static final String NODE_SHARE_WITH_DISPLAY_NAME = "share_with_display_name";
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	private static final String TYPE_FOLDER = "folder";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	private String mStatus;
 | 
					 | 
				
			||||||
	private int mStatusCode;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// Getters and Setters
 | 
					 | 
				
			||||||
	public String getStatus() {
 | 
					 | 
				
			||||||
		return mStatus;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	public void setStatus(String status) {
 | 
					 | 
				
			||||||
		this.mStatus = status;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	public int getStatusCode() {
 | 
					 | 
				
			||||||
		return mStatusCode;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	public void setStatusCode(int statusCode) {
 | 
					 | 
				
			||||||
		this.mStatusCode = statusCode;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// Constructor
 | 
					 | 
				
			||||||
	public GetSharesForFileXMLParser() {
 | 
					 | 
				
			||||||
		// TODO Auto-generated constructor stub
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/**
 | 
					 | 
				
			||||||
	 * Parse is as response of Share API
 | 
					 | 
				
			||||||
	 * @param is
 | 
					 | 
				
			||||||
	 * @return List of ShareRemoteFiles
 | 
					 | 
				
			||||||
	 * @throws XmlPullParserException
 | 
					 | 
				
			||||||
	 * @throws IOException
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	public ArrayList<OCShare> parseXMLResponse(InputStream is) throws XmlPullParserException, IOException {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		try {
 | 
					 | 
				
			||||||
			// XMLPullParser
 | 
					 | 
				
			||||||
			XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
 | 
					 | 
				
			||||||
			factory.setNamespaceAware(true);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			XmlPullParser parser = Xml.newPullParser();
 | 
					 | 
				
			||||||
			parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
 | 
					 | 
				
			||||||
			parser.setInput(is, null);
 | 
					 | 
				
			||||||
			parser.nextTag();
 | 
					 | 
				
			||||||
			return readOCS(parser);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		} finally {
 | 
					 | 
				
			||||||
			is.close();
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/**
 | 
					 | 
				
			||||||
	 * Parse OCS node
 | 
					 | 
				
			||||||
	 * @param parser
 | 
					 | 
				
			||||||
	 * @return List of ShareRemoteFiles
 | 
					 | 
				
			||||||
	 * @throws XmlPullParserException
 | 
					 | 
				
			||||||
	 * @throws IOException
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	private ArrayList<OCShare> readOCS (XmlPullParser parser) throws XmlPullParserException, IOException {
 | 
					 | 
				
			||||||
		ArrayList<OCShare> shares = new ArrayList<OCShare>();
 | 
					 | 
				
			||||||
		parser.require(XmlPullParser.START_TAG,  ns , NODE_OCS);
 | 
					 | 
				
			||||||
		while (parser.next() != XmlPullParser.END_TAG) {
 | 
					 | 
				
			||||||
			if (parser.getEventType() != XmlPullParser.START_TAG) {
 | 
					 | 
				
			||||||
				continue;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			String name = parser.getName();
 | 
					 | 
				
			||||||
			// read NODE_META and NODE_DATA
 | 
					 | 
				
			||||||
			if (name.equalsIgnoreCase(NODE_META)) {
 | 
					 | 
				
			||||||
				readMeta(parser);
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_DATA)) {
 | 
					 | 
				
			||||||
				shares = readData(parser);
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				skip(parser);
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		return shares;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/**
 | 
					 | 
				
			||||||
	 * Parse Meta node
 | 
					 | 
				
			||||||
	 * @param parser
 | 
					 | 
				
			||||||
	 * @throws XmlPullParserException
 | 
					 | 
				
			||||||
	 * @throws IOException
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	private void readMeta(XmlPullParser parser) throws XmlPullParserException, IOException {
 | 
					 | 
				
			||||||
		parser.require(XmlPullParser.START_TAG, ns, NODE_META);
 | 
					 | 
				
			||||||
		Log.d(TAG, "---- NODE META ---");
 | 
					 | 
				
			||||||
		while (parser.next() != XmlPullParser.END_TAG) {
 | 
					 | 
				
			||||||
			if (parser.getEventType() != XmlPullParser.START_TAG) {
 | 
					 | 
				
			||||||
				continue;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			String name = parser.getName();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			if  (name.equalsIgnoreCase(NODE_STATUS)) {
 | 
					 | 
				
			||||||
				setStatus(readNode(parser, NODE_STATUS));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_STATUS_CODE)) {
 | 
					 | 
				
			||||||
				setStatusCode(Integer.parseInt(readNode(parser, NODE_STATUS_CODE)));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				skip(parser);
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/**
 | 
					 | 
				
			||||||
	 * Parse Data node
 | 
					 | 
				
			||||||
	 * @param parser
 | 
					 | 
				
			||||||
	 * @return
 | 
					 | 
				
			||||||
	 * @throws XmlPullParserException
 | 
					 | 
				
			||||||
	 * @throws IOException
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	private ArrayList<OCShare> readData(XmlPullParser parser) throws XmlPullParserException, IOException {
 | 
					 | 
				
			||||||
		ArrayList<OCShare> shares = new ArrayList<OCShare>();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		parser.require(XmlPullParser.START_TAG, ns, NODE_DATA);		
 | 
					 | 
				
			||||||
		Log.d(TAG, "---- NODE DATA ---");
 | 
					 | 
				
			||||||
		while (parser.next() != XmlPullParser.END_TAG) {
 | 
					 | 
				
			||||||
			if (parser.getEventType() != XmlPullParser.START_TAG) {
 | 
					 | 
				
			||||||
				continue;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			String name = parser.getName();
 | 
					 | 
				
			||||||
			if (name.equalsIgnoreCase(NODE_ELEMENT)) {
 | 
					 | 
				
			||||||
				shares.add(readElement(parser));
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				skip(parser);
 | 
					 | 
				
			||||||
				
 | 
					 | 
				
			||||||
			} 
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		return shares;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/** 
 | 
					 | 
				
			||||||
	 * Parse Element node
 | 
					 | 
				
			||||||
	 * @param parser
 | 
					 | 
				
			||||||
	 * @return
 | 
					 | 
				
			||||||
	 * @throws XmlPullParserException
 | 
					 | 
				
			||||||
	 * @throws IOException
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	private OCShare readElement(XmlPullParser parser) throws XmlPullParserException, IOException {
 | 
					 | 
				
			||||||
		parser.require(XmlPullParser.START_TAG, ns, NODE_ELEMENT);
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		OCShare share = new OCShare();
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		Log.d(TAG, "---- NODE ELEMENT ---");
 | 
					 | 
				
			||||||
		while (parser.next() != XmlPullParser.END_TAG) {
 | 
					 | 
				
			||||||
			if (parser.getEventType() != XmlPullParser.START_TAG) {
 | 
					 | 
				
			||||||
				continue;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			
 | 
					 | 
				
			||||||
			String name = parser.getName();
 | 
					 | 
				
			||||||
			
 | 
					 | 
				
			||||||
			if (name.equalsIgnoreCase(NODE_ELEMENT)) {
 | 
					 | 
				
			||||||
				share = readElement(parser);
 | 
					 | 
				
			||||||
				
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_ID)) {
 | 
					 | 
				
			||||||
				share.setIdRemoteShared(Integer.parseInt(readNode(parser, NODE_ID)));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_ITEM_TYPE)) {
 | 
					 | 
				
			||||||
				share.setIsDirectory(readNode(parser, NODE_ITEM_TYPE).equalsIgnoreCase(TYPE_FOLDER));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_ITEM_SOURCE)) {
 | 
					 | 
				
			||||||
				share.setItemSource(Long.parseLong(readNode(parser, NODE_ITEM_SOURCE)));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_PARENT)) {
 | 
					 | 
				
			||||||
				readNode(parser, NODE_PARENT);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_SHARE_TYPE)) {
 | 
					 | 
				
			||||||
				int value = Integer.parseInt(readNode(parser, NODE_SHARE_TYPE));
 | 
					 | 
				
			||||||
				share.setShareType(ShareType.fromValue(value));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_SHARE_WITH)) {
 | 
					 | 
				
			||||||
				share.setShareWith(readNode(parser, NODE_SHARE_WITH));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_FILE_SOURCE)) {
 | 
					 | 
				
			||||||
				share.setFileSource(Long.parseLong(readNode(parser, NODE_FILE_SOURCE)));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_PATH)) {
 | 
					 | 
				
			||||||
				share.setPath(readNode(parser, NODE_PATH));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_PERMISSIONS)) {
 | 
					 | 
				
			||||||
				share.setPermissions(Integer.parseInt(readNode(parser, NODE_PERMISSIONS)));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_STIME)) {
 | 
					 | 
				
			||||||
				share.setSharedDate(Long.parseLong(readNode(parser, NODE_STIME)));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_EXPIRATION)) {
 | 
					 | 
				
			||||||
				String value = readNode(parser, NODE_EXPIRATION);
 | 
					 | 
				
			||||||
				if (!value.isEmpty()) {
 | 
					 | 
				
			||||||
					share.setExpirationDate(Long.parseLong(readNode(parser, NODE_EXPIRATION))); // check if expiration is in long format or date format
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_TOKEN)) {
 | 
					 | 
				
			||||||
				share.setToken(readNode(parser, NODE_TOKEN));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_STORAGE)) {
 | 
					 | 
				
			||||||
				readNode(parser, NODE_STORAGE);
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_MAIL_SEND)) {
 | 
					 | 
				
			||||||
				readNode(parser, NODE_MAIL_SEND);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else if (name.equalsIgnoreCase(NODE_SHARE_WITH_DISPLAY_NAME)) {
 | 
					 | 
				
			||||||
				share.setSharedWithDisplayName(readNode(parser, NODE_SHARE_WITH_DISPLAY_NAME));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				skip(parser);
 | 
					 | 
				
			||||||
			} 
 | 
					 | 
				
			||||||
		}		
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		return share;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/**
 | 
					 | 
				
			||||||
	 * Parse a node, to obtain its text. Needs readText method
 | 
					 | 
				
			||||||
	 * @param parser
 | 
					 | 
				
			||||||
	 * @param node
 | 
					 | 
				
			||||||
	 * @return Text of the node
 | 
					 | 
				
			||||||
	 * @throws XmlPullParserException
 | 
					 | 
				
			||||||
	 * @throws IOException
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	private String readNode (XmlPullParser parser, String node) throws XmlPullParserException, IOException{
 | 
					 | 
				
			||||||
		parser.require(XmlPullParser.START_TAG, ns, node);
 | 
					 | 
				
			||||||
		String value = readText(parser);
 | 
					 | 
				
			||||||
		Log.d(TAG, "node= " + node + ", value= " + value);
 | 
					 | 
				
			||||||
		parser.require(XmlPullParser.END_TAG, ns, node);
 | 
					 | 
				
			||||||
		return value;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	/**
 | 
					 | 
				
			||||||
	 * Read the text from a node
 | 
					 | 
				
			||||||
	 * @param parser
 | 
					 | 
				
			||||||
	 * @return Text of the node
 | 
					 | 
				
			||||||
	 * @throws IOException
 | 
					 | 
				
			||||||
	 * @throws XmlPullParserException
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	private String readText(XmlPullParser parser) throws IOException, XmlPullParserException {
 | 
					 | 
				
			||||||
		String result = "";
 | 
					 | 
				
			||||||
		if (parser.next() == XmlPullParser.TEXT) {
 | 
					 | 
				
			||||||
			result = parser.getText();
 | 
					 | 
				
			||||||
			parser.nextTag();
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		return result;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/**
 | 
					 | 
				
			||||||
	 * Skip tags in parser procedure
 | 
					 | 
				
			||||||
	 * @param parser
 | 
					 | 
				
			||||||
	 * @throws XmlPullParserException
 | 
					 | 
				
			||||||
	 * @throws IOException
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	private void skip(XmlPullParser parser) throws XmlPullParserException, IOException {
 | 
					 | 
				
			||||||
		if (parser.getEventType() != XmlPullParser.START_TAG) {
 | 
					 | 
				
			||||||
			throw new IllegalStateException();
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		int depth = 1;
 | 
					 | 
				
			||||||
		while (depth != 0) {
 | 
					 | 
				
			||||||
			switch (parser.next()) {
 | 
					 | 
				
			||||||
			case XmlPullParser.END_TAG:
 | 
					 | 
				
			||||||
				depth--;
 | 
					 | 
				
			||||||
				break;
 | 
					 | 
				
			||||||
			case XmlPullParser.START_TAG:
 | 
					 | 
				
			||||||
				depth++;
 | 
					 | 
				
			||||||
				break;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user