package com.example.jingbin.cloudreader.adapter; import android.content.DialogInterface; import android.support.v7.app.AlertDialog; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.bumptech.glide.Glide; import com.example.jingbin.cloudreader.R; import com.example.jingbin.cloudreader.base.baseadapter.BaseRecyclerViewAdapter; import com.example.jingbin.cloudreader.base.baseadapter.BaseRecyclerViewHolder; import com.example.jingbin.cloudreader.bean.AndroidBean; import com.example.jingbin.cloudreader.databinding.ItemEverydayOneBinding; import com.example.jingbin.cloudreader.databinding.ItemEverydayThreeBinding; import com.example.jingbin.cloudreader.databinding.ItemEverydayTitleBinding; import com.example.jingbin.cloudreader.databinding.ItemEverydayTwoBinding; import com.example.jingbin.cloudreader.http.rx.RxBus; import com.example.jingbin.cloudreader.http.rx.RxCodeConstants; import com.example.jingbin.cloudreader.utils.CommonUtils; import com.example.jingbin.cloudreader.utils.ImgLoadUtil; import com.example.jingbin.cloudreader.utils.PerfectClickListener; import com.example.jingbin.cloudreader.view.webview.WebViewActivity; import java.util.List; /** * Created by jingbin on 2016/12/27. */ public class EverydayAdapter extends BaseRecyclerViewAdapter<List<AndroidBean>> { private static final int TYPE_TITLE = 1; // title private static final int TYPE_ONE = 2;// 一张图 private static final int TYPE_TWO = 3;// 二张图 private static final int TYPE_THREE = 4;// 三张图 @Override public int getItemViewType(int position) { if (!TextUtils.isEmpty(getData().get(position).get(0).getType_title())) { return TYPE_TITLE; } else if (getData().get(position).size() == 1) { return TYPE_ONE; } else if (getData().get(position).size() == 2) { return TYPE_TWO; } else if (getData().get(position).size() == 3) { return TYPE_THREE; } return super.getItemViewType(position); } @Override public BaseRecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch (viewType) { case TYPE_TITLE: return new TitleHolder(parent, R.layout.item_everyday_title); case TYPE_ONE: return new OneHolder(parent, R.layout.item_everyday_one); case TYPE_TWO: return new TwoHolder(parent, R.layout.item_everyday_two); default: return new ThreeHolder(parent, R.layout.item_everyday_three); } } private class TitleHolder extends BaseRecyclerViewHolder<List<AndroidBean>, ItemEverydayTitleBinding> { TitleHolder(ViewGroup parent, int title) { super(parent, title); } @Override public void onBindViewHolder(List<AndroidBean> object, final int position) { int index = 0; String title = object.get(0).getType_title(); binding.tvTitleType.setText(title); if ("Android".equals(title)) { binding.ivTitleType.setImageDrawable(CommonUtils.getDrawable(R.drawable.home_title_android)); index = 0; } else if ("福利".equals(title)) { binding.ivTitleType.setImageDrawable(CommonUtils.getDrawable(R.drawable.home_title_meizi)); index = 1; } else if ("IOS".equals(title)) { binding.ivTitleType.setImageDrawable(CommonUtils.getDrawable(R.drawable.home_title_ios)); index = 2; } else if ("休息视频".equals(title)) { binding.ivTitleType.setImageDrawable(CommonUtils.getDrawable(R.drawable.home_title_movie)); index = 2; } else if ("拓展资源".equals(title)) { binding.ivTitleType.setImageDrawable(CommonUtils.getDrawable(R.drawable.home_title_source)); index = 2; } else if ("瞎推荐".equals(title)) { binding.ivTitleType.setImageDrawable(CommonUtils.getDrawable(R.drawable.home_title_xia)); index = 2; } else if ("前端".equals(title)) { binding.ivTitleType.setImageDrawable(CommonUtils.getDrawable(R.drawable.home_title_qian)); index = 2; } else if ("App".equals(title)) { binding.ivTitleType.setImageDrawable(CommonUtils.getDrawable(R.drawable.home_title_app)); index = 2; } if (position != 0) { binding.viewLine.setVisibility(View.VISIBLE); } else { binding.viewLine.setVisibility(View.GONE); } final int finalIndex = index; binding.llTitleMore.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { RxBus.getDefault().post(RxCodeConstants.JUMP_TYPE, finalIndex); } }); } } private class OneHolder extends BaseRecyclerViewHolder<List<AndroidBean>, ItemEverydayOneBinding> { OneHolder(ViewGroup parent, int title) { super(parent, title); } @Override public void onBindViewHolder(final List<AndroidBean> object, int position) { if ("福利".equals(object.get(0).getType())) { binding.tvOnePhotoTitle.setVisibility(View.GONE); binding.ivOnePhoto.setScaleType(ImageView.ScaleType.CENTER_CROP); // ImgLoadUtil.displayEspImage(object.get(0).getUrl(), binding.ivOnePhoto, 1); Glide.with(binding.ivOnePhoto.getContext()) .load(object.get(0).getUrl()) .crossFade(1500) .placeholder(R.drawable.img_two_bi_one) .error(R.drawable.img_two_bi_one) .into(binding.ivOnePhoto); } else { binding.tvOnePhotoTitle.setVisibility(View.VISIBLE); setDes(object, 0, binding.tvOnePhotoTitle); displayRandomImg(1, 0, binding.ivOnePhoto, object); } setOnClick(binding.llOnePhoto, object.get(0)); } } private class TwoHolder extends BaseRecyclerViewHolder<List<AndroidBean>, ItemEverydayTwoBinding> { TwoHolder(ViewGroup parent, int title) { super(parent, title); } @Override public void onBindViewHolder(List<AndroidBean> object, int position) { displayRandomImg(2, 0, binding.ivTwoOneOne, object); displayRandomImg(2, 1, binding.ivTwoOneTwo, object); setDes(object, 0, binding.tvTwoOneOneTitle); setDes(object, 1, binding.tvTwoOneTwoTitle); setOnClick(binding.llTwoOneOne, object.get(0)); setOnClick(binding.llTwoOneTwo, object.get(1)); } } private class ThreeHolder extends BaseRecyclerViewHolder<List<AndroidBean>, ItemEverydayThreeBinding> { ThreeHolder(ViewGroup parent, int title) { super(parent, title); } @Override public void onBindViewHolder(List<AndroidBean> object, int position) { displayRandomImg(3, 0, binding.ivThreeOneOne, object); displayRandomImg(3, 1, binding.ivThreeOneTwo, object); displayRandomImg(3, 2, binding.ivThreeOneThree, object); setOnClick(binding.llThreeOneOne, object.get(0)); setOnClick(binding.llThreeOneTwo, object.get(1)); setOnClick(binding.llThreeOneThree, object.get(2)); setDes(object, 0, binding.tvThreeOneOneTitle); setDes(object, 1, binding.tvThreeOneTwoTitle); setDes(object, 2, binding.tvThreeOneThreeTitle); } } private void setDes(List<AndroidBean> object, int position, TextView textView) { textView.setText(object.get(position).getDesc()); } private void displayRandomImg(int imgNumber, int position, ImageView imageView, List<AndroidBean> object) { // DebugUtil.error("-----Image_url: "+object.get(position).getImage_url()); ImgLoadUtil.displayRandom(imgNumber, object.get(position).getImage_url(), imageView); } private void setOnClick(final LinearLayout linearLayout, final AndroidBean bean) { linearLayout.setOnClickListener(new PerfectClickListener() { @Override protected void onNoDoubleClick(View v) { WebViewActivity.loadUrl(v.getContext(), bean.getUrl(), "加载中..."); } }); linearLayout.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext()); View view = View.inflate(v.getContext(), R.layout.title_douban_top, null); TextView titleTop = (TextView) view.findViewById(R.id.title_top); titleTop.setTextSize(14); String title = TextUtils.isEmpty(bean.getType()) ? bean.getDesc() : bean.getType() + ": " + bean.getDesc(); titleTop.setText(title); builder.setCustomTitle(view); builder.setPositiveButton("查看详情", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { WebViewActivity.loadUrl(linearLayout.getContext(), bean.getUrl(), "加载中..."); } }); builder.show(); return false; } }); } }