package org.aisen.weibo.sina.ui.fragment.friendship; import java.util.ArrayList; import org.aisen.weibo.sina.R; import org.aisen.weibo.sina.support.bean.TimelineGroupBean; import org.aisen.weibo.sina.support.utils.AisenUtil; import org.aisen.weibo.sina.support.utils.AppContext; import org.aisen.weibo.sina.support.utils.BaiduAnalyzeUtils; import org.aisen.weibo.sina.ui.activity.common.FragmentContainerActivity; import org.aisen.weibo.sina.ui.component.AMainTabsFragment; import org.sina.android.bean.WeiBoUser; import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import com.m.ui.fragment.ABaseFragment; import com.m.ui.utils.FragmentArgs; /** * 首页朋友关系Pager * * @author wangdan * */ public class FriendshipPagerFragment extends AMainTabsFragment<TimelineGroupBean> { /** * 用户关系 * * @param from * @param user * @param type 1:粉丝 0:关注 2:互粉 */ public static void launch(Activity from, WeiBoUser user, int type) { FragmentArgs args = new FragmentArgs(); args.add("user", user); args.add("index", type); FragmentContainerActivity.launch(from, FriendshipPagerFragment.class, args); } public static ABaseFragment newInstance() { FriendshipPagerFragment fragment = new FriendshipPagerFragment(); Bundle args = new Bundle(); args.putSerializable("user", AppContext.getUser()); // 如果有新粉丝,默认选择粉丝页面 args.putInt("index", AppContext.getUnreadCount().getFollower() > 0 ? 1 : 0);; fragment.setArguments(args); return fragment; } private WeiBoUser mUser; private int type; @Override protected void layoutInit(LayoutInflater inflater, Bundle savedInstanceSate) { super.layoutInit(inflater, savedInstanceSate); mUser = savedInstanceSate == null ? (WeiBoUser) getArguments().getSerializable("user") : (WeiBoUser) savedInstanceSate.getSerializable("user"); type = savedInstanceSate == null ? getArguments().getInt("index", type) : savedInstanceSate.getInt("index"); getActivity().getActionBar().setDisplayHomeAsUpEnabled(true); getActivity().getActionBar().setTitle(AisenUtil.getUserScreenName(mUser)); setSubtitle(0); getViewPager().setCurrentItem(type); } @Override public void onPageSelected(int position) { super.onPageSelected(position); setSubtitle(position); } public void setSubtitle() { setSubtitle(getViewPager().getCurrentItem()); } public void setSubtitle(int position) { String[] titleArr = new String[]{ getString(R.string.friends), getString(R.string.followers) }; if (mUser.getIdstr().equals(AppContext.getUser().getIdstr())) titleArr = new String[]{ getString(R.string.friends), getString(R.string.followers), getString(R.string.bilateral) }; if (getFragment(titleArr[position] + setFragmentTitle()) != null) { int loaded = ((AFriendshipFragment) getFragment(titleArr[position] + setFragmentTitle())).getSize(); switch (position) { case 0: getActivity().getActionBar().setSubtitle(String.format("%d/%d", loaded, mUser.getFriends_count())); break; case 1: getActivity().getActionBar().setSubtitle(String.format("%d/%d", loaded, mUser.getFollowers_count())); break; case 2: getActivity().getActionBar().setSubtitle(String.format("%d/%d", loaded, mUser.getBi_followers_count())); break; default: break; } } } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putSerializable("user", mUser); outState.putInt("index", type); } @Override protected ArrayList<TimelineGroupBean> getPageTitleBeans() { ArrayList<TimelineGroupBean> beans = new ArrayList<TimelineGroupBean>(); beans.add(new TimelineGroupBean("300", getString(R.string.friends))); beans.add(new TimelineGroupBean("301", getString(R.string.followers))); // 是当前授权用户时,显示互粉 if (mUser.getIdstr().equals(AppContext.getUser().getIdstr())) beans.add(new TimelineGroupBean("302", getString(R.string.bilateral))); return beans; } @Override protected String setFragmentTitle() { return "FriendshipPagerFragment"; } @Override protected ABaseFragment newFragment(TimelineGroupBean bean) { switch (Integer.parseInt(bean.getType())) { case 300: return FriendsFragment.newInstance(mUser); case 301: return FollowersFragment.newInstance(mUser); case 302: return BilateralFragment.newInstance(mUser); } return null; } @Override protected void replaceSelfInActivity() { getActivity().getFragmentManager().beginTransaction() .replace(R.id.content_frame, newInstance(), "MainFragment") .commit(); } @Override public void onResume() { super.onResume(); BaiduAnalyzeUtils.onPageStart("朋友圈"); } @Override public void onPause() { super.onPause(); BaiduAnalyzeUtils.onPageEnd("朋友圈"); } }