package com.partynetwork.iparty.iparty;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.partynetwork.dataprovider.DataProvider.IJsonResultListener;
import com.partynetwork.dataprovider.json.NetworkEntity;
import com.partynetwork.dataprovider.json.struct.FileRequest;
import com.partynetwork.dataprovider.json.struct.FileResponse;
import com.partynetwork.dataprovider.json.struct.Iparty_releaseIpartyRequest;
import com.partynetwork.dataprovider.util.StringUtil;
import com.partynetwork.dataprovider.util.T;
import com.partynetwork.iparty.R;
import com.partynetwork.iparty.app.AppContext;
import com.partynetwork.iparty.app.common.BitmapManager;
import com.partynetwork.iparty.flipmenu.Main;
import com.partynetwork.iparty.info.IpartyFreeComboInfo;
import com.partynetwork.myview.myimageview.CircularImage;
import com.partynetwork.myview.mytoast.LoadingDialog;
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 IpartyPublishFourActivity extends Activity implements
IJsonResultListener {
// 背景ImageView
@ViewInject(R.id.bg_iv)
ImageView bg_iv;
// 预热中图片
@ViewInject(R.id.state_iv)
ImageView state_iv;
// party标题
@ViewInject(R.id.title_tv)
TextView title_tv;
// 主题按钮
@ViewInject(R.id.theme_btn)
Button theme_btn;
// party内容文本
@ViewInject(R.id.content_tv)
TextView content_tv;
// 更多详情
@ViewInject(R.id.moreinf_tv)
TextView moreinf_tv;
// 时间文本
@ViewInject(R.id.time_tv)
TextView time_tv;
// 地址文本
@ViewInject(R.id.adrress_tv)
TextView adrress_tv;
// 进度条控件
@ViewInject(R.id.percent_pro)
ProgressBar percent_pro;
// 进度条文本
@ViewInject(R.id.percent_tv)
TextView percent_tv;
// 目标资金
@ViewInject(R.id.goalmoney_tv)
TextView goalmoney_tv;
// 当前资金
@ViewInject(R.id.currentmoney_tv)
TextView currentmoney_tv;
// 目标资金的布局
@ViewInject(R.id.money_rl)
RelativeLayout money_rl;
// 金额的竖线
@ViewInject(R.id.money_line_ll)
LinearLayout money_line_ll;
// 参加提示文本
@ViewInject(R.id.attention_explain_tv)
TextView attention_explain_tv;
// 参加人数
@ViewInject(R.id.attention_tv)
TextView attention_tv;
// 剩余天数提示文本
@ViewInject(R.id.day_explain_tv)
TextView day_explain_tv;
// 剩余天数
@ViewInject(R.id.day_tv)
TextView day_tv;
// 感兴趣提示文本
@ViewInject(R.id.praise_explain_tv)
TextView praise_explain_tv;
// 感兴趣人数
@ViewInject(R.id.praise_tv_out)
TextView praise_tv;
// 说明文字
@ViewInject(R.id.explain_tv)
TextView explain_tv;
// 头像
@ViewInject(R.id.head_iv)
CircularImage head_iv;
// 名字
@ViewInject(R.id.name_tv)
TextView name_tv;
// 性别
@ViewInject(R.id.sex_iv)
ImageView sex_iv;
// 发布者信息
@ViewInject(R.id.userinfo_tv)
TextView userinfo_tv;
// 发布者信息布局
@ViewInject(R.id.user_rl)
RelativeLayout user_rl;
// 参加者信息布局
@ViewInject(R.id.join_rl)
RelativeLayout join_rl;
// 参加者数量
@ViewInject(R.id.join_number_tv)
TextView join_tv;
// 照片数量
@ViewInject(R.id.photo_tv)
TextView photo_tv;
// 照片的布局
@ViewInject(R.id.photo_ll)
LinearLayout photo_ll;
// 套餐布局
@ViewInject(R.id.combo_ll)
LinearLayout combo_ll;
// 免费套餐布局
@ViewInject(R.id.freecombo_ll)
LinearLayout freecombo_ll;
// 返回按钮
@ViewInject(R.id.back_rl)
RelativeLayout back;
/** 发布进度提示框 */
private LoadingDialog dialog;
/**
* 请求对象
*/
private Iparty_releaseIpartyRequest request;
private BitmapManager bitmapManager;
/**
*
* 覆盖方法
*
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.iparty_publish_four);
ViewUtils.inject(this);
init();
}
/**
* 初始化数据、控件
*/
private void init() {
request = getIntent().getParcelableExtra(
IpartyPublishOneActivity.REQUEST);
bitmapManager = new BitmapManager();
dialog = new LoadingDialog(this, "发布中……");
setData();
}
/**
* 设置监听
*
* @param view
*/
@OnClick({ R.id.menu_head_left, R.id.iparty_publish_next })
public void onClick(View view) {
switch (view.getId()) {
case R.id.menu_head_left:
// 返回
finish();
break;
case R.id.iparty_publish_next:
// 发布iparty
releaseIparty();
break;
default:
break;
}
}
/**
* 发布iparty
*/
private void releaseIparty() {
dialog.show();
if (request.getEventPosterArray() != null
&& request.getEventPosterArray().length != 0) {
FileRequest file = new FileRequest();
List<String> fileList = new ArrayList<String>();
// 海报的图片
for (int i = 0; i < request.getEventPosterArray().length; i++) {
fileList.add(request.getEventPosterArray()[i]);
}
// 付费套餐的回报图片
if (request.getEventCombo() != null) {
for (int j = 0; j < request.getEventCombo().length; j++) {
String name = request.getEventCombo()[j].getComboPhotoUrl();
if (name != null && !name.equals("")) {
fileList.add(name);
}
}
}
// 免费套餐的回报图片
if (request.getEventFreeCombo() != null
&& request.getEventFreeCombo().getComboPhotoUrl() != null
&& !request.getEventFreeCombo().getComboPhotoUrl()
.equals("")) {
fileList.add(request.getEventFreeCombo().getComboPhotoUrl());
}
file.setFilePath(fileList.toArray(new String[fileList.size()]));
((AppContext) getApplication()).getmDataProvider()
.getJsonFromNetwork(file, this);
} else {
((AppContext) getApplication()).getmDataProvider()
.getJsonFromNetwork(request, this);
}
}
/**
* 设置数据
*/
private void setData() {
// 进度值
int percent;
/* party状态 */
state_iv.setVisibility(View.GONE);
percent = 0;
money_line_ll.setVisibility(View.VISIBLE);
money_rl.setVisibility(View.VISIBLE);
attention_explain_tv.setText("已参加");
day_explain_tv.setText("剩余");
percent_tv.setTextColor(Color.parseColor("#6CC406"));
Drawable d = this.getResources().getDrawable(
R.drawable.progressbar_horizontal_green);
percent_pro.setProgressDrawable(d);
if (request.getEventVideoUrl() == null
|| request.getEventVideoUrl().equals("")) {
/* 图片 */
bg_iv.setVisibility(View.VISIBLE);
if (request.getEventPosterArray().length > 0) {
bitmapManager.loadBitmap(request.getEventPosterArray()[0], bg_iv);
}
} else {
/* 视频 */
bg_iv.setVisibility(View.GONE);
}
/* party标题 */
title_tv.setText(request.getEventTitle());
if (request.getEventThemeArray() != null
&& request.getEventThemeArray().length > 0) {
theme_btn.setText(request.getEventThemeArray()[0]);
} else {
theme_btn.setVisibility(View.GONE);
}
content_tv.setText(request.getEventContent());
if (request.getEventTime() != null
&& request.getEventTime().length != 0) {
time_tv.setText(StringUtil.getStrTime(request.getEventTime()[0]
.getStartTime()));
} else {
time_tv.setVisibility(View.GONE);
}
/** 地址 */
String address = StringUtil.checkStr(request.getEventAddress());
if (address.equals("")) {
adrress_tv.setVisibility(View.GONE);
} else {
adrress_tv.setText(address);
}
/* 进度值 */
percent_tv.setText(percent + "%");
percent_pro.setProgress(percent);
currentmoney_tv.setText("¥" + 0);
attention_tv.setText(0 + "人");
day_tv.setText(request.getEventPreheatDays() + "天");
praise_tv.setText(0 + "人");
// int photoNum = request.getEventPosterArray().length;
// photo_tv.setText("Party照片(" + photoNum + ")");
//
// if (photoNum != 0) {
// photo_ll.removeAllViews();
// }
//
// for (int i = 0; i < photoNum; i++) {
// ImageView iv = new ImageView(this);
// bitmapUtils.display(iv, request.getEventPosterArray()[i]);
// LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
// 130, LayoutParams.WRAP_CONTENT);
//
// iv.setLayoutParams(params);
// iv.setScaleType(ScaleType.CENTER_CROP);
// photo_ll.addView(iv);
// }
int comboNum = 0;
if (request.getEventCombo() != null) {
comboNum = request.getEventCombo().length;
}
for (int i = 0; i < comboNum; i++) {
View view = LayoutInflater.from(this).inflate(
R.layout.iparty_info_combo, null);
TextView money = (TextView) view.findViewById(R.id.combo_money_tv);
TextView tip = (TextView) view.findViewById(R.id.combo_tip_tv);
TextView attend = (TextView) view
.findViewById(R.id.combo_attend_tv);
final TextView introduce = (TextView) view
.findViewById(R.id.introduce_tv);
final ImageView image = (ImageView) view
.findViewById(R.id.image_iv);
LinearLayout more_ll = (LinearLayout) view
.findViewById(R.id.more_ll);
money.setText("预付 ¥" + request.getEventCombo()[i].getMoney() + "+");
tip.setText(request.getEventCombo()[i].getAttendNum() + "/"
+ request.getEventCombo()[i].getMaxNum());
attend.setText(request.getEventCombo()[i].getAttendNum() + "人已参加");
introduce.setText(request.getEventCombo()[i].getIntroduce());
if (request.getEventCombo()[i].getComboPhotoUrl() != null) {
bitmapManager.loadBitmap(request.getEventCombo()[i].getComboPhotoUrl(),image);
more_ll.setVisibility(View.VISIBLE);
} else {
more_ll.setVisibility(View.GONE);
}
more_ll.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (image.getVisibility() == View.GONE) {
introduce.setMaxLines(10);
image.setVisibility(View.VISIBLE);
} else {
introduce.setMaxLines(2);
image.setVisibility(View.GONE);
}
}
});
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
params.topMargin = -2;
if (i == 0) {
view.setBackgroundResource(R.drawable.stroke_top);
} else if (i == comboNum - 1) {
view.setLayoutParams(params);
view.setBackgroundResource(R.drawable.stroke_bottom);
} else {
view.setLayoutParams(params);
view.setBackgroundResource(R.drawable.stroke_center);
}
combo_ll.addView(view);
}
if (request.getEventFreeCombo() != null) {
View view = LayoutInflater.from(this).inflate(
R.layout.iparty_info_free, null);
TextView tip = (TextView) view.findViewById(R.id.combo_tip_tv);
TextView attend = (TextView) view
.findViewById(R.id.combo_attend_tv);
TextView introduce = (TextView) view
.findViewById(R.id.introduce_tv);
ImageView image = (ImageView) view.findViewById(R.id.image_iv);
TextView sex_tv = (TextView) view.findViewById(R.id.sex_tv);
TextView age_tv = (TextView) view.findViewById(R.id.age_tv);
TextView needphoto_tv = (TextView) view
.findViewById(R.id.needphoto_tv);
TextView remark_tv = (TextView) view.findViewById(R.id.remark_tv);
TextView apply_tv = (TextView) view.findViewById(R.id.apply_tv);
IpartyFreeComboInfo free = request.getEventFreeCombo();
attend.setText(free.getAttendNum() + "人已参加");
tip.setText(free.getAttendNum() + "/" + free.getMaxNum());
introduce.setText(free.getIntroduce());
if (StringUtil.checkStr(free.getComboPhotoUrl()).equals("")) {
image.setVisibility(View.GONE);
} else {
bitmapManager.loadBitmap(free.getComboPhotoUrl(),image);
}
if (free.getSex() == 0) {
sex_tv.setText("性别:男");
} else if (free.getSex() == 1) {
sex_tv.setText("性别:女");
} else if (free.getSex() == 2) {
sex_tv.setText("性别:其他");
} else {
sex_tv.setText("性别:不限");
}
age_tv.setText("年龄:" + free.getMinAge() + "~" + free.getMaxAge());
if (free.getNeedPhoto() == 0) {
needphoto_tv.setText("需提交真实照片验证");
} else {
needphoto_tv.setText("不需提交真实照片验证");
}
remark_tv.setText("备注:" + free.getRemark());
apply_tv.setVisibility(View.GONE);
freecombo_ll.addView(view);
}
}
public void onNetworkRequest() {
}
public void onResultSuccess(NetworkEntity entity) {
if (entity.getRequest().getAction()
.equals(new FileRequest().getAction())) {
// 发送文件请求的返回数据
FileResponse file = (FileResponse) entity.getResponse();
String[] str = file.getDetails();
// 海报的图片
String[] posterArray = new String[request.getEventPosterArray().length];
for (int i = 0; i < request.getEventPosterArray().length; i++) {
posterArray[i] = str[i];
}
// 付费套餐的回报图片
if (request.getEventCombo() != null) {
for (int j = 0, k = 0; j < request.getEventCombo().length; j++) {
String name = request.getEventCombo()[j].getComboPhotoUrl();
if (name != null && !name.equals("")) {
k++;
request.getEventCombo()[j]
.setComboPhotoUrl(str[posterArray.length - 1
+ k]);
}
}
}
// 免费套餐的回报图片
if (request.getEventFreeCombo() != null
&& !StringUtil.checkStr(
request.getEventFreeCombo().getComboPhotoUrl())
.equals("")) {
request.getEventFreeCombo().setComboPhotoUrl(
str[str.length - 1]);
}
request.setEventPosterArray(posterArray);
request.setEventFrontCoverName(str[0]);
((AppContext)getApplication()).getmDataProvider()
.getJsonFromNetwork(request, this);
}
if (entity.getRequest().getAction()
.equals(new Iparty_releaseIpartyRequest().getAction())) {
if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
T.showTips(this, R.drawable.tips_smile, "发布成功!");
Intent it = new Intent(this, Main.class);
it.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(it);
finish();
}
}
public void onResultFail(String result) {
if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
T.showTips(this, R.drawable.tips_error, result);
}
@Override
protected void onResume() {
StatService.onResume(this);
super.onResume();
}
@Override
protected void onPause() {
StatService.onPause(this);
super.onPause();
}
}