package com.mortarnav.view; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.content.Context; import android.support.v4.view.ViewPager; import android.view.View; import com.mortarnav.R; import com.mortarnav.ToolbarOwner; import com.mortarnav.presenter.SlidesPresenter; import com.mortarnav.presenter.stackable.SlidePageStackable; import com.mortarnav.presenter.stackable.SlidesStackableComponent; import javax.inject.Inject; import architect.ViewTransitionDirection; import architect.commons.adapter.StackablePagerAdapter; import architect.commons.view.PresentedLinearLayout; import architect.robot.DaggerService; import architect.view.HandlesViewTransition; import autodagger.AutoInjector; import butterknife.Bind; import butterknife.ButterKnife; /** * @author Lukasz Piliszczuk - lukasz.pili@gmail.com */ @AutoInjector(SlidesPresenter.class) public class SlidesView extends PresentedLinearLayout<SlidesPresenter> implements HandlesViewTransition { @Inject protected ToolbarOwner toolbarOwner; @Bind(R.id.pager) public ViewPager viewPager; public StackablePagerAdapter adapter; public SlidesView(Context context) { super(context); DaggerService.<SlidesStackableComponent>get(context).inject(this); View view = View.inflate(context, R.layout.slides_view, this); ButterKnife.bind(view); } public void show(SlidePageStackable[] pages) { adapter = new StackablePagerAdapter(getContext(), pages); viewPager.setAdapter(adapter); } @Override public void onViewTransition(AnimatorSet set) { if (set != null) { set.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { toolbarOwner.hide(); } }); Animator animator = toolbarOwner.animateHide(); if (animator != null) { set.play(animator); } } else { toolbarOwner.hide(); } } }