package com.partynetwork.iparty.homepage; import android.annotation.SuppressLint; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.TextView; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; import com.partynetwork.dataprovider.util.ActionUtil; import com.partynetwork.iparty.R; import com.partynetwork.iparty.app.AppContext; import com.partynetwork.iparty.app.common.UIHelper; import com.partynetwork.iparty.app.entities.IMessage; import com.partynetwork.iparty.app.widget.BadgeView; import com.partynetwork.iparty.app.widget.ScrollLayout; import com.partynetwork.iparty.contacts.ContactsRecommendActivity; import com.partynetwork.iparty.discover.DiscoverPage; import com.partynetwork.iparty.dom.PullDownReturnListener; import com.partynetwork.iparty.flipmenu.BaseSlidingPage; import com.partynetwork.iparty.friendslist.FriendsListPage; import com.partynetwork.iparty.imessage.ImessagePage; import com.partynetwork.iparty.iparty.IpartyPage; import com.partynetwork.iparty.iparty.IpartyPublishActivity; import com.partynetwork.iparty.ishare.IsharePage; import com.partynetwork.iparty.me.MePage; import com.partynetwork.iparty.theme.ThemeSearchActivity; /** * 程序的主页面 * * @author 沈跃双 */ @SuppressLint("ValidFragment") public class HomePage extends BaseSlidingPage implements OnClickListener { private FragmentActivity mActivity; private AppContext context; private ScrollLayout mScrollLayout; private String[] mHeadTitles; private int mViewCount; // 页面数量 private int mCurSel = -1; // 上一次选择 /********************************************** 顶部控件 */ private LinearLayout mLinearLayout; private ImageView mHeadLeftImage; private TextView mHeadTitle; private ImageView mHeadMiddleImage; private LinearLayout mHeadRight; private ImageView mHeadRightImage; /********************************************** 中间控件部分 */ private IpartyPage ipartyPage; private ImessagePage messagePage; private FriendsListPage friendsListPage; private DiscoverPage discoverPage; private MePage mePage; /********************************************** 底部按钮 */ private RadioButton[] mButtons; public BadgeView bv_Imessage; private int msgNumber;// 消息数量 protected SlidingMenu slidingMenu; @SuppressLint("ValidFragment") public HomePage(SlidingMenu menu) { super(menu); this.slidingMenu=menu; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mActivity = getActivity(); context = (AppContext) mActivity.getApplication(); initView(); } private void initView() { initHeadView(); initPageScroll(); } private void initHeadView() { mActivity.findViewById(R.id.menu_head_left).setOnClickListener(this); mHeadLeftImage = (ImageView) mActivity.findViewById(R.id.menu_head_left_iv); mHeadLeftImage.setImageResource(R.drawable.edit_left_search); mLinearLayout = (LinearLayout) mActivity .findViewById(R.id.menu_head_middle); mLinearLayout.setOnClickListener(this); mHeadTitle = (TextView) mActivity .findViewById(R.id.menu_head_middle_text); mHeadMiddleImage = (ImageView) mActivity .findViewById(R.id.menu_head_middle_img); mHeadRight = (LinearLayout) mActivity .findViewById(R.id.menu_head_right); mHeadRight.setOnClickListener(this); mHeadRightImage = (ImageView) mActivity .findViewById(R.id.menu_head_right_iv); } private void initPageScroll() { mScrollLayout = (ScrollLayout) mActivity .findViewById(R.id.main_scrolllayout); ipartyPage = new IpartyPage(mActivity); messagePage = new ImessagePage(mActivity); friendsListPage = new FriendsListPage(mActivity); discoverPage=new DiscoverPage(mActivity); mePage = new MePage(mActivity); mScrollLayout.addView(ipartyPage); mScrollLayout.addView(messagePage); // 修改 mScrollLayout.addView(friendsListPage); mScrollLayout.addView(discoverPage); mScrollLayout.addView(mePage); LinearLayout linearLayout = (LinearLayout) mActivity .findViewById(R.id.main_linearlayout_footer); mHeadTitles = getResources().getStringArray(R.array.head_titles); mViewCount = mScrollLayout.getChildCount(); mButtons = new RadioButton[mViewCount]; for (int i = 0; i < mViewCount; i++) { mButtons[i] = (RadioButton) linearLayout.getChildAt(i); mButtons[i].setTag(i); mButtons[i].setChecked(false); mButtons[i].setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int pos = (Integer) (v.getTag()); if (mCurSel == pos) { // 再次点击当前项刷新 switch (pos) { case 0: break; case 1: break; case 2: break; case 3: break; case 4: break; } } mScrollLayout.snapToScreen(pos); } }); } // 设置第一显示屏 mCurSel = 0; mButtons[mCurSel].setChecked(true); mScrollLayout .SetOnViewChangeListener(new ScrollLayout.OnViewChangeListener() { public void OnViewChange(int viewIndex) { // 切换列表视图-如果列表数据为空:加载数据 switch (viewIndex) { case 0: if (ipartyPage != null && ipartyPage.isEmpty()) { ipartyPage.getPartyList(); } break; case 1: /* if (isharePage != null && isharePage.isEmpty()) { isharePage.getShareList(); } */ if (messagePage != null) { messagePage.getNotices(); } break; //消息 //通讯录 case 2: if (friendsListPage != null) { friendsListPage.sendRequest(); } /* UIHelper.showContactsList(mActivity, ActionUtil.Contacts.FRIEND); */ break; //发现 case 3: if (discoverPage != null) { //messagePage2.getNotices(); discoverPage.slidingMenu=slidingMenu; } break; //我 case 4: if (mePage != null) { mePage.initData(); } break; default: break; } setCurPoint(viewIndex); } }); // 初始化 mScrollLayout.snapToScreen(mCurSel); mHeadMiddleImage.setVisibility(View.VISIBLE); if (ipartyPage != null && ipartyPage.isEmpty()) { ipartyPage.getPartyList(); } // 读取左右滑动配置 mScrollLayout.setIsScroll(context.isScroll()); } /** * 设置底部栏当前焦点 * * @param index */ private void setCurPoint(int index) { if (index < 0 || index > mViewCount - 1 || mCurSel == index) return; mButtons[mCurSel].setChecked(false); mButtons[index].setChecked(true); mHeadTitle.setText(mHeadTitles[index]); mCurSel = index; if (index == 0) { mHeadLeftImage.setVisibility(View.VISIBLE); mHeadTitle.setText(R.string.iparty); mHeadTitle.setTextColor(Color.BLACK); mHeadMiddleImage.setVisibility(View.VISIBLE); mHeadMiddleImage .setImageResource(R.drawable.menu_head_middle_img_iparty_down); mHeadRight.setVisibility(View.VISIBLE); mHeadRightImage.setImageResource(R.drawable.menu_head_publish); } else if (index == 1) { //消息 mHeadLeftImage.setVisibility(View.GONE); mHeadTitle.setText(R.string.imessage); mHeadTitle.setTextColor(Color.BLACK); // 中间图标隐藏 mHeadMiddleImage.setVisibility(View.GONE); // 右边图标显示 mHeadRight.setVisibility(View.INVISIBLE); // 消除消息数量 msgNumber = 0; if (bv_Imessage != null) { bv_Imessage.setText(msgNumber + ""); bv_Imessage.hide(); } } else if (index == 2) { mHeadLeftImage.setVisibility(View.GONE); mHeadTitle.setText(R.string.contacts_tongxunlu); mHeadTitle.setTextColor(Color.BLACK); // 中间图标隐藏 mHeadMiddleImage.setVisibility(View.GONE); // 右边图标显示 mHeadRight.setVisibility(View.VISIBLE); mHeadRightImage .setImageResource(R.drawable.chat_top_add); } else if (index == 3) { mHeadLeftImage.setVisibility(View.GONE); mHeadTitle.setText(R.string.discover); mHeadTitle.setTextColor(Color.BLACK); mHeadMiddleImage.setVisibility(View.GONE); mHeadRight.setVisibility(View.INVISIBLE); } else if (index == 4) { mHeadLeftImage.setVisibility(View.GONE); mHeadTitle.setText(R.string.me); mHeadTitle.setTextColor(Color.BLACK); mHeadMiddleImage.setVisibility(View.GONE); mHeadRight.setVisibility(View.INVISIBLE); } } /** * 本类的事件监听 * * @author Administrator * */ public void onClick(View v) { switch (v.getId()) { case R.id.menu_head_left: //搜索功能 if (mCurSel==0) { Intent searchIntent = new Intent(mActivity, ThemeSearchActivity.class); mActivity.startActivity(searchIntent); } break; case R.id.menu_head_right: // 右侧功能按钮 switch (mCurSel) { case 0: // iparty 发布 Intent intent2 = new Intent(mActivity, IpartyPublishActivity.class); mActivity.startActivity(intent2); break; case 1: UIHelper.showContactsList(mActivity, ActionUtil.Contacts.FRIEND); break; case 2: // 聊天 //UIHelper.showContactsList(mActivity, ActionUtil.Contacts.FRIEND); // 查找更多 Intent addIntent = new Intent(mActivity, ContactsRecommendActivity.class); addIntent.putExtra(ContactsRecommendActivity.PAGE_TYPE, ContactsRecommendActivity.SEARCH); mActivity.startActivity(addIntent); break; default: break; } break; case R.id.menu_head_middle: // 顶部菜单中间文字下拉菜单的事件处理 if (mCurSel == 0) { if (ipartyPage != null) { ipartyPage.setListener(pullDownReturnListener); ipartyPage.show(); } // 创建旋转对象,第一个参数是起始旋转度数,第二个是转多少度,第三个是针对父控件,如果针对自身某个点可以写成Animation.RELATIVE_TO_SELF,第四个是float型,取值范围是0.0到1.0,0是坐标0点,1是屏幕最右边的点.第三和第四个参数控制旋转圆心的横坐标,第五第六控制纵坐标. // mHeadMiddleImage.startAnimation(upAnimation); } else if (mCurSel == 1) { /* if (isharePage != null) { ipartyPage.setListener(pullDownReturnListener); isharePage.show(); } */ } break; default: break; } } private PullDownReturnListener pullDownReturnListener = new PullDownReturnListener() { public void changTitle(String title) { mHeadTitle.setText(title); } }; /** * 初始化页面 */ @Override protected int initPage() { return R.layout.main; } @Override public void onResume() { super.onResume(); switch (mCurSel) { case 0: if (ipartyPage != null) { ipartyPage.onResume(); } break; case 1: if (messagePage != null) { messagePage.onResume(); } break; case 2: if (friendsListPage!= null) { friendsListPage.onResume(); } break; case 3: if (discoverPage!= null) { discoverPage.onResume(); } break; case 4: if (mePage != null) { mePage.onResume(); } break; default: break; } } @Override public void msgReceive(IMessage message) { if (messagePage != null) { messagePage.msgReceive(message); } if (mCurSel != 2) { msgNumber++; if (bv_Imessage == null) { bv_Imessage = new BadgeView(mActivity, mButtons[1]); } bv_Imessage.setTextSize(12); bv_Imessage.setText(msgNumber + ""); bv_Imessage.show(); } super.msgReceive(message); } public void onActivityResult(int requestCode, int resultCode, Intent data) { if (ipartyPage != null) { ipartyPage.onActivityResult(requestCode, resultCode, data); } } }