package com.yuyh.sprintnba.ui.fragment;
import android.os.Bundle;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.cjj.MaterialRefreshLayout;
import com.cjj.MaterialRefreshListener;
import com.yuyh.library.utils.DateUtils;
import com.yuyh.library.utils.DimenUtils;
import com.yuyh.library.utils.log.LogUtils;
import com.yuyh.sprintnba.R;
import com.yuyh.sprintnba.base.BaseLazyFragment;
import com.yuyh.sprintnba.event.CalendarEvent;
import com.yuyh.sprintnba.http.api.RequestCallback;
import com.yuyh.sprintnba.http.api.tencent.TencentService;
import com.yuyh.sprintnba.http.bean.match.Matchs;
import com.yuyh.sprintnba.support.OnListItemClickListener;
import com.yuyh.sprintnba.support.SpaceItemDecoration;
import com.yuyh.sprintnba.support.SupportRecyclerView;
import com.yuyh.sprintnba.ui.MatchDetailActivity;
import com.yuyh.sprintnba.ui.adapter.ScheduleAdapter;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.List;
import butterknife.InjectView;
/**
* @author yuyh.
* @date 16/6/5.
*/
public class ScheduleFragment extends BaseLazyFragment {
private String date = "";
@InjectView(R.id.refresh)
MaterialRefreshLayout materialRefreshLayout;
@InjectView(R.id.recyclerview)
SupportRecyclerView recyclerView;
@InjectView(R.id.emptyView)
View emptyView;
private ScheduleAdapter adapter;
private List<Matchs.MatchsDataBean.MatchesBean> list = new ArrayList<>();
private String year = "2016";
@Override
protected void onCreateViewLazy(Bundle savedInstanceState) {
super.onCreateViewLazy(savedInstanceState);
setContentView(R.layout.fragment_normal_recyclerview);
date = DateUtils.format(System.currentTimeMillis(), "yyyy-MM-dd");
LogUtils.i(date);
EventBus.getDefault().register(this);
mActivity.invalidateOptionsMenu();
initView();
requestMatchs(date, true);
}
private void initView() {
adapter = new ScheduleAdapter(list, mActivity, R.layout.item_list_match);
adapter.setOnItemClickListener(new OnListItemClickListener<Matchs.MatchsDataBean.MatchesBean>() {
@Override
public void onItemClick(View view, int position, Matchs.MatchsDataBean.MatchesBean data) {
MatchDetailActivity.start(mActivity, data.matchInfo.mid, year);
}
});
recyclerView.setLayoutManager(new LinearLayoutManager(recyclerView.getContext()));
recyclerView.setAdapter(adapter);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.addItemDecoration(new SpaceItemDecoration(DimenUtils.dpToPxInt(3)));
materialRefreshLayout.setMaterialRefreshListener(new RefreshListener());
materialRefreshLayout.setLoadMore(false);
}
private void requestMatchs(String date, boolean isRefresh) {
showLoadingDialog();
TencentService.getMatchsByDate(date, isRefresh, new RequestCallback<Matchs>() {
@Override
public void onSuccess(Matchs matchs) {
list.clear();
List<Matchs.MatchsDataBean.MatchesBean> mList = matchs.getData().matches;
if (mList != null && !mList.isEmpty()) {
for (Matchs.MatchsDataBean.MatchesBean bean : mList) {
list.add(bean);
}
}
complete();
}
@Override
public void onFailure(String message) {
complete();
}
});
}
private class RefreshListener extends MaterialRefreshListener {
@Override
public void onRefresh(final MaterialRefreshLayout materialRefreshLayout) {
requestMatchs(date, true);
}
}
private void complete() {
recyclerView.setEmptyView(emptyView);
adapter.notifyDataSetChanged();
materialRefreshLayout.finishRefresh();
materialRefreshLayout.finishRefreshLoadMore();
hideLoadingDialog();
}
@Subscribe
public void onEventMainThread(CalendarEvent msg) {
date = msg.getDate();
year = date.substring(0, 4);
LogUtils.i(msg.getDate());
requestMatchs(date, true);
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && mActivity != null) {
mActivity.invalidateOptionsMenu();
}
}
@Override
protected void onDestroyViewLazy() {
super.onDestroyViewLazy();
EventBus.getDefault().unregister(this);
}
}