package com.hupu.games.fragment;
import java.util.ArrayList;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.TextView;
import com.hupu.games.R;
import com.hupu.games.activity.BaseGameActivity;
import com.hupu.games.activity.FAQActivity;
import com.hupu.games.activity.MyCaipiaoListActivity;
import com.hupu.games.activity.UserGoldActivity;
import com.hupu.games.adapter.QuizListingAdapter;
import com.hupu.games.casino.CaipiaoCasinoDialog;
import com.hupu.games.casino.CasinoDialog;
import com.hupu.games.casino.MyBoxActivity;
import com.hupu.games.common.HuPuRes;
import com.hupu.games.common.HupuLog;
import com.hupu.games.common.SharedPreferencesMgr;
import com.hupu.games.data.BitCoinReq;
import com.hupu.games.data.IncreaseEntity;
import com.hupu.games.data.LiveEntity.Answer;
import com.hupu.games.data.game.quiz.QuizCaipiaoEntity;
import com.hupu.games.data.game.quiz.QuizCaipiaoEntity.CaipiaoAnswer;
import com.hupu.games.data.game.quiz.QuizCommitResp;
import com.hupu.games.data.game.quiz.QuizEntity;
import com.hupu.games.data.game.quiz.QuizListResp;
import com.hupu.games.data.game.quiz.QuizResp;
import com.hupu.games.data.goldbean.GoldBeanManager;
import com.hupu.games.pay.BasePayActivity;
import com.hupu.games.view.PinnedHeaderXListView;
import com.hupu.games.view.PinnedHeaderXListView.IXListViewListener;
public class QuizListFragment extends BaseFragment {
PinnedHeaderXListView mListView;
QuizListingAdapter mAdapter;
LayoutInflater mInflater;
View v;
TextView userInfo, coinNum;
ImageView goldImg, addImg;
private View topInfo;
private boolean isIncrease = false;
private int[] bets;
public String CoinNum = "0";
public float caipiaoBalance = 0f;
public void setTag(String t) {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater
.inflate(R.layout.fragment_quiz_list, container, false);
coinNum = (TextView) ((BaseGameActivity) getActivity())
.findViewById(R.id.coin_num);
goldImg = (ImageView) ((BaseGameActivity) getActivity())
.findViewById(R.id.gold_img);
addImg = (ImageView) ((BaseGameActivity) getActivity())
.findViewById(R.id.add_img);
mInflater = LayoutInflater.from(getActivity());
// openQid = 10;
mListView = (PinnedHeaderXListView) v.findViewById(R.id.list_player);
if (topInfo == null) {
topInfo = mInflater.inflate(R.layout.quiz_list_head, null);
userInfo = (TextView) topInfo.findViewById(R.id.user_info);
}
topInfo.findViewById(R.id.user_quiz_info).setOnClickListener(
new Click());
mListView.addHeaderView(topInfo);
mListView.setPullLoadEnable(false);
mListView.setXListViewListener(new pullListener());
if (mAdapter == null) {
mAdapter = new QuizListingAdapter(getActivity(), new Click());
}
mListView.setAdapter(mAdapter);
// mListView.setFreshState();
reqNewData();
return v;
}
/** 获取最新数据 */
public void reqNewData() {
((BaseGameActivity) getActivity()).getQuizList();
}
@Override
public void entry() {
super.entry();
// if (mAct != null)
// reqNewData();
}
/** 设置listview 上拉和下拉的监听 */
class pullListener implements IXListViewListener {
@Override
public void onRefresh() {
reqNewData();
}
@Override
public void onLoadMore() {
}
}
public void onReqResponse(Object o, int methodId, int mQid) {
// super.onReqResponse(o, methodId);
//
if (methodId == HuPuRes.REQ_METHOD_QUIZ_LIST) {
if (o != null) {
quizList = (QuizResp) o;
if (quizList.walletBalance == null || quizList.walletBalance.equals(""))
caipiaoBalance = 0f;
else
caipiaoBalance = Float.parseFloat(quizList.walletBalance);
mAdapter.setData(quizList.list, quizList.caipiaoResp);
mListView.stopRefresh();
mListView.stopLoadMore();
mAdapter.notifyDataSetChanged();
int winCoin = quizList.coin > 0 ? quizList.coin : 0;
if (quizList.join > 0) {
topInfo.setVisibility(View.VISIBLE);
}
bets = quizList.bets;
userInfo.setText(Html
.fromHtml("参与"
+ quizList.join
+ "场竞猜,猜赢<font color=\"#FF0000\">"
+ quizList.win
+ (quizList.win <= 0 ? "</font>场,暂无排名"
: (quizList.winRank <= 100 ? "</font>场,排名第<font color=\"#FF0000\">"
+ quizList.winRank + "</font>"
: "</font>场,排名第"
+ quizList.winRank))
+ ",总奖金<font color=\"#FF0000\">"
+ winCoin
+ (quizList.coinRank <= 0 ? "</font>金豆,暂无排名 。"
: (quizList.coinRank <= 100 ? "</font>金豆,排名第<font color=\"#FF0000\">"
+ quizList.coinRank + "</font>"
: "</font>金豆,排名第"
+ quizList.coinRank+"。"))));
topInfo.setVisibility(View.VISIBLE);
// 宝箱数 未0 宝箱图标隐藏 数字不显示0
if (((BaseGameActivity) getActivity()).mToken != null) {
coinNum.setText(""
+ (quizList.balance >= 1000000 ? (quizList.balance / 10000)
+ "万"
: quizList.balance));
goldImg.setVisibility(View.VISIBLE);
addImg.setVisibility(View.VISIBLE);
} else {
coinNum.setText(SharedPreferencesMgr.getString(
"BindBtnText", quizList.balance + ""));
goldImg.setVisibility(View.GONE);
addImg.setVisibility(View.GONE);
}
if (quizList.balance == 0) {
CoinNum = "0";
} else if (quizList.balance > 0 && quizList.balance < 10) {
CoinNum = "<10";
} else if (quizList.balance >= 10 && quizList.balance < 100) {
CoinNum = "10-100";
} else if (quizList.balance >= 100 && quizList.balance < 1000) {
CoinNum = "100-1000";
} else if (quizList.balance >= 1000) {
CoinNum = ">1000";
}
// 有小红点 跳过去
if (mQid > 0) {
setSelection(mQid);
}
// 更新直播流中的加注状态
getJoinQuiz();
((BaseGameActivity) getActivity()).updateBet(increaseList);
}
} else if (methodId == HuPuRes.REQ_METHOD_QUIZ_LIST_COMMIT
|| methodId == HuPuRes.REQ_METHOD_POST_INCREASE) {
// 提交竞猜
QuizCommitResp entity = (QuizCommitResp) o;
if (entity.result == -1)
((BaseGameActivity) getActivity()).showToast("您已经参加过该竞猜了");
else if (entity.result == 1) {
reqNewData();
((BaseGameActivity) getActivity()).showToast("参与成功");
} else if (entity.result == 2) {
reqNewData();
// 通知领救济金
((BaseGameActivity) getActivity())
.showToast(getString(R.string.get_now_info));
} else if (entity.result == -2) {
// showChargeNotify(mCasinoDialog.getBetDif());// 没钱提示去冲钱
if(!((BaseGameActivity) getActivity()).isExchange)
{
GoldBeanManager.getInstance().onExchangeGoldBeanDiaog((BasePayActivity) getActivity(), entity.eGoldBean);
}
} else if (entity.result == -4) {
((BaseGameActivity) getActivity()).showToast("该竞猜已关闭");
} else {
((BaseGameActivity) getActivity()).showToast("投注金额超出限额");
}
} else if (methodId == HuPuRes.REQ_METHOD_BET_COINS) {
BitCoinReq req = (BitCoinReq) o;
if (req.balance == -1) {
((BaseGameActivity) getActivity()).showToast("token无效,请重新登录");
} else {
updateMoney(req.betCoins, req.balance);
}
} else if (methodId == HuPuRes.REQ_METHOD_CAIPIAO_COMMIT) {
// 提交彩票
QuizCommitResp entity = (QuizCommitResp) o;
if (entity.result == -1)
((BaseGameActivity) getActivity()).showToast("余额不足");
else if (entity.result == 1) {
reqNewData();
((BaseGameActivity) getActivity()).showToast("购买成功");
}
}
}
private Answer answer;
private QuizResp quizList;
CasinoDialog mCasinoDialog;
/** */
public void showCasinoDialog(final Answer answer, int blc, boolean isB) {
// if (mCasinoDialog != null && mCasinoDialog.isShowing()) {
// return;
// }
if (bets != null && bets.length > 4) {
reqBitCoin(answer.casino_id);
bets[6] = answer.max_bet;
mCasinoDialog = new CasinoDialog(getActivity(), new Click(), bets,
isB);
mCasinoDialog.goShow(answer);
}
}
CaipiaoCasinoDialog mCaipiaoCasinoDialog;
/** */
public void showCaipiaoCasinoDialog(final QuizCaipiaoEntity caipiao,
int blc, boolean isB, int index) {
mCaipiaoCasinoDialog = new CaipiaoCasinoDialog(getActivity(),
new Click(), caipiao, index);
mCaipiaoCasinoDialog.setBet(caipiaoBalance);
mCaipiaoCasinoDialog.goShow(caipiao.title);
}
public void showCaipiaoCasinoDialog(final CaipiaoAnswer scoreAnswer,
int blc, boolean isB) {
mCaipiaoCasinoDialog = new CaipiaoCasinoDialog(getActivity(),
new Click(), scoreAnswer);
mCaipiaoCasinoDialog.setBet(caipiaoBalance);
mCaipiaoCasinoDialog.goShow(scoreAnswer.caipiao_title);
}
// 更新余额
public void updateMoney(int betCoin, int balance) {
if (mCasinoDialog != null && mCasinoDialog.isShowing()) {
mCasinoDialog.setBet(betCoin, balance);
}
}
/** 请求余额 */
public void reqBitCoin(int qid) {
((BaseGameActivity) getActivity()).reqBitCoin(qid);
}
/** 设置listview点击监听器 */
class ListClick implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int pos, long arg3) {
}
}
QuizCaipiaoEntity caipiaoEntity;
CaipiaoAnswer scoreAnswer;
boolean isSendScoreAnswer = false; //除了比分选项点击会为true 其他全部为false
int answer_index = 0;
// 竞猜列表所有点击事件的处理
public class Click implements OnClickListener {
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.btn_answer1:
isIncrease = false;
if (((BaseGameActivity) getActivity()).mToken == null) {
// 需要登录
((BaseGameActivity) getActivity())
.showBindDialog(SharedPreferencesMgr.getString(
"dialogQuize",
getString(R.string.casino_notify)));
} else {
answer = (Answer) v.getTag();
if (answer != null)
showCasinoDialog(answer, 0, false);
}
break;
case R.id.btn_answer2:
isIncrease = false;
if (((BaseGameActivity) getActivity()).mToken == null) {
// 需要登录
((BaseGameActivity) getActivity())
.showBindDialog(SharedPreferencesMgr.getString(
"dialogQuize",
getString(R.string.casino_notify)));
} else {
answer = (Answer) v.getTag();
if (answer != null)
showCasinoDialog(answer, 0, false);
}
break;
case R.id.btn_caipiao_answer1:
((BaseGameActivity) getActivity()).sendUmeng(
HuPuRes.UMENG_EVENT_LOTTERY,
HuPuRes.UMENG_KEY_ANSWER_BTN,
HuPuRes.UMENG_VALUE_LEFT_ANSWER);
if (((BaseGameActivity) getActivity()).mToken == null) {
// 需要登录
((BaseGameActivity) getActivity())
.showBindDialog(SharedPreferencesMgr.getString(
"caipiaoLoginAlert",
getString(R.string.casino_notify)));
} else {
answer_index = 0;
caipiaoEntity = (QuizCaipiaoEntity) v.getTag();
if (caipiaoEntity.mList.get(0).disable == 1) {
((BaseGameActivity) getActivity()).showToast(SharedPreferencesMgr.getString("caipiaoLoseAlert", getActivity().getString(R.string.caipiao_lose_alert)));
}else
showCaipiaoCasinoDialog(caipiaoEntity, 0, false, 0);
}
break;
case R.id.btn_caipiao_answer2:
((BaseGameActivity) getActivity()).sendUmeng(
HuPuRes.UMENG_EVENT_LOTTERY,
HuPuRes.UMENG_KEY_ANSWER_BTN,
HuPuRes.UMENG_VALUE_RIGHT_ANSWER);
if (((BaseGameActivity) getActivity()).mToken == null) {
// 需要登录
((BaseGameActivity) getActivity())
.showBindDialog(SharedPreferencesMgr.getString(
"caipiaoLoginAlert",
getString(R.string.casino_notify)));
} else {
answer_index = 1;
caipiaoEntity = (QuizCaipiaoEntity) v.getTag();
if (caipiaoEntity.mList.get(1).disable == 1) {
((BaseGameActivity) getActivity()).showToast(SharedPreferencesMgr.getString("caipiaoLoseAlert", getActivity().getString(R.string.caipiao_lose_alert)));
}else
showCaipiaoCasinoDialog(caipiaoEntity, 0, false, 1);
}
break;
case R.id.btn_caipiao_answer3:
((BaseGameActivity) getActivity()).sendUmeng(
HuPuRes.UMENG_EVENT_LOTTERY,
HuPuRes.UMENG_KEY_ANSWER_BTN,
HuPuRes.UMENG_VALUE_RIGHT_ANSWER);
if (((BaseGameActivity) getActivity()).mToken == null) {
// 需要登录
((BaseGameActivity) getActivity())
.showBindDialog(SharedPreferencesMgr.getString(
"caipiaoLoginAlert",
getString(R.string.casino_notify)));
} else {
answer_index = 2;
caipiaoEntity = (QuizCaipiaoEntity) v.getTag();
if (caipiaoEntity.mList.get(2).disable == 1) {
((BaseGameActivity) getActivity()).showToast(SharedPreferencesMgr.getString("caipiaoLoseAlert", getActivity().getString(R.string.caipiao_lose_alert)));
}else
showCaipiaoCasinoDialog(caipiaoEntity, 0, false, 2);
}
break;
case R.id.btn_faq:
caipiaoEntity = (QuizCaipiaoEntity) v.getTag();
Intent FAQ = new Intent(getActivity(), FAQActivity.class);
FAQ.putExtra("url", caipiaoEntity.faq_link);
startActivity(FAQ);
break;
case R.id.open_caipiao_result:
Intent walletIntent = new Intent(getActivity(),
MyCaipiaoListActivity.class);
startActivity(walletIntent);
break;
case R.id.open_result:
if (((BaseGameActivity) getActivity()).mToken == null) {
// 需要登录
((BaseGameActivity) getActivity())
.showBindDialog(SharedPreferencesMgr.getString(
"dialogQuize",
getString(R.string.casino_notify)));
} else {
Intent info = new Intent(getActivity(),
UserGoldActivity.class);
startActivity(info);
}
break;
case R.id.pop_box_toast:
Intent pop = new Intent(getActivity(), MyBoxActivity.class);
startActivityForResult(pop,
((BaseGameActivity) getActivity()).REQ_SHOW_BOX);
break;
case R.id.btn_increase:
if (((BaseGameActivity) getActivity()).mToken == null) {
// 需要登录
((BaseGameActivity) getActivity())
.showBindDialog(SharedPreferencesMgr.getString(
"dialogQuize",
getString(R.string.casino_notify)));
} else {
isIncrease = true;
answer = (Answer) v.getTag();
if (answer != null) {
showCasinoDialog(answer, 0, true);
}
}
break;
case R.id.btn_cancel:
isIncrease = false;
if (mCasinoDialog != null)
mCasinoDialog.dismiss();
break;
case R.id.btn_confirm:
// int cb = mCasinoDialog.canBet();
// if (cb > 0)
((BaseGameActivity) getActivity()).isExchange = false;
((BaseGameActivity) getActivity()).sendQuizListCommit(answer,
mCasinoDialog.getInputCoin(), isIncrease);
// else if (cb == -1)
// showChargeNotify(mCasinoDialog.getBetDif());// 没钱提示去冲钱
if (mCasinoDialog != null)
mCasinoDialog.dismiss();
break;
case R.id.btn_caipiao_confirm:
if (mCaipiaoCasinoDialog.isAgree) {
((BaseGameActivity) getActivity()).sendUmeng(HuPuRes.UMENG_EVENT_LOTTERY, HuPuRes.UMENG_KEY_LOTTERY_BET,HuPuRes.UMENG_VALUE_CONFIRM_BTN);
int cBet = mCaipiaoCasinoDialog.canBet();
if (cBet > 0)
if (!isSendScoreAnswer) {
((BaseGameActivity) getActivity()).showBuyCaipiao(
caipiaoEntity,
mCaipiaoCasinoDialog.getInputCoin(),
answer_index);
}else {
((BaseGameActivity) getActivity()).showBuyScoreCaipiao(scoreAnswer,mCaipiaoCasinoDialog.getInputCoin());
}
else if (cBet == -1)
showChargeNotify(getActivity(),
mCaipiaoCasinoDialog.getBetDif());// 没钱提示去冲钱
if (mCaipiaoCasinoDialog != null)
mCaipiaoCasinoDialog.dismiss();
} else {
((BaseGameActivity) getActivity())
.showToast("请先仔细阅读《彩票用户协议》并勾选同意,否则无法参与彩票购买");
}
isSendScoreAnswer = false;
break;
case R.id.btn_caipiao_cancel:
isSendScoreAnswer = false;
((BaseGameActivity) getActivity()).sendUmeng(HuPuRes.UMENG_EVENT_LOTTERY, HuPuRes.UMENG_KEY_LOTTERY_BET,HuPuRes.UMENG_VALUE_CANCEL_BTN);
if (mCaipiaoCasinoDialog != null)
mCaipiaoCasinoDialog.dismiss();
break;
case R.id.user_quiz_info:
((BaseGameActivity) getActivity()).switchToGuessRank();
break;
case R.id.txt_agreement:
Intent aIntent = new Intent(getActivity(), FAQActivity.class);
aIntent.putExtra("url",
HuPuRes.getUrl(HuPuRes.REQ_METHOD_CAIPIAO_AGREEMENT));
startActivity(aIntent);
break;
case R.id.txt_faq:
Intent fIntent = new Intent(getActivity(), FAQActivity.class);
fIntent.putExtra("url",
HuPuRes.getUrl(HuPuRes.REQ_METHOD_CAIPIAO_FAQ));
startActivity(fIntent);
break;
case R.id.score_item_layout:
if (((BaseGameActivity) getActivity()).mToken == null) {
// 需要登录
((BaseGameActivity) getActivity())
.showBindDialog(SharedPreferencesMgr.getString(
"caipiaoLoginAlert",
getString(R.string.casino_notify)));
} else {
// caipiaoEntity = (QuizCaipiaoEntity) v.getTag();
isSendScoreAnswer = true;
scoreAnswer = (CaipiaoAnswer)v.getTag();
showCaipiaoCasinoDialog(scoreAnswer,0,false);
}
break;
default:
break;
}
}
}
public void sendQuizCommit() {
((BaseGameActivity) getActivity()).sendQuizListCommit(answer,
mCasinoDialog.getInputCoin(), isIncrease);
if (mCasinoDialog != null)
mCasinoDialog.dismiss();
}
private void showChargeNotify(int bet) {
String s = getResources().getString(R.string.no_charge1);
((BaseGameActivity) getActivity()).showCustomDialog(
((BaseGameActivity) getActivity()).DIALOG_SHOW_CHARGE_NOTIFY,
s.format(s, bet), BaseGameActivity.TOW_BUTTONS,
R.string.buy_at_once, R.string.cancel);
}
private void showChargeNotify(Context context, int bet) {
String s = getResources().getString(R.string.no_wallet);
((BaseGameActivity) getActivity()).showRechargeCaipiao(context, bet);
}
public ArrayList<IncreaseEntity> increaseList;
private void getJoinQuiz() {
IncreaseEntity increase;
increaseList = new ArrayList<IncreaseEntity>();
if (quizList.list != null) {
for (QuizListResp listResp : quizList.list) {
if (listResp.status == 0) {
for (QuizEntity entity : listResp.mQuizList) {
if (entity.is_user_join == 1) {
increase = new IncreaseEntity();
increase.qid = entity.qid;
increase.answerId = entity.user_choose;
increaseList.add(increase);
}
}
}
}
}
}
// 自动跳到 已经开奖
private void setSelection(int qid) {
int size = 0;
int i = 0;
for (QuizListResp quizs : quizList.list) {
if (quizs.status == 2) {
for (QuizEntity entity : quizs.mQuizList) {
if (entity.qid == qid) {
size = size + i;
break;
}
i++;
}
break;
} else
size = size + quizs.mQuizList.size();
}
size = size + quizList.list.size() + 1;
HupuLog.e("papa", "qid===" + qid + "----size====" + size
+ "-----count==" + mAdapter.getCount());
if (size > 0 && size < mAdapter.getCount()) {
mListView.setSelection(size);
}
// 红点id 复位
((BaseGameActivity) getActivity()).mQid = -1;
}
}