admin
6 天以前 7f0825f8195a522ed7e8bcdb6347f3a719e06c74
BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java
@@ -39,12 +39,19 @@
import com.weikou.beibeivideo.util.DimenUtils;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
 * 信息流广告管理
 */
public class ExpressAdManager {
    public final static String POSITION_RECOMMEND = "recommend";
    public final static String POSITION_SEARCH = "search";
    public final static String POSITION_SEARCH_RESULT = "search_result";
    public final static String POSITION_VIDEO_DETAIL_PLAYER_BOTTOM = "video_detail_player_bottom";
    public final static String POSITION_EXIT = "exit";
    final static String TAG = "ExpressAdManager";
@@ -53,9 +60,10 @@
    private TTAdNative mTTAdNative;
    private Context mContext;
    private static Set<String> closedAdPositions = new HashSet<>();// 是否已经关闭广告
    private String positionName;
    public ExpressAdManager(AdUtil.AD_TYPE adSource, Context context) {
    public ExpressAdManager(AdUtil.AD_TYPE adSource, String positionName, Context context) {
        sourceType = adSource;
        this.mContext = context;
        if (sourceType == AdUtil.AD_TYPE.csj) {
@@ -67,6 +75,7 @@
                e.printStackTrace();
            }
        }
        this.positionName = positionName;
    }
@@ -81,6 +90,10 @@
     * @param adLoadListener
     */
    public void loadAd(int widthDP, int heightDP, String pid, int count, final IAdLoadListener adLoadListener) {
        if (closedAdPositions.contains(positionName)) {
            // 广告已经关闭
            return;
        }
        if (sourceType == AdUtil.AD_TYPE.gdt || sourceType == AdUtil.AD_TYPE.gdt2) {
            loadGDT(pid, widthDP, heightDP, count, new IGDTAdLoadListener() {
                @Override
@@ -159,6 +172,9 @@
     * @param adLoadListener
     */
    public void loadVideoDetailPlayerBottomAd(final IAdLoadListener adLoadListener) {
        if (sourceType == null) {
            return;
        }
        Log.i(TAG, "loadVideoDetailPlayerBottomAd");
        //加载大图
        String pid = null;
@@ -263,15 +279,15 @@
    public void loadSearchAd(int widthDP, final IAdLoadListener adLoadListener) {
        //加载大图
        String pid = null;
        int height = (int) (widthDP / 1.78f);
        if (sourceType == AdUtil.AD_TYPE.csj) {
            pid = CSJConstant.VIDEO_SEARCH;
            height = 0;
        } else if (sourceType == AdUtil.AD_TYPE.gdt2) {
            pid = BeibeiConstant.GDT_SEARCH_NATIVE;
        } else if (sourceType == AdUtil.AD_TYPE.hw) {
            pid = HuaWeiAdConstant.HW_AD_NATIVE_SEARCH;
        }
        int height = (int) (widthDP / 1.78f);
        loadAd(widthDP, height, pid, 1, adLoadListener);
    }
@@ -434,7 +450,8 @@
        NativeAdConfiguration adConfiguration = new NativeAdConfiguration.Builder()
                .setAdSize(new AdSize(width, height))
//                .setAdSize(new AdSize(width, height))
                .setMediaAspect(NativeAdConfiguration.MediaAspect.ASPECT_LANDSCAPE)
                // 是否要自定义“不再显示该广告”的功能
                .setRequestCustomDislikeThisAd(true)
                // 设置原生广告是否返回多张图片素材,如果请求的创意类型是原生三小图,则需要设置此方法
@@ -482,7 +499,7 @@
     * @param fl_ad
     * @param adEventListener
     */
    public static void renderAndFillAd(Activity activity, final ExpressAdContainer ad, final FrameLayout fl_ad, final IAdEventListener adEventListener) {
    public static void renderAndFillAd(Activity activity, final ExpressAdContainer ad, final FrameLayout fl_ad, String positionName, final IAdEventListener adEventListener) {
        if (ad == null) {//广告为空
            fl_ad.setVisibility(View.GONE);
@@ -517,6 +534,7 @@
                        if (adEventListener != null) {
                            adEventListener.closeAd(ad);
                        }
                        closedAdPositions.add(positionName);
                    }
@@ -546,6 +564,7 @@
                            if (adEventListener != null) {
                                adEventListener.closeAd(ad);
                            }
                            closedAdPositions.add(positionName);
                        }
                    });
@@ -569,7 +588,7 @@
     * @param adRenderListener
     * @param adEventListener
     */
    public static void renderAd(Activity activity, final ExpressAdContainer ad, final IAdRenderListener adRenderListener, final IAdEventListener adEventListener) {
    public static void renderAd(Activity activity, final ExpressAdContainer ad, String positionName, final IAdRenderListener adRenderListener, final IAdEventListener adEventListener) {
        if (ad == null) {//广告为空
            return;
@@ -625,6 +644,7 @@
                        if (adEventListener != null) {
                            adEventListener.closeAd(ad);
                        }
                        closedAdPositions.add(positionName);
                    }
@@ -646,6 +666,7 @@
                        if (adEventListener != null) {
                            adEventListener.closeAd(ad);
                        }
                        closedAdPositions.add(positionName);
                    }
                });