package org.itsnat.droid.impl.xmlinflater.animinterp; import android.view.animation.Interpolator; import org.itsnat.droid.AttrResourceInflaterListener; import org.itsnat.droid.impl.dom.animinterp.DOMElemInterpolator; import org.itsnat.droid.impl.dom.animinterp.XMLDOMInterpolator; import org.itsnat.droid.impl.xmlinflated.animinterp.InflatedXMLInterpolator; import org.itsnat.droid.impl.xmlinflater.XMLInflaterResource; import org.itsnat.droid.impl.xmlinflater.animinterp.classtree.ClassDescInterpolatorBased; /** * Created by jmarranz on 4/11/14. */ public class XMLInflaterInterpolator extends XMLInflaterResource<Interpolator> { protected XMLInflaterInterpolator(InflatedXMLInterpolator inflatedXML, int bitmapDensityReference, AttrResourceInflaterListener attrResourceInflaterListener) { super(inflatedXML, bitmapDensityReference, attrResourceInflaterListener); } public static XMLInflaterInterpolator createXMLInflaterInterpolator(InflatedXMLInterpolator inflatedInterpolator, int bitmapDensityReference, AttrResourceInflaterListener attrResourceInflaterListener) { return new XMLInflaterInterpolator(inflatedInterpolator,bitmapDensityReference,attrResourceInflaterListener); } @SuppressWarnings("unchecked") public ClassDescInterpolatorBased<Interpolator> getClassDescInterpolatorBased(DOMElemInterpolator domElemInterpolator) { ClassDescInterpolatorMgr classDescMgr = getInflatedXMLInterpolator().getXMLInflaterRegistry().getClassDescInterpolatorMgr(); return classDescMgr.get(domElemInterpolator.getTagName()); } public InflatedXMLInterpolator getInflatedXMLInterpolator() { return (InflatedXMLInterpolator)inflatedXML; } public Interpolator inflateInterpolator() { return inflateRoot(getInflatedXMLInterpolator().getXMLDOMInterpolator()); } private Interpolator inflateRoot(XMLDOMInterpolator xmlDOMInterpolator) { DOMElemInterpolator rootDOMElem = (DOMElemInterpolator)xmlDOMInterpolator.getRootDOMElement(); AttrInterpolatorContext attrCtx = new AttrInterpolatorContext(this); ClassDescInterpolatorBased<Interpolator> classDesc = getClassDescInterpolatorBased(rootDOMElem); Interpolator interpolatorRoot = classDesc.createRootResourceAndFillAttributes(rootDOMElem, attrCtx); // NO hay hijos return interpolatorRoot; } }