package com.team.zhuoke.view.home.fragment;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.bigkoo.svprogresshud.SVProgressHUD;
import com.facebook.drawee.view.SimpleDraweeView;
import com.team.zhuoke.R;
import com.team.zhuoke.base.BaseFragment;
import com.team.zhuoke.base.BaseView;
import com.team.zhuoke.model.logic.home.HomeRecommendModelLogic;
import com.team.zhuoke.model.logic.home.bean.HomeCarousel;
import com.team.zhuoke.model.logic.home.bean.HomeFaceScoreColumn;
import com.team.zhuoke.model.logic.home.bean.HomeHotColumn;
import com.team.zhuoke.model.logic.home.bean.HomeRecommendHotCate;
import com.team.zhuoke.presenter.home.impl.HomeRecommendPresenterImp;
import com.team.zhuoke.presenter.home.interfaces.HomeRecommendContract;
import com.team.zhuoke.ui.refreshview.XRefreshView;
import com.team.zhuoke.view.common.activity.PcLiveVideoActivity;
import com.team.zhuoke.view.common.activity.PhoneLiveVideoActivity;
import com.team.zhuoke.view.home.adapter.HomeCarouselAdapter;
import com.team.zhuoke.view.home.adapter.HomeRecommendAdapter;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import cn.bingoogolapple.bgabanner.BGABanner;
import static com.team.zhuoke.R.id.recyclerView;
/**
* 作者:gaoyin
* 电话:18810474975
* 邮箱:18810474975@163.com
* 版本号:1.0
* 类描述: 推荐页
* 备注消息:
* 修改时间:2016/12/15 下午4:01
**/
public class RecommendHomeFragment extends BaseFragment<HomeRecommendModelLogic, HomeRecommendPresenterImp> implements HomeRecommendContract.View, BGABanner.Delegate<SimpleDraweeView, String> {
SVProgressHUD svProgressHUD;
@BindView(R.id.rtefresh_content)
XRefreshView rtefreshContent;
@BindView(R.id.recommend_content_recyclerview)
RecyclerView recommed_recyclerview;
private HomeRecommendAdapter adapter;
private HomeCarouselAdapter mRecommedBannerAdapter;
private BGABanner recommed_banner;
private View haderView;
private List<HomeCarousel> mHomeCarousel;
public static RecommendHomeFragment getInstance() {
RecommendHomeFragment rf = new RecommendHomeFragment();
return rf;
}
@Override
protected int getLayoutId() {
return R.layout.fragment_home_recommend;
}
@Override
protected void onInitView(Bundle bundle) {
svProgressHUD = new SVProgressHUD(getActivity());
recommed_recyclerview.setLayoutManager(new LinearLayoutManager(getContext()));
adapter = new HomeRecommendAdapter(getContext());
mHomeCarousel=new ArrayList<HomeCarousel>();
pool.setMaxRecycledViews(adapter.getItemViewType(0), 500);
recommed_recyclerview.setRecycledViewPool(pool);
recommed_recyclerview.setAdapter(adapter);
mRecommedBannerAdapter = new HomeCarouselAdapter();
haderView = adapter.setHeaderView(R.layout.item_home_recommend_banner, recommed_recyclerview);
recommed_banner=(BGABanner) haderView.findViewById(R.id.recommed_banner);
recommed_banner.setDelegate(this);
recommed_banner.setAdapter(mRecommedBannerAdapter);
setXrefeshViewConfig();
}
final RecyclerView.RecycledViewPool pool = new RecyclerView.RecycledViewPool() {
@Override
public void putRecycledView(RecyclerView.ViewHolder scrap) {
super.putRecycledView(scrap);
}
@Override
public RecyclerView.ViewHolder getRecycledView(int viewType) {
final RecyclerView.ViewHolder recycledView = super.getRecycledView(viewType);
return recycledView;
}
};
/**
* 配置XRefreshView
*/
protected void setXrefeshViewConfig() {
rtefreshContent.setPinnedTime(2000);
rtefreshContent.setPullLoadEnable(false);
rtefreshContent.setPullRefreshEnable(true);
rtefreshContent.setMoveForHorizontal(true);
rtefreshContent.setPinnedContent(true);
}
@Override
protected void onEvent() {
rtefreshContent.setXRefreshViewListener(new XRefreshView.SimpleXRefreshListener() {
@Override
public void onRefresh() {
// 延迟500毫秒, 原因 用户体验好 !!!
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
refresh();
}
}, 500);
}
});
}
@Override
protected BaseView getViewImp() {
return this;
}
/**
* 轮播图
*
* @param mHomeCarousel
*/
@Override
public void getViewCarousel(List<HomeCarousel> mHomeCarousel) {
if (rtefreshContent != null) {
rtefreshContent.stopRefresh();
}
this.mHomeCarousel.clear();
this.mHomeCarousel.addAll(mHomeCarousel);
// recommed_banner.setDelegate(this);
ArrayList<String> pic_url = new ArrayList<String>();
for (int i = 0; i < mHomeCarousel.size(); i++) {
pic_url.add(mHomeCarousel.get(i).getPic_url());
}
if (recommed_banner != null && pic_url.size() > 0) {
recommed_banner.setData(R.layout.item_image_carousel, pic_url, null);
}
adapter.notifyDataSetChanged();
}
//最热
@Override
public void getViewHotColumn(List<HomeHotColumn> mHomeHotColumn) {
adapter.getHomeHotColumn(mHomeHotColumn);
}
//颜值
@Override
public void getViewFaceScoreColumn(List<HomeFaceScoreColumn> homeFaceScoreColumns) {
adapter.getFaceScoreColmun(homeFaceScoreColumns);
}
//热门
@Override
public void getViewHotCate(List<HomeRecommendHotCate> homeRecommendHotCates) {
// 去掉颜值栏目
homeRecommendHotCates.remove(1);
adapter.getAllColumn(homeRecommendHotCates);
}
/**
* 刷新网络数据
*/
private void refresh() {
// 轮播图
mPresenter.getPresenterCarousel();
mPresenter.getPresenterHotColumn();
mPresenter.getPresenterFaceScoreColumn(0, 4);
mPresenter.getPresenterHotCate();
}
@Override
protected void lazyFetchData() {
refresh();
}
@Override
public void showErrorWithStatus(String msg) {
svProgressHUD.showErrorWithStatus(msg);
rtefreshContent.stopRefresh(false);
}
@Override
public void onBannerItemClick(BGABanner banner, SimpleDraweeView itemView, String model, int position) {
Intent intent = new Intent(getActivity(), PcLiveVideoActivity.class);
Bundle bundle = new Bundle();
bundle.putString("Room_id",mHomeCarousel.get(position).getRoom().getRoom_id());
intent.putExtras(bundle);
getActivity().startActivity(intent);
}
}