package org.itsnat.droid.impl.xmlinflater.anim.classtree; import android.content.Context; import android.view.animation.AnimationSet; import org.itsnat.droid.impl.dom.DOMAttr; import org.itsnat.droid.impl.dom.DOMElement; import org.itsnat.droid.impl.util.NamespaceUtil; import org.itsnat.droid.impl.xmlinflater.FieldContainer; import org.itsnat.droid.impl.xmlinflater.anim.AttrAnimationContext; import org.itsnat.droid.impl.xmlinflater.anim.ClassDescAnimationMgr; import org.itsnat.droid.impl.xmlinflater.anim.attr.AttrDescAnimation_view_animation_AnimationSet_shareInterpolator; /** * Created by Jose on 15/10/2015. */ public class ClassDescAnimationSet extends ClassDescAnimationBased<AnimationSet> { // From AnimationSet private static final int PROPERTY_FILL_AFTER_MASK = 0x1; private static final int PROPERTY_FILL_BEFORE_MASK = 0x2; private static final int PROPERTY_REPEAT_MODE_MASK = 0x4; private static final int PROPERTY_START_OFFSET_MASK = 0x8; private static final int PROPERTY_DURATION_MASK = 0x20; protected FieldContainer<Integer> fieldMFlags; public ClassDescAnimationSet(ClassDescAnimationMgr classMgr, ClassDescAnimation parentClass) { super(classMgr, "set", parentClass); this.fieldMFlags = new FieldContainer<Integer>(AnimationSet.class,"mFlags"); } @Override public Class<AnimationSet> getDeclaredClass() { return AnimationSet.class; } @Override protected AnimationSet createResourceNative(Context ctx) { return new AnimationSet(ctx,null); } @Override public boolean isAttributeIgnored(AnimationSet resource, String namespaceURI, String name) { return false; } @Override public void fillResourceAttributes(AnimationSet animation, DOMElement domElement, AttrAnimationContext attrCtx) { super.fillResourceAttributes(animation,domElement,attrCtx); // Ver tambiƩn AttrDescAnimation_view_animation_AnimationSet_shareInterpolator AnimationSet animationSet = (AnimationSet)animation; int flags = fieldMFlags.get(animation); DOMAttr attrDuration = domElement.getDOMAttribute(NamespaceUtil.XMLNS_ANDROID, "duration"); if (attrDuration != null) flags |= PROPERTY_DURATION_MASK; DOMAttr attrFillBefore = domElement.getDOMAttribute(NamespaceUtil.XMLNS_ANDROID, "fillBefore"); if (attrFillBefore != null) flags |= PROPERTY_FILL_BEFORE_MASK; DOMAttr attrFillAfter = domElement.getDOMAttribute(NamespaceUtil.XMLNS_ANDROID, "fillAfter"); if (attrFillAfter != null) flags |= PROPERTY_FILL_AFTER_MASK; DOMAttr attrRepeatMode = domElement.getDOMAttribute(NamespaceUtil.XMLNS_ANDROID, "repeatMode"); if (attrRepeatMode != null) flags |= PROPERTY_REPEAT_MODE_MASK; DOMAttr attrStartOffset = domElement.getDOMAttribute(NamespaceUtil.XMLNS_ANDROID, "startOffset"); if (attrStartOffset != null) flags |= PROPERTY_START_OFFSET_MASK; fieldMFlags.set(animationSet,flags); } protected void init() { super.init(); addAttrDescAN(new AttrDescAnimation_view_animation_AnimationSet_shareInterpolator(this)); } }