package com.yuyh.sprintnba.ui.fragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import com.yuyh.library.utils.DimenUtils;
import com.yuyh.sprintnba.R;
import com.yuyh.sprintnba.base.BaseLazyFragment;
import com.yuyh.sprintnba.event.RefreshCompleteEvent;
import com.yuyh.sprintnba.event.RefreshEvent;
import com.yuyh.sprintnba.http.bean.video.MatchVideo;
import com.yuyh.sprintnba.support.SpaceItemDecoration;
import com.yuyh.sprintnba.support.SupportRecyclerView;
import com.yuyh.sprintnba.ui.adapter.MatchVideoAdapter;
import com.yuyh.sprintnba.ui.presenter.impl.MatchVideoPresenter;
import com.yuyh.sprintnba.ui.view.MatchVideoView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.List;
import butterknife.InjectView;
/**
* @author yuyh.
* @date 2016/12/30.
*/
public class MatchVideoFragment extends BaseLazyFragment implements MatchVideoView {
public static final String BUNDLE_MID = "mid";
public static Fragment newInstance(String mid) {
MatchVideoFragment fragment = new MatchVideoFragment();
Bundle bundle = new Bundle();
bundle.putString(BUNDLE_MID, mid);
fragment.setArguments(bundle);
return fragment;
}
@InjectView(R.id.snlScrollView)
SupportRecyclerView recyclerView;
private MatchVideoPresenter mPresenter;
private MatchVideoAdapter mAdapter;
private List<MatchVideo.VideoBean> mList = new ArrayList<>();
private boolean isVisibleToUser; // 是否可见。可见才进行刷新
@Override
protected void onCreateViewLazy(Bundle savedInstanceState) {
super.onCreateViewLazy(savedInstanceState);
setContentView(R.layout.fragment_match_video);
EventBus.getDefault().register(this);
recyclerView.setLayoutManager(new LinearLayoutManager(recyclerView.getContext()));
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.addItemDecoration(new SpaceItemDecoration(DimenUtils.dpToPxInt(5)));
mPresenter = new MatchVideoPresenter(this, getArguments().getString(BUNDLE_MID));
mPresenter.initialized();
}
@Override
public void showLoading(String msg) {
showLoadingDialog();
}
@Override
public void hideLoading() {
hideLoadingDialog();
}
@Override
public void showError(String msg) {
recyclerView.setEmptyView(findViewById(R.id.emptyView));
}
@Override
public void showMatchVideo(List<MatchVideo.VideoBean> list) {
if (mAdapter == null) {
mAdapter = new MatchVideoAdapter(mActivity, mList);
recyclerView.setAdapter(mAdapter);
}
mAdapter.clear();
mAdapter.addAll(list);
EventBus.getDefault().post(new RefreshCompleteEvent());
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
this.isVisibleToUser = isVisibleToUser;
if (isVisibleToUser && mActivity != null) {
mActivity.invalidateOptionsMenu();
}
}
@Subscribe
public void onEventMainThread(RefreshEvent event) {
if (isVisibleToUser) {
mPresenter.initialized();
}
}
@Override
protected void onDestroyViewLazy() {
super.onDestroyViewLazy();
EventBus.getDefault().unregister(this);
}
}