package com.partynetwork.iparty.iparty;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Parcelable;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.partynetwork.dataprovider.json.struct.Iparty_releaseIpartyRequest;
import com.partynetwork.dataprovider.util.StringUtil;
import com.partynetwork.iparty.R;
import com.partynetwork.iparty.info.IpartyComboInfo;
import com.partynetwork.iparty.info.IpartyFreeComboInfo;
import com.partynetwork.myview.mytoast.OkPopup;
import com.baidu.mobstat.StatService;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
public class IpartyPublishThreeActivity extends Activity {
private static final int NEED_NAME_NO = 0;
private static final int NEED_NAME_YES = 1;
/**
* 目标众筹金额
*/
@ViewInject(R.id.money)
private EditText money;
/**
* 提前天数
*/
@ViewInject(R.id.day)
private EditText day;
/**
* 不需要提供姓名,电话
*/
@ViewInject(R.id.need_name_no)
private TextView needNameNo;
/**
* 需要提供姓名,电话
*/
@ViewInject(R.id.need_name_yes)
private TextView needNameYes;
/**
* 众筹的显示体
*/
@ViewInject(R.id.event_model_body)
private LinearLayout modelBody;
/**
* 付费套餐
*/
@ViewInject(R.id.combo_tv)
private TextView comboTv;
/**
* 免费套餐
*/
@ViewInject(R.id.free_combo_tv)
private TextView freeComboTv;
/**
* 用于单选的List
*/
private List<TextView> needNameList = new ArrayList<TextView>();
/**
* 请求对象
*/
private Iparty_releaseIpartyRequest request;
/**
* 是否需要用户提供照片
*/
private int needName;
// 收费套餐数组
private IpartyComboInfo[] comboArray;
// 免费套餐
private IpartyFreeComboInfo freeCombo;
/** 消息提示框 */
private OkPopup mOkPopup;
/**
*
* 覆盖方法
*
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.iparty_publish_three);
ViewUtils.inject(this);
init();
}
/**
* 初始化数据、控件
*/
private void init() {
needNameList.add(needNameNo);
needNameList.add(needNameYes);
request = getIntent().getParcelableExtra(
IpartyPublishOneActivity.REQUEST);
if (request.getEventModel() == 0) {
modelBody.setVisibility(View.VISIBLE);
} else {
modelBody.setVisibility(View.GONE);
}
mOkPopup = new OkPopup(this);
}
/**
* 设置监听
*
* @param view
*/
@OnClick({ R.id.menu_head_left, R.id.combo_rl, R.id.combo_free_rl,
R.id.need_name_no, R.id.need_name_yes, R.id.next })
public void onClick(View view) {
switch (view.getId()) {
case R.id.menu_head_left:
// 返回
finish();
break;
case R.id.next:
// 下一步
if (initRequst()) {
Intent intent3 = new Intent(this,
IpartyPublishFourActivity.class);
intent3.putExtra(IpartyPublishOneActivity.REQUEST, request);
startActivity(intent3);
}
break;
case R.id.combo_rl:
// 付费名额设定
Intent intent = new Intent(this, IpartyPublishComboActivity.class);
if (comboArray != null) {
intent.putExtra(IpartyPublishComboActivity.COMBO_ARRAY,
comboArray);
}
startActivityForResult(intent,
IpartyPublishComboActivity.COMBO_REQUEST_CODE);
break;
case R.id.combo_free_rl:
// 免费名额设定
Intent intent2 = new Intent(this,
IpartyPublishComboFreeActivity.class);
if (freeCombo != null) {
intent2.putExtra(IpartyPublishComboFreeActivity.COMBO_FREE,
freeCombo);
}
startActivityForResult(intent2,
IpartyPublishComboFreeActivity.COMBO_FREE_REQUEST_CODE);
break;
case R.id.need_name_no:
// 不需要提供姓名,电话
choose(NEED_NAME_NO);
break;
case R.id.need_name_yes:
// 需要提供姓名,电话
choose(NEED_NAME_YES);
break;
default:
break;
}
}
/**
* 是否需要提供姓名
*
* @param needName
*/
private void choose(int needName) {
this.needName = needName;
for (int i = 0; i < needNameList.size(); i++) {
if (needName == i) {
Drawable left = this.getResources().getDrawable(
R.drawable.contacts_selected);
left.setBounds(0, 0, left.getMinimumWidth(),
left.getMinimumHeight());
needNameList.get(i)
.setCompoundDrawables(left, null, null, null);
} else {
Drawable left = this.getResources().getDrawable(
R.drawable.contacts_normal);
left.setBounds(0, 0, left.getMinimumWidth(),
left.getMinimumHeight());
needNameList.get(i)
.setCompoundDrawables(left, null, null, null);
}
}
}
/**
* 覆盖方法
*
* @see android.app.Activity#onActivityResult(int, int,
* android.content.Intent)
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case IpartyPublishComboActivity.COMBO_REQUEST_CODE:
// 付费套餐
try {
String str = "";
comboTv.setText(str);
Parcelable[] pArray = data
.getParcelableArrayExtra(IpartyPublishComboActivity.COMBO_ARRAY);
comboArray = new IpartyComboInfo[pArray.length];
for (int i = 0; i < pArray.length; i++) {
comboArray[i] = (IpartyComboInfo) pArray[i];
if (i == pArray.length - 1) {
str += StringUtil.formatFloat(comboArray[i].getMoney());
} else {
str += StringUtil.formatFloat(comboArray[i].getMoney())
+ "/";
}
}
if(str.length()>18){
str=str.substring(0, 18)+"...";
}
comboTv.setText(str);
request.setEventCombo(comboArray);
} catch (Exception e) {
}
break;
case IpartyPublishComboFreeActivity.COMBO_FREE_REQUEST_CODE:
freeComboTv.setText("");
try {
freeCombo = data
.getParcelableExtra(IpartyPublishComboFreeActivity.COMBO_FREE);
if (freeCombo != null) {
freeComboTv.setText(freeCombo.getMaxNum() + "个免费名额");
} else {
freeComboTv.setText("");
}
request.setEventFreeCombo(freeCombo);
} catch (Exception e) {
}
break;
default:
break;
}
}
/**
* 初始化请求数据
*/
private boolean initRequst() {
// 目标众筹金额
String money = StringUtil.checkEditText(this.money);
if (!money.equals("")) {
request.setEventGoalMoney((float) Integer.parseInt(money));
}
// 提前几天截止
String day = StringUtil.checkEditText(this.day);
if (!day.equals("")) {
request.setEventAheadDay(Integer.parseInt(day));
}
if ((comboArray == null || comboArray.length == 0) && freeCombo == null) {
mOkPopup.setTitle("套餐都不选啊?");
mOkPopup.showAtLocation(needNameNo);
return false;
// 套餐为空
}
// 是否需要用户提供照片
request.setEventNeedCondition(needName);
return true;
}
@Override
protected void onResume() {
StatService.onResume(this);
super.onResume();
}
@Override
protected void onPause() {
StatService.onPause(this);
super.onPause();
}
}