package com.example.administrator.searchpicturetool.recommend;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.GridLayoutManager;
import com.example.administrator.searchpicturetool.app.APP;
import com.example.administrator.searchpicturetool.model.RecommendModel;
import com.example.administrator.searchpicturetool.model.bean.NewRecommendContent;
import com.jude.beam.expansion.BeamBasePresenter;
import com.jude.utils.JUtils;
import java.util.List;
import rx.Subscriber;
import rx.functions.Action1;
/**
* Created by wenhuaijun on 2016/2/5 0005.
*/
public class RecommendFragmentPresenter extends BeamBasePresenter<RecommendFragment> implements SwipeRefreshLayout.OnRefreshListener{
private RecommendAdapter adapter;
private boolean isInit =true;
private GridLayoutManager girdLayoutManager;
@Override
protected void onCreate(RecommendFragment view, Bundle savedState) {
super.onCreate(view, savedState);
adapter = new RecommendAdapter(getView().getContext());
girdLayoutManager =new GridLayoutManager(getView().getContext(),2);
//打开首先从缓存获取数据显示
getDataFromCache();
//延迟加载,和缓存加载间隔一段时间,避免卡顿
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
onRefresh();
}
},2000);
}
@Override
protected void onCreateView(RecommendFragment view) {
super.onCreateView(view);
if(isInit){
adapter.addHeader(new RollViewPagerItemView(getView().recyclerView.getSwipeToRefresh()));
isInit =false;
getView().recyclerView.setAdapterWithProgress(adapter);
}else{
girdLayoutManager =new GridLayoutManager(getView().getContext(),2);
girdLayoutManager.setSpanSizeLookup(adapter.obtainTipSpanSizeLookUp());
getView().recyclerView.setAdapterWithProgress(adapter);
if (adapter != null && adapter.getCount() == 0) {
if(JUtils.isNetWorkAvilable()){
getView().recyclerView.showEmpty();
}else {
getView().recyclerView.showError();
}
}
}
// getView().recyclerView.setLayoutManager(new LinearLayoutManager(getView().getContext()));
//根据不同position设置item的宽度,tip宽度为铺满整个屏幕
getView().recyclerView.setLayoutManager(girdLayoutManager);
getView().recyclerView.setRefreshListener(this);
/* if (adapter != null && adapter.getCount() == 0 && !JUtils.isNetWorkAvilable()) {
getView().recyclerView.showError();
}*/
}
@Override
public void onRefresh() {
RecommendModel.getRecommendsFromNet(APP.getInstance(), new Subscriber<List<NewRecommendContent>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
JUtils.Toast("网络不给力");
if (getView().recyclerView != null) {
if (adapter.getCount() == 0) {
getView().recyclerView.showError();
}
getView().recyclerView.setRefreshing(false);
}
}
@Override
public void onNext(List<NewRecommendContent> list) {
adapter.clear();
adapter.addAll(list);
girdLayoutManager.setSpanSizeLookup(adapter.obtainTipSpanSizeLookUp());
}
});
}
public void getDataFromCache(){
//打开首先从缓存获取数据显示
RecommendModel.getRecommendsFromDB(getView().getContext()).subscribe(new Action1<List<NewRecommendContent>>() {
@Override
public void call(List<NewRecommendContent> list) {
if(list!=null&&list.size()!=0){
adapter.addAll(list);
girdLayoutManager.setSpanSizeLookup(adapter.obtainTipSpanSizeLookUp());
if(getView().recyclerView!=null){
getView().recyclerView.setRefreshing(true);
}
}
}
});
}
}