package com.buddycloud;
import java.util.ArrayList;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import com.buddycloud.fragments.ContentFragment;
public class ContentPageAdapter extends FragmentPagerAdapter {
private ArrayList<ContentFragment> mFragments;
private final FragmentManager fm;
private ViewPager viewPager;
public ContentPageAdapter(FragmentManager fm, ViewPager viewPager) {
super(fm);
this.fm = fm;
this.viewPager = viewPager;
this.mFragments = new ArrayList<ContentFragment>();
}
public void setLeftFragment(ContentFragment fragment) {
if (mFragments.isEmpty()) {
mFragments.add(fragment);
} else {
fm.beginTransaction().remove(mFragments.get(0)).commitAllowingStateLoss();
mFragments.set(0, fragment);
}
notifyDataSetChanged();
setCurrentFragment(0);
}
public ContentFragment getLeftFragment() {
return mFragments.get(0);
}
public void setRightFragment(ContentFragment fragment) {
if (mFragments.size() < 2) {
mFragments.add(fragment);
} else {
fm.beginTransaction().remove(mFragments.get(1)).commitAllowingStateLoss();
mFragments.set(1, fragment);
}
notifyDataSetChanged();
setCurrentFragment(1);
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public int getItemPosition(Object object) {
if (mFragments.contains(object)) {
return POSITION_UNCHANGED;
}
return POSITION_NONE;
}
@Override
public Fragment getItem(int position) {
if (mFragments.isEmpty()) {
return null;
}
return mFragments.get(position);
}
public int getCurrentFragmentIndex() {
return viewPager.getCurrentItem();
}
public void setCurrentFragment(int fragIdx) {
viewPager.setCurrentItem(fragIdx, true);
}
public ContentFragment getCurrentFragment() {
return (ContentFragment) getItem(viewPager.getCurrentItem());
}
}