/**
*
*/
package com.hupu.games.casino;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.text.Editable;
import android.text.Html;
import android.text.TextWatcher;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager.LayoutParams;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
import com.hupu.games.R;
import com.hupu.games.activity.BaseGameActivity;
import com.hupu.games.common.HuPuRes;
import com.hupu.games.common.HupuLog;
import com.hupu.games.data.LiveEntity.Answer;
/**
* @author panyongjun
*
*/
public class CasinoDialog extends Dialog {
private static final String choice = "我猜:%s";
private static final String balance1 = "当前余额:<font color=\"#FF0000\">%d</font>金豆";
// private static final String bet1 = "投入:<font color=\"#FF0000\">%d</font>金币";
//
// private static final String bet2 = "已投入:<font color=\"#FF0000\">%d</font>金币";
//
// private static final String bet3 = "共投入:<font color=\"#FF0000\">%d</font>金币";
//
// private static final String bet4 = "加注:<font color=\"#FF0000\">%d</font>金币";
private static final String balance2 = "余额不足,需兑换<font color=\"#FF0000\">%d</font>金豆";
/** 题目 */
TextView txtContent;
/** 选择的答案 */
TextView txtChoice;
TextView txtBalance;
GridView gdView;
/** 用户下注 */
int bet;
/** 可以下注的选项 */
int[] bets;
/** 是不是无限制下注 */
boolean bNoLimited;
/** 余额 */
private int balance;
/** 已投入金额 */
private int beted;
private int res[] = { R.id.radio0, R.id.radio1, R.id.radio2, R.id.radio3,
R.id.radio4, R.id.radio5 };
private TextView tvs[];
/** 最大下注额 */
private int maxBet;
/** 是否是加注 */
private boolean isBeted;
BaseGameActivity mContext;
/**
* @param b 是否是加注
* */
public CasinoDialog(Context context, View.OnClickListener click, int[] bs,
boolean b) {
super(context, R.style.MyWebDialog);
mContext = (BaseGameActivity)context;
isBeted = b;
View v = LayoutInflater.from(context).inflate(R.layout.dialog_casino,
null);
txtContent = (TextView) v.findViewById(R.id.txt_casino_title);
txtChoice = (TextView) v.findViewById(R.id.txt_casino_choice);
txtBalance = (TextView) v.findViewById(R.id.txt_1);
bets = bs;
maxBet =bets[6];
bNoLimited = maxBet== 0;
v.findViewById(R.id.btn_cancel).setOnClickListener(click);
v.findViewById(R.id.btn_confirm).setOnClickListener(click);
setContentView(v);
getWindow().setGravity(Gravity.CENTER);
initRadio(v);
}
private void initRadio(View v) {
RadiobuttonListener n = new RadiobuttonListener();
tvs = new TextView[6];
for (int i = 0; i < 6; i++) {
tvs[i] = (TextView) v.findViewById(res[i]);
tvs[i].setOnClickListener(n);
if (!bNoLimited)//有限额
tvs[i].setEnabled(false);
else
{
if(i==0)
tvs[i].performClick();
}
tvs[i].setText(bets[i] + "金豆");
}
}
/**
* 显示对话框
* */
public void goShow(Answer answer) {
HupuLog.d("goShow","answer=" +answer.content+" max="+bets[6]);
txtContent.setText(answer.content+(bets[6]>0?"(最多投入"+bets[6]+"金豆)":""));
txtChoice.setText(String.format(choice, answer.title));
show();
getWindow().setLayout(LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT);
}
/**
* 设置余额
*
* @param v1
* 已投入
* @param v2
* 余额
* */
public void setBet(int v1, int v2) {
balance = v2;
beted = v1;
HupuLog.d("setBet", "type=" + isBeted);
HupuLog.d("setBet", "balance=" + balance + " ;beted=" + beted);
if (isBeted) {
//加注显示已加注金额
String s =txtChoice.getText()+"(已投入"+beted+")";
txtChoice.setText(s);
}
if (!bNoLimited)//有限额
{
boolean set=false;
for (int i = 0; i < 6; i++) {
if ( bets[i]+beted<= maxBet)
{
tvs[i].setEnabled(true);
if(!set)
{
tvs[i].performClick();
set =true;
}
}
}
}
txtBalance.setText( Html.fromHtml(String.format(balance1, balance)) );// 余额
}
private void updateValue() {
HupuLog.d("updateValue", "bet=" + bet);
}
public int getInputCoin() {
return bet;
}
/**是否有钱下注*/
public int canBet()
{
if(bet ==0)
return -2;//未选择下注金额
if(balance<5||balance<bet)
return -1;//余额不足
return 1;
}
public int getBetDif()
{
return bet-balance;
}
View lastView;
private class RadiobuttonListener implements View.OnClickListener {
@Override
public void onClick(View v) {
int id = v.getId();
if (lastView != null)
lastView.setSelected(false);
v.setSelected(true);
lastView = v;
switch (id) {
case R.id.radio0:
bet = bets[0];
break;
case R.id.radio1:
bet = bets[1];
break;
case R.id.radio2:
bet = bets[2];
break;
case R.id.radio3:
bet = bets[3];
break;
case R.id.radio4:
bet = bets[4];
break;
case R.id.radio5:
bet = bets[5];
break;
}
updateValue();
}
}
}