package agency.tango.materialintroscreen.adapter;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.view.ViewGroup;
import java.util.ArrayList;
import agency.tango.materialintroscreen.SlideFragment;
public class SlidesAdapter extends FragmentStatePagerAdapter {
private ArrayList<SlideFragment> fragments = new ArrayList<>();
public SlidesAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public SlideFragment getItem(int position) {
return fragments.get(position);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
SlideFragment fragment = (SlideFragment) super.instantiateItem(container, position);
fragments.set(position, fragment);
return fragment;
}
@Override
public int getCount() {
return fragments.size();
}
public void addItem(SlideFragment fragment) {
fragments.add(getCount(), fragment);
notifyDataSetChanged();
}
public int getLastItemPosition() {
return getCount() - 1;
}
public boolean isLastSlide(int position) {
return position == getCount() - 1;
}
public boolean shouldFinish(int position) {
return position == getCount() && getItem(getCount() - 1).canMoveFurther();
}
public boolean shouldLockSlide(int position) {
SlideFragment fragment = getItem(position);
return !fragment.canMoveFurther() || fragment.hasNeededPermissionsToGrant();
}
}