package org.gdg.frisbee.android.gde;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.util.SparseArray;
import org.gdg.frisbee.android.R;
import org.gdg.frisbee.android.common.PlainLayoutFragment;
import org.gdg.frisbee.android.utils.Utils;
import java.lang.ref.WeakReference;
import java.util.List;
class GdeCategoryPagerAdapter extends FragmentStatePagerAdapter {
private final SparseArray<WeakReference<Fragment>> mFragments = new SparseArray<>();
private final String titleAbout;
private final List<GdeCategory> gdeCategoryList;
GdeCategoryPagerAdapter(FragmentManager fm, String titleAbout, List<GdeCategory> gdeCategoryList) {
super(fm);
this.titleAbout = titleAbout;
this.gdeCategoryList = gdeCategoryList;
}
@Override
public int getCount() {
return gdeCategoryList.size() + 1;
}
@Override
public Fragment getItem(int position) {
if (position == 0) {
return PlainLayoutFragment.newInstance(R.layout.fragment_gde_about);
} else {
GdeCategory gdeCategory = gdeCategoryList.get(position - 1);
Fragment frag = GdeListFragment.newInstance(gdeCategory.getGdeList());
mFragments.append(position, new WeakReference<>(frag));
return frag;
}
}
@Override
public CharSequence getPageTitle(int position) {
if (position == 0) {
return titleAbout;
} else {
String title = gdeCategoryList.get(position - 1).getCategory();
return title.length() > 14 ? Utils.getUppercaseLetters(title) : title;
}
}
}