package org.qii.weiciyuan.ui.main; import com.slidingmenu.lib.SlidingMenu; import org.qii.weiciyuan.R; import org.qii.weiciyuan.bean.AccountBean; import org.qii.weiciyuan.bean.android.TimeLinePosition; import org.qii.weiciyuan.support.asyncdrawable.TimeLineBitmapDownloader; import org.qii.weiciyuan.support.database.AccountDBTask; import org.qii.weiciyuan.support.database.CommentToMeTimeLineDBTask; import org.qii.weiciyuan.support.database.MentionCommentsTimeLineDBTask; import org.qii.weiciyuan.support.database.MentionWeiboTimeLineDBTask; import org.qii.weiciyuan.support.file.FileLocationMethod; import org.qii.weiciyuan.support.utils.AnimationUtility; import org.qii.weiciyuan.support.utils.AppEventAction; import org.qii.weiciyuan.support.utils.GlobalContext; import org.qii.weiciyuan.support.utils.Utility; import org.qii.weiciyuan.ui.dm.DMUserListFragment; import org.qii.weiciyuan.ui.interfaces.AbstractAppFragment; import org.qii.weiciyuan.ui.login.AccountActivity; import org.qii.weiciyuan.ui.maintimeline.FriendsTimeLineFragment; import org.qii.weiciyuan.ui.nearby.NearbyTimeLineActivity; import org.qii.weiciyuan.ui.preference.SettingActivity; import org.qii.weiciyuan.ui.search.SearchMainParentFragment; import org.qii.weiciyuan.ui.userinfo.MyFavListFragment; import org.qii.weiciyuan.ui.userinfo.UserInfoFragment; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.support.v4.content.LocalBroadcastManager; import android.util.SparseArray; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ScrollView; import android.widget.Spinner; import android.widget.TextView; import java.util.ArrayList; import java.util.Iterator; import java.util.TreeSet; /** * User: qii * Date: 13-1-22 * * left sliding menu * * homepage * mentions * comments * direct message * favourites * search * profile * logout * setting */ public class LeftMenuFragment extends AbstractAppFragment { private Layout layout; private int currentIndex = -1; private int mentionsWeiboUnreadCount = 0; private int mentionsCommentUnreadCount = 0; private int commentsToMeUnreadCount = 0; public int commentsTabIndex = -1; public int mentionsTabIndex = -1; public int searchTabIndex = -1; private boolean firstStart = true; private SparseArray<Fragment> rightFragments = new SparseArray<Fragment>(); public static final int HOME_INDEX = 0; public static final int MENTIONS_INDEX = 1; public static final int COMMENTS_INDEX = 2; public static final int DM_INDEX = 3; public static final int FAV_INDEX = 4; public static final int SEARCH_INDEX = 5; public static final int PROFILE_INDEX = 6; public static final int LOGOUT_INDEX = 7; public static final int SETTING_INDEX = 8; public static LeftMenuFragment newInstance() { LeftMenuFragment fragment = new LeftMenuFragment(); fragment.setArguments(new Bundle()); return fragment; } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("currentIndex", currentIndex); outState.putInt("mentionsWeiboUnreadCount", mentionsWeiboUnreadCount); outState.putInt("mentionsCommentUnreadCount", mentionsCommentUnreadCount); outState.putInt("commentsToMeUnreadCount", commentsToMeUnreadCount); outState.putInt("commentsTabIndex", commentsTabIndex); outState.putInt("mentionsTabIndex", mentionsTabIndex); outState.putInt("searchTabIndex", searchTabIndex); outState.putBoolean("firstStart", firstStart); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (savedInstanceState != null) { currentIndex = savedInstanceState.getInt("currentIndex"); mentionsWeiboUnreadCount = savedInstanceState.getInt("mentionsWeiboUnreadCount"); mentionsCommentUnreadCount = savedInstanceState.getInt("mentionsCommentUnreadCount"); commentsToMeUnreadCount = savedInstanceState.getInt("commentsToMeUnreadCount"); commentsTabIndex = savedInstanceState.getInt("commentsTabIndex"); mentionsTabIndex = savedInstanceState.getInt("mentionsTabIndex"); searchTabIndex = savedInstanceState.getInt("searchTabIndex"); firstStart = savedInstanceState.getBoolean("firstStart"); } else { readUnreadCountFromDB(); } if (currentIndex == -1) { currentIndex = GlobalContext.getInstance().getAccountBean().getNavigationPosition() / 10; } rightFragments.append(HOME_INDEX, ((MainTimeLineActivity) getActivity()).getFriendsTimeLineFragment()); rightFragments.append(MENTIONS_INDEX, ((MainTimeLineActivity) getActivity()).getMentionsTimeLineFragment()); rightFragments.append(COMMENTS_INDEX, ((MainTimeLineActivity) getActivity()).getCommentsTimeLineFragment()); rightFragments .append(SEARCH_INDEX, ((MainTimeLineActivity) getActivity()).getSearchFragment()); rightFragments.append(DM_INDEX, ((MainTimeLineActivity) getActivity()).getDMFragment()); rightFragments.append(FAV_INDEX, ((MainTimeLineActivity) getActivity()).getFavFragment()); rightFragments.append(PROFILE_INDEX, ((MainTimeLineActivity) getActivity()).getMyProfileFragment()); switchCategory(currentIndex); layout.nickname.setText(GlobalContext.getInstance().getCurrentAccountName()); layout.avatar.setAdapter(new AvatarAdapter(layout.avatar)); } public void switchCategory(int position) { switch (position) { case HOME_INDEX: showHomePage(true); break; case MENTIONS_INDEX: showMentionPage(true); break; case COMMENTS_INDEX: showCommentPage(true); break; case SEARCH_INDEX: showSearchPage(true); break; case DM_INDEX: showDMPage(true); break; case FAV_INDEX: showFavPage(true); break; case PROFILE_INDEX: showProfilePage(true); break; } drawButtonsBackground(position); buildUnreadCount(); firstStart = false; } private void readUnreadCountFromDB() { TimeLinePosition position = MentionWeiboTimeLineDBTask .getPosition(GlobalContext.getInstance().getCurrentAccountId()); TreeSet<Long> hashSet = position.newMsgIds; if (hashSet != null) { mentionsWeiboUnreadCount = hashSet.size(); } position = MentionCommentsTimeLineDBTask .getPosition(GlobalContext.getInstance().getCurrentAccountId()); hashSet = position.newMsgIds; if (hashSet != null) { mentionsCommentUnreadCount = hashSet.size(); } position = CommentToMeTimeLineDBTask .getPosition(GlobalContext.getInstance().getCurrentAccountId()); hashSet = position.newMsgIds; if (hashSet != null) { commentsToMeUnreadCount = hashSet.size(); } } private void buildUnreadCount() { setMentionWeiboUnreadCount(mentionsWeiboUnreadCount); setMentionCommentUnreadCount(mentionsCommentUnreadCount); setCommentUnreadCount(commentsToMeUnreadCount); } private void showAccountSwitchPage() { Intent intent = AccountActivity.newIntent(); startActivity(intent); getActivity().finish(); } private void showSettingPage() { startActivity(new Intent(getActivity(), SettingActivity.class)); } private boolean showHomePage(boolean reset) { if (currentIndex == HOME_INDEX && !reset) { ((MainTimeLineActivity) getActivity()).getSlidingMenu().showContent(); return true; } getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); currentIndex = HOME_INDEX; if (Utility.isDevicePort() && !reset) { BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(this); if (currentIndex == HOME_INDEX) { showHomePageImp(); } } }; LocalBroadcastManager.getInstance(getActivity()).registerReceiver(receiver, new IntentFilter(AppEventAction.SLIDING_MENU_CLOSED_BROADCAST)); } else { showHomePageImp(); } ((MainTimeLineActivity) getActivity()).getSlidingMenu().showContent(); return false; } private void showHomePageImp() { FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.hide(rightFragments.get(MENTIONS_INDEX)); ft.hide(rightFragments.get(COMMENTS_INDEX)); ft.hide(rightFragments.get(SEARCH_INDEX)); ft.hide(rightFragments.get(DM_INDEX)); ft.hide(rightFragments.get(FAV_INDEX)); ft.hide(rightFragments.get(PROFILE_INDEX)); FriendsTimeLineFragment fragment = (FriendsTimeLineFragment) rightFragments.get(HOME_INDEX); ft.show(fragment); ft.commit(); setTitle(""); fragment.buildActionBarNav(); } private boolean showMentionPage(boolean reset) { if (currentIndex == MENTIONS_INDEX && !reset) { ((MainTimeLineActivity) getActivity()).getSlidingMenu().showContent(); return true; } getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); currentIndex = MENTIONS_INDEX; if (Utility.isDevicePort() && !reset) { BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(this); if (currentIndex == MENTIONS_INDEX) { showMentionPageImp(); } } }; LocalBroadcastManager.getInstance(getActivity()).registerReceiver(receiver, new IntentFilter(AppEventAction.SLIDING_MENU_CLOSED_BROADCAST)); } else { showMentionPageImp(); } ((MainTimeLineActivity) getActivity()).getSlidingMenu().showContent(); return false; } private void showMentionPageImp() { FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.hide(rightFragments.get(HOME_INDEX)); ft.hide(rightFragments.get(COMMENTS_INDEX)); ft.hide(rightFragments.get(SEARCH_INDEX)); ft.hide(rightFragments.get(DM_INDEX)); ft.hide(rightFragments.get(FAV_INDEX)); ft.hide(rightFragments.get(PROFILE_INDEX)); Fragment m = rightFragments.get(MENTIONS_INDEX); if (firstStart) { int navPosition = GlobalContext.getInstance().getAccountBean().getNavigationPosition() / 10; if (navPosition == MENTIONS_INDEX) { mentionsTabIndex = GlobalContext.getInstance().getAccountBean().getNavigationPosition() % 10; } } m.getArguments().putInt("mentionsTabIndex", mentionsTabIndex); ft.show(m); ft.commit(); ((MentionsTimeLine) m).buildActionBarAndViewPagerTitles(mentionsTabIndex); } public int getCurrentIndex() { return currentIndex; } private boolean showCommentPage(boolean reset) { getActivity().getActionBar().setDisplayShowTitleEnabled(true); if (currentIndex == COMMENTS_INDEX && !reset) { ((MainTimeLineActivity) getActivity()).getSlidingMenu().showContent(); return true; } getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); currentIndex = COMMENTS_INDEX; if (Utility.isDevicePort() && !reset) { BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(this); if (currentIndex == COMMENTS_INDEX) { showCommentPageImp(); } } }; LocalBroadcastManager.getInstance(getActivity()).registerReceiver(receiver, new IntentFilter(AppEventAction.SLIDING_MENU_CLOSED_BROADCAST)); } else { showCommentPageImp(); } ((MainTimeLineActivity) getActivity()).getSlidingMenu().showContent(); return false; } private void showCommentPageImp() { FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.hide(rightFragments.get(HOME_INDEX)); ft.hide(rightFragments.get(MENTIONS_INDEX)); ft.hide(rightFragments.get(SEARCH_INDEX)); ft.hide(rightFragments.get(DM_INDEX)); ft.hide(rightFragments.get(FAV_INDEX)); ft.hide(rightFragments.get(PROFILE_INDEX)); Fragment fragment = rightFragments.get(COMMENTS_INDEX); if (firstStart) { int navPosition = GlobalContext.getInstance().getAccountBean().getNavigationPosition() / 10; if (navPosition == COMMENTS_INDEX) { commentsTabIndex = GlobalContext.getInstance().getAccountBean().getNavigationPosition() % 10; } } fragment.getArguments().putInt("commentsTabIndex", commentsTabIndex); ft.show(fragment); ft.commit(); ((CommentsTimeLine) fragment).buildActionBarAndViewPagerTitles(commentsTabIndex); } private boolean showSearchPage(boolean reset) { getActivity().getActionBar().setDisplayShowTitleEnabled(true); if (currentIndex == SEARCH_INDEX && !reset) { ((MainTimeLineActivity) getActivity()).getSlidingMenu().showContent(); return true; } getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); currentIndex = SEARCH_INDEX; if (Utility.isDevicePort() && !reset) { BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(this); if (currentIndex == SEARCH_INDEX) { showSearchPageImp(); } } }; LocalBroadcastManager.getInstance(getActivity()).registerReceiver(receiver, new IntentFilter(AppEventAction.SLIDING_MENU_CLOSED_BROADCAST)); } else { showSearchPageImp(); } ((MainTimeLineActivity) getActivity()).getSlidingMenu().showContent(); return false; } private void showSearchPageImp() { FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.hide(rightFragments.get(HOME_INDEX)); ft.hide(rightFragments.get(MENTIONS_INDEX)); ft.hide(rightFragments.get(COMMENTS_INDEX)); ft.hide(rightFragments.get(DM_INDEX)); ft.hide(rightFragments.get(FAV_INDEX)); ft.hide(rightFragments.get(PROFILE_INDEX)); Fragment fragment = rightFragments.get(SEARCH_INDEX); if (firstStart) { int navPosition = GlobalContext.getInstance().getAccountBean().getNavigationPosition() / 10; if (navPosition == SEARCH_INDEX) { searchTabIndex = GlobalContext.getInstance().getAccountBean().getNavigationPosition() % 10; } } fragment.getArguments().putInt("searchTabIndex", searchTabIndex); ft.show(fragment); ft.commit(); ((SearchMainParentFragment) fragment).buildActionBarAndViewPagerTitles(searchTabIndex); } private boolean showDMPage(boolean reset) { getActivity().getActionBar().setDisplayShowTitleEnabled(true); if (currentIndex == DM_INDEX && !reset) { ((MainTimeLineActivity) getActivity()).getSlidingMenu().showContent(); return true; } getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); currentIndex = DM_INDEX; if (Utility.isDevicePort() && !reset) { BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(this); if (currentIndex == DM_INDEX) { showDMPageImp(); } } }; LocalBroadcastManager.getInstance(getActivity()).registerReceiver(receiver, new IntentFilter(AppEventAction.SLIDING_MENU_CLOSED_BROADCAST)); } else { showDMPageImp(); } ((MainTimeLineActivity) getActivity()).getSlidingMenu().showContent(); return false; } private void showDMPageImp() { FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.hide(rightFragments.get(HOME_INDEX)); ft.hide(rightFragments.get(MENTIONS_INDEX)); ft.hide(rightFragments.get(COMMENTS_INDEX)); ft.hide(rightFragments.get(SEARCH_INDEX)); ft.hide(rightFragments.get(FAV_INDEX)); ft.hide(rightFragments.get(PROFILE_INDEX)); Fragment fragment = rightFragments.get(DM_INDEX); ft.show(fragment); ft.commit(); ((DMUserListFragment) fragment).buildActionBarAndViewPagerTitles(); } private boolean showFavPage(boolean reset) { getActivity().getActionBar().setDisplayShowTitleEnabled(true); if (currentIndex == FAV_INDEX && !reset) { ((MainTimeLineActivity) getActivity()).getSlidingMenu().showContent(); return true; } getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); currentIndex = FAV_INDEX; if (Utility.isDevicePort() && !reset) { BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(this); if (currentIndex == FAV_INDEX) { showFavPageImp(); } } }; LocalBroadcastManager.getInstance(getActivity()).registerReceiver(receiver, new IntentFilter(AppEventAction.SLIDING_MENU_CLOSED_BROADCAST)); } else { showFavPageImp(); } ((MainTimeLineActivity) getActivity()).getSlidingMenu().showContent(); return false; } private void showFavPageImp() { FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.hide(rightFragments.get(HOME_INDEX)); ft.hide(rightFragments.get(MENTIONS_INDEX)); ft.hide(rightFragments.get(COMMENTS_INDEX)); ft.hide(rightFragments.get(SEARCH_INDEX)); ft.hide(rightFragments.get(DM_INDEX)); ft.hide(rightFragments.get(PROFILE_INDEX)); Fragment fragment = rightFragments.get(FAV_INDEX); ft.show(fragment); ft.commit(); ((MyFavListFragment) fragment).buildActionBarAndViewPagerTitles(); } private boolean showProfilePage(boolean reset) { getActivity().getActionBar().setDisplayShowTitleEnabled(true); if (currentIndex == PROFILE_INDEX && !reset) { ((MainTimeLineActivity) getActivity()).getSlidingMenu().showContent(); return true; } getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); currentIndex = PROFILE_INDEX; if (Utility.isDevicePort() && !reset) { BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(this); if (currentIndex == PROFILE_INDEX) { showProfilePageImp(); } } }; LocalBroadcastManager.getInstance(getActivity()).registerReceiver(receiver, new IntentFilter(AppEventAction.SLIDING_MENU_CLOSED_BROADCAST)); } else { showProfilePageImp(); } ((MainTimeLineActivity) getActivity()).getSlidingMenu().showContent(); return false; } private void showProfilePageImp() { FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.hide(rightFragments.get(HOME_INDEX)); ft.hide(rightFragments.get(MENTIONS_INDEX)); ft.hide(rightFragments.get(COMMENTS_INDEX)); ft.hide(rightFragments.get(SEARCH_INDEX)); ft.hide(rightFragments.get(DM_INDEX)); ft.hide(rightFragments.get(FAV_INDEX)); UserInfoFragment fragment = (UserInfoFragment) rightFragments.get(PROFILE_INDEX); ft.show(fragment); ft.commit(); ((UserInfoFragment) fragment).buildActionBarAndViewPagerTitles(); AnimationUtility .translateFragmentY(fragment, -400, 0, fragment); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRetainInstance(true); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final ScrollView view = (ScrollView) inflater .inflate(R.layout.slidingdrawer_contents, container, false); layout = new Layout(); layout.avatar = (Spinner) view.findViewById(R.id.avatar); layout.nickname = (TextView) view.findViewById(R.id.nickname); layout.home = (LinearLayout) view.findViewById(R.id.btn_home); layout.mention = (LinearLayout) view.findViewById(R.id.btn_mention); layout.comment = (LinearLayout) view.findViewById(R.id.btn_comment); layout.search = (Button) view.findViewById(R.id.btn_search); layout.profile = (Button) view.findViewById(R.id.btn_profile); // layout.location = (Button) view.findViewById(R.id.btn_location); layout.setting = (Button) view.findViewById(R.id.btn_setting); layout.dm = (Button) view.findViewById(R.id.btn_dm); layout.logout = (Button) view.findViewById(R.id.btn_logout); layout.fav = (Button) view.findViewById(R.id.btn_favourite); layout.homeCount = (TextView) view.findViewById(R.id.tv_home_count); layout.mentionCount = (TextView) view.findViewById(R.id.tv_mention_count); layout.commentCount = (TextView) view.findViewById(R.id.tv_comment_count); boolean blackMagic = GlobalContext.getInstance().getAccountBean().isBlack_magic(); if (!blackMagic) { layout.dm.setVisibility(View.GONE); layout.search.setVisibility(View.GONE); } return view; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); layout.home.setOnClickListener(onClickListener); layout.mention.setOnClickListener(onClickListener); layout.comment.setOnClickListener(onClickListener); layout.search.setOnClickListener(onClickListener); layout.profile.setOnClickListener(onClickListener); // layout.location.setOnClickListener(onClickListener); layout.setting.setOnClickListener(onClickListener); layout.dm.setOnClickListener(onClickListener); layout.logout.setOnClickListener(onClickListener); layout.fav.setOnClickListener(onClickListener); } private View.OnClickListener onClickListener = new View.OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_home: showHomePage(false); drawButtonsBackground(HOME_INDEX); break; case R.id.btn_mention: showMentionPage(false); drawButtonsBackground(MENTIONS_INDEX); break; case R.id.btn_comment: showCommentPage(false); drawButtonsBackground(COMMENTS_INDEX); break; case R.id.btn_search: showSearchPage(false); drawButtonsBackground(SEARCH_INDEX); break; case R.id.btn_profile: showProfilePage(false); drawButtonsBackground(PROFILE_INDEX); break; case R.id.btn_location: startActivity(new Intent(getActivity(), NearbyTimeLineActivity.class)); // drawButtonsBackground(5); break; case R.id.btn_favourite: showFavPage(false); drawButtonsBackground(FAV_INDEX); break; case R.id.btn_dm: showDMPage(false); drawButtonsBackground(DM_INDEX); break; case R.id.btn_setting: showSettingPage(); break; case R.id.btn_logout: showAccountSwitchPage(); break; } } }; private void drawButtonsBackground(int position) { layout.home.setBackgroundResource(R.drawable.btn_drawer_menu); layout.mention.setBackgroundResource(R.drawable.btn_drawer_menu); layout.comment.setBackgroundResource(R.drawable.btn_drawer_menu); layout.search.setBackgroundResource(R.drawable.btn_drawer_menu); layout.profile.setBackgroundResource(R.drawable.btn_drawer_menu); // layout.location.setBackgroundResource(R.color.transparent); // layout.setting.setBackgroundResource(R.color.transparent); layout.dm.setBackgroundResource(R.drawable.btn_drawer_menu); layout.fav.setBackgroundResource(R.drawable.btn_drawer_menu); // layout.logout.setBackgroundResource(R.color.transparent); switch (position) { case HOME_INDEX: layout.home.setBackgroundResource(R.color.ics_blue_semi); break; case MENTIONS_INDEX: layout.mention.setBackgroundResource(R.color.ics_blue_semi); break; case COMMENTS_INDEX: layout.comment.setBackgroundResource(R.color.ics_blue_semi); break; case SEARCH_INDEX: layout.search.setBackgroundResource(R.color.ics_blue_semi); break; case DM_INDEX: layout.dm.setBackgroundResource(R.color.ics_blue_semi); break; case FAV_INDEX: layout.fav.setBackgroundResource(R.color.ics_blue_semi); break; // case 5: // layout.location.setBackgroundResource(R.color.ics_blue_semi); // break; case PROFILE_INDEX: layout.profile.setBackgroundResource(R.color.ics_blue_semi); break; case LOGOUT_INDEX: layout.logout.setBackgroundResource(R.color.ics_blue_semi); break; case SETTING_INDEX: layout.setting.setBackgroundResource(R.color.ics_blue_semi); break; } } private SlidingMenu getSlidingMenu() { return ((MainTimeLineActivity) getActivity()).getSlidingMenu(); } private void setTitle(int res) { ((MainTimeLineActivity) getActivity()).setTitle(res); } private void setTitle(String title) { ((MainTimeLineActivity) getActivity()).setTitle(title); } public void setHomeUnreadCount(int count) { if (count > 0) { layout.homeCount.setVisibility(View.VISIBLE); layout.homeCount.setText(String.valueOf(count)); } else { layout.homeCount.setVisibility(View.GONE); } } public void setMentionWeiboUnreadCount(int count) { this.mentionsWeiboUnreadCount = count; int totalCount = this.mentionsWeiboUnreadCount + this.mentionsCommentUnreadCount; if (totalCount > 0) { layout.mentionCount.setVisibility(View.VISIBLE); layout.mentionCount.setText(String.valueOf(totalCount)); } else { layout.mentionCount.setVisibility(View.GONE); } } public void setMentionCommentUnreadCount(int count) { this.mentionsCommentUnreadCount = count; int totalCount = this.mentionsWeiboUnreadCount + this.mentionsCommentUnreadCount; if (totalCount > 0) { layout.mentionCount.setVisibility(View.VISIBLE); layout.mentionCount.setText(String.valueOf(totalCount)); } else { layout.mentionCount.setVisibility(View.GONE); } } public void setCommentUnreadCount(int count) { this.commentsToMeUnreadCount = count; if (this.commentsToMeUnreadCount > 0) { layout.commentCount.setVisibility(View.VISIBLE); layout.commentCount.setText(String.valueOf(this.commentsToMeUnreadCount)); } else { layout.commentCount.setVisibility(View.GONE); } } private class AvatarAdapter extends BaseAdapter { ArrayList<AccountBean> data = new ArrayList<AccountBean>(); int count = 0; public AvatarAdapter(Spinner spinner) { data.addAll(AccountDBTask.getAccountList()); if (data.size() == 1) { count = 1; } else { count = data.size() - 1; } Iterator<AccountBean> iterator = data.iterator(); while (iterator.hasNext()) { AccountBean accountBean = iterator.next(); if (accountBean.getUid() .equals(GlobalContext.getInstance().getAccountBean().getUid())) { iterator.remove(); break; } } } @Override public int getCount() { return count; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = getLayoutInflater(null) .inflate(R.layout.slidingdrawer_avatar, parent, false); ImageView iv = (ImageView) view.findViewById(R.id.avatar); TimeLineBitmapDownloader.getInstance().display(iv, -1, -1, GlobalContext.getInstance().getAccountBean().getInfo().getAvatar_large(), FileLocationMethod.avatar_large); return view; } @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { View view = getLayoutInflater(null) .inflate(R.layout.slidingdrawer_avatar_dropdown, parent, false); TextView nickname = (TextView) view.findViewById(R.id.nickname); ImageView avatar = (ImageView) view.findViewById(R.id.avatar); if (data.size() > 0) { final AccountBean accountBean = data.get(position); TimeLineBitmapDownloader.getInstance() .display(avatar, -1, -1, accountBean.getInfo().getAvatar_large(), FileLocationMethod.avatar_large); nickname.setText(accountBean.getUsernick()); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent start = MainTimeLineActivity.newIntent(accountBean); getActivity().startActivity(start); getActivity().finish(); } }); } else { avatar.setVisibility(View.GONE); nickname.setTextColor(getResources().getColor(R.color.gray)); nickname.setText(getString(R.string.dont_have_other_account)); } return view; } } private class Layout { Spinner avatar; TextView nickname; LinearLayout home; LinearLayout mention; LinearLayout comment; TextView homeCount; TextView mentionCount; TextView commentCount; Button search; // Button location; Button dm; Button logout; Button profile; Button setting; Button fav; } }