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);
}
}
}