package net.coding.program.project.detail.merge;
import android.app.Activity;
import android.content.Intent;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.widget.RadioGroup;
import net.coding.program.R;
import net.coding.program.common.ui.BaseActivity;
import net.coding.program.common.ui.BaseFragment;
import net.coding.program.model.ProjectObject;
import net.coding.program.third.WechatTab;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.EFragment;
import org.androidannotations.annotations.FragmentArg;
import org.androidannotations.annotations.ViewById;
@EFragment(R.layout.fragment_project_merge2)
public class ProjectMergeFragment extends BaseFragment {
@ViewById
protected ViewPager viewPager;
@FragmentArg
ProjectObject mProjectObject;
@ViewById
RadioGroup checkGroup;
@ViewById
WechatTab tabs;
private MergePagerAdapter mAdapter;
@AfterViews
protected final void initProjectMergeFragment() {
String title = ProjectObject.getTitle(mProjectObject.isPublic());
((BaseActivity) getActivity()).getSupportActionBar().setTitle(title);
mAdapter = new MergePagerAdapter(getChildFragmentManager(), mProjectObject);
viewPager.setAdapter(mAdapter);
((RadioGroup) getView().findViewById(R.id.checkGroup)).setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.checkClose) {
mAdapter.setState(1);
} else {
mAdapter.setState(0);
}
mAdapter.notifyDataSetChanged();
}
});
tabs.setViewPager(viewPager);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == MergeListFragment.RESULT_CHANGE) {
if (resultCode == Activity.RESULT_OK) {
mAdapter.notifyDataSetChanged();
}
}
}
private static class MergePagerAdapter extends FragmentStatePagerAdapter {
private ProjectObject mProjectObject;
private int mStatus = 0;
ProjectObject.MergeExamine[] mine = new ProjectObject.MergeExamine[]{
ProjectObject.MergeExamine.review,
ProjectObject.MergeExamine.mine,
ProjectObject.MergeExamine.other
};
String[] titles = new String[]{
"我评审的",
"我发布的",
"全部的"
};
public MergePagerAdapter(FragmentManager fm, ProjectObject projectObject) {
super(fm);
mProjectObject = projectObject;
}
public void setState(int status) {
if (mStatus == status) {
return;
}
mStatus = status;
notifyDataSetChanged();
}
@Override
public Fragment getItem(int position) {
return MergeListFragment_
.builder()
.mProjectObject(mProjectObject)
.mType(mStatus)
.mMineType(mine[position])
.build();
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public int getCount() {
return mine.length;
}
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
}
}