package com.yuyh.sprintnba.ui.fragment;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.yuyh.sprintnba.R;
import com.yuyh.sprintnba.base.BaseLazyFragment;
import com.yuyh.sprintnba.event.RefreshEvent;
import com.yuyh.sprintnba.http.bean.match.MatchStat;
import com.yuyh.sprintnba.ui.adapter.MatchHistoryAdapter;
import com.yuyh.sprintnba.ui.adapter.MatchLMaxPlayerdapter;
import com.yuyh.sprintnba.ui.adapter.MatchRecentAdapter;
import com.yuyh.sprintnba.ui.presenter.impl.MatchLookForwardPresenter;
import com.yuyh.sprintnba.ui.view.MatchLookForwardView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.List;
import butterknife.ButterKnife;
import butterknife.InjectView;
/**
* @author yuyh.
* @date 16/6/5.
*/
public class MatchLookForwardFragment extends BaseLazyFragment implements MatchLookForwardView {
@InjectView(R.id.llMaxPlayer)
LinearLayout llMaxPlayer;
@InjectView(R.id.tvMaxPlayer)
TextView tvMaxPlayer;
@InjectView(R.id.lvMaxPlayer)
ListView lvMaxPlayer;
@InjectView(R.id.rlMatchTeam)
RelativeLayout rlMatchTeam;
@InjectView(R.id.tvLeftTeamName)
TextView tvLeftTeamName;
@InjectView(R.id.tvRightTeamName)
TextView tvRightTeamName;
@InjectView(R.id.llHistoryMatchs)
LinearLayout llHistoryMatchs;
@InjectView(R.id.tvHistoryMatchs)
TextView tvHistoryMatchs;
@InjectView(R.id.lvHistoryMatchs)
ListView lvHistoryMatchs;
@InjectView(R.id.llRecentMatchs)
LinearLayout llRecentMatchs;
@InjectView(R.id.tvRecentMatchs)
TextView tvRecentMatchs;
@InjectView(R.id.tvRecentTitleLeft)
TextView tvRecentTitleLeft;
@InjectView(R.id.tvRecentTitleRight)
TextView tvRecentTitleRight;
@InjectView(R.id.lvRecentMatchs)
ListView lvRecentMatchs;
@InjectView(R.id.llFutureMatchs)
LinearLayout llFutureMatchs;
@InjectView(R.id.tvFutureMatchs)
TextView tvFutureMatchs;
@InjectView(R.id.tvFutureTitleLeft)
TextView tvFutureTitleLeft;
@InjectView(R.id.tvFutureTitleRight)
TextView tvFutureTitleRight;
@InjectView(R.id.lvFutureMatchs)
ListView lvFutureMatchs;
private MatchLookForwardPresenter presenter;
private List<MatchStat.TeamMatchs.TeamMatchsTeam> recentList = new ArrayList<>();
private MatchRecentAdapter recentAdapter;
private List<MatchStat.TeamMatchs.TeamMatchsTeam> futureList = new ArrayList<>();
private MatchRecentAdapter futureAdapter;
private List<MatchStat.VS> vs = new ArrayList<>();
private MatchHistoryAdapter hisAdapter;
private List<MatchStat.MaxPlayers> maxPlayers = new ArrayList<>();
private MatchLMaxPlayerdapter playerdapter;
private int recentCurrent = 0;
private int futureCurrent = 0;
public static MatchLookForwardFragment newInstance(String mid) {
Bundle args = new Bundle();
args.putString("mid", mid);
MatchLookForwardFragment fragment = new MatchLookForwardFragment();
fragment.setArguments(args);
return fragment;
}
@Override
protected void onCreateViewLazy(Bundle savedInstanceState) {
super.onCreateViewLazy(savedInstanceState);
setContentView(R.layout.fragment_match_look_forward);
EventBus.getDefault().register(this);
initData();
}
private void initData() {
showLoadingDialog();
lvMaxPlayer.setFocusable(false);
presenter = new MatchLookForwardPresenter(mActivity, this);
presenter.initialized();
presenter.getMatchStat(getArguments().getString("mid"), "3");
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && mActivity!= null) {
mActivity.invalidateOptionsMenu();
}
}
@Override
public void showTeamInfo(MatchStat.MatchTeamInfo info) {
tvLeftTeamName.setText(info.leftName);
tvRightTeamName.setText(info.rightName);
tvRecentTitleLeft.setText(info.leftName);
tvRecentTitleRight.setText(info.rightName);
tvFutureTitleLeft.setText(info.leftName);
tvFutureTitleRight.setText(info.rightName);
rlMatchTeam.setVisibility(View.VISIBLE);
hideLoadingDialog();
}
@Override
public void showMaxPlayer(List<MatchStat.MaxPlayers> maxPlayers) {
this.maxPlayers.clear();
this.maxPlayers.addAll(maxPlayers);
if(playerdapter == null) {
playerdapter = new MatchLMaxPlayerdapter(this.maxPlayers, mActivity, R.layout.item_list_maxplayer);
lvMaxPlayer.setAdapter(playerdapter);
}
playerdapter.notifyDataSetChanged();
llMaxPlayer.setVisibility(View.VISIBLE);
}
@Override
public void showHistoryMatchs(List<MatchStat.VS> vs) {
this.vs.clear();
this.vs.addAll(vs);
if(hisAdapter == null) {
hisAdapter = new MatchHistoryAdapter(this.vs, mActivity, R.layout.item_list_match_recent);
lvHistoryMatchs.setAdapter(hisAdapter);
}
hisAdapter.notifyDataSetChanged();
llHistoryMatchs.setVisibility(View.VISIBLE);
}
@Override
public void showRecentMatchs(final MatchStat.TeamMatchs teamMatches) {
recentList.clear();
recentList.addAll(teamMatches.left);
if (recentAdapter == null)
recentAdapter = new MatchRecentAdapter(true, recentList, mActivity, R.layout.item_list_match_recent);
lvRecentMatchs.setAdapter(recentAdapter);
tvRecentTitleLeft.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (recentCurrent != 0) {
recentList.clear();
recentList.addAll(teamMatches.left);
recentAdapter.notifyDataSetChanged();
tvRecentTitleRight.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.entity_layout));
tvRecentTitleLeft.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.white));
recentCurrent = 0;
}
}
});
tvRecentTitleRight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (recentCurrent == 0) {
recentList.clear();
recentList.addAll(teamMatches.right);
recentAdapter.notifyDataSetChanged();
tvRecentTitleRight.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.white));
tvRecentTitleLeft.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.entity_layout));
recentCurrent = 1;
}
}
});
llRecentMatchs.setVisibility(View.VISIBLE);
}
@Override
public void showFutureMatchs(final MatchStat.TeamMatchs teamMatches) {
futureList.clear();
futureList.addAll(teamMatches.left);
if (futureAdapter == null)
futureAdapter = new MatchRecentAdapter(false, futureList, mActivity, R.layout.item_list_match_recent);
lvFutureMatchs.setAdapter(futureAdapter);
tvFutureTitleLeft.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (futureCurrent != 0) {
futureList.clear();
futureList.addAll(teamMatches.left);
futureAdapter.notifyDataSetChanged();
tvFutureTitleRight.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.entity_layout));
tvFutureTitleLeft.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.white));
futureCurrent = 0;
}
}
});
tvFutureTitleRight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (futureCurrent == 0) {
futureList.clear();
futureList.addAll(teamMatches.right);
futureAdapter.notifyDataSetChanged();
tvFutureTitleRight.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.white));
tvFutureTitleLeft.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.entity_layout));
futureCurrent = 1;
}
}
});
llFutureMatchs.setVisibility(View.VISIBLE);
}
@Override
public void showError(String message) {
hideLoadingDialog();
}
@Subscribe
public void onEventMainThread(RefreshEvent event) {
presenter.getMatchStat(getArguments().getString("mid"), "3");
}
@Override
protected void onDestroyViewLazy() {
super.onDestroyViewLazy();
EventBus.getDefault().unregister(this);
}
}