package com.partynetwork.iparty.assistant;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.TableLayout.LayoutParams;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
import com.partynetwork.dataprovider.DataProvider.IJsonResultListener;
import com.partynetwork.dataprovider.json.NetworkEntity;
import com.partynetwork.dataprovider.json.struct.Assistant_getOrderArrayRequest;
import com.partynetwork.dataprovider.json.struct.Assistant_getOrderArrayResponse;
import com.partynetwork.dataprovider.json.struct.Assistant_getPartyArrayRequest;
import com.partynetwork.dataprovider.json.struct.Assistant_getPartyArrayResponse;
import com.partynetwork.dataprovider.util.T;
import com.partynetwork.iparty.R;
import com.partynetwork.iparty.app.AppContext;
import com.partynetwork.iparty.helper.IntentHelper;
import com.partynetwork.iparty.info.AssistantPartyInfo;
import com.partynetwork.iparty.info.OrderInfo;
import com.partynetwork.myview.mytoast.BothPopup;
public class AssistantInfoActivity extends Activity implements
IJsonResultListener {
public static final String PARTY_TYPE = "partyType";
public static final int PARTY_INTERESTED = 0;
public static final int PARTY_PARTING = 1;
public static final int PARTY_CLOSE = 2;
public static final int PARTY_WAIT = 3;
public static final int PARTY_EVALUATE = 4;
public static final int PARTY_REFUND = 5;
@ViewInject(R.id.menu_head_left)
private LinearLayout backBtn;
@ViewInject(R.id.menu_head_right)
private RelativeLayout rightBtn;
@ViewInject(R.id.menu_head_middle_text)
private TextView headTitle;
@ViewInject(R.id.menu_head_right_tv)
private TextView rightTv;
@ViewInject(R.id.listview)
private ListView listView;
private AssistantInfoAdapter messageInfoAdapter;
private BothPopup mBothPopup;
private int partyType;
private AssistantPartyInfo[] partyInfoArray;
private OrderInfo[] orderInfoArray;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.message_info);
ViewUtils.inject(this);
init();
}
private void init() {
mBothPopup = new BothPopup(this);
partyType = getIntent().getIntExtra(PARTY_TYPE, 0);
rightBtn.setVisibility(View.INVISIBLE);
initView();
initData();
setListener();
}
private void initView() {
TextView emptyView = new TextView(this);
emptyView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
emptyView.setText("暂无记录");
emptyView.setGravity(Gravity.CENTER);
((ViewGroup) listView.getParent()).addView(emptyView);
listView.setEmptyView(emptyView);
}
private void setListener() {
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if (partyType < 3) {
if (partyInfoArray != null) {
IntentHelper.goPartyInfoActivity(
AssistantInfoActivity.this,
partyInfoArray[position].getIpartyId());
}
} else {
if (orderInfoArray != null) {
IntentHelper.goOrderInfoActivity(
AssistantInfoActivity.this,
orderInfoArray[position].getOrderId());
}
}
}
});
}
/**
* 初始化数据
*/
private void initData() {
String title = "";
switch (partyType) {
case PARTY_INTERESTED:
title = "感兴趣的Party";
break;
case PARTY_PARTING:
title = "发布中的Party";
break;
case PARTY_CLOSE:
title = "已结束的Party";
break;
case PARTY_WAIT:
title = "待参加的Party";
break;
case PARTY_EVALUATE:
title = "待评价的Party";
break;
case PARTY_REFUND:
title = "退款申请";
break;
default:
title = "待评价的Party";
break;
}
// 名称
this.headTitle.setText(title);
}
/**
* 发送请求
*/
private void sendRequest() {
AppContext context = (AppContext) getApplication();
if (partyType < 3) {
Assistant_getPartyArrayRequest request = new Assistant_getPartyArrayRequest();
request.setUserId(context.getLoginUid());
request.setPartyType(partyType);
AppContext.getInstance().getmDataProvider()
.getJsonFromNetwork(request, this);
} else {
Assistant_getOrderArrayRequest request = new Assistant_getOrderArrayRequest();
request.setOrderType(partyType - 3);
request.setUserId(context.getLoginUid());
request.setUserType(0);
AppContext.getInstance().getmDataProvider()
.getJsonFromNetwork(request, this);
}
}
/**
* 事件监听
*
* @param view
*/
@OnClick({ R.id.menu_head_left, R.id.menu_head_right })
public void onClick(View view) {
switch (view.getId()) {
case R.id.menu_head_left:
// 关闭
finish();
break;
case R.id.menu_head_right:
// 清空
mBothPopup.setTitle("清空操作将删除所有记录\n你确定要清空吗?");
mBothPopup.setListener(new OnClickListener() {
@Override
public void onClick(View v) {
deleteAll();
finish();
}
});
mBothPopup.showAtLocation(headTitle);
break;
default:
break;
}
}
/**
* 删除所有本分类下的消息记录
*/
private void deleteAll() {
}
/**
* 覆盖方法
*
* @see android.app.Activity#onResume()
*/
@Override
protected void onResume() {
super.onResume();
sendRequest();
}
public void onNetworkRequest() {
}
public void onResultSuccess(NetworkEntity entity) {
/** Party */
if (entity.getRequest().getAction()
.equals(new Assistant_getPartyArrayRequest().getAction())) {
Assistant_getPartyArrayResponse mResponse = (Assistant_getPartyArrayResponse) entity
.getResponse();
partyInfoArray = mResponse.getDetails();
if (partyInfoArray != null) {
messageInfoAdapter = new AssistantInfoAdapter(this,
partyInfoArray);
listView.setAdapter(messageInfoAdapter);
}
}
/** 订单 */
if (entity.getRequest().getAction()
.equals(new Assistant_getOrderArrayRequest().getAction())) {
Assistant_getOrderArrayResponse mResponse = (Assistant_getOrderArrayResponse) entity
.getResponse();
orderInfoArray = mResponse.getDetails();
if (orderInfoArray != null) {
messageInfoAdapter = new AssistantInfoAdapter(this,
orderInfoArray);
listView.setAdapter(messageInfoAdapter);
}
}
}
public void onResultFail(String result) {
T.showTips(this, R.drawable.tips_error, result);
}
}