package org.itsnat.droid.impl.xmlinflater.layout.attr.widget; import android.animation.ObjectAnimator; import android.view.View; import android.widget.AdapterViewAnimator; import org.itsnat.droid.impl.dom.DOMAttr; import org.itsnat.droid.impl.util.MiscUtil; import org.itsnat.droid.impl.xmlinflater.layout.AttrLayoutContext; import org.itsnat.droid.impl.xmlinflater.layout.classtree.ClassDescViewBased; import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDesc; /** * Created by jmarranz on 30/04/14. */ public class AttrDescView_widget_AdapterViewAnimator_inoutAnimation extends AttrDesc<ClassDescViewBased,View,AttrLayoutContext> { protected static final int DEFAULT_ANIMATION_DURATION = 200; // Copiado del código fuente public AttrDescView_widget_AdapterViewAnimator_inoutAnimation(ClassDescViewBased parent, String name) { super(parent,name); } @Override public void setAttribute(View view, DOMAttr attr, AttrLayoutContext attrCtx) { ObjectAnimator animator = (ObjectAnimator) getAnimator(attr.getResourceDesc(), attrCtx.getXMLInflaterContext()); AdapterViewAnimator adapterViewAnimator = (AdapterViewAnimator)view; String value = attr.getName(); if ("inAnimation".equals(value)) { if (animator == null) animator = getDefaultInAnimation(); adapterViewAnimator.setInAnimation(animator); } else if ("outAnimation".equals(value)) { if (animator == null) animator = getDefaultOutAnimation(); adapterViewAnimator.setOutAnimation(animator); } else throw MiscUtil.internalError(); } @Override public void removeAttribute(View view, AttrLayoutContext attrCtx) { setAttributeToRemove(view, "0", attrCtx); } protected static ObjectAnimator getDefaultInAnimation() { // Copiado del código fuente ObjectAnimator anim = ObjectAnimator.ofFloat(null, "alpha", 0.0f, 1.0f); anim.setDuration(DEFAULT_ANIMATION_DURATION); return anim; } protected static ObjectAnimator getDefaultOutAnimation() { // Copiado del código fuente ObjectAnimator anim = ObjectAnimator.ofFloat(null, "alpha", 1.0f, 0.0f); anim.setDuration(DEFAULT_ANIMATION_DURATION); return anim; } }