package net.coding.program.project;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.PagerAdapter;
import android.util.Log;
import android.view.ViewGroup;
import net.coding.program.common.SaveFragmentPagerAdapter;
import net.coding.program.model.ProjectObject;
import java.util.ArrayList;
/**
* Created by chenchao on 15/8/1.
*/
class ProjectPagerAdapter extends SaveFragmentPagerAdapter {
private ProjectFragment projectFragment;
private ArrayList<ProjectObject> mData;
public ProjectPagerAdapter(ProjectFragment projectFragment, FragmentManager fm, ArrayList<ProjectObject> data) {
super(fm);
this.projectFragment = projectFragment;
this.mData = data;
}
@Override
public CharSequence getPageTitle(int position) {
return projectFragment.program_title[position];
}
@Override
public int getCount() {
return projectFragment.program_title.length;
}
@Override
public int getItemPosition(Object object) {
return PagerAdapter.POSITION_NONE;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ProjectListFragment fragment = (ProjectListFragment) super.instantiateItem(container, position);
fragment.setData(getChildData(position), projectFragment.requestOk);
return fragment;
}
@Override
public Fragment getItem(int position) {
Log.d("", "all p " + position);
ProjectListFragment fragment = new ProjectListFragment_();
Bundle bundle = new Bundle();
bundle.putSerializable("mData", getChildData(position));
fragment.setArguments(bundle);
saveFragment(fragment);
return fragment;
}
private ArrayList<ProjectObject> getChildData(int position) {
ArrayList<ProjectObject> childData = new ArrayList<>();
switch (position) {
case 1:
stuffChildData(childData, "member");
break;
case 2:
stuffChildData(childData, "owner");
break;
default:
childData.addAll(mData);
break;
}
return childData;
}
void stuffChildData(ArrayList<ProjectObject> child, String type) {
for (int i = 0; i < mData.size(); ++i) {
ProjectObject item = mData.get(i);
if (item.current_user_role.equals(type)) {
child.add(item);
}
}
}
}