From f6b84428fce7453689956eae44e71b33a69a4665 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 24 十二月 2021 11:32:15 +0800
Subject: [PATCH] UI修改

---
 app/src/com/hanju/video/app/ui/recommend/RecommendNewAdapter.java |  206 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 204 insertions(+), 2 deletions(-)

diff --git a/app/src/com/hanju/video/app/ui/recommend/RecommendNewAdapter.java b/app/src/com/hanju/video/app/ui/recommend/RecommendNewAdapter.java
index c18e746..111cbc8 100644
--- a/app/src/com/hanju/video/app/ui/recommend/RecommendNewAdapter.java
+++ b/app/src/com/hanju/video/app/ui/recommend/RecommendNewAdapter.java
@@ -14,6 +14,11 @@
 
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
+import com.bytedance.sdk.dp.DPSdk;
+import com.bytedance.sdk.dp.DPWidgetVideoCardParams;
+import com.bytedance.sdk.dp.IDPElement;
+import com.bytedance.sdk.dp.IDPVideoCardListener;
+import com.bytedance.sdk.dp.IDPWidgetFactory;
 import com.bytedance.sdk.openadsdk.TTAdDislike;
 import com.google.gson.FieldNamingPolicy;
 import com.google.gson.Gson;
@@ -45,8 +50,10 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.TreeSet;
 
+import androidx.annotation.Nullable;
 import androidx.recyclerview.widget.RecyclerView;
 
 public class RecommendNewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
@@ -68,6 +75,11 @@
     private List<View> headerViewList;
 
     private View footerView;
+
+    //瑙嗛鍗$墖
+    private FrameLayout mVideoCardLayout;
+    private IDPElement mVideoCardElement;
+    private TextView mVideoCardTitle;
 
     public void setHeaderView(List<View> viewList) {
         this.headerViewList = viewList;
@@ -160,6 +172,10 @@
                 return new HomeTypeHolder(inflater.inflate(R.layout.item_recommend_home_type, null, false), new RecyclerView.RecycledViewPool());
             case RecommendContent.TYPE_AD:
                 return new AdHolder(inflater.inflate(R.layout.item_recommend_home_type_ad, parent, false));
+
+            case RecommendContent.TYPE_DY_VIDEOS:
+                loadVideoCard();
+                return new DYVideosHolder(inflater.inflate(R.layout.item_recommend_home_dy_videos, parent, false));
         }
         return null;
     }
@@ -176,6 +192,8 @@
         int p = i;
         if (headerViewList != null)
             p -= headerViewList.size();
+
+        p -= (hasDYVideos() ? 1 : 0);
 
 
         if (viewHolder instanceof HomeTypeHolder) {
@@ -249,7 +267,7 @@
                                 v.getContext().startActivity(intent);
                             } else {
 
-                                VideoType type =  JsonUtil.videoGson.fromJson(homeType.getParams().replace(
+                                VideoType type = JsonUtil.videoGson.fromJson(homeType.getParams().replace(
                                         "\\" + "\"", "\""), VideoType.class);
                                 try {
                                     intent = new Intent(v.getContext(), Class.forName(homeType.getActivity()));
@@ -275,8 +293,13 @@
             } else {
                 holder.ll_container.setVisibility(View.GONE);
             }
+        } else if (viewHolder instanceof DYVideosHolder) {
+            final DYVideosHolder holder = (DYVideosHolder) viewHolder;
+            mVideoCardLayout = holder.fl_container;
+            mVideoCardTitle = holder.tv_title;
         }
     }
+
 
     @Override
     public int getItemCount() {
@@ -285,6 +308,9 @@
             count += headerViewList.size();
         if (footerView != null)
             count += 1;
+
+        count += (hasDYVideos() ? 1 : 0);
+
         return count;
     }
 
@@ -313,14 +339,33 @@
         if (headerViewList != null)
             position -= headerViewList.size();
 
-        if (position >= contentList.size() && footerView != null) {
+        if (position >= contentList.size() + (hasDYVideos() ? 1 : 0) && footerView != null) {
             return TYPE_FOOTER;
         }
+
+        if (hasDYVideos() && position == 0) {
+            return RecommendContent.TYPE_DY_VIDEOS;
+        }
+
+        if (hasDYVideos()) {
+            position--;
+        }
+
 
         if (contentList.get(position) instanceof HomeType)
             return RecommendContent.TYPE_HOMETYPE;
         else
             return RecommendContent.TYPE_AD;
+    }
+
+    private boolean hasDYVideos() {
+
+        return AdUtil.isCanInitCSJ();
+    }
+
+
+    public void refresh() {
+        loadVideoCard();
     }
 
     class HomeTypeHolder extends RecyclerView.ViewHolder {
@@ -358,6 +403,23 @@
             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);
+        }
+
+    }
+
+
+    class DYVideosHolder extends RecyclerView.ViewHolder {
+
+        FrameLayout fl_container;
+        TextView tv_title;
+        View view;
+
+
+        public DYVideosHolder(View view) {
+            super(view);
+            this.view = view;
+            fl_container = view.findViewById(R.id.fl_container);
+            tv_title = view.findViewById(R.id.tv_title);
         }
 
     }
