admin
2023-10-08 2c5b6e472c368e80d85b8ea2b461c9ea62981d9b
BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendNewAdapter.java
@@ -2,10 +2,9 @@
import android.app.Activity;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.AbsoluteSizeSpan;
import androidx.recyclerview.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -21,7 +20,6 @@
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.DrawableImageViewTarget;
import com.bytedance.sdk.openadsdk.TTAdDislike;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -32,29 +30,22 @@
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.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.FooterViewHolder;
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.VideoDetailActivity2;
import com.weikou.beibeivideo.ui.video.VideoRecommendAdapter;
import com.weikou.beibeivideo.util.JsonUtil;
import com.weikou.beibeivideo.util.JumpActivityUtil;
import com.weikou.beibeivideo.util.VideoUtil;
import com.weikou.beibeivideo.util.ad.AdUtil;
import com.weikou.beibeivideo.util.ad.ExpressAdManager;
import com.weikou.beibeivideo.util.downutil.StringUtils;
import com.weikou.beibeivideo.util.video.VideoUIUtil;
import org.apache.http.Header;
import org.json.JSONArray;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -72,16 +63,31 @@
    private TreeSet mADSet = new TreeSet();
    public final int TYPE_HEADER = 10001;
    public final int TYPE_FOOTER = 10002;
    private Gson gson = new GsonBuilder().setVersion(1.0).setFieldNamingPolicy(
            FieldNamingPolicy.UPPER_CAMEL_CASE)
            .create();
    private View headerView;
    private View footerView;
    public void setHeaderView(View view) {
        this.headerView = view;
    }
    public void setFooterView(View view) {
        this.footerView = view;
        if (contentList != null) {
            notifyItemChanged(contentList.size() + (headerView != null ? 1 : 0));
        }
    }
    public void removeFooterView() {
        if (footerView != null) {
            notifyItemRemoved(contentList.size() + (headerView != null ? 1 : 0));
            this.footerView = null;
        }
    }
    public RecommendNewAdapter(Activity context, List contentList, int recyclerViewWidth) {
        this.mContext = context;
@@ -156,6 +162,8 @@
        switch (viewType) {
            case TYPE_HEADER:
                return new HeaderViewHolder(headerView);
            case TYPE_FOOTER:
                return new FooterViewHolder(footerView);
            case RecommendContent.TYPE_HOMETYPE:
                return new HomeTypeHolder(inflater.inflate(R.layout.item_recommend_home_type, null, false), new RecyclerView.RecycledViewPool());
            case RecommendContent.TYPE_AD:
@@ -171,6 +179,8 @@
    public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) {
        if (viewHolder instanceof HeaderViewHolder)
            return;
        if (viewHolder instanceof FooterViewHolder)
            return;
        int p = i;
        if (headerView != null)
            p--;
@@ -179,7 +189,9 @@
        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;
@@ -187,6 +199,7 @@
            if (homeType.getVideoInfoList() == null) {
                homeType.setVideoInfoList(new ArrayList<>());
            }
            ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            holder.view.setLayoutParams(params);
@@ -228,7 +241,11 @@
                    homeType.getVideoInfoList().add(homeType.getHomeVideoList().get(j).getVideo());
                }
            holder.view.setVisibility(View.VISIBLE);
            //隐藏
            if (homeType.getVideoInfoList() != null && homeType.getVideoInfoList().size() > 0)
                holder.view.setVisibility(View.VISIBLE);
            else
                holder.view.setVisibility(View.GONE);
            VideoRecommendAdapter adapter = null;
@@ -327,7 +344,7 @@
                                List<HomeVideo> homeList = new ArrayList<>();
                                if (homeArray != null && homeArray.length() > 0) {
                                    for (int j = 0; j < homeArray.length(); j++) {
                                        homeList.add(gson.fromJson(homeArray
                                        homeList.add(JsonUtil.videoGson.fromJson(homeArray
                                                        .optJSONObject(j).toString(),
                                                HomeVideo.class));
                                    }
@@ -401,6 +418,8 @@
        int count = this.contentList.size();
        if (headerView != null)
            count++;
        if (footerView != null)
            count++;
        return count;
    }
@@ -420,10 +439,15 @@
        if (headerView != null)
            position--;
        if (position >= contentList.size())
            return TYPE_FOOTER;
        if (contentList.get(position) instanceof HomeType)
            return RecommendContent.TYPE_HOMETYPE;
        else
            return RecommendContent.TYPE_AD;
    }
    class HomeTypeHolder extends RecyclerView.ViewHolder {