package com.hupu.games.activity; import java.util.ArrayList; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.annotation.SuppressLint; import android.content.Intent; import android.content.pm.ActivityInfo; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.os.Message; import android.provider.Settings; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.TextView; import com.hupu.games.HuPuApp; import com.hupu.games.R; import com.hupu.games.adapter.RoomListAdapter; import com.hupu.games.common.HuPuRes; import com.hupu.games.common.HupuLog; import com.hupu.games.common.SharedPreferencesMgr; import com.hupu.games.data.BaseEntity; import com.hupu.games.data.BaseLiveResp; import com.hupu.games.data.ChatResp; import com.hupu.games.data.FollowResp; import com.hupu.games.data.PushNotify; import com.hupu.games.data.Recap; import com.hupu.games.data.SendMsgResp; import com.hupu.games.data.game.base.SimpleLiveResp; import com.hupu.games.data.game.basketball.BasketballGameEntity; import com.hupu.games.data.game.basketball.CBABoxScoreResp; import com.hupu.games.data.game.football.ScoreboardEntity; import com.hupu.games.data.game.quiz.QuizCommitResp; import com.hupu.games.data.room.GiftEntity; import com.hupu.games.data.room.GiftReqDataEntity; import com.hupu.games.data.room.GiftRespResultEntity; import com.hupu.games.data.room.RoomEntity; import com.hupu.games.data.room.RoomListEntity; import com.hupu.games.dialog.EpandDownAnimation; import com.hupu.games.dialog.EpandDownAnimation.EpandAnimationCallBack; import com.hupu.games.dialog.GiftTipsDialog; import com.hupu.games.dialog.TipsDialog; import com.hupu.games.fragment.CBAReportFragment; import com.hupu.games.fragment.CBAStatisticFragment; import com.hupu.games.fragment.CBAStatisticLandFragment; import com.hupu.games.fragment.ChatFragment; import com.hupu.games.fragment.LiveFragment; import com.hupu.games.fragment.QuizListFragment; import com.hupu.games.fragment.ReportFragment; import com.hupu.games.hupudollor.activity.HupuDollorOrderActivity; import com.hupu.games.hupudollor.data.HupuDollorBalanceReq; import com.hupu.games.livegift.animation.AnimationTool; import com.hupu.games.pay.BasePayActivity; import com.hupu.games.pay.HupuOrderActivity; import com.hupu.http.HupuHttpHandler; import com.koushikdutta.urlimageviewhelper.UrlImageViewHelper; import com.pyj.common.DeviceInfo; import com.pyj.common.MyUtility; /** * 赛前:直播、(竞猜)、热线; 赛中:直播、统计、(竞猜)、热线; 赛后:战报、统计、直播、(竞猜)、热线; * */ public class BasketballActivity extends BaseGameLiftActivity { private BasketballGameEntity mGameEntity; private final static int GAME_STATE_CANCEL = 6; private final static int GAME_STATE_DELAY = 5; private final static int GAME_STATE_ONGOING = 2; private final static int GAME_STATE_END = 4; private final static int GAME_STATE_NOT_START = 1; /** 前瞻页 */ CBAReportFragment qzFragment; /** 统计 */ CBAStatisticFragment mStatisticFragment; /** 统计 */ CBAStatisticLandFragment mStatisticLandFragment; ImageView btnReport; View mLayoutScoreBar; /***/ private int lastLiveID; private int lastChatID; /** 统计id */ private int bid; private boolean getLiveEndData; private boolean getBoxEndData; private int indexLive; private int indexStatistic; String mDefaultTab; /** 房间礼物相关 */ private ListView mRoomListView; private RoomListAdapter mRoomListAdapter; // private LinearLayout mGiftView; private LinearLayout mRoomView; private int sortId;//请求正序还是逆序 String curRoomtitle; String curRoomOnline; private boolean isPreview; private RelativeLayout title_layout; private ImageView title_room_switch; private TextView room_people_numTextView; private String live_online="%s人在线"; private boolean livefirstIn; private boolean isInitCbaRoom; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); Intent in = getIntent(); tag = in.getStringExtra("tag"); lid = in.getIntExtra("lid", 0); gid = in.getIntExtra("gid", 0); if (lid <= 0) lid = findLid(tag); // gid=3560; setContentView(R.layout.layout_basketball_portait); initParameter(); if (gid > 0) { mDefaultTab = in.getStringExtra("tab"); // 外部跳转 mParams.put("gid", "" + gid); sendRequest(HuPuRes.REQ_METHOD_CBA_GAME_BY_GID, mParams); } else { // 从赛程页进入 mGameEntity = (BasketballGameEntity) in.getSerializableExtra("data"); gid = mGameEntity.i_gId; mDefaultTab = mGameEntity.default_tab; if (mGameEntity == null) { finish(); } init(); } } private void init() { // 进入页面 底部先隐藏 mParams.put("gid", "" + gid); setJosnObj(BaseEntity.KEY_GAME_ID, gid); mLayoutScoreBar = findViewById(R.id.layout_score_bar); txtTitle = (TextView) findViewById(R.id.txt_title); txtTitle.setText(R.string.title_live); txtTeamLeft = (TextView) findViewById(R.id.txt_team_left); txtTeamRight = (TextView) findViewById(R.id.txt_team_right); txtProcess = (TextView) findViewById(R.id.txt_proccess); txtScore = (TextView) findViewById(R.id.txt_score); txtStartTime = (TextView) findViewById(R.id.txt_start_time); imgTeamLeft = (ImageView) findViewById(R.id.img_team_left); imgTeamRight = (ImageView) findViewById(R.id.img_team_right); setTeamName(); btnSecond = (ImageButton) findViewById(R.id.btn_second); btnThird = (ImageButton) findViewById(R.id.btn_third); btnReport = (ImageButton) findViewById(R.id.btn_report); btnChat = (ImageButton) findViewById(R.id.btn_chat); btnFollow = (Button) findViewById(R.id.btn_follow); btnPlay = (Button) findViewById(R.id.btn_play); curGameState = (byte) mGameEntity.byt_status; btnQuiz = (ImageButton) findViewById(R.id.btn_quiz); imgRedPiont = (ImageView) findViewById(R.id.icon_red_point); imgRedPiont.setVisibility(View.GONE); rewardInfo = (RelativeLayout) findViewById(R.id.reward_info); title_room_switch = (ImageView) findViewById(R.id.title_room_switch); room_people_numTextView = (TextView) findViewById(R.id.title_room_peple_online); HupuLog.d("init", "curGameState=" + curGameState); isFollow = mGameEntity.bFollow == 1; setFollowBtn(); setViewByState(true); updateScoreView(); if (mDefaultTab != null) { switchTab(); } else { if (curGameState == GAME_STATE_END) { treatClickEvent(R.id.btn_report); } else if (curGameState == GAME_STATE_NOT_START) treatClickEvent(R.id.btn_quiz); else treatClickEvent(indexLive); } // init 房间部分 initRoomAndGift(); setTeamName(); // test // reqHttp(HuPuRes.REQ_METHOD_GET_PLAY_LIVE); // setOnClickListener(R.id.layout_live_title); // setOnClickListener(R.id.txt_title); // setOnClickListener(R.id.title_room_switch); setOnClickListener(R.id.choose_room_dialog); setOnClickListener(R.id.btn_back); setOnClickListener(R.id.btn_follow); setOnClickListener(R.id.btn_play); setOnClickListener(R.id.btn_sent); setOnClickListener(R.id.btn_land); setOnClickListener(R.id.btn_report); setOnClickListener(R.id.btn_second); setOnClickListener(R.id.btn_third); setOnClickListener(R.id.btn_chat); setOnClickListener(R.id.btn_quiz); setOnClickListener(R.id.gold_num); } /** 根据默认标签跳转到不同的页面 */ private void switchTab() { if (mDefaultTab.equals(TAB_GUESS)) { treatClickEvent(R.id.btn_quiz); } else if (mDefaultTab.equals(TAB_BOXSCORE)) treatClickEvent(indexStatistic); else if (mDefaultTab.equals(TAB_CHAT)) { treatClickEvent(R.id.btn_chat); } else if (mDefaultTab.equals(TAB_LIVE)) treatClickEvent(indexLive);// 直播 else if (mDefaultTab.equals(TAB_REPORT)) treatClickEvent(R.id.btn_report); else treatClickEvent(indexLive);// 聊天 } @Override public void treatClickEvent(int id) { super.treatClickEvent(id); // 更换底部菜单按键背景 if (id == indexLive) { setBackgound(INDEX_LIVE); replaceContent(INDEX_LIVE); // 一直常亮 setScreenLight(true); } else if (id == indexStatistic) { setBackgound(INDEX_STATISTIC); replaceContent(INDEX_STATISTIC); } // // UMENG_MAP.clear(); // // showRoomAction(); // if (id == indexLive) { // if (curFragmentIndex != INDEX_LIVE) {//从其他tab点击到直播 // // setBackgound(INDEX_LIVE); // replaceContent(INDEX_LIVE); // mFragmentLive.entry(); // if (!bHasLiveData) { // // 初次进入该页面需要获取全部的实时播报信息 // if (curGameState == GAME_STATE_ONGOING)// 进行中 // { // sortId = HuPuRes.REQ_METHOD_GET_LIVE_ASC; // req_room_http(roomid); // } else { // sortId = HuPuRes.REQ_METHOD_GET_LIVE_DESC; // req_room_http(roomid); // } // } else { // bJoinRoom = true; // // 加入前设置最后一条消息id // if (lastLiveID > 0) // setJsonObj(BaseEntity.KEY_PID, lastLiveID); // // 如果是有竞猜的比赛,需要加入所有为关闭的竞猜id // setJsonObj("qids", mFragmentLive.getQids()); // joinRoom(HuPuRes.ROOM_CBA_PLAYBYPLAY_CASINO); // // } // setScreenLight(true); // } // curFragmentIndex = INDEX_LIVE; // // } else if (id == indexStatistic) { // if (curFragmentIndex != INDEX_STATISTIC) { // txtTitle.setText(R.string.title_statistic); // setBackgound(INDEX_STATISTIC); // replaceContent(INDEX_STATISTIC); // if (!bHasStatisticData || (bEnd && !getBoxEndData)) { // mParams.put(BaseEntity.KEY_VERTICAL, "" + true); // reqHttp(HuPuRes.REQ_METHOD_CBA_BOX_SCORE); // } else if (curGameState != GAME_STATE_END) { // joinRoom(HuPuRes.ROOM_CBA_BOXSCORE); // bJoinRoom = true; // } // // findViewById(R.id.btn_land).setVisibility(View.VISIBLE); // if (curGameState == GAME_STATE_ONGOING // || curGameState == GAME_STATE_NOT_START) // findViewById(R.id.layout_title_btn) // .setVisibility(View.GONE); // } // curFragmentIndex = INDEX_STATISTIC; // } switch (id) { case R.id.btn_back: finish(); break; case R.id.btn_report: setBackgound(INDEX_REPORT); replaceContent(INDEX_REPORT); if (!bHasReportData) req(); // mLayoutScoreBar.setVisibility(View.GONE); break; case R.id.btn_quiz: txtTitle.setText(R.string.quiz_list_tiele); setBackgound(INDEX_QUIZ); replaceContent(INDEX_QUIZ); curFragmentIndex = INDEX_QUIZ; break; case R.id.btn_chat: setBackgound(INDEX_CHAT); replaceContent(INDEX_CHAT); break; case R.id.btn_follow: setFollow(); break; case R.id.btn_play: if (movieUrl == null || movieUrl.equals("")) showToast("暂无视频直播"); else { Intent in = new Intent(this, WebViewActivity.class); in.putExtra("url", movieUrl); startActivity(in); } break; case R.id.btn_sent: Intent in = new Intent(this, ChatInputActivity.class); in.putExtra("tag", TAG); in.putExtra("roomid", roomid); startActivityForResult(in, REQ_SEND_MSG); b2Chat = true; break; case R.id.btn_land: showTipsDialog(); break; case R.id.btn_close: closeDialog(); break; case R.id.gold_num: if (mToken == null) { showBindDialog(SharedPreferencesMgr.getString("dialogBtnText", getString(R.string.casino_notify))); // dialog(this, SharedPreferencesMgr.getString("dialogRecharge", // getString(R.string.casino_notify))); } else { Intent info = new Intent(this, HupuOrderActivity.class); startActivity(info); } break; case R.id.layout_live_title: if(curFragmentIndex == INDEX_LIVE){ if(mRoomView.getVisibility()==View.GONE) { reqRoomlist(); } else { hideRoomAction(); selectDefaultRoom(); title_room_switch.setImageResource(R.drawable.icon_arrow_up_live); } } break; case R.id.choose_room_dialog: if(curFragmentIndex == INDEX_LIVE){ hideRoomAction(); selectDefaultRoom(); title_room_switch.setImageResource(R.drawable.icon_arrow_up_live); } break; } } public void selectDefaultRoom() { if(livefirstIn) { req_room_http(roomid); livefirstIn = false; } } boolean b2Chat; private boolean bottombarVisible = false; private void showBottomBar() { if(findViewById(R.id.layout_bottom)!=null) { findViewById(R.id.layout_bottom).setVisibility(View.VISIBLE); bottombarVisible = true; } } private void replaceContent(int index) { if (curFragmentIndex == index) return; Fragment fragment = null; curFragmentIndex = index; switch (index) { case INDEX_REPORT: if (mFragmentReport == null) mFragmentReport = new ReportFragment(); fragment = mFragmentReport; txtTitle.setText("战报"); setScreenLight(false); break; case INDEX_LIVE: // txtTitle.setText("直播"); // 如果是人工直播,就显示直播页面 if (mFragmentLive == null) { mFragmentLive = new LiveFragment( 0, 0, (curGameState != GAME_STATE_NOT_START && curGameState != GAME_STATE_CANCEL && curGameState != GAME_STATE_DELAY)); } if (curGameState == GAME_STATE_END || curGameState == GAME_STATE_ONGOING) mFragmentLive.isStart(true); fragment = mFragmentLive; mFragmentLive.entry(); if (!bHasLiveData || (bEnd && !getLiveEndData)) { // 初次进入该页面需要获取全部的实时播报信息 if (curGameState == GAME_STATE_ONGOING)// 进行中 { mParams.put("sort", "desc"); sortId = HuPuRes.REQ_METHOD_GET_LIVE_DESC; reqHttp(HuPuRes.REQ_METHOD_GET_LIVE_DESC); } else { mParams.put("sort", "asc"); sortId = HuPuRes.REQ_METHOD_GET_LIVE_ASC; reqHttp(HuPuRes.REQ_METHOD_GET_LIVE_ASC); } } else if (curGameState != GAME_STATE_END) { mFragmentLive.setPreview(roomPreview); if (roomPreview != null && !"".equals(roomPreview)) { // 设置前瞻 mFragmentLive.setURL(roomPreview); } bJoinRoom = true; // 加入前设置最后一条消息id setJosnObj(BaseEntity.KEY_PID, lastLiveID); jsonRoom.remove("type"); jsonRoom.remove("direc"); jsonRoom.remove("num"); JSONArray arr = mFragmentLive.getQids(); if (arr != null) setJsonObj("qids", mFragmentLive.getQids()); joinRoom(HuPuRes.ROOM_CBA_PLAYBYPLAY_CASINO); } setScreenLight(false); break; case INDEX_STATISTIC: if (mStatisticFragment == null) { mStatisticFragment = new CBAStatisticFragment( mGameEntity.str_home_name, mGameEntity.str_away_name); } if (!bHasStatisticData || (bEnd && !getBoxEndData)) { // mParams.put(BaseEntity.KEY_VERTICAL, "" + true); // reqHttp(HuPuRes.REQ_METHOD_CBA_BOX_SCORE); } else if (curGameState != GAME_STATE_END) { // joinRoom(HuPuRes.ROOM_CBA_BOXSCORE); // bJoinRoom = true; } mParams.put(BaseEntity.KEY_VERTICAL, "" + true); reqHttp(HuPuRes.REQ_METHOD_CBA_BOX_SCORE); fragment = mStatisticFragment; txtTitle.setText("统计"); setScreenLight(false); break; case INDEX_STATISTIC_LAND: if (mStatisticLandFragment == null) { mStatisticLandFragment = new CBAStatisticLandFragment( mGameEntity); } mParams.put(BaseEntity.KEY_VERTICAL, "" + false); reqHttp(HuPuRes.REQ_METHOD_CBA_BOX_SCORE); fragment = mStatisticLandFragment; break; case INDEX_CHAT: if (mFragmentChat == null) { mFragmentChat = new ChatFragment(); mFragmentChat.setTag(TAG); } bJoinRoom = true; mFragmentChat.entry(roomid); fragment = mFragmentChat; txtTitle.setText("热线"); // 一直常亮 setScreenLight(true); break; case INDEX_QUIZ: if (mFragmentQuizList == null) { mFragmentQuizList = new QuizListFragment(); // mFragmentQuizList.setBets(bets); } fragment = mFragmentQuizList; // setJsonObj(BaseEntity.KEY_GAME_ID, mEntityGame.i_gId); joinRoom(tag.toUpperCase() + HuPuRes.ROOM_CASINO); // if (mQid >0) // mFragmentQuizList.setSelection(mQid); break; } if (index != INDEX_CHAT && index != INDEX_LIVE && index != INDEX_QUIZ) { // --- if (bJoinRoom) { leaveRoom(); } } if (fragment != null) replaceContent(fragment); } private void replaceContent(Fragment fragment) { FragmentTransaction transaction = getSupportFragmentManager() .beginTransaction(); transaction.replace(R.id.fragment_content, fragment); transaction.addToBackStack(null); transaction.commitAllowingStateLoss(); } /** 点击后的按钮背景变化 */ private void setBackgound(int index) { int color = getResources().getColor(R.color.transform); initGift(null,index,false); switchRoomStatus(index,livefirstIn); // 点击前 switch (curFragmentIndex) { case INDEX_REPORT: // mLayoutScoreBar.setVisibility(View.VISIBLE); btnReport.setBackgroundColor(color); btnReport.setImageResource(R.drawable.btn_report); mLayoutScoreBar.setVisibility(View.VISIBLE); break; case INDEX_LIVE: // findViewById(R.id.layout_gift).setVisibility(View.VISIBLE); findViewById(R.id.layout_title_btn).setVisibility(View.GONE); if (indexLive == R.id.btn_second)// 进行中 { btnSecond.setBackgroundColor(color); btnSecond.setImageResource(R.drawable.btn_live_up); } else { btnThird.setBackgroundColor(color); btnThird.setImageResource(R.drawable.btn_live_up); } break; case INDEX_STATISTIC: if (indexStatistic == R.id.btn_second) { btnSecond.setBackgroundColor(color); btnSecond.setImageResource(R.drawable.btn_statistics); } else { btnThird.setBackgroundColor(color); btnThird.setImageResource(R.drawable.btn_statistics); } findViewById(R.id.btn_land).setVisibility(View.GONE); unregistSetting(); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); break; case INDEX_CHAT: btnChat.setBackgroundColor(color); btnChat.setImageResource(R.drawable.btn_chat_up); findViewById(R.id.btn_sent).setVisibility(View.GONE); break; case INDEX_QUIZ: btnQuiz.setBackgroundColor(color); btnQuiz.setImageResource(R.drawable.btn_tag_guess_up); findViewById(R.id.gold_num).setVisibility(View.GONE); break; } switch (index) {// 点击后 case INDEX_REPORT: mLayoutScoreBar.setVisibility(View.VISIBLE); btnReport.setBackgroundResource(R.drawable.bg_bottom_hover); btnReport.setImageResource(R.drawable.btn_report_hover); break; case INDEX_LIVE: findViewById(R.id.layout_gift).setVisibility(View.VISIBLE); mLayoutScoreBar.setVisibility(View.VISIBLE); if (indexLive == R.id.btn_second) { btnSecond.setBackgroundResource(R.drawable.bg_bottom_hover); btnSecond.setImageResource(R.drawable.btn_live_down); } else { btnThird.setBackgroundResource(R.drawable.bg_bottom_hover); btnThird.setImageResource(R.drawable.btn_live_down); } if (curGameState == GAME_STATE_ONGOING || curGameState == GAME_STATE_NOT_START || curGameState == GAME_STATE_CANCEL || curGameState == GAME_STATE_DELAY) { findViewById(R.id.layout_title_btn).setVisibility(View.VISIBLE); } findViewById(R.id.btn_sent).setVisibility(View.GONE); if (curGameState != ScoreboardEntity.STATUS_END && curGameState != ScoreboardEntity.STATUS_CANCEL) findViewById(R.id.layout_title_btn).setVisibility(View.VISIBLE); break; case INDEX_STATISTIC: mLayoutScoreBar.setVisibility(View.VISIBLE); if (indexStatistic == R.id.btn_second) { btnSecond.setBackgroundResource(R.drawable.bg_bottom_hover); btnSecond.setImageResource(R.drawable.btn_statistics_hover); } else { btnThird.setBackgroundResource(R.drawable.bg_bottom_hover); btnThird.setImageResource(R.drawable.btn_statistics_hover); } registSetting(); if (Settings.System.getInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0) != 0) setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); findViewById(R.id.btn_land).setVisibility(View.VISIBLE); findViewById(R.id.layout_title_btn).setVisibility(View.GONE); break; case INDEX_CHAT: mLayoutScoreBar.setVisibility(View.VISIBLE); btnChat.setBackgroundResource(R.drawable.bg_bottom_hover); btnChat.setImageResource(R.drawable.btn_chat_down); findViewById(R.id.layout_title_btn).setVisibility(View.GONE); findViewById(R.id.btn_sent).setVisibility(View.VISIBLE); break; case INDEX_QUIZ: mLayoutScoreBar.setVisibility(View.GONE); btnQuiz.setBackgroundResource(R.drawable.bg_bottom_hover); btnQuiz.setImageResource(R.drawable.btn_tag_guess_down); findViewById(R.id.gold_num).setVisibility(View.VISIBLE); findViewById(R.id.layout_title_btn).setVisibility(View.GONE); imgRedPiont.setVisibility(View.GONE); break; } } int[] bets; @Override public void onReqResponse(Object o, int methodId) { super.onReqResponse(o, methodId); if (o == null) return; // 数据过来后 底部显示出来 if (!bottombarVisible) { showBottomBar(); } switch (methodId) { case HuPuRes.REQ_METHOD_CBA_GAME_BY_GID:// 根据gid获取单场比赛信息 mGameEntity = (BasketballGameEntity) o; init(); break; case HuPuRes.REQ_METHOD_GET_LIVE_DESC: case HuPuRes.REQ_METHOD_GET_LIVE_ASC: SimpleLiveResp data = (SimpleLiveResp) o; if (data != null) { initGift(data,INDEX_LIVE,true); movieUrl = data.tvLink; if (!"".equals(movieUrl)) btnPlay.setEnabled(true); mFragmentLive.addData(true); isPreview = data.preview != null&& !"".equals(data.preview)?true:false; // boolean isShowRoomlist = data.is_enter==0?true:false; if (data.roomList != null) { boolean isShow = data.roomList!=null&&data.roomList.size()>1?true:false; if (data.is_enter == 0&&isShow) { livefirstIn = true; }else{ livefirstIn = false; } //重置roomid roomid = data.default_room_id; switchRoomStatus(INDEX_LIVE,livefirstIn); setRoomList(data.roomList,data.default_room_id); for (RoomEntity entity:data.roomList) { if (entity.id == data.default_room_id) { if(data.is_enter == 0){ if(data.roomList!=null&&data.roomList.size()>1) { setRoomTitle(getString(R.string.title_select_room)); mRoomListAdapter.setDefaultId(-1); mRoomListAdapter.notifyDataSetChanged(); showRoomAction(); } curRoomtitle = entity.name; curRoomOnline = String.format(live_online, entity.count); }else{ setRoomTitle(entity.name); setRoomOnlineNum(String.format(live_online, entity.count),true); } } } } roomPreview = data.preview; mFragmentLive.setPreview(roomPreview); if (data.preview != null&& !"".equals(data.preview)) { // 设置前瞻 mFragmentLive.setURLForCBA(data.preview); return; } // if (data.scoreBoard != null && data.scoreBoard.live == 0) { // if (data.preview != null&& !"".equals(data.preview)) { // // 设置前瞻 // mFragmentLive.setURLForCBA(data.preview); // return; // } //// return; // } else { // if (curGameState != GAME_STATE_NOT_START // && curGameState != GAME_STATE_CANCEL // && curGameState != GAME_STATE_DELAY) // mFragmentLive.isStart(true); // else if (data.preview != null) { // // 设置前瞻 // mFragmentLive.setURLForCBA(data.preview); // } // } if (data.casinoInit != null) { bets = data.casinoInit.bets; mFragmentLive.setBets(data.casinoInit.bets); } setJsonObj("roomid", roomid); if (data.dataList == null) { // 没有数据 if (curGameState == GAME_STATE_NOT_START) { // showToast("比赛未开始"); bJoinRoom = true; jsonRoom.remove("type"); jsonRoom.remove("direc"); jsonRoom.remove("num"); joinRoom(HuPuRes.ROOM_CBA_PLAYBYPLAY); } else { showToast("暂无直播数据"); } mFragmentLive.addData(true); // return; } mFragmentLive.setData(data.dataList); bHasLiveData = true; lastLiveID = data.i_pId; // Log.d("http back pid", ""+data.i_pId); // if (data.dataList == null) { // // 没有数据 // if (curGameState == GAME_STATE_NOT_START) { // // showToast("比赛未开始"); // bJoinRoom = true; // joinRoom(HuPuRes.ROOM_CBA_PLAYBYPLAY_CASINO); // } else { // showToast("暂无直播数据"); // } // mFragmentLive.addData(true); // //return; // } // // mFragmentLive.setData(data.dataList); // // bHasLiveData = true; // lastLiveID = data.i_pId; // Log.d("http back pid", ""+data.i_pId); // 如果是比赛 if (methodId == HuPuRes.REQ_METHOD_GET_PLAY_LIVE_DESC){ setJsonObj(BaseEntity.KEY_PID, data.i_pId); } // 如果是比赛 if (methodId == HuPuRes.REQ_METHOD_GET_LIVE_DESC) setJosnObj(BaseEntity.KEY_PID, data.i_pId); if (curGameState != GAME_STATE_CANCEL) {// 如果比赛未结束需要加入房间 bJoinRoom = true; setJsonObj("roomid", data.default_room_id); jsonRoom.remove("type"); jsonRoom.remove("direc"); jsonRoom.remove("num"); setJsonObj("roomid", data.default_room_id); joinRoom(HuPuRes.ROOM_CBA_PLAYBYPLAY); // Log.d("join", "ROOM_CBA_PLAYBYPLAY"); } else { getLiveEndData = true; } if (data.scoreBoard != null) { setSore(data.scoreBoard.i_scoreHome, data.scoreBoard.i_scoreAway); updateProccess(data.scoreBoard.str_process); } } break; case HuPuRes.REQ_METHOD_CBA_BOX_SCORE: CBABoxScoreResp d = (CBABoxScoreResp) o; if (d.mEntityHome == null) { // 没有数据 mStatisticFragment.addData(true); showToast("暂无统计数据"); return; } mStatisticFragment.setData(d); bHasStatisticData = true; setJsonObj("bid", d.i_bId); if (curGameState != GAME_STATE_END) { setJsonObj("roomid", roomid); joinRoom(HuPuRes.ROOM_CBA_BOXSCORE); bJoinRoom = true; } else { getBoxEndData = true; } if (isLandMode) { mStatisticLandFragment.setData(d); } break; case HuPuRes.REQ_METHOD_GET_GAME_REPORT: Recap re = (Recap) o; mFragmentReport.setData(re); break; case HuPuRes.REQ_METHOD_EN_SENT_CHAT: SendMsgResp smrsp = (SendMsgResp) o; if (smrsp.err != null) { // Log.d("SendMsgResp", data.err); showToast(smrsp.err); } else { reqChatData(lastChatID); if (smrsp.pid == 0) { reqChatData(lastChatID); } else { mFragmentChat.setLastId(smrsp.pid); lastChatID = smrsp.pid; showToast("发送成功"); setJosnObj(BaseEntity.KEY_PID, lastChatID); setJosnObj("direc", "next"); if (mToken != null) setJosnObj("tk", "mToken"); setJsonObj("roomid", roomid); joinRoom(HuPuRes.ROOM_CBA_PLAYBYPLAY); } } break; case HuPuRes.REQ_METHOD_FOLLOW_GAME: case HuPuRes.REQ_METHOD_FOLLOW_GAME_CANCEL: FollowResp resp = (FollowResp) o; if (resp == null || resp.i_success == 0) { // 提交失败 showToast(String.format(SORRY_NOTIFY, mGameEntity.str_home_name, mGameEntity.str_away_name)); isFollow = !isFollow; setFollowBtn(); } else { if (isFollow) mGameEntity.bFollow = 1; else mGameEntity.bFollow = 0; if (methodId == HuPuRes.REQ_METHOD_FOLLOW_GAME) showToast(String.format(SUCCESS_NOTIFY, mGameEntity.str_home_name, mGameEntity.str_away_name)); if (methodId == HuPuRes.REQ_METHOD_FOLLOW_GAME_CANCEL) showToast(CANCEL_NOTIFY); } break; case HuPuRes.REQ_METHOD_GET_DOLE: QuizCommitResp dole = new QuizCommitResp(); if (dole.result == -1) showToast("请重新登录"); else if (dole.result == -2) { // 通知领救济金 showToast("今天已经领过"); } else if (dole.result == -3) { showToast("领取失败"); } else { showToast("领取成功"); } break; case HuPuRes.REQ_METHOD_QUIZ_LIST: case HuPuRes.REQ_METHOD_QUIZ_LIST_COMMIT: case HuPuRes.REQ_METHOD_POST_INCREASE: case HuPuRes.REQ_METHOD_BET_COINS: case HuPuRes.REQ_METHOD_CAIPIAO_COMMIT: if (curFragmentIndex == INDEX_QUIZ) mFragmentQuizList.onReqResponse(o, methodId, mQid); break; // case HuPuRes.REQ_METHOD_GET_PLAY_LIVE_SEND_GIFT: // if (o != null) { // GiftRespResultEntity gren = (GiftRespResultEntity)o; // // this.hupuDollor = gren.balance; // this.interval = gren.interval; // } // // break; // case HuPuRes.REQ_METHOD_GET_HUPUDOLLOR_BALANCE: // if (o != null) { // HupuDollorBalanceReq info = (HupuDollorBalanceReq) o; // this.hupuDollor=info.balance; // } // break; case HuPuRes.REQ_METHOD_GET_PLAY_LIVE_ROOMLIST: if (o != null) { RoomListEntity info = (RoomListEntity) o; if(info!=null&&info.roomList!=null) { //2014-11-24 修改 // if(isInitCbaRoom) // { // mRoomListAdapter.setData(info.roomList); // mRoomListAdapter.notifyDataSetChanged(); // } // else // { // switchRoomStatus(INDEX_LIVE,false); // setRoomList(info.roomList,roomid); // } setRoomList(info.roomList,roomid); showRoomAction(); } } break; } // updateProccess(data.str_content) ; // findViewById(R.id.layout_bottom).setVisibility(View.VISIBLE); } @Override public void onReqResponse(Object o, int methodId, int msg1, int msg2) { super.onReqResponse(o, methodId); if (o == null) return; switch (methodId) { case HuPuRes.REQ_METHOD_QUIZ_COMMIT: case HuPuRes.REQ_METHOD_QUIZ_COMMIT_INCREASE: // 提交竞猜 QuizCommitResp entity = (QuizCommitResp) o; if (entity.result == -1) showToast("参与过了"); else if (entity.result == 2) { // 通知领救济金 showCustomDialog(DIALOG_SHOW_GET_DOLE, 0, R.string.get_now_info, ONE_BUTTON, R.string.title_confirm, 0); mFragmentLive.updateCommit(msg1, msg2); } else if (entity.result == -2 || entity.result == -3) { // showToast("金豆余额不足"); // showNoMoney(0, 0); if(!isExchange) { mFragmentLive.showNoMoney(entity.eGoldBean); } } else if (entity.result == -4) { showToast("竞猜已关闭"); } else { showToast("参与成功"); mFragmentLive.updateCommit(msg1, msg2); } break; } } private void setFollow() { if (isFollow) { followGame(lid, mGameEntity.i_gId, (byte) 1); } else { if (mApp.needNotify) { followGame(lid, mGameEntity.i_gId, (byte) 0); } else { showCustomDialog(DIALOG_NOTIFY, R.string.push_title, R.string.push_open_notify, 3, R.string.open_notify, R.string.cancel); return; } } // 立即修改 isFollow = !isFollow; setFollowBtn(); } private final int DIALOG_NOTIFY = 1315; @Override public void clickNegativeButton(int dialogId) { super.clickNegativeButton(dialogId); if (dialogId == DIALOG_NOTIFY || DIALOG_SHOW_GET_DOLE == dialogId) { if (mDialog != null) mDialog.cancel(); } } @Override public void clickPositiveButton(int dialogId) { super.clickPositiveButton(dialogId); if (dialogId == DIALOG_NOTIFY) { // 打开通知 if (mDialog != null) mDialog.cancel(); mApp.setNotify(true); followGame(lid, mGameEntity.i_gId, (byte) 0); isFollow = !isFollow; setFollowBtn(); } else if (DIALOG_SHOW_GET_DOLE == dialogId) { if (mDialog != null) mDialog.cancel(); sendRequest(HuPuRes.REQ_METHOD_GET_DOLE, mParams, new HupuHttpHandler(this), false); } } /** 设置球队名称 */ private void setTeamName() { // 球队名称 txtTeamLeft.setText(mGameEntity.str_home_name); txtTeamRight.setText(mGameEntity.str_away_name); UrlImageViewHelper.setUrlDrawable(imgTeamLeft, mGameEntity.home_logo, R.drawable.bg_home_nologo); UrlImageViewHelper.setUrlDrawable(imgTeamRight, mGameEntity.away_logo, R.drawable.bg_home_nologo); } private void updateScoreView() { if (mGameEntity.byt_status == GAME_STATE_END || mGameEntity.byt_status == GAME_STATE_ONGOING) { // 如果比赛结束显示结果 // scoreView = findViewById(R.id.layout_score); // scoreView.setVisibility(View.VISIBLE); txtStartTime.setVisibility(View.GONE); setSore(mGameEntity.i_home_score, mGameEntity.i_away_score); updateProccess(mGameEntity.str_process); } // else if (data.byt_status == GAME_STATE_ONGOING) { // // 显示进行中 // txtStartTime.setText("进行中"); // } else if (mGameEntity.byt_status == GAME_STATE_NOT_START) { txtScore.setVisibility(View.GONE); txtStartTime.setVisibility(View.VISIBLE); txtStartTime.setText(MyUtility.getStartTime( mGameEntity.l_begin_time * 1000, sdf)); } else { txtStartTime.setText("已取消"); } } /** 设置关注比赛的UI状态 */ private void setFollowBtn() { if (curGameState == GAME_STATE_END || curGameState == GAME_STATE_CANCEL) { findViewById(R.id.layout_title_btn).setVisibility(View.GONE); } else { findViewById(R.id.layout_title_btn).setVisibility(View.VISIBLE); if (isFollow) { btnFollow.setBackgroundResource(R.drawable.btn_alarm_bright); } else { btnFollow.setBackgroundResource(R.drawable.btn_alarm_dark); } } } /** * 根据不同的比赛状态调整显示的view * **/ void setViewByState(boolean init) { if (curGameState == GAME_STATE_END) { // 比赛结束后第一个按键是战报,第二个是统计,三个是直播,第四个是热线 btnReport.setVisibility(View.VISIBLE); btnSecond.setImageResource(R.drawable.btn_statistics); btnThird.setVisibility(View.VISIBLE); btnThird.setImageResource(R.drawable.btn_live_up); indexLive = R.id.btn_third; indexStatistic = R.id.btn_second; if (!init) { // setBackgound(curFragmentIndex); int color = getResources().getColor(R.color.transform); btnSecond.setBackgroundColor(color); btnThird.setBackgroundColor(color); // Log.d("setViewByStatus", // "curFragmentIndex="+curFragmentIndex+" ;i_liveIndex="+i_liveIndex+";i_staticIndex="+i_staticIndex); if (INDEX_LIVE == curFragmentIndex) { btnThird.setBackgroundResource(R.drawable.bg_bottom_hover); btnThird.setImageResource(R.drawable.btn_live_down); } else if (INDEX_STATISTIC == curFragmentIndex) { btnSecond.setBackgroundResource(R.drawable.bg_bottom_hover); btnSecond.setImageResource(R.drawable.btn_statistics_hover); } } // setScreenLight(false);// game over } else if (curGameState == GAME_STATE_ONGOING || curGameState == GAME_STATE_NOT_START || curGameState == GAME_STATE_CANCEL || curGameState == GAME_STATE_DELAY) { indexLive = R.id.btn_second; indexStatistic = R.id.btn_third; btnSecond.setImageResource(R.drawable.btn_live_up); btnThird.setImageResource(R.drawable.btn_statistics); if (curGameState == GAME_STATE_ONGOING && !init) { mLayoutScoreBar.setVisibility(View.VISIBLE); txtScore.setVisibility(View.VISIBLE); setSore(mGameEntity.i_home_score, mGameEntity.i_away_score); txtStartTime.setVisibility(View.GONE); txtProcess.setText(mGameEntity.str_process); // mPager.setCurrentItem(INDEX_LIVE, false); replaceContent(INDEX_LIVE); setBackgound(INDEX_LIVE); setScreenLight(true); } if (curGameState == GAME_STATE_NOT_START || curGameState == GAME_STATE_CANCEL || curGameState == GAME_STATE_DELAY) { // btnThird.setVisibility(View.GONE); } else { btnThird.setVisibility(View.VISIBLE); } } } /** 设置球队比分 需要翻牌,这个逻辑就需要先判断比分的变换了。 */ private void setSore(int homeScore, int awayScore) { if (homeScore > 0 || awayScore > 0) txtScore.setText(homeScore + " - " + awayScore); } /** 更新比赛过程的标题信息 */ private void updateProccess(String s) { if (s != null) txtProcess.setText(s); } @Override protected void onResume() { super.onResume(); if (bJoinRoom) { // 如果需要加入房间 if (DeviceInfo.isNetWorkEnable(this)) { // 如果是非聊天 if (curFragmentIndex == INDEX_LIVE) { setJosnObj(BaseEntity.KEY_PID, lastLiveID); JSONArray arr = mFragmentLive.getQids(); if (arr != null) setJsonObj("qids", arr); joinRoom(); } else if (curFragmentIndex == INDEX_CHAT) { // reqChatData(lastChatID); if (lastChatID > 0) setJosnObj(BaseEntity.KEY_PID, lastChatID); else setJosnObj(BaseEntity.KEY_PID, ""); if (!b2Chat) { setJosnObj("direc", "next"); joinRoom(); } b2Chat = false; } else if (curFragmentIndex == INDEX_STATISTIC) { if (bid > 0 && !getBoxEndData) { joinRoom(); } } } else { mApp.setNetState(HuPuApp.STATE_NO_NET); reconnect(false); } } } @Override public void onLoginSuccess() { // TODO Auto-generated method stub super.onLoginSuccess(); if (curFragmentIndex == INDEX_QUIZ) { getQuizList(); joinRoom(); } } private void setJosnObj(String key, int value) { JSONObject obj = getRoomObj(); try { obj.put(key, value); } catch (JSONException e) { e.printStackTrace(); } } private void setJosnObj(String key, String value) { JSONObject obj = getRoomObj(); try { obj.put(key, value); } catch (JSONException e) { e.printStackTrace(); } } /** 请求热线数据,每页20条 */ public void reqChatData(int id) { setJosnObj("type", tag); setJosnObj("num", 20); if (id > 0) { setJosnObj("pid", id); setJosnObj("direc", "prev"); } else { // 重新获取最新的聊天记录,不传偏移量 setJosnObj("pid", ""); setJosnObj("direc", "next"); lastChatID = 0; } setJsonObj("roomid", roomid); joinRoom(HuPuRes.ROOM_NBA_CHAT); } /** 请求Http数据 */ private void reqHttp(int repType) { mParams.put(BaseEntity.KEY_GAME_ID, "" + gid); sendRequest(repType, tag, mParams, new HupuHttpHandler(this), false); } /** 直播过程中请求刷,就是重新加入room */ public void reqFresh() { if (bJoinRoom && getRoom() != null) joinRoom(); // mFragmentLive.stopLoad(); } public void req() { if (curFragmentIndex == INDEX_STATISTIC) sendRequest(HuPuRes.REQ_METHOD_CBA_BOX_SCORE, mParams, new HupuHttpHandler(this)); else if (curFragmentIndex == INDEX_REPORT) sendRequest(HuPuRes.REQ_METHOD_GET_GAME_REPORT, tag, mParams, new HupuHttpHandler(this), false); } @Override public void updateMoney(int betCoin, int balance) { HupuLog.e("papa", "coin=="+betCoin+"------balance="+balance); if (mFragmentLive != null) { mFragmentLive.updateMoney(betCoin, money); } } @Override public void onSocketConnect() { // Log.d("FootballGameAct", "onSocketConnect >>>>>>:::::"); super.onSocketConnect(); // 连接成功了,加入room。 joinRoom(); mApp.setNetState(HuPuApp.STATE_CONNECTED); } @Override public void onSocketDisconnect() { // Log.d("HupuDataActivity", "onSocketDisconnect >>>>>>:::::" // + android.os.Process.myPid()); super.onSocketDisconnect(); mApp.setNetState(HuPuApp.STATE_DISCONNECT); setNetTitle(); // if (bJoinRoom) // reconnect(false); updateNetState(); } @Override public void onErrResponse(Throwable error, String content, boolean isBackGroundThread) { if (content != null) { showToast(content); } } @Override public void onSocketResp(JSONObject obj) { Log.d("HupuDataActivity", "onSocketResp >>>>>>:::::"+obj.toString()); if (!bottombarVisible) { showBottomBar(); } if (obj != null) { try { String room = obj.optString("room"); if (HuPuRes.ROOM_USER_NOTIFY.equals(room)) { final PushNotify notify = new PushNotify(); notify.paser(obj); if (notify.gid == gid && notify.lid == lid&&(notify.roomid == roomid || notify.roomid == -1)) { // mFragmentLive.showPop(notify.qid); mQid = notify.qid; if (curFragmentIndex != INDEX_QUIZ) { if (mToken != null) imgRedPiont.setVisibility(View.VISIBLE); } else { getQuizList(); } if (mToken != null) startAnim(notify.coin); } return; } int status = obj.optInt(BaseEntity.KEY_STATUS, -1); // Log.d("HupuDataActivity", "onSocketResp >>>>>>::::: status" // + status); int gd = obj.optInt(BaseEntity.KEY_GAME_ID, -1); if (gd != gid) return; if (status > -1 && status != curGameState) { curGameState = status; setViewByState(false); } if (HuPuRes.ROOM_NBA_CHAT.equals(room)) { // Log.d("ROOM_CBA_PLAYBYPLAY", "1"); ChatResp data = new ChatResp(); data.paser(obj); mFragmentChat.stopLoad(); if (data.mList != null) { if (data.direc.equals("next") && data.pid > 0 && data.pid <= lastChatID) return; } mFragmentChat.setData(data,roomid); lastChatID = mFragmentChat.getLastId(); if (curFragmentIndex == INDEX_CHAT && data.online != null) txtTitle.setText("热线(" + data.online + "人)"); if (data.score != null) { setSore(data.score.i_scoreHome, data.score.i_scoreAway); updateProccess(data.score.str_process); } } else if (HuPuRes.ROOM_CBA_PLAYBYPLAY.equals(room)) { if (curGameState == GAME_STATE_END) { bEnd = true; getLiveEndData = true; } // 直播 SimpleLiveResp data = new SimpleLiveResp(); data.paser(obj); mFragmentLive.stopLoad(); if (data.bHasData) { // Log.d("bHasData", "bHasData"); if (data.i_pId > lastLiveID && data.i_pId > -1) mFragmentLive.updateData(data); } else if (data.casinoList != null) { // Log.d("bHasData", "no data"); mFragmentLive.updateData(data); } if (data.casinoInit != null) mFragmentLive.setBets(data.casinoInit.bets); if (data.i_pId > -1 && data.i_pId > lastLiveID) { lastLiveID = data.i_pId; // 更新消息id setJosnObj(BaseEntity.KEY_PID, data.i_pId); } if (curFragmentIndex == INDEX_LIVE && data.people_num != null) { // txtTitle.setText("直播(" + data.online + "人)"); boolean isShowRoomlist = false; boolean isShow = false; if (data.roomList != null) { isShow = data.roomList!=null&&data.roomList.size()>1?true:false; if (data.is_enter == 0&&isShow) { isShowRoomlist = true; }else{ isShowRoomlist = false; } } setRoomOnlineNum(String.format(this.live_online, data.people_num),isShowRoomlist); } if (data.scoreBoard != null) { setSore(data.scoreBoard.i_scoreHome, data.scoreBoard.i_scoreAway); updateProccess(data.scoreBoard.str_process); } if(data.giftList!=null && data.giftList.size()>0){ pushUpdataGift(data.giftList); } } else if (HuPuRes.ROOM_CBA_PLAYBYPLAY.equals(room)) { if (curGameState == GAME_STATE_END) { bEnd = true; getLiveEndData = true; } // 直播 SimpleLiveResp data = new SimpleLiveResp(); data.paser(obj); if (curFragmentIndex == INDEX_LIVE && data.people_num != null) // txtTitle.setText("直播(" + data.people_num + "人)"); { boolean isShowRoomlist = data.is_enter == 0?true:false; setRoomOnlineNum(String.format(this.live_online, data.people_num),isShowRoomlist); } mFragmentLive.stopLoad(); if (data.bHasData) { if (data.i_pId > lastLiveID && data.i_pId > -1) mFragmentLive.updateData(data); } else if (data.casinoList != null) { Log.d("bHasData", "no data"); mFragmentLive.updateData(data); } if (data.i_pId > -1 && data.i_pId > lastLiveID) { lastLiveID = data.i_pId; // 更新消息id setJsonObj(BaseEntity.KEY_PID, data.i_pId); } if (data.scoreBoard != null) { setSore(data.scoreBoard.i_scoreHome, data.scoreBoard.i_scoreAway); updateProccess(data.scoreBoard.str_process); } if(data.giftList!=null && data.giftList.size()>0){ pushUpdataGift(data.giftList); } } else if (HuPuRes.ROOM_CBA_BOXSCORE.equals(room)) { if (curGameState == GAME_STATE_END) { bEnd = true; getBoxEndData = true; } CBABoxScoreResp d = new CBABoxScoreResp(); d.paser(obj); bid = obj.optInt("bid", -1); // 更新消息id if (bid > 0) setJsonObj("bid", bid); setSore(d.i_scoreHome, d.i_scoreAway); updateProccess(d.str_process); mStatisticFragment.updateData(d); } else if (HuPuRes.ROOM_USER_NOTIFY.equals(room)) { final PushNotify notify = new PushNotify(); notify.paser(obj); // 中奖了 // mFragmentLive.showPop(notify.qid); // mFragmentLive.QuizeRewardAnimationManage(notify.coin, // true); } } catch (Exception e) { e.printStackTrace(); } } mApp.setNetState(HuPuApp.STATE_ON_LINE); } @Override protected void onStop() { if (bJoinRoom) reqLeaveRoom(); super.onStop(); } /** 切换到竖直模式 **/ public void switchToPortraitMode() { isLandMode = false; quitFullScreen(); replaceContent(INDEX_STATISTIC); findViewById(R.id.layout_title_bar).setVisibility(View.VISIBLE); findViewById(R.id.layout_score_bar).setVisibility(View.VISIBLE); new Handler().postDelayed(new Runnable() { @Override public void run() { findViewById(R.id.layout_bottom).setVisibility(View.VISIBLE); } }, 600); } /** 切换到水平模式 **/ public void switchToLandMode() { closeDialog(); isLandMode = true; setFullScreen(); replaceContent(INDEX_STATISTIC_LAND); // 隐藏title,和底部栏 findViewById(R.id.layout_title_bar).setVisibility(View.GONE); findViewById(R.id.layout_bottom).setVisibility(View.GONE); findViewById(R.id.layout_score_bar).setVisibility(View.GONE); } /***********************房间相关*****************************/ /** * 请求房间列表 */ private void req_room_http(int id) { if (sortId == HuPuRes.REQ_METHOD_GET_LIVE_DESC) mParams.put("sort", "desc"); else mParams.put("sort", "asc"); roomid = id; mParams.put("roomid", roomid+""); reqHttp(sortId); } /** * 初始化房间列表和礼物 view */ private void initRoomAndGift() { eAnimation = new EpandDownAnimation(this,new EpandCallBack()); title_layout = (RelativeLayout)findViewById(R.id.layout_live_title); mRoomView = (LinearLayout) findViewById(R.id.choose_room_dialog); mRoomListView = (ListView) findViewById(R.id.list_room); mRoomListAdapter = new RoomListAdapter(this, click); } private void setRoomList(final ArrayList<RoomEntity> roomList,int default_id){ HupuLog.d("papa", "roomlistSize=="+roomList.size()); isInitCbaRoom = true; mRoomListAdapter.setData(roomList); mRoomListAdapter.setDefaultId(default_id); mRoomListView.setAdapter(mRoomListAdapter); mRoomListAdapter.notifyDataSetChanged(); mRoomListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub RoomEntity roomEntity = roomList == null || roomList.get(position)==null?null:roomList.get(position); if(roomEntity!=null) { req_room_http(roomList.get(position).id); setRoomTitle(roomEntity.name); setRoomOnlineNum(String.format(live_online, roomEntity.count),true); } hideRoomAction(); } }); } private void setRoomTitle(String title){ this.curRoomtitle = title; txtTitle.setText(curRoomtitle); } private void setRoomOnlineNum(String num,boolean isShow){ if(isShow){ room_people_numTextView.setVisibility(View.VISIBLE); } room_people_numTextView.setText(num); curRoomOnline = num; } private EpandDownAnimation eAnimation; public void showRoomAction() { if(eAnimation==null) { return; } if(mRoomView.getVisibility()==View.VISIBLE) { // mRoomView.setVisibility(View.VISIBLE); hideRoomAction(); } else { eAnimation.startAction_TopToBottom(findViewById(R.id.list_room),mRoomView); } } public void hideRoomAction() { if(eAnimation==null) { return; } eAnimation.finishAction(findViewById(R.id.list_room),mRoomView); } @SuppressLint("ResourceAsColor") private void switchRoomStatus(int curtab,boolean isShowAction) { if(curtab == INDEX_LIVE) { if(title_layout!=null) { title_layout.setClickable(true); } title_room_switch.setVisibility(View.VISIBLE); if(isShowAction){ room_people_numTextView.setVisibility(View.GONE); setRoomTitle(getString(R.string.title_select_room)); } else{ setRoomTitle(curRoomtitle); setRoomOnlineNum(curRoomOnline,true); } if(mRoomView==null) { return; } if(mRoomView.getVisibility()==View.VISIBLE ) { // txtTitle.setTextColor(this.getResources().getColor(R.color.txt_title_live_color)); // room_people_numTextView.setTextColor(this.getResources().getColor(R.color.txt_title_live_color)); title_room_switch.setImageResource(R.drawable.icon_arrow_up_live); } else { txtTitle.setTextColor(this.getResources().getColor(android.R.color.white)); room_people_numTextView.setTextColor(this.getResources().getColor(android.R.color.white)); title_room_switch.setImageResource(R.drawable.icon_arrow_down_live); } } else//非直播tab { if(title_layout!=null) { title_layout.setClickable(false); } if(mRoomView!=null && mRoomView.getVisibility()==View.VISIBLE ){ mRoomView.setVisibility(View.GONE); } title_room_switch.setVisibility(View.GONE); room_people_numTextView.setVisibility(View.GONE); txtTitle.setTextColor(this.getResources().getColor(android.R.color.white)); } // livefirstIn=false; } /** * TODO 点击选择房间时候 重新获取房间列表 * * * @return void */ public void reqRoomlist() { initParameter(); mParams.put("gid", gid + ""); mParams.put("lid", lid + ""); mParams.put("roomid", roomid+""); sendRequest(HuPuRes.REQ_METHOD_GET_PLAY_LIVE_ROOMLIST, mParams, new HupuHttpHandler(BasketballActivity.this), false); } protected void onDestroy() { // // TODO Auto-generated method stub super.onDestroy(); // quitLive(); roomid = -1; } class EpandCallBack implements EpandAnimationCallBack { @Override public void callBack(int type) { switchRoomStatus(INDEX_LIVE,livefirstIn); } } }