package org.itsnat.droid.impl.domparser.animlayout; import org.itsnat.droid.ItsNatDroidException; import org.itsnat.droid.impl.dom.DOMElement; import org.itsnat.droid.impl.dom.animlayout.DOMElemGridLayoutAnimation; import org.itsnat.droid.impl.dom.animlayout.DOMElemLayoutAnimation; import org.itsnat.droid.impl.dom.animlayout.XMLDOMLayoutAnimation; import org.itsnat.droid.impl.domparser.XMLDOMParser; import org.itsnat.droid.impl.domparser.XMLDOMParserContext; /** * Created by jmarranz on 31/10/14. */ public class XMLDOMLayoutAnimationParser extends XMLDOMParser<XMLDOMLayoutAnimation> { /* https://developer.android.com/reference/android/view/animation/LayoutAnimationController.html http://stackoverflow.com/questions/3445823/having-trouble-animating-listview-layout http://developerlife.com/tutorials/?p=343 http://stackoverflow.com/questions/19264534/gridlayoutanimation-does-not-works */ protected XMLDOMLayoutAnimationParser(XMLDOMParserContext xmlDOMParserContext) { super(xmlDOMParserContext); } public static XMLDOMLayoutAnimationParser createXMLDOMLayoutAnimationParser(XMLDOMParserContext xmlDOMParserContext) { return new XMLDOMLayoutAnimationParser(xmlDOMParserContext); } public static boolean isLayoutAnimatorRoot(String rootElemName) { return ("layoutAnimation".equals(rootElemName) || "gridLayoutAnimation".equals(rootElemName)); } @Override protected boolean isAndroidNSPrefixNeeded() { return true; } @Override protected DOMElement createElement(String tagName,DOMElement parent) { if ("layoutAnimation".equals(tagName)) { return new DOMElemLayoutAnimation(); } else if ("gridLayoutAnimation".equals(tagName)) { return new DOMElemGridLayoutAnimation(); } else throw new ItsNatDroidException("Unrecognized layoutAnimation tag name: " + tagName); } }