package net.coding.program.user;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.util.TypedValue;
import net.coding.program.R;
import net.coding.program.common.SaveFragmentPagerAdapter;
import net.coding.program.common.ui.BackActivity;
import net.coding.program.model.UserObject;
import net.coding.program.third.WechatTab;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.Extra;
import org.androidannotations.annotations.OptionsMenu;
import org.androidannotations.annotations.ViewById;
@EActivity(R.layout.activity_user_project)
@OptionsMenu(R.menu.menu_user_project)
public class UserProjectActivity extends BackActivity {
@Extra
UserObject mUserObject;
String[] fragmentTitles;
@ViewById
WechatTab tabs;
@ViewById(R.id.pagerFragmentProgram)
ViewPager pager;
@AfterViews
protected final void init() {
ActionBar actionBar = getSupportActionBar();
if (mUserObject.isMe()) {
fragmentTitles = getResources().getStringArray(R.array.user_me_program_title);
actionBar.setTitle("我的项目");
} else {
fragmentTitles = getResources().getStringArray(R.array.user_program_title);
actionBar.setTitle("TA的项目");
}
MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager());
pager.setAdapter(adapter);
int pageMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, getResources()
.getDisplayMetrics());
pager.setPageMargin(pageMargin);
tabs.setViewPager(pager);
}
class MyPagerAdapter extends SaveFragmentPagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public CharSequence getPageTitle(int position) {
return fragmentTitles[position];
}
@Override
public int getCount() {
return fragmentTitles.length;
}
@Override
public Fragment getItem(int position) {
final UserProjectListFragment.Type types[] = new UserProjectListFragment.Type[]{
UserProjectListFragment.Type.joined,
UserProjectListFragment.Type.stared
};
Fragment fragment = UserProjectListFragment_.builder()
.mUserObject(mUserObject)
.mType(types[position])
.build();
saveFragment(fragment);
return fragment;
}
}
}