package com.partynetwork.iparty.iparty;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.provider.MediaStore;
import android.provider.MediaStore.Images.Media;
import android.text.Editable;
import android.text.TextWatcher;
import android.text.format.DateFormat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
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.Account_checkOrderRequest;
import com.partynetwork.dataprovider.json.struct.Account_getAccountInfoRequest;
import com.partynetwork.dataprovider.json.struct.Account_getAccountInfoResponse;
import com.partynetwork.dataprovider.json.struct.Account_getOrderNumberRequest;
import com.partynetwork.dataprovider.json.struct.Account_getOrderNumberResponse;
import com.partynetwork.dataprovider.json.struct.FileRequest;
import com.partynetwork.dataprovider.json.struct.FileResponse;
import com.partynetwork.dataprovider.json.struct.Iparty_joinIpartyRequest;
import com.partynetwork.dataprovider.util.BitmapUtil;
import com.partynetwork.dataprovider.util.StringUtil;
import com.partynetwork.dataprovider.util.T;
import com.partynetwork.dataprovider.util.Util;
import com.partynetwork.iparty.R;
import com.partynetwork.iparty.alipay.AlipayHelper;
import com.partynetwork.iparty.alipay.Result;
import com.partynetwork.iparty.app.AppContext;
import com.partynetwork.iparty.app.common.BitmapManager;
import com.partynetwork.iparty.info.AccountInfo;
import com.partynetwork.iparty.info.IpartyComboInfo;
import com.partynetwork.iparty.info.IpartyInfo;
import com.partynetwork.iparty.info.CommonOrderInfo;
import com.partynetwork.iparty.info.TimeInfo;
import com.partynetwork.myview.mytoast.LoadingDialog;
import com.partynetwork.myview.mytoast.OkPopup;
import com.partynetwork.myview.wheelview.ArrayWheelAdapter;
import com.partynetwork.myview.wheelview.WheelAdapter;
import com.partynetwork.myview.wheelview.WheelPicker;
import com.partynetwork.myview.wheelview.WheelView;
import com.partynetwork.myview.wheelview.WheelPicker.WheelListener;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
@SuppressLint("HandlerLeak")
public class IpartyPayActivity extends Activity implements IJsonResultListener,
TextWatcher {
public static final String INFO = "info";
public static final String TYPE = "type";
/** 选择相机拍照 */
private static final int SELECT_CAMER = 101;
/** 支付页面 */
private static final int PAY_PAGE = 0;
/** 套餐页面 */
private static final int COMBO_PAGE = 1;
/** 需要支付 */
public static final int NEED_MONEY = 0;
/** 不需要支付 */
public static final int FREE = 1;
/** 支付 */
private static final int RQF_PAY = 1;
/** 登陆 */
private static final int RQF_LOGIN = 2;
/**
* body体
*/
@ViewInject(R.id.body)
private LinearLayout body;
/**
* 向左
*/
@ViewInject(R.id.menu_head_left_iv)
private ImageView left;
/**
* 向右
*/
@ViewInject(R.id.menu_head_right_iv)
private ImageView right;
/**
* 封面图片
*/
@ViewInject(R.id.title_iv)
private ImageView bg;
/**
* 需要支付的金额
*/
@ViewInject(R.id.money_tv)
private TextView moneyTv;
/**
* 活动标题
*/
@ViewInject(R.id.title_tv)
private TextView title;
/**
* 支付方式的布局
*/
@ViewInject(R.id.pay_way_ll)
private LinearLayout payWayLl;
/**
* 套餐回报文本
*/
@ViewInject(R.id.introduce_tv)
private TextView introduceTv;
/**
* 编辑按钮
*/
@ViewInject(R.id.editor_tv)
private TextView editorTv;
/**
* 参加时间
*/
@ViewInject(R.id.time_tv)
private TextView time;
/**
* 确认提交
*/
@ViewInject(R.id.pay_submit)
private TextView submit;
/**
* 选择照片按钮
*/
@ViewInject(R.id.choose_photo_rl)
private RelativeLayout choosePhoto;
/**
* 选择照片的布局
*/
@ViewInject(R.id.free_photo_ll)
private LinearLayout photoLL;
/**
* 留言的布局
*/
@ViewInject(R.id.free_message_ll)
private LinearLayout messageLL;
/**
* 显示的照片
*/
@ViewInject(R.id.photo)
private ImageView photo;
/**
* 需要联系方式的布局
*/
@ViewInject(R.id.need_photo_ll)
private LinearLayout needPhotoLL;
/**
* 公开参加
*/
@ViewInject(R.id.way_pub)
private TextView wayPub;
/**
* 隐私参加
*/
@ViewInject(R.id.way_stealth)
private TextView wayStealth;
/**
* 参加姓名
*/
@ViewInject(R.id.name_et)
private EditText name;
/**
* 电话
*/
@ViewInject(R.id.phone_et)
private EditText phone;
/**
* 申请理由
*/
@ViewInject(R.id.join_message_et)
private EditText joinMessage;
/**
* 账户余额
*/
@ViewInject(R.id.balance)
private TextView balanceTv;
/**
* 账户余额付款
*/
@ViewInject(R.id.pay_way_account_iv)
private ImageView wayAccountIv;
/**
* 账户余额付款输入框
*/
@ViewInject(R.id.pay_way_account_et)
private EditText wayAccountEt;
/**
* 账户余额付款提示文本
*/
@ViewInject(R.id.pay_way_account_tv)
private TextView wayAccountTv;
/**
* 支付宝付款
*/
@ViewInject(R.id.pay_way_alipay_iv)
private ImageView wayAlipayIv;
/** 支付方式列表,用于模拟单选操作 */
private List<ImageView> payWayList = new ArrayList<ImageView>();
/** 数据源 */
private IpartyInfo info;
/** 支付方式 0: 付费 1:免费 */
private int payType;
/** 支付页面对象 */
private View payView;
/** 标题对象 */
private View titleView;
/** 当前所处页面 */
private int pageNumber;
/** 参与方式列表,用于模拟单选操作 */
private List<TextView> joinWayList = new ArrayList<TextView>();
/** 参加方式 */
private int joinWay;
/** 套餐的选择列表,用于模拟单选操作 */
private List<ImageView> chooseList = new ArrayList<ImageView>();
/** 用于布局选中的单选效果 */
private List<RelativeLayout> selectedList = new ArrayList<RelativeLayout>();
/** 当前订单金额 */
private float money;
/** 选择的套餐Id */
private int comboId;
/** 参加套餐数量 */
private int joinNumber = 1;
/** 照片的存放路径 */
private String filePath;
/** 参加Party的对象 */
private Iparty_joinIpartyRequest request;
/** 消息提示框 */
private OkPopup mOkPopup;
/** 充值订单 */
private String orderNumber;
/** 账户余额 */
private float balance;
/** 支付方式 */
private int payWay;
/** 滚轮弹窗 */
private WheelPicker wheelPicker;
/** 本次生成的路径 */
private String imagePath;
/**
* 发布进度提示框
*/
private LoadingDialog dialog;
AppContext context;
private BitmapManager bitmapManager;
/**
*
* 覆盖方法
*
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.iparty_pay);
ViewUtils.inject(this);
context = (AppContext) getApplication();
init();
}
/**
* 初始化数据、控件
*/
private void init() {
Intent intent = getIntent();
info = intent.getParcelableExtra(INFO);
payType = intent.getIntExtra(TYPE, FREE);
joinWayList.add(wayPub);
joinWayList.add(wayStealth);
payWayList.add(wayAccountIv);
payWayList.add(wayAlipayIv);
dialog = new LoadingDialog(this, "提交中");
mOkPopup = new OkPopup(this);
bitmapManager=new BitmapManager();
sendRequest();
initView();
}
/**
* 初始化布局
*/
private void initView() {
// 显示背景图片
bitmapManager.loadBitmap(info.getEventFrontCoverUrl(), bg);
title.setText(info.getEventTitle());
titleView = body.getChildAt(0);
payView = body.getChildAt(1);
// 免费申请状态
if (payType == FREE) {
changBody(PAY_PAGE);
} else {
changBody(COMBO_PAGE);
chooseCombo(0);
}
choosePayWay(1);
}
/**
* 发送数据请求获取账户余额
*/
private void sendRequest() {
Account_getAccountInfoRequest request = new Account_getAccountInfoRequest();
request.setUserId(context.getLoginUid());
context.getmDataProvider().getJsonFromNetwork(request, this);
}
/**
* 设置监听
*
* @param view
*/
@OnClick({ R.id.menu_head_left, R.id.choose_photo_rl, R.id.way_pub,
R.id.way_stealth, R.id.menu_head_right, R.id.editor_tv,
R.id.pay_submit, R.id.time_tv, R.id.pay_way_account_iv,
R.id.pay_way_alipay_iv })
public void onClick(View view) {
switch (view.getId()) {
case R.id.menu_head_left:
// 返回
if (pageNumber == COMBO_PAGE) {
// 套餐选择界面
finish();
} else {
// 支付套餐界面
if (payType == FREE) {
// 免费套餐
finish();
} else {
// 收费套餐
changBody(COMBO_PAGE);
if (info.getEventCombo() == null) {
return;
}
for (int i = 0; i < info.getEventCombo().length; i++) {
if (info.getEventCombo()[i].getComboId() == comboId) {
chooseCombo(i);
}
}
}
}
break;
case R.id.choose_photo_rl:
// 相机拍照
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
imagePath = BitmapUtil.getImagePath();
Uri uri = Uri.fromFile(new File(imagePath));
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
this.startActivityForResult(intent, SELECT_CAMER);
break;
case R.id.way_pub:
// 公开参加
setJoinWay(0);
break;
case R.id.way_stealth:
// 隐私参加
setJoinWay(1);
break;
case R.id.menu_head_right:
// 下一步
if (pageNumber == COMBO_PAGE) {
changBody(PAY_PAGE);
}
break;
case R.id.editor_tv:
// 编辑
changBody(COMBO_PAGE);
for (int i = 0; i < info.getEventCombo().length; i++) {
if (info.getEventCombo()[i].getComboId() == comboId) {
chooseCombo(i);
}
}
break;
case R.id.pay_submit:
// 确认提交
sendJoinIpartyRequest();
break;
case R.id.time_tv:
// 参加时间
List<String> timeList = new ArrayList<String>();
for (TimeInfo time : info.getEventTime()) {
String startTime = time.getStartTime();
String endTime = time.getEndTime();
int[] days = time.getWeek();
timeList.addAll(StringUtil.getDates(startTime, endTime, days));
}
wheelPicker = new WheelPicker(this,1,new ArrayWheelAdapter<String>(timeList.toArray(new String[timeList.size()])),
timeWheelListener);
wheelPicker.showAt(body);
break;
case R.id.pay_way_account_iv:
choosePayWay(0);
break;
case R.id.pay_way_alipay_iv:
choosePayWay(1);
break;
default:
break;
}
}
/**
* 发送参加Party的请求
*/
private void sendJoinIpartyRequest() {
String time = this.time.getText().toString();
if (time == null || time.equals("")) {
mOkPopup.setTitle("请选择参加时间");
mOkPopup.showAtLocation(this.time);
return;
}
if (payType == FREE) {
if (info.getEventNeedCondition() == 0) {
if (filePath == null || filePath.equals("")) {
mOkPopup.setTitle("请拍照申请!");
mOkPopup.showAtLocation(this.time);
return;
}
}
sendJoinPartyRequest();
} else {
if (payWay == 0 && balance > money) {
sendJoinPartyRequest();
} else if (payWay == 1) {
// 充值
if (money == 0) {
sendJoinPartyRequest();
} else {
Account_getOrderNumberRequest request = new Account_getOrderNumberRequest();
request.setUserId(context.getLoginUid());
request.setType(1);
request.setOrderMoney(money);
context.getmDataProvider()
.getJsonFromNetwork(request, this);
}
} else {
mOkPopup.setTitle("账户余额不足,请充值后参加!");
mOkPopup.showAtLocation(this.time);
}
}
}
/**
* 更换body体显示的内容
*
* @param i
*/
private void changBody(int i) {
pageNumber = i;
removeBody();
switch (i) {
case PAY_PAGE:
showPay();
break;
case COMBO_PAGE:
showCombo();
break;
default:
break;
}
}
/**
* 显示支付页面
*/
private void showPay() {
left.setImageResource(R.drawable.menu_head_back);
right.setVisibility(View.GONE);
body.addView(payView);
if (payType == FREE) {
submit.setText("提交申请");
left.setImageResource(R.drawable.menu_head_close);
editorTv.setVisibility(View.INVISIBLE);
photoLL.setVisibility(View.VISIBLE);
messageLL.setVisibility(View.VISIBLE);
payWayLl.setVisibility(View.GONE);
moneyTv.setText("免费");
comboId = info.getEventFreeCombo().getComboId();
introduceTv.setText(info.getEventFreeCombo().getIntroduce());
} else {
submit.setText("确认支付");
editorTv.setVisibility(View.VISIBLE);
photoLL.setVisibility(View.GONE);
messageLL.setVisibility(View.GONE);
payWayLl.setVisibility(View.VISIBLE);
moneyTv.setText("¥" + money);
for (int i = 0; i < info.getEventCombo().length; i++) {
if (info.getEventCombo()[i].getComboId() == comboId) {
introduceTv.setText(info.getEventCombo()[i].getIntroduce());
}
}
}
if (info.getEventNeedCondition() == 0) {
needPhotoLL.setVisibility(View.VISIBLE);
} else {
needPhotoLL.setVisibility(View.GONE);
}
}
/**
* 显示套餐
*/
private void showCombo() {
left.setImageResource(R.drawable.menu_head_close);
right.setVisibility(View.VISIBLE);
right.setImageResource(R.drawable.menu_head_next);
if (info.getEventCombo() == null) {
return;
}
for (int i = 0; i < info.getEventCombo().length; i++) {
final IpartyComboInfo comboInfo = info.getEventCombo()[i];
View view = LayoutInflater.from(this).inflate(
R.layout.iparty_join_combo, null);
view.setTag(i);
// 选择按钮
final ImageView chooseBtn = (ImageView) view
.findViewById(R.id.choose_btn);
chooseList.add(chooseBtn);
// 选中显示的选择数量布局
final RelativeLayout seletedRL = (RelativeLayout) view
.findViewById(R.id.select_rl);
selectedList.add(seletedRL);
// 支付的金额
final TextView pay = (TextView) view.findViewById(R.id.pay_money);
// 减按钮
ImageView subBtn = (ImageView) view.findViewById(R.id.sub_btn);
// 套餐的数量
final TextView num = (TextView) view.findViewById(R.id.num);
// 加按钮
ImageView addBtn = (ImageView) view.findViewById(R.id.add_btn);
// 套餐的金额
TextView comboMoney = (TextView) view
.findViewById(R.id.combo_money);
// 套餐的参加数量
TextView comboTip = (TextView) view.findViewById(R.id.combo_tip);
// 套餐的回报
TextView introduce = (TextView) view
.findViewById(R.id.introduce_tv);
if (comboId != comboInfo.getComboId()) {
pay.setText("¥" + StringUtil.formatFloat(comboInfo.getMoney()));
} else {
pay.setText("¥" + StringUtil.formatFloat(money));
joinNumber = (int) (money / comboInfo.getMoney());
num.setText(joinNumber + "");
}
comboMoney.setText("预付 ¥"
+ StringUtil.formatFloat(comboInfo.getMoney()) + "+");
comboTip.setText(comboInfo.getAttendNum() + "/"
+ comboInfo.getMaxNum());
introduce.setText(comboInfo.getIntroduce());
// 减按钮
subBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
int number = Integer.parseInt(num.getText().toString());
if (number > 1) {
number--;
}
joinNumber = number;
num.setText(joinNumber + "");
money = comboInfo.getMoney() * number;
pay.setText("¥" + StringUtil.formatFloat(money));
}
});
// 加按钮
addBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
int number = Integer.parseInt(num.getText().toString());
if (number < comboInfo.getMaxNum()
- comboInfo.getAttendNum()) {
number++;
}
joinNumber = number;
num.setText(joinNumber + "");
money = comboInfo.getMoney() * number;
pay.setText("¥" + StringUtil.formatFloat(money));
}
});
// 整个布局的监听
view.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
pay.setText("¥"
+ StringUtil.formatFloat(comboInfo.getMoney()));
joinNumber = 1;
num.setText(joinNumber + "");
chooseCombo(Integer.parseInt(arg0.getTag().toString()));
// 更改布局时用默认金额代替
money = comboInfo.getMoney();
}
});
body.addView(view);
}
}
/**
* 选择哪个套餐
*
* @param position
*/
private void chooseCombo(int position) {
for (int i = 0; i < chooseList.size(); i++) {
IpartyComboInfo comboInfo = info.getEventCombo()[i];
if (position == i) {
comboId = comboInfo.getComboId();
if (money == 0) {
// 初始化时获取当前的套餐金额
money = comboInfo.getMoney();
}
if (comboInfo.getAttendNum() < comboInfo.getMaxNum()) {
selectedList.get(i).setVisibility(View.VISIBLE);
chooseList.get(i).setImageResource(
R.drawable.contacts_selected);
}
} else {
selectedList.get(i).setVisibility(View.GONE);
chooseList.get(i).setImageResource(R.drawable.contacts_normal);
}
}
}
/**
* 选择支付方式
*/
private void choosePayWay(int position) {
payWay = position;
if (position == 0) {
wayAccountEt.setText(money + "");
wayAccountTv.setText("支付¥" + money + "元");
wayAccountEt.addTextChangedListener(this);
if (money > balance) {
mOkPopup.setTitle("账户余额不足,请使用支付宝付款参加!");
mOkPopup.showAtLocation(this.time);
choosePayWay(1);
}
} else {
wayAccountEt.setText("");
wayAccountTv.setText("支付¥" + 0 + "元");
wayAccountEt.setEnabled(false);
}
for (int i = 0; i < payWayList.size(); i++) {
ImageView image = payWayList.get(i);
if (position == i) {
image.setImageResource(R.drawable.contacts_selected);
} else {
image.setImageResource(R.drawable.contacts_normal);
}
}
}
/**
* 移除当前body体里面所有的控件
*/
private void removeBody() {
body.removeAllViews();
body.addView(titleView);
chooseList.removeAll(chooseList);
selectedList.removeAll(selectedList);
}
/**
* 覆盖方法
*
* @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);
// 选择照片的返回结果
// 选择照片的返回结果
if (data == null) {
if (requestCode == SELECT_CAMER) {
filePath = imagePath;
// 根据地址,实例化对象
if (filePath != "") {
choosePhoto.setVisibility(View.GONE);
photo.setVisibility(View.VISIBLE);
bitmapManager.loadBitmap(filePath, photo);
}
}
return;
}
Object object = null;
if (resultCode == Activity.RESULT_OK) {
switch (requestCode) {
case SELECT_CAMER:
// 相机
if (data.getData() != null) {
// 根据返回的URI获取对应的SQLite信息
Cursor cursor = this.getContentResolver().query(
data.getData(), null, null, null, null);
if (cursor.moveToFirst()) {
filePath = cursor.getString(cursor
.getColumnIndex(Media.DATA));// 获取绝对路径
}
cursor.close();
} else {// 三星 小米(小米手机不会自动存储DCIM... 这点让哥又爱又恨...)
object = (Bitmap) (data.getExtras() == null ? null : data
.getExtras().get("data"));
Bitmap bitmap = object == null ? null : (Bitmap) object;
if (bitmap != null) {
try {
filePath = BitmapUtil.saveImg(bitmap, DateFormat
.format("yyyy-MM-dd-hh-mm-ss", new Date())
.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
filePath = !filePath.equals("") ? filePath : getRealFilePath();
break;
default:
break;
}
if (filePath != "") {
choosePhoto.setVisibility(View.GONE);
photo.setVisibility(View.VISIBLE);
bitmapManager.loadBitmap(filePath, photo);
}
} else {
Util.showMsg(this, "请重新选择图片");
}
}
/**
* 获取系统默认存储真实文件路径 两个路径 一个是最后一张所拍图片路径
* (由于设置了存储路径所以DCIM中会存储两张一模一样的图片,所以在此获取两张图片路径以便于缩放处理后全部删除)
*
* @param filePath
* @return
*/
protected String getRealFilePath() {
String filePath = "";
// MediaStore.Images.Media.EXTERNAL_CONTENT_URI
// content://media/external/images/media
Cursor cursor = this.getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null,
Media.DATE_MODIFIED + " desc");
if (cursor.moveToNext()) {
/**
* _data:文件的绝对路径 Media.DATA='_data'
*/
filePath = cursor.getString(cursor.getColumnIndex(Media.DATA));
}
return filePath;
}
/**
* 设置参加形式
*
* @param position
* 0:公开参加;1:隐私参加
*/
private void setJoinWay(int position) {
joinWay = position;
Drawable left = null;
for (int i = 0; i < joinWayList.size(); i++) {
if (position == i) {
left = this.getResources().getDrawable(
R.drawable.contacts_selected);
left.setBounds(0, 0, left.getMinimumWidth(),
left.getMinimumHeight());
joinWayList.get(i).setCompoundDrawables(left, null, null, null);
} else {
left = this.getResources().getDrawable(
R.drawable.contacts_normal);
left.setBounds(0, 0, left.getMinimumWidth(),
left.getMinimumHeight());
joinWayList.get(i).setCompoundDrawables(left, null, null, null);
}
}
}
/**
* 时间滚轮的监听
*/
private WheelListener timeWheelListener = new WheelListener() {
@Override
public WheelAdapter onChange(WheelView wheel, int oldValue, int newValue) {
return null;
}
@Override
public void confirm(String str) {
StringUtil.setText(time, str);
}
@Override
public void cancel() {
}
};
/**
* 发送参加Party请求
*/
private void sendJoinPartyRequest() {
request = new Iparty_joinIpartyRequest();
request.setIpartyId(this.info.getIpartyId());
request.setJoinWay(joinWay);
request.setMoney(money);
request.setUserId(context.getLoginUid());
request.setComboId(comboId);
request.setJoinNumber(joinNumber);
request.setJoinName(name.getText().toString());
request.setJoinPhone(phone.getText().toString());
request.setJoinMessage(joinMessage.getText().toString());
request.setJoinTime(StringUtil.getTime(this.time.getText().toString()));
if (filePath == null || filePath.equals("")) {
context.getmDataProvider().getJsonFromNetwork(request, this);
} else {
FileRequest fileRequest = new FileRequest();
fileRequest.setFilePath(new String[] { filePath });
context.getmDataProvider().getJsonFromNetwork(fileRequest, this);
}
}
public void onNetworkRequest() {
if (dialog != null && !dialog.isShowing()) {
dialog.show();
}
}
public void onResultSuccess(NetworkEntity entity) {
if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
if (entity.getRequest().getAction()
.equals(new FileRequest().getAction())) {
FileResponse fileResponse = (FileResponse) entity.getResponse();
String name = fileResponse.getDetails()[0];
request.setJoinPhoto(name);
context.getmDataProvider().getJsonFromNetwork(request, this);
}
if (entity.getRequest().getAction()
.equals(new Iparty_joinIpartyRequest().getAction())) {
if (payType == FREE) {
T.showTips(this, R.drawable.tips_smile,
"你已成功申请该Party,请耐心等待发起人同意!");
} else {
T.showTips(this, R.drawable.tips_smile,
"恭喜你已成功参加该Party!请到助手中查看活动详情。");
}
this.finish();
}
// 获取充值订单号
if (entity.getRequest().getAction()
.equals(new Account_getOrderNumberRequest().getAction())) {
Account_getOrderNumberResponse response = (Account_getOrderNumberResponse) entity
.getResponse();
CommonOrderInfo info = response.getDetails();
if (info != null) {
orderNumber = info.getOrderNumber();
if (orderNumber == null || orderNumber.equals("")) {
return;
}
info.setOrderName("充值");
info.setOrderContent("Party账户充值");
AlipayHelper.doAlipay(this, mHandler, info);
}
}
// 获取订单状态检验结果
if (entity.getRequest().getAction()
.equals(new Account_checkOrderRequest().getAction())) {
sendJoinPartyRequest();
}
// 获取账户余额
if (entity.getRequest().getAction()
.equals(new Account_getAccountInfoRequest().getAction())) {
Account_getAccountInfoResponse response = (Account_getAccountInfoResponse) entity
.getResponse();
AccountInfo info = response.getDetails();
// 余额
balance = (float) (Math.round(Double.parseDouble(info
.getAccountBalance()) * 100)) / 100;
balanceTv.setText("可支付余额:¥" + balance + "元");
}
}
public void onResultFail(String result) {
if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
T.showTips(this, R.drawable.tips_error, result);
}
@SuppressLint("HandlerLeak")
Handler mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
Result result = new Result((String) msg.obj);
switch (msg.what) {
case RQF_PAY:
if (result.getResult() != null
&& result.getResult().equals("9000")) {
// 向服务器查询订单状态
Account_checkOrderRequest request = new Account_checkOrderRequest();
request.setUserId(context.getLoginUid());
request.setOrderNumber(orderNumber);
context.getmDataProvider().getJsonFromNetwork(request,
IpartyPayActivity.this);
}
break;
case RQF_LOGIN:
break;
default:
break;
}
};
};
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.toString().equals("")) {
wayAccountTv.setText("支付¥" + 0 + "元");
} else {
if (balance > Float.parseFloat(s.toString())) {
wayAccountTv.setText("支付¥" + s.toString() + "元");
} else {
wayAccountTv.setText("金额错误");
}
}
}
@Override
public void afterTextChanged(Editable s) {
}
}