package com.fanxin.app.fx;
import java.util.HashMap;
import java.util.Map;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.alibaba.fastjson.JSONObject;
import com.fanxin.app.Constant;
import com.fanxin.app.MYApplication;
import com.fanxin.app.R;
import com.fanxin.app.activity.BaseActivity;
import com.fanxin.app.fx.others.LoadDataFromServer;
import com.fanxin.app.fx.others.LocalUserInfo;
import com.fanxin.app.fx.others.LoadDataFromServer.DataCallBack;
import com.fanxin.app.fx.others.LoadUserAvatar;
import com.fanxin.app.fx.others.LoadUserAvatar.ImageDownloadedCallBack;
public class PayDetailActivity extends BaseActivity {
private String hxid;
private LoadUserAvatar avatarLoader;
private String nick;
@SuppressLint("SdCardPath")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pay_detail);
avatarLoader = new LoadUserAvatar(this, "/sdcard/fanxin/");
initView();
}
private void initView() {
nick = this.getIntent().getStringExtra("nick");
final String avater = getIntent().getStringExtra("avatar");
hxid = getIntent().getStringExtra("hxid");
final EditText et_money = (EditText) this.findViewById(R.id.et_money);
ImageView iv_avatar = (ImageView) this.findViewById(R.id.iv_avatar);
TextView tv_nick = (TextView) this.findViewById(R.id.tv_nick);
tv_nick.setText(nick);
if (avater != null && !avater.equals("")) {
Bitmap bitmap = avatarLoader.loadImage(iv_avatar, avater,
new ImageDownloadedCallBack() {
@Override
public void onImageDownloaded(ImageView imageView,
Bitmap bitmap) {
if (imageView.getTag() == avater) {
imageView.setImageBitmap(bitmap);
}
}
});
if (bitmap != null) {
iv_avatar.setImageBitmap(bitmap);
}
}
Button btn_pay = (Button) this.findViewById(R.id.btn_pay);
btn_pay.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String money = et_money.getText().toString().trim();
if (money == null) {
Toast.makeText(getApplicationContext(), "请输入金额",
Toast.LENGTH_SHORT).show();
return;
}
if (!isFloathString(money) && !isNumberString(money)) {
Toast.makeText(getApplicationContext(), "请输入正确的金额",
Toast.LENGTH_SHORT).show();
return;
}
pay(money);
}
});
}
private void pay(final String money) {
String money_temp=LocalUserInfo.getInstance(getApplicationContext()).getUserInfo("money");
if(TextUtils.isEmpty(money_temp)){
money_temp="0";
}
if(Float.parseFloat(money_temp)<Float.parseFloat(money)){
Toast.makeText(getApplicationContext(), "余额不足,请充值!", Toast.LENGTH_SHORT).show();
return;
}
final ProgressDialog dialog = new ProgressDialog(PayDetailActivity.this);
dialog.setMessage("正在转账...");
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dialog.show();
Map<String, String> map = new HashMap<String, String>();
map.put("hxid", MYApplication.getInstance().getUserName());
map.put("toHxid", hxid);
map.put("money", money);
LoadDataFromServer task = new LoadDataFromServer(
PayDetailActivity.this, Constant.URL_PAY, map);
task.getData(new DataCallBack() {
@Override
public void onDataCallBack(JSONObject data) {
dialog.dismiss();
if (data == null) {
Toast.makeText(getApplicationContext(), "服务器访问出错...",
Toast.LENGTH_SHORT).show();
return;
}
int code = data.getInteger("code");
if (code == 1) {
String my_money = LocalUserInfo.getInstance(
getApplicationContext()).getUserInfo("money");
String nowMoney = String.valueOf(Float.parseFloat(my_money)
- Float.parseFloat(money));
LocalUserInfo.getInstance(getApplicationContext())
.setUserInfo("money", nowMoney);
Intent intent = new Intent(PayDetailActivity.this,
PayResultActivity.class);
intent.putExtra("nick", nick);
intent.putExtra("money", money);
startActivity(intent);
finish();
}
}
});
}
public boolean isFloathString(String testString) {
if (!testString.contains(".")) {
return isNumberString(testString);
} else {
String[] floatStringPartArray = testString.split("\\.");
if (floatStringPartArray.length == 2) {
if (true == isNumberString(floatStringPartArray[0])
&& true == isNumberString(floatStringPartArray[1]))
return true;
else
return false;
} else
return false;
}
}
private boolean isNumberString(String testString) {
String numAllString = "0123456789";
if (testString.length() <= 0)
return false;
for (int i = 0; i < testString.length(); i++) {
String charInString = testString.substring(i, i + 1);
if (!numAllString.contains(charInString))
return false;
}
return true;
}
}