@@ -563,4 +625,144 @@
 
     }
 
+
+    private void loadVideoCard() {
+
+        if (!AdUtil.isCanInitCSJ()) {
+            return;
+        }
+
+        DPWidgetVideoCardParams params = DPWidgetVideoCardParams.obtain()
+                .hideTitle(true)
+                .listener(new IDPVideoCardListener() {
+                    @Override
+                    public void onDPItemClick(Map<String, Object> map) {
+                        log("onDPItemClick map = " + map.toString());
+                    }
+
+                    @Override
+                    public void onDPLSwipeEnter() {
+                        log("onDPLSwipeEnter");
+                    }
+
+                    @Override
+                    public void onDPRequestStart(@Nullable Map<String, Object> map) {
+                        log("onDPRequestStart");
+                    }
+
+                    @Override
+                    public void onDPRequestSuccess(List<Map<String, Object>> list) {
+                        if (list == null) {
+                            return;
+                        }
+
+                        for (int i = 0; i < list.size(); i++) {
+                            log("onDPRequestSuccess i = " + i + ", map = " + list.get(i).toString());
+                        }
+                    }
+
+                    @Override
+                    public void onDPRequestFail(int code, String msg, @Nullable Map<String, Object> map) {
+                        if (map == null) {
+                            log("onDPRequestFail code = " + code + ", msg = " + msg);
+                            return;
+                        }
+                        log("onDPRequestFail  code = " + code + ", msg = " + msg + ", map = " + map.toString());
+                    }
+
+                    @Override
+                    public void onDPClientShow(@Nullable Map<String, Object> map) {
+                        log("onDPClientShow");
+                    }
+
+                    @Override
+                    public void onDPClickAuthorName(Map<String, Object> map) {
+                        log("onDPClickAuthorName map = " + map.toString());
+                    }
+
+                    @Override
+                    public void onDPClickAvatar(Map<String, Object> map) {
+                        log("onDPClickAvatar map = " + map.toString());
+                    }
+
+                    @Override
+                    public void onDPClickComment(Map<String, Object> map) {
+                        log("onDPClickComment map = " + map.toString());
+                    }
+
+                    @Override
+                    public void onDPClickLike(boolean isLike, Map<String, Object> map) {
+                        log("onDPClickLike isLike = " + isLike + ", map = " + map.toString());
+                    }
+
+                    @Override
+                    public void onDPVideoPlay(Map<String, Object> map) {
+                        log("onDPVideoPlay map = " + map.toString());
+                    }
+
+                    @Override
+                    public void onDPVideoPause(Map<String, Object> map) {
+                        log("onDPVideoPause map = " + map.toString());
+                    }
+
+                    @Override
+                    public void onDPVideoContinue(Map<String, Object> map) {
+                        log("onDPVideoContinue map = " + map.toString());
+                    }
+
+                    @Override
+                    public void onDPVideoOver(Map<String, Object> map) {
+                        log("onDPVideoOver map = " + map.toString());
+                    }
+
+                    @Override
+                    public void onDPVideoCompletion(Map<String, Object> map) {
+                        log("onDPVideoCompletion map = " + map.toString());
+                    }
+                })
+                .dislikeListener(mContext, new DPWidgetVideoCardParams.IDislikeListener() {
+                    @Override
+                    public void onSelected(String msg) {
+                        // 濡傛灉 hideTitle 涓� true锛屽彲浠ヤ笉鍋氫换浣曞鐞�
+                        log("dislike msg = " + msg);
+                        if (mVideoCardLayout == null) {
+                            return;
+                        }
+                        mVideoCardLayout.removeAllViews();
+                        mVideoCardTitle.setVisibility(View.GONE);
+                    }
+                });
+
+        DPSdk.factory().loadSmallVideoCard(params, new IDPWidgetFactory.Callback() {
+            @Override
+            public void onError(int code, String msg) {
+                log("onError code = " + code + ", msg = " + msg);
+            }
+
+            @Override
+            public void onSuccess(IDPElement data) {
+
+
+                mVideoCardElement = data;
+                View view = data.getView();
+                if (view == null || mVideoCardLayout == null) {
+                    return;
+                }
+
+                mVideoCardLayout.removeAllViews();
+                ViewGroup viewGroup = (ViewGroup) view.getParent();
+                if (viewGroup != null) {
+                    viewGroup.removeAllViews();
+                }
+                mVideoCardLayout.addView(view);
+                mVideoCardElement.reportShow();
+                mVideoCardTitle.setVisibility(View.VISIBLE);
+                notifyDataSetChanged();
+            }
+        });
+    }
+
+    private static void log(String msg) {
+        Log.d(TAG, String.valueOf(msg));
+    }
 }

--
Gitblit v1.8.0