package com.appboy.ui.inappmessage.factories; import android.content.res.Resources; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import com.appboy.enums.inappmessage.SlideFrom; import com.appboy.models.IInAppMessage; import com.appboy.models.InAppMessageSlideup; import com.appboy.ui.inappmessage.IInAppMessageAnimationFactory; import com.appboy.ui.support.AnimationUtils; public class AppboyInAppMessageAnimationFactory implements IInAppMessageAnimationFactory { private final int mShortAnimationDurationMillis = Resources.getSystem().getInteger(android.R.integer.config_shortAnimTime); @Override public Animation getOpeningAnimation(IInAppMessage inAppMessage) { if (inAppMessage instanceof InAppMessageSlideup) { InAppMessageSlideup inAppMessageSlideup = (InAppMessageSlideup) inAppMessage; if (inAppMessageSlideup.getSlideFrom() == SlideFrom.TOP) { return AnimationUtils.createVerticalAnimation(-1, 0, mShortAnimationDurationMillis, false); } else { return AnimationUtils.createVerticalAnimation(1, 0, mShortAnimationDurationMillis, false); } } else { return AnimationUtils.setAnimationParams(new AlphaAnimation(0, 1), mShortAnimationDurationMillis, true); } } @Override public Animation getClosingAnimation(IInAppMessage inAppMessage) { if (inAppMessage instanceof InAppMessageSlideup) { InAppMessageSlideup inAppMessageSlideup = (InAppMessageSlideup) inAppMessage; if (inAppMessageSlideup.getSlideFrom() == SlideFrom.TOP) { return AnimationUtils.createVerticalAnimation(0, -1, mShortAnimationDurationMillis, false); } else { return AnimationUtils.createVerticalAnimation(0, 1, mShortAnimationDurationMillis, false); } } else { return AnimationUtils.setAnimationParams(new AlphaAnimation(1, 0), mShortAnimationDurationMillis, false); } } }