package org.aisen.weibo.sina.ui.fragment.timeline; 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.AppSettings; import org.aisen.weibo.sina.support.utils.BaiduAnalyzeUtils; import org.aisen.weibo.sina.ui.activity.main.MainActivity; import org.aisen.weibo.sina.ui.activity.search.SearchActivity; import org.aisen.weibo.sina.ui.component.AMainTabsFragment; import org.aisen.weibo.sina.ui.fragment.group.GroupSortFragment; import org.sina.android.bean.Group; import org.sina.android.bean.Groups; import org.sina.android.bean.WeiBoUser; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import com.m.common.context.GlobalContext; import com.m.ui.fragment.ABaseFragment; /** * 首页微博界面 * * @author wangdan * */ public class MainTimelinePagerFragment extends AMainTabsFragment<TimelineGroupBean> { public static ABaseFragment newInstance() { return new MainTimelinePagerFragment(); } private WeiBoUser loggedIn; @Override protected void layoutInit(LayoutInflater inflater, Bundle savedInstanceSate) { loggedIn = AppContext.getUser(); // 2014-8-30 解决因为状态保存而导致的耗时阻塞 if (savedInstanceSate != null) { ArrayList<TimelineGroupBean> mChanneList = getPageTitleBeans(); for (int i = 0; i < mChanneList.size(); i++) { ABaseFragment fragment = (ABaseFragment) getActivity().getFragmentManager() .findFragmentByTag(mChanneList.get(i).getTitle() + setFragmentTitle()); if (fragment != null) getActivity().getFragmentManager().beginTransaction().remove(fragment).commit(); } } super.layoutInit(inflater, null); setHasOptionsMenu(true); } @Override public void onSaveInstanceState(Bundle outState) { // super.onSaveInstanceState(outState); } @Override protected ArrayList<TimelineGroupBean> getPageTitleBeans() { ArrayList<TimelineGroupBean> groupList = new ArrayList<TimelineGroupBean>(); // 是否显示默认分组(好友分组为空时,忽略设置) if (AppSettings.isShowDefGroup() || AppContext.getGroups() == null || AppContext.getGroups().getLists().size() == 0) { // 全部好友 groupList.add(newGroup("0", getString(R.string.timeline_all), "statusesFriendsTimeLine")); // 相互关注 groupList.add(newGroup("0", getString(R.string.timeline_bilateral), "statusesBilateralTimeLine")); // 发给我的 groupList.add(newGroup("0", getString(R.string.timeline_tome), "statusesToMe")); } // 好友分组 Groups groups = AppContext.getGroups(); if (groups != null) { for (Group group : groups.getLists()) { groupList.add(newGroup("1", group.getName(), group.getId())); } } return groupList; } private TimelineGroupBean newGroup(String group, String title, String type) { TimelineGroupBean bean = new TimelineGroupBean(); bean.setGroup(group); bean.setTitle(title); bean.setType(type); return bean; } @Override protected String setFragmentTitle() { return AisenUtil.getUserKey(GlobalContext.getInstance().getResources().getString(R.string.draw_timeline), loggedIn); } @Override protected ABaseFragment newFragment(TimelineGroupBean bean) { // 默认分组 if ("0".equals(bean.getGroup())) return DefGroupTimelineFragment.newInstance(bean); // 好友分组 return FriendGroupTimelineFragment.newInstance(bean); } @Override protected void replaceSelfInActivity() { getActivity().getFragmentManager().beginTransaction() .replace(R.id.content_frame, newInstance(), "MainFragment") .commit(); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); if (AppContext.getGroups() != null && AppContext.getGroups().getLists().size() > 0) inflater.inflate(R.menu.timeline, menu); } @Override public void onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); if (getActivity() != null && AppContext.getGroups() != null && AppContext.getGroups().getLists().size() > 0) { menu.setGroupVisible(R.id.timelineMenus, !((MainActivity) getActivity()).isDrawerOpened()); } // menu.setGroupVisible(R.id.timelineSearch, !((MainActivity) getActivity()).isDrawerOpened()); menu.setGroupVisible(R.id.timelineSearch, false); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.friendGroups) GroupSortFragment.lanuch(getActivity()); else if (item.getItemId() == R.id.search) SearchActivity.launch(getActivity()); return super.onOptionsItemSelected(item); } @Override public void onResume() { super.onResume(); BaiduAnalyzeUtils.onPageStart("微博首页"); } @Override public void onPause() { super.onPause(); BaiduAnalyzeUtils.onPageEnd("微博首页"); } }