package com.hpw.myapp.ui.tv.fragment; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.bumptech.glide.Glide; import com.hpw.mvpframe.base.CoreBaseFragment; import com.hpw.mvpframe.utils.DisplayUtils; import com.hpw.mvpframe.widget.GlideCircleTransform; import com.hpw.mvpframe.widget.recyclerview.BaseMultiItemQuickAdapter; import com.hpw.mvpframe.widget.recyclerview.BaseQuickAdapter; import com.hpw.mvpframe.widget.recyclerview.BaseViewHolder; import com.hpw.mvpframe.widget.recyclerview.CoreRecyclerView; import com.hpw.mvpframe.widget.recyclerview.recyclerviewpager.LoopRecyclerViewPager; import com.hpw.myapp.App; import com.hpw.myapp.R; import com.hpw.myapp.ui.tv.activity.TvShowActivity; import com.hpw.myapp.ui.tv.activity.TvShowFullActivity; import com.hpw.myapp.ui.tv.contract.TvContract; import com.hpw.myapp.ui.tv.model.FirstBannerBean; import com.hpw.myapp.ui.tv.model.FirstBean; import com.hpw.myapp.ui.tv.model.FirstModel; import com.hpw.myapp.ui.tv.presenter.FirstPresenter; import com.hpw.myapp.widget.GlideTransform; import java.util.List; /** * Created by hpw on 16/12/2. */ public class FirstFragment extends CoreBaseFragment<FirstPresenter, FirstModel> implements TvContract.FirstView { CoreRecyclerView coreRecyclerView; LoopRecyclerViewPager vpTop; @Override public int getLayoutId() { return 0; } @Override public View getLayoutView() { coreRecyclerView = new CoreRecyclerView(mContext) .init(new BaseQuickAdapter<FirstBean.RoomBean, BaseViewHolder>(R.layout.item_first_header) { @Override protected void convert(BaseViewHolder helper, FirstBean.RoomBean item) { RecyclerView.LayoutManager layoutManager = new GridLayoutManager(mContext, 2); layoutManager.setAutoMeasureEnabled(true); helper.setText(R.id.category_name, item.getName()); ((CoreRecyclerView) helper.getView(R.id.recyclerview)).init(layoutManager, new MultipleItemAdapter(item.getList()), false); } }); return coreRecyclerView; } @Override public void initUI(View view, @Nullable Bundle savedInstanceState) { View view1 = LayoutInflater.from(mContext).inflate(R.layout.daily_header, (ViewGroup) coreRecyclerView.getParent(), false); vpTop = (LoopRecyclerViewPager) view1.findViewById(R.id.vp_top); vpTop.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false)); coreRecyclerView.addHeaderView(view1); } @Override public void initData() { mPresenter.getFirstData(); mPresenter.getBannerData(); mPresenter.startInterval(); } @Override public void showError(String msg) { } @Override public void doInterval(int i) { vpTop.smoothScrollToPosition(i); } @Override public void showContent(FirstBean info) { coreRecyclerView.getAdapter().addData(info.getRoom()); } @Override public void showBannerContent(List<FirstBannerBean> info) { vpTop.setAdapter(new BaseQuickAdapter<FirstBannerBean, BaseViewHolder>(R.layout.item_first_banner, info) { @Override protected void convert(BaseViewHolder helper, FirstBannerBean item) { helper.setText(R.id.tv_top_title, item.getTitle()); Glide.with(mContext).load(item.getThumb()).crossFade().into((ImageView) helper.getView(R.id.iv_top_image)); helper.setOnClickListener(R.id.iv_top_image, v -> { Intent starter = new Intent(mActivity, TvShowActivity.class); starter.putExtra("playBean", item.getLink_object()); getActivity().startActivity(starter); getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_out); }); } }); } private class MultipleItemAdapter extends BaseMultiItemQuickAdapter<FirstBean.RoomBean.ListBean, BaseViewHolder> { public MultipleItemAdapter(List<FirstBean.RoomBean.ListBean> data) { super(data); addItemType(FirstBean.RoomBean.ListBean.OTHER, R.layout.item_tv_other); addItemType(FirstBean.RoomBean.ListBean.OTHER1, R.layout.item_tv_other1); } @Override protected void convert(BaseViewHolder helper, FirstBean.RoomBean.ListBean item) { ViewGroup.LayoutParams lp = helper.getView(R.id.thumnails).getLayoutParams(); lp.width = (App.SCREEN_WIDTH - DisplayUtils.dp2px(mContext, 12)) / 2; switch (helper.getItemViewType()) { case FirstBean.RoomBean.ListBean.OTHER: lp.height = DisplayUtils.dp2px(mContext, 120); Glide.with(mContext).load(item.getThumb()).crossFade().transform(new GlideTransform(mContext, 5)).into((ImageView) helper.getView(R.id.thumnails)); Glide.with(mContext).load(item.getAvatar()).crossFade().centerCrop().transform(new GlideCircleTransform(mContext)).into((ImageView) helper.getView(R.id.ic_head)); helper.setText(R.id.title, item.getTitle()) .setText(R.id.tv_viewnum, item.getView()) .setText(R.id.nickName, item.getNick()) .setOnClickListener(R.id.ll_click, v -> { Intent starter = new Intent(mActivity, TvShowActivity.class); starter.putExtra("playBean", item); getActivity().startActivity(starter); getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_out); }); break; case FirstBean.RoomBean.ListBean.OTHER1: lp.height = lp.width; Glide.with(mContext).load(item.getThumb()).crossFade().centerCrop().transform(new GlideTransform(mContext, 5)).into((ImageView) helper.getView(R.id.thumnails)); helper.setText(R.id.tv_viewnum, item.getView()) .setText(R.id.intro, item.getTitle()) .setOnClickListener(R.id.ll_click, v -> { Intent starter = new Intent(mActivity, TvShowFullActivity.class); starter.putExtra("playBean", item); getActivity().startActivity(starter); getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_out); }); break; } } } }