From c1ab529f3f27020b99db713e785e4a703a054e05 Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期四, 01 四月 2021 02:00:22 +0800
Subject: [PATCH] 首页与搜索页广告优化

---
 BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java |   64 ++++++++++++++++---------------
 1 files changed, 33 insertions(+), 31 deletions(-)

diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java
index 31faf28..30b8320 100644
--- a/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java
+++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java
@@ -394,28 +394,27 @@
                 });
     }
 
-    private void fillAD(List<ExpressAdContainer> adList) {
-        if (adList != null) {
-            SearchResultActivity.this.adList.addAll(adList);
-        }
+    private synchronized void fillAD(List<ExpressAdContainer> adList) {
 
-        if (adList.size() > 0) {
-            boolean hasAd = false;
-            if (mVideoInfos != null && mVideoInfos.size() > 0)
-                for (VideoContent vc : mVideoInfos) {
-                    if (vc.getType() == VideoContent.TYPE_AD) {
-                        hasAd = true;
-                        break;
-                    }
+        //鍒ゆ柇褰撳墠椤甸潰鏄惁闇�瑕佸箍鍛�
+        int albumCount = 0;
+        if (mVideoInfos != null && mVideoInfos.size() > 0)
+            for (int i = 0; i < mVideoInfos.size(); i++) {
+                VideoContent vc = mVideoInfos.get(i);
+                if (vc.getType() == VideoContent.TYPE_AD) {
+                    //鏇存柊骞垮憡
+                    vc.setAd(adList.get(0));
+                    adapter.notifyItemChanged(i);
+                    return;
+                } else if (vc.getVideo().getShowType() == 1) {
+                    albumCount++;
                 }
-            //涓嶅瓨鍦ㄥ箍鍛�
-            if (!hasAd && mVideoInfos.size() > 2) {
-                //TODO 娴嬭瘯
-                VideoContent videoContent = VideoContent.createAdContent(SearchResultActivity.this.adList.get(0));
-                mVideoInfos.add(2, videoContent);
-                SearchResultActivity.this.adList.remove(0);
-                adapter.notifyDataSetChanged();
             }
+
+        if (albumCount >= 2) {
+            VideoContent videoContent = VideoContent.createAdContent(adList.get(0));
+            mVideoInfos.add(2, videoContent);
+            adapter.notifyItemInserted(2);
         }
 
     }
@@ -461,7 +460,6 @@
 //        SearchResultAdManager.getInstance(getApplicationContext()).autoLoadAd();
 //    }
 
-    private List<ExpressAdContainer> adList = new ArrayList<>();
 
     private void search(String key, String videoType) {
 
@@ -507,17 +505,23 @@
                             }
 
 
-                            if (adList.size() > 0) {
-                                int adPosition = (int) (videoContentList.size() * Math.random());
-                                if (mCurrentPage == 1)
-                                    adPosition = 0;
-                                videoContentList.add(adPosition, VideoContent.createAdContent(adList.get(0)));
-                                adList.remove(0);
-                            }
+                            //璁板綍褰撳墠鐨勫箍鍛婁俊鎭�
+                            VideoContent adContent = null;
+                            int adContentP = -1;
                             if (mCurrentPage <= 1) {
+                                for (int i = 0; i < mVideoInfos.size(); i++) {
+                                    if (mVideoInfos.get(i).getType() == VideoContent.TYPE_AD) {
+                                        adContent = mVideoInfos.get(i);
+                                        adContentP = i;
+                                    }
+                                }
                                 mVideoInfos.clear();
                             }
+
                             mVideoInfos.addAll(videoContentList);
+                            if (adContent != null && mVideoInfos.size() >= adContentP) {
+                                mVideoInfos.add(adContentP, adContent);
+                            }
                             adapter.notifyDataSetChanged();
 
                             if (mVideoInfos != null && mVideoInfos.size() > 0) {
@@ -530,10 +534,8 @@
                                 rl_search_result.setVisibility(View.GONE);
                             }
 
-                            //鍔犺浇涓嬩竴娆¤鐢ㄧ殑骞垮憡
-                            if (videoInfos.size() > 0) {
-                                if (adList.size() < 1)
-                                    loadAd();
+                            if (mCurrentPage == 1) {
+                                loadAd();
                             }
                         }
                     }

--
Gitblit v1.8.0