admin
2020-10-10 8039a1b2fbfa3471b6f726d3e839d7867c81a84f
BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendNewAdapter.java
@@ -1,18 +1,13 @@
package com.weikou.beibeivideo.ui.recommend;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -20,289 +15,261 @@
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.RequestOptions;
import com.bytedance.sdk.openadsdk.TTAdDislike;
import com.lcjian.library.util.SystemCommon;
import com.lcjian.library.util.common.DimenUtils;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.lcjian.library.util.common.StringUtils;
import com.lcjian.library.widget.RatioLayout;
import com.viewpagerindicator.LinePageIndicator;
import com.weikou.beibeivideo.entity.HomeAd;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.entity.HomeType;
import com.weikou.beibeivideo.entity.HomeVideo;
import com.weikou.beibeivideo.entity.VideoInfo;
import com.weikou.beibeivideo.entity.VideoType;
import com.weikou.beibeivideo.entity.ad.ExpressAdContainer;
import com.weikou.beibeivideo.test.MyViewPager;
import com.weikou.beibeivideo.entity.recommend.HomeTypeContent;
import com.weikou.beibeivideo.entity.recommend.RecommendContent;
import com.weikou.beibeivideo.entity.recommend.holder.RecommendVideoAdHolder;
import com.weikou.beibeivideo.entity.video.holder.HeaderViewHolder;
import com.weikou.beibeivideo.entity.video.holder.VideoHolder;
import com.weikou.beibeivideo.ui.common.VideosLiveActivity;
import com.weikou.beibeivideo.ui.discover.StarsActivity;
import com.weikou.beibeivideo.ui.media.VideoDetailActivity;
import com.yeshi.buwanshequ.R;
import com.weikou.beibeivideo.ui.video.VideoColumn2Adapter;
import com.weikou.beibeivideo.util.VideoUtil;
import com.weikou.beibeivideo.util.ad.AdUtil;
import com.weikou.beibeivideo.util.ad.ExpressAdManager;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeSet;
public class RecommendNewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    //广告Container
    private ExpressAdContainer firstAd;
    private List<ExpressAdContainer> bigImgAdList;//大图广告列表
    private final static String TAG = "RecommendNewAdapter";
    private Activity mContext;
    private List<HomeType> homeTypeList;
    private List<HomeAd> homeAdList;
    private final static int TYPE_HOME_BANNER = 1;
    private final static int TYPE_HOME_TYPE = 2;
    private final static int TYPE_HOME_AD = 3;
    List<Object> contentList;
    private LayoutInflater inflater;
    private TreeSet mADSet = new TreeSet();
    public RecommendNewAdapter(Activity context, List<HomeType> homeTypeList, List<HomeAd> homeAdList) {
    public final int TYPE_HEADER = 10001;
    private View headerView;
    public void setHeaderView(View view) {
        this.headerView = view;
    }
    public RecommendNewAdapter(Activity context, List contentList) {
        this.mContext = context;
        this.homeTypeList = homeTypeList;
        this.homeAdList = homeAdList;
        this.contentList = contentList;
        inflater = LayoutInflater.from(mContext);
    }
    public void setBigImgAdList(List<ExpressAdContainer> bigImgAdList) {
        this.bigImgAdList = bigImgAdList;
    /**
     * 添加数据项
     *
     * @param item
     */
    public void addNormalItem(HomeType item) {
        contentList.add(item);
    }
    public void setFirstAd(ExpressAdContainer firstAd) {
        this.firstAd = firstAd;
    /**
     * 获取广告数量
     *
     * @return
     */
    public int getAdCount() {
        return mADSet.size();
    }
    /**
     * 添加广告到指定位置
     *
     * @param ad
     * @param position
     */
    public void addAdToPosition(ExpressAdContainer ad, int position) {
        if (position >= 0 && position < contentList.size()) {
            contentList.add(position, ad);
            mADSet.add(position);
        }
        Log.i(TAG, "addAdToPosition");
    }
    public void addAd(ExpressAdContainer ad) {
        contentList.add(ad);
        Log.i(TAG, "addAd");
    }
    public void removeAd(ExpressAdContainer ad) {
        if (mADSet != null)
            for (Iterator<Integer> its = mADSet.iterator(); its.hasNext(); ) {
                int p = its.next();
                if (p < contentList.size() && contentList.get(p) == ad) {
                    mADSet.remove(p);
                    contentList.remove(p);
                    notifyDataSetChanged();
                }
            }
    }
    public void removeAllAd() {
        if (contentList != null)
            for (int i = 0; i < contentList.size(); i++) {
                if (contentList.get(i) instanceof ExpressAdContainer) {
                    contentList.remove(i);
                    i--;
                }
            }
        mADSet.clear();
    }
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        switch (viewType) {
            case TYPE_HOME_BANNER:
                return new HomeBannerHolder(inflater.inflate(R.layout.recommend_top, parent, false));
            case TYPE_HOME_TYPE:
            case TYPE_HEADER:
                return new HeaderViewHolder(headerView);
            case RecommendContent.TYPE_HOMETYPE:
                return new HomeTypeHolder(inflater.inflate(R.layout.item_recommend_home_type, null, false), new RecyclerView.RecycledViewPool());
            case TYPE_HOME_AD:
            case RecommendContent.TYPE_AD:
                return new AdHolder(inflater.inflate(R.layout.item_recommend_home_type_ad, parent, false));
        }
        return null;
    }
    private int getHomeTypeByAbsolutePosition(int p) {
        int position = p;
        if (p == 0)
            position = p;
        else if (p == 1) {
            if (hasBanner())
                position--;
        } else {
            if (hasBanner())
                position--;
            if (hasAd())
                position--;
        }
        return position;
    }
    private Runnable autoPlayBanner = null;
    private synchronized void autoPlayBanner(final ViewPager viewPager) {
        if (autoPlayBanner == null) {
            autoPlayBanner = new Runnable() {
                @Override
                public void run() {
                    if (homeAdList == null || homeAdList.size() <= 0)
                        return;
                    if (viewPager.getCurrentItem() >= homeAdList.size() - 1) {
                        viewPager.setCurrentItem(0, true);
                    } else {
                        viewPager.setCurrentItem(viewPager.getCurrentItem() + 1, true);
                    }
                    autoPlayBanner(viewPager);
                }
            };
            viewPager.postDelayed(autoPlayBanner, 3000);
        } else {
            viewPager.removeCallbacks(autoPlayBanner);
            viewPager.postDelayed(autoPlayBanner, 3000);
        }
    }
    RecyclerView.ItemDecoration itemDecoration = new RecyclerView.ItemDecoration() {
        @Override
        public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
            super.onDraw(c, parent, state);
        }
        @Override
        public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
            super.onDrawOver(c, parent, state);
        }
        @Override
        public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
            super.getItemOffsets(outRect, view, parent, state);
            int index = parent.getChildAdapterPosition(view);
            int total = parent.getAdapter().getItemCount();
            if (index % 2 == 0) {
                outRect.left = 0; //第一列左边贴边
                outRect.right = DimenUtils.dipToPixels(5, view.getContext());
            } else {
                outRect.right = 0; //第一列左边贴边
                outRect.left = DimenUtils.dipToPixels(5, view.getContext());
            }
            if (index - 1 > 0) {
                outRect.top = DimenUtils.dipToPixels(5, view.getContext());
            } else
                outRect.top = 0;
            if (total % 2 == 0) {
                if (total > 2 && (index < total - 2))
                    outRect.bottom = DimenUtils.dipToPixels(5, view.getContext());
                else
                    outRect.bottom = 0;
            } else {
                if (total > 2 && (index < total - 1))
                    outRect.bottom = DimenUtils.dipToPixels(5, view.getContext());
                else
                    outRect.bottom = 0;
            }
//                    if (parent.getChildAdapterPosition(view) >= 3) {
//                        outRect.top = SizeUtils.dp2px(mContext, 10);
//                    } else {
//                        outRect.top = 0;
//                    }
        }
    };
    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) {
        if (viewHolder instanceof HomeBannerHolder) {
            int width = (int) SystemCommon.getScreenWidth(mContext);
            HomeBannerHolder holder = (HomeBannerHolder) viewHolder;
            holder.vp_recommend.setAdapter(new RecommendTopAdapter(homeAdList, mContext, false));
            holder.indicator_recommend.setScreenWidth(width);
            holder.indicator_recommend.setSelectedColor(holder.vp_recommend.getContext().getResources()
                    .getColor(R.color.yellow));
            holder.indicator_recommend.setUnselectedColor(0xbbADA9A7);
            holder.indicator_recommend.setViewPager(holder.vp_recommend);
            autoPlayBanner(holder.vp_recommend);
        } else if (viewHolder instanceof HomeTypeHolder) {
            int position = getHomeTypeByAbsolutePosition(i);
            if (position >= homeTypeList.size())
        if (viewHolder instanceof HeaderViewHolder)
            return;
        int p = i;
        if (headerView != null)
            p--;
        if (viewHolder instanceof HomeTypeHolder) {
            final HomeType homeType = (HomeType) contentList.get(p);
            final HomeTypeHolder holder = (HomeTypeHolder) viewHolder;
            if (homeType == null) {
                holder.view.setVisibility(View.GONE);
                return;
            HomeType homeType = homeTypeList.get(position);
            HomeTypeHolder holder = (HomeTypeHolder) viewHolder;
            if (holder.rv_content.getLayoutManager() == null || !(holder.rv_content.getLayoutManager() instanceof GridLayoutManager)) {
                RecyclerView.LayoutManager layoutManager = new GridLayoutManager(mContext, 4);
                holder.rv_content.setLayoutManager(layoutManager);
            }
            //统一分为2列
            ((GridLayoutManager) holder.rv_content.getLayoutManager()).setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
                @Override
                public int getSpanSize(int position) {
                    return 2;
            if (homeType.getVideoInfoList() == null) {
                homeType.setVideoInfoList(new ArrayList<VideoInfo>());
            }
            homeType.getVideoInfoList().clear();
            if (homeType.getHomeVideoList() != null)
                for (HomeVideo hv : homeType.getHomeVideoList()) {
                    homeType.getVideoInfoList().add(hv.getVideo());
                }
            });
            HomeTypeContentAdapter adapter = new HomeTypeContentAdapter(mContext, homeType.getHomeVideoList(), position == 0 ? firstAd : null, 8);
            holder.rv_content.setAdapter(adapter);
            holder.view.setVisibility(View.VISIBLE);
            //设置间距
            holder.rv_content.removeItemDecoration(itemDecoration);
            holder.rv_content.addItemDecoration(itemDecoration);
            boolean isFirst = false;
            for (Object content1 : contentList)
                if (content1 instanceof HomeType) {
                    if (content1 == homeType) {
                        isFirst = true;
                        break;
                    } else {
                        isFirst = false;
                        break;
                    }
                }
            VideoColumn2Adapter adapter = null;
            if (isFirst) {//第一排为小视频
                adapter = new VideoColumn2Adapter(mContext, mContext, homeType.getVideoInfoList(), true, Integer.MAX_VALUE, null, new ExpressAdManager.IAdShowListener() {
                    @Override
                    public void show() {
                        holder.rv_content.scrollToPosition(0);
                    }
                });
                adapter.initRecyclerViewDisplayWidthRow1(holder.rv_content);
            } else {
                adapter = new VideoColumn2Adapter(mContext, mContext, homeType.getVideoInfoList(), false, homeType.getColumns(), null);
                if (homeType.getColumns() == 2)
                    adapter.initRecyclerViewDisplayWidthColumn2(holder.rv_content);
                else if (homeType.getColumns() == 3)
                    adapter.initRecyclerViewDisplayWidthColumn3(holder.rv_content);
                else
                    adapter.initRecyclerViewDisplayWidthRow1(holder.rv_content);
            }
            if (homeType.getVideoInfoList() != null && homeType.getVideoInfoList().size() > 0)
                holder.rv_content.setAdapter(adapter);
            Glide.with(mContext).load(homeType.getIcon())
                    .diskCacheStrategy(DiskCacheStrategy.SOURCE).placeholder(R.drawable.ic_stars_collection).into(holder.tv_category_icon);
                    .apply(new RequestOptions().placeholder(R.drawable.ic_stars_collection)).into(holder.tv_category_icon);
            holder.tv_category_name.setText(homeType.getName());
            if (Boolean.parseBoolean(homeType.getHasMore())) {
                holder.tv_more.setVisibility(View.VISIBLE);
            } else {
                holder.tv_more.setVisibility(View.GONE);
            }
        } else if (viewHolder instanceof AdHolder) {
            AdHolder holder = (AdHolder) viewHolder;
            holder.fl_ad.removeAllViews();
            ExpressAdContainer ad = null;
            if (i <= 2) {//加载第一个广告
                if (bigImgAdList != null && bigImgAdList.size() > 0) {
                    ad = bigImgAdList.get(0);
                }
            } else {//加载第二个广告
                if (bigImgAdList != null && bigImgAdList.size() > 1) {
                    ad = bigImgAdList.get(1);
                }
            }
            if (ad != null) {
                holder.view.setVisibility(View.VISIBLE);
                if (ad.getGdt() != null) {
                    ViewParent parent= ad.getGdt().getParent();
                    if(parent!=null) {
                        FrameLayout parentContainer = (FrameLayout) parent;
                        parentContainer.removeAllViews();
                    }
                    ad.getGdt().render();
                    holder.fl_ad.addView(ad.getGdt());
                } else if (ad.getCsj() != null) {
                    ViewParent parent= ad.getCsj().getExpressAdView().getParent();
                    if(parent!=null) {
                        FrameLayout parentContainer = (FrameLayout) parent;
                        parentContainer.removeAllViews();
                    }
                    ad.getCsj().render();
                    final ExpressAdContainer adTemp = ad;
                    ad.getCsj().setDislikeCallback(mContext, new TTAdDislike.DislikeInteractionCallback() {
            holder.tv_more
                    .setOnClickListener(new OnClickListener() {
                        @Override
                        public void onSelected(int i, String s) {
                            bigImgAdList.remove(adTemp);
                            notifyDataSetChanged();
                        }
                        @Override
                        public void onCancel() {
                        }
                        @Override
                        public void onRefuse() {
                        public void onClick(View v) {
                            Intent intent = null;
                            if (homeType.getId().equalsIgnoreCase("1111")) {
                                intent = new Intent(v.getContext(),
                                        VideosLiveActivity.class);
                                intent.putExtra("home_type", homeType.getId());
                                intent.putExtra("title", homeType.getName());
                                v.getContext().startActivity(intent);
                            } else if (homeType.getId().equalsIgnoreCase("9998")) {
                                intent = new Intent(v.getContext(), StarsActivity.class);
                                v.getContext().startActivity(intent);
                            } else {
                                Gson gson = new GsonBuilder()
                                        .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
                                        .create();
                                VideoType type = gson.fromJson(homeType.getParams().replace(
                                        "\\" + "\"", "\""), VideoType.class);
                                try {
                                    intent = new Intent(v.getContext(), Class.forName(homeType.getActivity()));
                                    intent.putExtra("video_type", type);
                                    intent.putExtra("type_name", type.getName());
                                    intent.putExtra("isPush", false);
                                    v.getContext().startActivity(intent);
                                } catch (ClassNotFoundException e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    });
                    holder.fl_ad.addView(ad.getCsj().getExpressAdView());
                }
            }else{
                holder.view.setVisibility(View.GONE);
        } else if (viewHolder instanceof AdHolder) {
            final AdHolder holder = (AdHolder) viewHolder;
            holder.fl_ad.removeAllViews();
            final ExpressAdContainer ad = (ExpressAdContainer) contentList.get(p);
            if (ad != null) {
                holder.ll_container.setVisibility(View.VISIBLE);
                ExpressAdManager.fillAd(ad, holder.fl_ad);
            } else {
                holder.ll_container.setVisibility(View.GONE);
            }
        }
    }
    @Override
    public int getItemCount() {
        int count = 0;
        if (homeTypeList != null && homeTypeList.size() > 0)
            count += homeTypeList.size();
        if (homeAdList != null && homeAdList.size() > 0)
            count += 1;
        if (bigImgAdList != null && bigImgAdList.size() > 0)
            count += bigImgAdList.size();
        int count = this.contentList.size();
        if (headerView != null)
            count++;
        return count;
    }
    private boolean hasBanner() {
        return homeAdList != null && homeAdList.size() > 0;
    }
    private boolean hasHomeType() {
        return homeTypeList != null && homeTypeList.size() > 0;
    }
    private boolean hasAd() {
        return bigImgAdList != null && bigImgAdList.size() > 0;
    }
    /**
@@ -315,51 +282,16 @@
    @Override
    public int getItemViewType(int position) {
        if (position == 0) {
            if (hasBanner())
                return TYPE_HOME_BANNER;
            else
                return TYPE_HOME_TYPE;
        } else if (position == getItemCount() - 1) {//最后一栏
            if (hasAd())
                return TYPE_HOME_AD;
            else
                return TYPE_HOME_TYPE;
        } else {//中间栏
            if (position == 1) {
                if (hasBanner()) {
                    return TYPE_HOME_TYPE;
                } else {
                    if (hasAd())
                        return TYPE_HOME_AD;
                    else
                        return TYPE_HOME_TYPE;
                }
            } else if (position == 2) {
                if (hasBanner() && hasHomeType() && hasAd())
                    return TYPE_HOME_AD;
                else
                    return TYPE_HOME_TYPE;
            } else {
                return TYPE_HOME_TYPE;
            }
            if (headerView != null)
                return TYPE_HEADER;
        }
    }
    class HomeBannerHolder extends RecyclerView.ViewHolder {
        MyViewPager vp_recommend;
        LinearLayout ll_ad_containner;
        RatioLayout rl_recommend_top;
        LinePageIndicator indicator_recommend;
        FrameLayout fl_ad;
        public HomeBannerHolder(View view) {
            super(view);
            vp_recommend = view.findViewById(R.id.vp_recommend);
            ll_ad_containner = view.findViewById(R.id.ll_ad_containner);
            rl_recommend_top = view.findViewById(R.id.rl_recommend_top);
            indicator_recommend = view.findViewById(R.id.indicator_recommend);
            fl_ad = view.findViewById(R.id.fl_ad);
        }
        if (headerView != null)
            position--;
        if (contentList.get(position) instanceof HomeType)
            return RecommendContent.TYPE_HOMETYPE;
        else
            return RecommendContent.TYPE_AD;
    }
    class HomeTypeHolder extends RecyclerView.ViewHolder {
@@ -368,9 +300,11 @@
        TextView tv_more;
        RecyclerView rv_content;
        RelativeLayout rl_title_item;
        View view;
        public HomeTypeHolder(View convertView, RecyclerView.RecycledViewPool recycledViewPool) {
            super(convertView);
            this.view = convertView;
            rl_title_item = convertView
                    .findViewById(R.id.rl_title_item);
            tv_category_name = convertView
@@ -389,12 +323,15 @@
    class AdHolder extends RecyclerView.ViewHolder {
        FrameLayout fl_ad;
        View view;
        RelativeLayout rl_title_item;
        LinearLayout ll_container;
        public AdHolder(View view) {
            super(view);
            this.view=view;
            ll_container = view.findViewById(R.id.ll_container);
            fl_ad = view.findViewById(R.id.fl_ad);
            rl_title_item = view.findViewById(R.id.rl_title_item);
        }
    }
@@ -402,78 +339,93 @@
    public class HomeTypeContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
        private Activity mContext;
        private List<ExpressAdContainer> adList;
        private List<HomeVideo> homeVideoList;
        private List<HomeTypeContent> contentList;
        private int maxItemNum;
        private final int TYPE_CONTENT = 1;
        private final int TYPE_AD = 0;
        private ExpressAdManager expressAdManager;
        private boolean needAd;
        public HomeTypeContentAdapter(Activity context, List<HomeVideo> homeVideoList, ExpressAdContainer ad, int maxItemNum) {
        public HomeTypeContentAdapter(final Activity context, List<HomeVideo> videoList, boolean needAd, int maxItemNum) {
            this.needAd = needAd;
            this.mContext = context;
            this.homeVideoList = homeVideoList;
            if (adList == null)
                adList = new ArrayList<>();
            adList.clear();
            if (ad != null)
                adList.add(ad);
            if (contentList == null)
                this.contentList = new ArrayList<>();
            this.contentList.clear();
            for (HomeVideo hv : videoList) {
                this.contentList.add(new HomeTypeContent(HomeTypeContent.TYPE_CONTENT, hv));
            }
            if (needAd) {
                if (expressAdManager == null)
                    expressAdManager = new ExpressAdManager(AdUtil.getSmallExpressAdType(), mContext);
                expressAdManager.loadRecommendSmallAd(new ExpressAdManager.IAdLoadListener() {
                    @Override
                    public void onSuccess(List<ExpressAdContainer> adList) {
                        if (adList != null && adList.size() > 0) {
                            if (contentList != null && contentList.size() > 0 && contentList.get(0).getType() == HomeTypeContent.TYPE_CONTENT) {
                                contentList.add(0, new HomeTypeContent(HomeTypeContent.TYPE_AD, adList.get(0)));
                                notifyDataSetChanged();
                            }
                        }
                    }
                });
            }
            this.maxItemNum = maxItemNum;
        }
        @Override
        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int type) {
            switch (type) {
                case TYPE_AD:
                    return new HomeTypeAdHolder(inflater.inflate(R.layout.item_ad_list_small, parent, false));
                case TYPE_CONTENT:
                    return new HomeTypeContentHolder(inflater.inflate(R.layout.item_movie, parent, false));
                case HomeTypeContent.TYPE_AD:
                    return new RecommendVideoAdHolder(inflater.inflate(R.layout.item_ad_list_small, parent, false));
                case HomeTypeContent.TYPE_CONTENT:
                    return new VideoHolder(inflater.inflate(R.layout.item_movie, parent, false));
            }
            return null;
        }
        @Override
        public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int p) {
            if (viewHolder instanceof HomeTypeContentHolder) {
                HomeTypeContentHolder holder = (HomeTypeContentHolder) viewHolder;
                int position = p;
                if (adList != null && adList.size() > 0) {
                    position -= 1;
                }
                if (position >= homeVideoList.size())
                    return;
                final HomeVideo info = homeVideoList.get(position);
            final HomeTypeContent content = contentList.get(p);
            if (viewHolder instanceof VideoHolder) {
                VideoHolder holder = (VideoHolder) viewHolder;
                final HomeVideo info = content.getHomeVideo();
                //设置内容
                holder.ll_video_show.setVisibility(View.VISIBLE);
                if (StringUtils.isEmpty(info.getPicture())) {
                    Glide.with(mContext).load(info.getVideo().getPicture())
                            .placeholder(R.drawable.ic_default_cover)
                            .error(R.drawable.ic_default_cover)
                            .centerCrop().crossFade()
                            .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                            .apply(new RequestOptions().centerCrop().placeholder(R.drawable.ic_default_cover).error(R.drawable.ic_default_cover))
                            .into(holder.iv_movie_cover);
                } else {
                    try {
                        Glide.with(mContext).load(info.getPicture())
                                .placeholder(R.drawable.ic_default_cover)
                                .error(R.drawable.ic_default_cover)
                                .centerCrop().crossFade()
                                .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                                .apply(new RequestOptions().centerCrop().placeholder(R.drawable.ic_default_cover).error(R.drawable.ic_default_cover))
                                .into(holder.iv_movie_cover);
                    } catch (IllegalArgumentException e) {
                        e.printStackTrace();
                    }
                }
                holder.tv_movie_title.setText(info.getVideo().getName());
                holder.tv_movie_rating.setText(StringUtils.isBlank(info
                String tag = StringUtils.isBlank(info
                        .getVideo().getTag()) ? "" : info.getVideo()
                        .getTag());
                        .getTag();
                holder.tv_movie_rating.setText(tag);
                if (StringUtils.isBlank(tag)) {
                    holder.tv_movie_rating.setVisibility(View.GONE);
                } else {
                    holder.tv_movie_rating.setVisibility(View.VISIBLE);
                }
                DecimalFormat df = new DecimalFormat("###.0");
                holder.tv_movie_play_num.setText(StringUtils.isBlank(info
                        .getVideo().getWatchCount()) ? "0" : (Integer.parseInt(info
                        .getVideo().getWatchCount())) / 10000 > 0 ? df.format(Integer.parseInt(info
                        .getVideo().getWatchCount()) / 10000f) + "万" : info
                        .getVideo().getWatchCount());
                holder.tv_movie_play_num.setText(VideoUtil.getWatchCountShortName(info.getVideo().getWatchCount()));
                holder.tv_movie_play_num.setVisibility(View.GONE);
                holder.tv_movie_comment_num.setText(StringUtils.isBlank(info.getVideo().getCommentCount()) ? "0" : info.getVideo().getCommentCount());
                holder.ll_video_show
                        .setOnClickListener(new OnClickListener() {
@@ -483,60 +435,80 @@
                                myClick(info.getVideo(), v);
                            }
                        });
            } else if (viewHolder instanceof HomeTypeAdHolder) {//广告
                HomeTypeAdHolder holder = (HomeTypeAdHolder) viewHolder;
            } else if (viewHolder instanceof RecommendVideoAdHolder) {//广告
                final RecommendVideoAdHolder holder = (RecommendVideoAdHolder) viewHolder;
                holder.fl_container.removeAllViews();
                final ExpressAdContainer ad = adList.get(0);
                if (ad.getGdt() != null) {
                    ViewParent parent= ad.getGdt().getParent();
                    if(parent!=null) {
                        FrameLayout parentContainer = (FrameLayout) parent;
                        parentContainer.removeAllViews();
                final ExpressAdContainer ad = content.getAd();
                if (ad == null) {//广告为空
                    holder.view.setVisibility(View.GONE);
                } else {
                    holder.view.setVisibility(View.VISIBLE);
                    if (ad.getGdt() != null) {
                        holder.rl_container.setRatio(0.88f);
                        holder.tv_movie_title.setVisibility(View.GONE);
//                        ad.getGdt().setAdEventListener(new AdEventListener() {
//                            @Override
//                            public void onClick() {
//
//                            }
//
//                            @Override
//                            public void onExposed() {
//
//                            }
//
//                            @Override
//                            public void onRenderSuccess() {
//                                holder.fl_container.addView(ad.getGdt().getAdView());
//                            }
//
//                            @Override
//                            public void onRenderFail() {
//
//                            }
//
//                            @Override
//                            public void onAdClosed() {
//                                ad.getGdt().destroy();
//                                contentList.remove(content);
//                                notifyDataSetChanged();
//                            }
//                        });
                        ad.getGdt().render();
                        holder.fl_container.addView(ad.getGdt());
                        holder.tv_movie_play_num.setText("112");
                    } else if (ad.getCsj() != null) {
                        holder.rl_container.setRatio(0.88f);
                        holder.tv_movie_title.setVisibility(View.GONE);
                        ad.getCsj().setDislikeCallback(mContext, new TTAdDislike.DislikeInteractionCallback() {
                            @Override
                            public void onSelected(int i, String s) {
                                contentList.remove(content);
                                notifyDataSetChanged();
                            }
                            @Override
                            public void onCancel() {
                            }
                            @Override
                            public void onRefuse() {
                            }
                        });
                        ad.getCsj().render();
                        holder.fl_container.addView(ad.getCsj().getExpressAdView());
                    }
                    ad.getGdt().render();
                    holder.tv_movie_play_num.setText("112");
                    holder.tv_movie_title.setText(adList.get(0).getGdt().getBoundData().getTitle());
                    holder.fl_container.addView(adList.get(0).getGdt());
                } else if (adList.get(0).getCsj() != null) {
                    Map<String, Object> map= ad.getCsj().getMediaExtraInfo();
                    ViewParent parent= ad.getCsj().getExpressAdView().getParent();
                    if(parent!=null) {
                        FrameLayout parentContainer = (FrameLayout) parent;
                        parentContainer.removeAllViews();
                    }
                    ad.getCsj().render();
                    ad.getCsj().setDislikeCallback(mContext, new TTAdDislike.DislikeInteractionCallback() {
                        @Override
                        public void onSelected(int i, String s) {
                            //点击消失
                            adList.set(0,null);
                            notifyDataSetChanged();
                        }
                        @Override
                        public void onCancel() {
                        }
                        @Override
                        public void onRefuse() {
                        }
                    });
                    holder.fl_container.addView(ad.getCsj().getExpressAdView());
                }
            }
        }
        @Override
        public int getItemCount() {
            int count = 0;
            if (adList != null && adList.size() > 0)
                count++;
            if (homeVideoList != null)
                count += homeVideoList.size();
            int count = contentList.size();
            if (count > maxItemNum)
                return maxItemNum;
            else
@@ -545,10 +517,7 @@
        @Override
        public int getItemViewType(int position) {
            if (position == 0 && adList.size() > 0)
                return TYPE_AD;
            else
                return TYPE_CONTENT;
            return this.contentList.get(position).getType();
        }
@@ -556,45 +525,6 @@
            Intent intent = new Intent(v.getContext(), VideoDetailActivity.class);
            intent.putExtra("video_info", info);
            v.getContext().startActivity(intent);
        }
    }
    class HomeTypeContentHolder extends RecyclerView.ViewHolder {
        LinearLayout ll_video_show;
        ImageView iv_movie_cover;
        ImageView iv_spread;
        TextView tv_movie_rating;
        ImageView iv_ad_logo;
        TextView tv_movie_play_num;
        TextView tv_movie_comment_num;
        TextView tv_movie_title;
        public HomeTypeContentHolder(View view) {
            super(view);
            ll_video_show = view.findViewById(R.id.ll_video_show);
            iv_movie_cover = view.findViewById(R.id.iv_movie_cover);
            iv_spread = view.findViewById(R.id.iv_spread);
            tv_movie_rating = view.findViewById(R.id.tv_movie_rating);
            iv_ad_logo = view.findViewById(R.id.iv_ad_logo);
            tv_movie_play_num = view.findViewById(R.id.tv_movie_play_num);
            tv_movie_comment_num = view.findViewById(R.id.tv_movie_comment_num);
            tv_movie_title = view.findViewById(R.id.tv_movie_title);
        }
    }
    class HomeTypeAdHolder extends RecyclerView.ViewHolder {
        FrameLayout fl_container;
        TextView tv_movie_title;
        TextView tv_movie_play_num;
        public HomeTypeAdHolder(View view) {
            super(view);
            fl_container = view.findViewById(R.id.fl_container);
            tv_movie_title = view.findViewById(R.id.tv_movie_title);
            tv_movie_play_num = view.findViewById(R.id.tv_movie_play_num);
        }
    }