package com.hupu.games.fragment;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import com.hupu.games.R;
import com.hupu.games.activity.BaseGameActivity;
import com.hupu.games.activity.FootballGameActivity;
import com.hupu.games.activity.FootballPlayerInfoActivity;
import com.hupu.games.adapter.FootballEventsListAdapter;
import com.hupu.games.data.game.football.ScoreboardEntity;
import com.hupu.games.data.game.football.SoccerOutsReq;
/**
* 足球赛况,主要是把统计和事件直播加到一起
* */
@SuppressLint("ValidFragment")
public class SoccerPlayByPlayFragment extends BaseFragment {
View mProgressBar;
ListView mListView;
private FootballEventsListAdapter mListAdapter;
private SoccerOutsReq mEntity;
/**
* 统计项的列数
* */
private int mSize;
private LayoutInflater mInflater;
private FootballGameActivity mAct;
private FootballTimeTask task;
private Handler timeTaskHandler;
private int delayTime=30000;
private boolean startTime;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mInflater = LayoutInflater.from(activity);
mListAdapter = new FootballEventsListAdapter(activity,new Click());
mAct = (FootballGameActivity) activity;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Log.d("StatisticFragment", "onCreateView");
View v = inflater.inflate(R.layout.fragment_football_statistic,
container, false);
mViewFooter=null;
mProgressBar = v.findViewById(R.id.probar);
mListView = (ListView) v.findViewById(R.id.list_football_statistic);
if (mEntity != null) {
setData(mEntity,tag);
//mListView.setVisibility(View.VISIBLE);
} else {
reqData();
}
return v;
}
public void entry() {
//if (mProgressBar != null) {
if(mAct!=null)
{
reqData();
if (mListAdapter != null && mListAdapter.getCount() > 0)
mListView.setSelection(0);
}
//}
}
public void setData(SoccerOutsReq en,String stag) {
tag = stag;
mListView.setVisibility(View.VISIBLE);
if(mProgressBar!=null)
mProgressBar.setVisibility(View.GONE);
mEntity = en;
if (en.mTitles != null) {
mSize = en.mTitles.size();
mListView.setVisibility(View.VISIBLE);
if(mViewFooter==null)
{
buildFootView(en);
mListView.addFooterView(mViewFooter);
mListView.setAdapter(mListAdapter);
}
updateStatisticData(en);
mListAdapter.setData(en.mLiveDatas);
if (en.scoreBoard.code == ScoreboardEntity.STATUS_END)
EndTimer();
else {
// delayTime =30000;
startTimer();
}
}
}
public void clear() {
mSize = 0;
mEntity = null;
if (mListAdapter != null)
mListAdapter.notifyDataSetChanged();
}
class Holder {
TextView txtLeft;
TextView txtRight;
TextView txtMid;
}
/**初始化统计View*/
LinearLayout mViewFooter;
void buildFootView(SoccerOutsReq en)
{
if(mViewFooter ==null && getActivity()!=null)
{
mViewFooter = new LinearLayout(getActivity());
mViewFooter.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
TextView title= new TextView(getActivity());
title.setTextColor(Color.WHITE);
title.setGravity(Gravity.CENTER);
title.setText("球队数据");
title.setPadding(0, 6, 0, 6);
title.setBackgroundColor(Color.BLACK);
title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
mViewFooter.addView(title, p);
for(int i =0;i<mSize;i++)
{
View convertView=mInflater.inflate(
R.layout.item_football_statistic, null);
Holder item= new Holder();
item.txtLeft = (TextView) convertView
.findViewById(R.id.txt_left);
item.txtRight = (TextView) convertView
.findViewById(R.id.txt_right);
item.txtMid = (TextView) convertView.findViewById(R.id.txt_mid);
convertView.setTag(item);
mViewFooter.addView(convertView,p);
}
}
}
/**设置足球统计数据
* */
void updateStatisticData(SoccerOutsReq en)
{
if(mViewFooter!=null)
{
Holder item;
View v;
for(int i =0;i<mSize;i++)
{
v=mViewFooter.getChildAt(i+1);
item=(Holder)v.getTag();
item.txtLeft.setText(mEntity.mHomeValue.get(i));
item.txtRight.setText(mEntity.mAwayValue.get(i));
item.txtMid.setText(mEntity.mTitles.get(i));
if ((i & 1) == 0) {
v.setBackgroundResource(R.color.football_statistic_down);
} else {
v.setBackgroundResource(R.color.football_statistic_up);
}
}
}
}
@Override
public void onDetach() {
super.onDetach();
if(mViewFooter!=null)
mViewFooter.removeAllViews();
mViewFooter=null;
}
private void startTimer() {
startTime = true;
if (timeTaskHandler == null) {
timeTaskHandler = new Handler();
}
task = new FootballTimeTask();
timeTaskHandler.postDelayed(task, delayTime);
}
private void EndTimer() {
if (timeTaskHandler != null) {
timeTaskHandler.removeCallbacks(task);
timeTaskHandler = null;
}
startTime = false;
}
private void reqData() {
mAct.req();
}
class FootballTimeTask implements Runnable {
@Override
public void run() {
reqData();
}
}
@Override
public void onDestroy() {
super.onDestroy();
EndTimer();
}
@Override
public void onPause() {
super.onPause();
if (timeTaskHandler != null)
timeTaskHandler.removeCallbacks(task);
}
@Override
public void onResume() {
super.onResume();
if (startTime)
startTimer();
}
private String tag;
//战况 中点击event 事件中的
public class Click implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int pid = 0;
if ("".equals(v.getTag().toString()) && v.getTag() !=null) {
pid = 0;
}else {
pid = Integer.parseInt(v.getTag().toString());
}
if (pid != 0) {
Intent in = new Intent(getActivity(), FootballPlayerInfoActivity.class);
in.putExtra("pid", pid);
in.putExtra("tag", tag);
startActivity(in);
}
}
}
}