package com.codeest.geeknews.ui.vtex.fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import com.codeest.geeknews.R;
import com.codeest.geeknews.app.Constants;
import com.codeest.geeknews.base.RootFragment;
import com.codeest.geeknews.model.bean.TopicListBean;
import com.codeest.geeknews.presenter.vtex.VtexPresenter;
import com.codeest.geeknews.base.contract.vtex.VtexContract;
import com.codeest.geeknews.ui.vtex.adapter.TopicAdapter;
import com.codeest.geeknews.widget.CommonItemDecoration;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
/**
* Created by codeest on 6/12/19.
*/
public class VtexPagerFragment extends RootFragment<VtexPresenter> implements VtexContract.View{
@BindView(R.id.view_main)
RecyclerView rvContent;
@BindView(R.id.swipe_refresh)
SwipeRefreshLayout swipeRefresh;
private TopicAdapter mAdapter;
private String mType;
@Override
protected void initInject() {
getFragmentComponent().inject(this);
}
@Override
protected int getLayoutId() {
return R.layout.view_common_list;
}
@Override
protected void initEventAndData() {
super.initEventAndData();
mType = getArguments().getString(Constants.IT_VTEX_TYPE);
mAdapter = new TopicAdapter(mContext, new ArrayList<TopicListBean>());
CommonItemDecoration mDecoration = new CommonItemDecoration(1, CommonItemDecoration.UNIT_DP);
rvContent.setLayoutManager(new LinearLayoutManager(mContext));
rvContent.setAdapter(mAdapter);
rvContent.addItemDecoration(mDecoration);
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
mPresenter.getContent(mType);
}
});
stateLoading();
mPresenter.getContent(mType);
}
@Override
public void stateError() {
super.stateError();
if(swipeRefresh.isRefreshing()) {
swipeRefresh.setRefreshing(false);
}
}
@Override
public void showContent(List<TopicListBean> mList) {
if(swipeRefresh.isRefreshing()) {
swipeRefresh.setRefreshing(false);
}
stateMain();
mAdapter.updateData(mList);
}
}