admin
2021-04-07 cbb88109494ffc7916f6639c20ce05c0cec941a9
BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java
@@ -202,7 +202,7 @@
        rv_video_search.setLayoutManager(new MyLinearLayoutManager(getApplicationContext()));
        DividerItemDecoration decoration = new DividerItemDecoration();
        decoration.setSize(DimenUtils.dip2px(rv_video_search.getContext(), 6));
        decoration.setSize(DimenUtils.dip2px(rv_video_search.getContext(), 15));
        rv_video_search.addItemDecoration(decoration);
        adapter = new SearchResultAdapter(this, mVideoInfos, new SearchResultAdapter.VideoAlbumNavClickListener() {
@@ -306,13 +306,13 @@
    private void setTopBarSelect(TextView tv_name, boolean selected) {
        if (selected) {
            tv_name.setBackgroundResource(R.drawable.vpi__tab_selected_focused_holo);
            tv_name.setTextSize(17);
            tv_name.setTextSize(19);
            tv_name.setTextColor(getResources().getColor(R.color.search_nav_highlight_text_color));
            tv_name.setPadding(0, 0, 0, DimenUtils.dip2px(getApplicationContext(), 5));
            tv_name.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
        } else {
            tv_name.setBackground(null);
            tv_name.setTextSize(12);
            tv_name.setTextSize(14);
            tv_name.setTextColor(getResources().getColor(R.color.nav_text_color));
            tv_name.setPadding(0, 0, 0, 0);
            tv_name.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
@@ -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) {
@@ -473,6 +471,12 @@
        BeibeiVideoAPI.search(this, uid, key, videoType,
                String.valueOf(mCurrentPage),
                new BasicTextHttpResponseHandler() {
                    @Override
                    public void onStart() {
                        super.onStart();
                        hiddenSuggestFragment();
                    }
                    @Override
                    public void onSuccessPerfect(int statusCode,
@@ -507,17 +511,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 +540,8 @@
                                rl_search_result.setVisibility(View.GONE);
                            }
                            //加载下一次要用的广告
                            if (videoInfos.size() > 0) {
                                if (adList.size() < 1)
                                    loadAd();
                            if (mCurrentPage == 1) {
                                loadAd();
                            }
                        }
                    }