package com.laotan.easyreader.ui.fragment.gank;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.laotan.easyreader.R;
import com.laotan.easyreader.bean.gankio.GankIoDataBean;
import com.laotan.easyreader.injector.component.fragment.DaggerAndroidComponent;
import com.laotan.easyreader.injector.module.fragment.AndroidModule;
import com.laotan.easyreader.injector.module.http.GankIoHttpModule;
import com.laotan.easyreader.presenter.GankIoAndroidPresenter;
import com.laotan.easyreader.presenter.impl.GankIoAndroidPresenterImpl;
import com.laotan.easyreader.ui.fragment.BaseFragment;
import com.laotan.easyreader.view.EasyLoadMoreView;
import java.util.List;
import butterknife.BindView;
/**
* Created by quantan.liu on 2017/3/22.
*/
public class AndroidFragment extends BaseFragment<GankIoAndroidPresenterImpl> implements GankIoAndroidPresenter.View, SwipeRefreshLayout.OnRefreshListener, BaseQuickAdapter.RequestLoadMoreListener {
@BindView(R.id.rv_android)
RecyclerView rvAndroid;
@BindView(R.id.srl_android)
SwipeRefreshLayout srlAndroid;
private int page;
private final static int PRE_PAGE = 10;
private List<GankIoDataBean.ResultBean> data;
private boolean isRefresh = false;
@Override
public void refreshView(List<GankIoDataBean.ResultBean> data) {
if (isRefresh){
srlAndroid.setRefreshing(false);
mAdapter.setEnableLoadMore(true);
isRefresh = false;
mAdapter.setNewData(data);
}else{
srlAndroid.setEnabled(true);
page++;
mAdapter.addData(data);
mAdapter.loadMoreComplete();
}
}
@Override
protected void loadData() {
mPresenter.fetchGankIoData(page,PRE_PAGE);
}
@Override
protected int getLayoutId() {
return R.layout.fragment_android;
}
@Override
protected void initView() {
srlAndroid.setColorSchemeColors(getResources().getColor(R.color.colorTheme));
rvAndroid.setLayoutManager(new LinearLayoutManager(getActivity()));
rvAndroid.setAdapter(mAdapter);
srlAndroid.setOnRefreshListener(this);
mAdapter.setLoadMoreView(new EasyLoadMoreView());
mAdapter.setOnLoadMoreListener(this,rvAndroid);
}
@Override
protected void initInject() {
DaggerAndroidComponent.builder()
.gankIoHttpModule(new GankIoHttpModule())
.androidModule(new AndroidModule())
.build().injectAndroid(this);
}
@Override
public void onRefresh() {
page = 0;
isRefresh =true;
mAdapter.setEnableLoadMore(false);
mPresenter.fetchGankIoData(page,PRE_PAGE);
}
@Override
public void onLoadMoreRequested() {
if (page >= 6) {
mAdapter.loadMoreEnd();
srlAndroid.setEnabled(true);
} else {
loadData();
srlAndroid.setEnabled(false);
}
}
}