From b2fc802bf35143ed957a86d95e2de49934ea9ea5 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 14 十月 2020 14:09:51 +0800
Subject: [PATCH] 腾讯X5bug修复

---
 BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java |  580 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 516 insertions(+), 64 deletions(-)

diff --git a/BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java b/BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java
index 8ab99ce..c0af154 100644
--- a/BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java
+++ b/BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java
@@ -2,7 +2,9 @@
 
 import android.app.Activity;
 import android.content.Context;
+import android.util.Log;
 import android.view.View;
+import android.view.ViewGroup;
 import android.widget.FrameLayout;
 
 import com.bytedance.sdk.openadsdk.AdSlot;
@@ -30,19 +32,20 @@
  * 淇℃伅娴佸箍鍛婄鐞�
  */
 public class ExpressAdManager {
-    public final static int SOURCE_GDT = 1;//骞跨偣閫�
-    public final static int SOURCE_CSJ = 2;//绌垮北鐢�
 
-    int sourceType = SOURCE_GDT;
+
+    final static String TAG = "ExpressAdManager";
+
+    AdUtil.AD_TYPE sourceType = AdUtil.AD_TYPE.gdt;
 
     private TTAdNative mTTAdNative;
     private Context mContext;
 
 
-    public ExpressAdManager(int adSource, Context context) {
+    public ExpressAdManager(AdUtil.AD_TYPE adSource, Context context) {
         sourceType = adSource;
         this.mContext = context;
-        if (sourceType == SOURCE_CSJ) {
+        if (sourceType == AdUtil.AD_TYPE.csj) {
             TTAdManager ttAdManager = TTAdManagerHolder.get();
             mTTAdNative = ttAdManager.createAdNative(context);
 //            TTAdManagerHolder.get().requestPermissionIfNecessary(context);
@@ -61,7 +64,7 @@
      * @param adLoadListener
      */
     public void loadAd(int widthDP, int heightDP, String pid, int count, final IAdLoadListener adLoadListener) {
-        if (sourceType == SOURCE_GDT) {
+        if (sourceType == AdUtil.AD_TYPE.gdt) {
             loadGDT(pid, widthDP, heightDP, count, new IGDTAdLoadListener() {
                 @Override
                 public void onSuccess(List<NativeExpressADView> adList) {
@@ -72,8 +75,31 @@
                         }
                     adLoadListener.onSuccess(adContainerList);
                 }
+
+                @Override
+                public void onSuccess2(List<NativeExpressADData2> adList) {
+
+                }
             }, mContext);
-        } else if (sourceType == SOURCE_CSJ) {
+        } else if (sourceType == AdUtil.AD_TYPE.gdt2) {
+            loadGDT2(pid, widthDP, heightDP, count, new IGDTAdLoadListener() {
+                @Override
+                public void onSuccess(List<NativeExpressADView> adList) {
+
+                }
+
+                @Override
+                public void onSuccess2(List<NativeExpressADData2> adList) {
+                    List<ExpressAdContainer> adContainerList = new ArrayList<>();
+                    if (adList != null)
+                        for (NativeExpressADData2 ad : adList) {
+                            adContainerList.add(new ExpressAdContainer(ad));
+                        }
+                    adLoadListener.onSuccess(adContainerList);
+                }
+            }, mContext);
+
+        } else if (sourceType == AdUtil.AD_TYPE.csj) {
             loadCSJ(pid, widthDP, heightDP, count, new ICSJAdLoadListener() {
                 @Override
                 public void onSuccess(List<TTNativeExpressAd> adList) {
@@ -97,18 +123,23 @@
      */
     public void loadRecommendLargeAd(final IAdLoadListener adLoadListener) {
         //鍔犺浇澶у浘
-        String pid = null;
-        if (sourceType == SOURCE_CSJ) {
-            pid = "945386135";
-        } else if (sourceType == SOURCE_GDT) {
-            pid = BeibeiConstant.GDT_RECOMMAND_NATIVE;
-        }
-        //鑾峰彇灞忓箷鐨勫
         int deviceWidth = DimenUtils.getScreenWidth(mContext);
         deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
-        int width = deviceWidth - 20;
+        int width = deviceWidth - 6;
         int height = (int) (width * 0.8);
-        loadAd(width, height, pid, 2, adLoadListener);
+        String pid = null;
+        if (sourceType == AdUtil.AD_TYPE.csj) {
+            pid = CSJConstant.RECOMMEND_BIG_IMG_AD;
+            height = (int) (width * 0.56);
+        } else if (sourceType == AdUtil.AD_TYPE.gdt) {
+            pid = BeibeiConstant.GDT_RECOMMAND_NATIVE;
+        } else if (sourceType == AdUtil.AD_TYPE.gdt2) {
+            pid = GDTConstant.PID_HOME_RECOMMEND_BIG_IMG;
+        }
+        //鑾峰彇灞忓箷鐨勫
+
+
+        loadAd(width, height, pid, 1, adLoadListener);
     }
 
     /**
@@ -119,9 +150,9 @@
     public void loadRecommendSmallAd(final IAdLoadListener adLoadListener) {
         //鍔犺浇澶у浘
         String pid = null;
-        if (sourceType == SOURCE_CSJ) {
+        if (sourceType == AdUtil.AD_TYPE.csj) {
             pid = "945375047";
-        } else if (sourceType == SOURCE_GDT) {
+        } else if (sourceType == AdUtil.AD_TYPE.gdt) {
             pid = BeibeiConstant.GDT_RECOMMAND_MIN_NATIVE;
         }
         //鑾峰彇灞忓箷鐨勫
@@ -134,6 +165,52 @@
 
 
     /**
+     * 瑙嗛鎾斁鍣ㄥ簳閮ㄥ皬骞垮憡
+     *
+     * @param adLoadListener
+     */
+    public void loadVideoDetailPlayerBottomAd(final IAdLoadListener adLoadListener) {
+        //鍔犺浇澶у浘
+        String pid = null;
+        if (sourceType == AdUtil.AD_TYPE.csj) {
+            pid = "945375047";
+        } else if (sourceType == AdUtil.AD_TYPE.gdt2) {
+            pid = GDTConstant.PID_2_VIDEO_DETAIL_PLAY_EXPRESS1;
+        }
+        //鑾峰彇灞忓箷鐨勫
+        int deviceWidth = DimenUtils.getScreenWidth(mContext);
+        deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
+        int width = (deviceWidth - 20);
+        int height = 80;
+        loadAd(width, height, pid, 1, adLoadListener);
+    }
+
+
+    /**
+     * 鐩稿叧鎺ㄨ崘搴曢儴灏忓箍鍛�
+     *
+     * @param adLoadListener
+     */
+    public void loadVideoDetailRelativeVideoBottomAd(final IAdLoadListener adLoadListener) {
+        //鍔犺浇澶у浘
+        String pid = null;
+        if (sourceType == AdUtil.AD_TYPE.csj) {
+            pid = "945375047";
+        } else if (sourceType == AdUtil.AD_TYPE.gdt2) {
+            pid = GDTConstant.PID_2_VIDEO_DETAIL_PLAY_EXPRESS2;
+        }
+        if (mContext == null)
+            return;
+        //鑾峰彇灞忓箷鐨勫
+        int deviceWidth = DimenUtils.getScreenWidth(mContext);
+        deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
+        int width = (deviceWidth - 20);
+        int height = (int) (width * 0.5625);
+        loadAd(width, height, pid, 1, adLoadListener);
+    }
+
+
+    /**
      * 鍔犺浇鍒嗙被灏忓浘
      *
      * @param adLoadListener
@@ -141,9 +218,9 @@
     public void loadRecommendCategorySmallAd(final IAdLoadListener adLoadListener) {
         //鍔犺浇澶у浘
         String pid = null;
-        if (sourceType == SOURCE_CSJ) {
+        if (sourceType == AdUtil.AD_TYPE.csj) {
             pid = "945375047";
-        } else if (sourceType == SOURCE_GDT) {
+        } else if (sourceType == AdUtil.AD_TYPE.gdt) {
             pid = BeibeiConstant.GDT_RECOMMEND_CATEGORY_MIN_NATIVE;
         }
         //鑾峰彇灞忓箷鐨勫
@@ -163,9 +240,9 @@
     public void loadSearchResultSmallAd(int count, final IAdLoadListener adLoadListener) {
         //鍔犺浇澶у浘
         String pid = null;
-        if (sourceType == SOURCE_CSJ) {
+        if (sourceType == AdUtil.AD_TYPE.csj) {
             pid = "945379581";
-        } else if (sourceType == SOURCE_GDT) {
+        } else if (sourceType == AdUtil.AD_TYPE.gdt) {
             pid = BeibeiConstant.GDT_SEARCH_RESULT_MIN_NATIVE;
         }
         //鑾峰彇灞忓箷鐨勫
@@ -178,25 +255,64 @@
 
 
     /**
-     * 瑙嗛璇︽儏椤典俊鎭祦骞垮憡
+     * 鍔犺浇瑙嗛鍒楄〃灏忓箍鍛�
+     *
      * @param count
+     * @param columns
      * @param adLoadListener
      */
-    public void loadVideoDetailAd(int count, final IAdLoadListener adLoadListener) {
+    public void loadVideoListSmallAd(int count, int columns, final IAdLoadListener adLoadListener) {
+
         //鍔犺浇澶у浘
         String pid = null;
-        if (sourceType == SOURCE_CSJ) {
-            pid = "945379581";
-        } else if (sourceType == SOURCE_GDT) {
-            pid = BeibeiConstant.GDT_SEARCH_RESULT_MIN_NATIVE;
+        if (sourceType == AdUtil.AD_TYPE.csj) {
+            pid = "945406595";
+        } else if (sourceType == AdUtil.AD_TYPE.gdt2) {
+            if (columns == 3)
+                pid = GDTConstant.PID_2_VIDEO_LIST_SMALL_AD_COLUMN3;
+            else if (columns == 2)
+                pid = GDTConstant.PID_2_VIDEO_LIST_SMALL_AD_COLUMN2;
         }
         //鑾峰彇灞忓箷鐨勫
         int deviceWidth = DimenUtils.getScreenWidth(mContext);
         deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
-        int width = (deviceWidth - 20);
-        int height = 75;
+        int width = 0;
+        int height = 0;
+
+        if (columns == 2) {
+            width = (deviceWidth - 30) / 2;
+            height = (int) (width * 0.85);
+        } else if (columns == 3) {
+            width = (deviceWidth - 20 - 9 * 2) / 3;
+            height = (int) (width * 1.6);
+        }
+
         loadAd(width, height, pid, count, adLoadListener);
     }
+
+
+    /**
+     * 鍔犺浇APP閫�鍑哄箍鍛�
+     *
+     * @param adLoadListener
+     */
+    public void loadAppExitAd(final IAdLoadListener adLoadListener) {
+        //鍔犺浇澶у浘
+        String pid = null;
+        if (sourceType == AdUtil.AD_TYPE.csj) {
+            pid = CSJConstant.APP_EXIT;
+        } else if (sourceType == AdUtil.AD_TYPE.gdt) {
+            pid = BeibeiConstant.GDT_EXIT_DIALOG;
+        }
+        //鑾峰彇灞忓箷鐨勫
+        int deviceWidth = DimenUtils.getScreenWidth(mContext);
+        deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
+        int width = deviceWidth * 3 / 4;
+        int height = (int) (width / 1.78f);
+
+        loadAd(width, height, pid, 1, adLoadListener);
+    }
+
 
     /**
      * 鍔犺浇骞跨偣閫氬箍鍛�
@@ -271,6 +387,42 @@
     }
 
     /**
+     * 2.0鐗堟湰骞跨偣閫氬師鐢�
+     *
+     * @param positionId
+     * @param widthDP
+     * @param heightDP
+     * @param count
+     * @param adLoadListener
+     * @param context
+     */
+    private void loadGDT2(String positionId, int widthDP, int heightDP, int count, final IGDTAdLoadListener adLoadListener, Context context) {
+        NativeExpressAD2 nativeExpressAD2 = new NativeExpressAD2(context, positionId, new NativeExpressAD2.AdLoadListener() {
+            @Override
+            public void onLoadSuccess(List<NativeExpressADData2> list) {
+                if (adLoadListener != null)
+                    adLoadListener.onSuccess2(list);
+            }
+
+            @Override
+            public void onNoAD(AdError adError) {
+                if (adLoadListener != null)
+                    adLoadListener.onSuccess2(null);
+            }
+        });
+
+        nativeExpressAD2.setAdSize(widthDP, heightDP);
+        VideoOption2.Builder builder = new VideoOption2.Builder();
+        builder.setAutoPlayPolicy(VideoOption2.AutoPlayPolicy.WIFI) // WIFI 鐜涓嬪彲浠ヨ嚜鍔ㄦ挱鏀捐棰�
+                .setAutoPlayMuted(true) // 鑷姩鎾斁鏃朵负闈欓煶
+                .setDetailPageMuted(false)  // 瑙嗛璇︽儏椤垫挱鏀炬椂涓嶉潤闊�
+                .setMaxVideoDuration(0) // 璁剧疆杩斿洖瑙嗛骞垮憡鐨勬渶澶ц棰戞椂闀匡紙闂尯闂达紝鍙崟鐙缃級锛屽崟浣�:绉掞紝榛樿涓� 0 浠h〃鏃犻檺鍒讹紝鍚堟硶杈撳叆涓猴細5<=maxVideoDuration<=60. 姝よ缃細褰卞搷骞垮憡濉厖锛岃璋ㄦ厧璁剧疆
+                .setMinVideoDuration(0); // 璁剧疆杩斿洖瑙嗛骞垮憡鐨勬渶灏忚棰戞椂闀匡紙闂尯闂达紝鍙崟鐙缃級锛屽崟浣�:绉掞紝榛樿涓� 0 浠h〃鏃犻檺鍒讹紝 姝よ缃細褰卞搷骞垮憡濉厖锛岃璋ㄦ厧璁剧疆
+        nativeExpressAD2.setVideoOption2(builder.build());
+        nativeExpressAD2.loadAd(count);
+    }
+
+    /**
      * 绌垮北鐢插箍鍛�
      *
      * @param codeId
@@ -302,58 +454,79 @@
 
 
     /**
-     * 娓叉煋妯℃澘骞垮憡
+     * 娓叉煋妯℃澘鍜屽~鍏呭箍鍛�
      *
      * @param activity
      * @param ad
      * @param fl_ad
      * @param adEventListener
      */
-    public static void render(Activity activity, final ExpressAdContainer ad, final FrameLayout fl_ad, final IAdEventListener adEventListener) {
-        fl_ad.removeAllViews();
+    public static void renderAndFillAd(Activity activity, final ExpressAdContainer ad, final FrameLayout fl_ad, final IAdEventListener adEventListener) {
+
         if (ad == null) {//骞垮憡涓虹┖
             fl_ad.setVisibility(View.GONE);
         } else {
             fl_ad.setVisibility(View.VISIBLE);
             if (ad.getGdt() != null) {
-//                ad.getGdt().setAdEventListener(new AdEventListener() {
-//                    @Override
-//                    public void onClick() {
-//
-//                    }
-//
-//                    @Override
-//                    public void onExposed() {
-//
-//                    }
-//
-//                    @Override
-//                    public void onRenderSuccess() {
-//                        fl_ad.addView(ad.getGdt().getAdView());
-//                    }
-//
-//                    @Override
-//                    public void onRenderFail() {
-//
-//                    }
-//
-//                    @Override
-//                    public void onAdClosed() {
-//                        if (adEventListener != null) {
-//                            adEventListener.closeAd();
-//                        }
-//                    }
-//                });
+                if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getGdt()) {
+                    return;
+                }
+                fl_ad.removeAllViews();
                 ad.getGdt().render();
+                if (ad.getGdt().getParent() != null) {
+                    ((ViewGroup) ad.getGdt().getParent()).removeAllViews();
+                }
                 fl_ad.addView(ad.getGdt());
+            } else if (ad.getGdt2() != null) {
+                if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getGdt2().getAdView()) {
+                    return;
+                }
+                fl_ad.removeAllViews();
+
+                ad.getGdt2().setAdEventListener(new AdEventListener() {
+                    @Override
+                    public void onClick() {
+
+                    }
+
+                    @Override
+                    public void onExposed() {
+
+                    }
+
+                    @Override
+                    public void onRenderSuccess() {
+                        if (ad.getGdt2().getAdView().getParent() != null) {
+                            ((ViewGroup) ad.getGdt2().getAdView().getParent()).removeAllViews();
+                        }
+                        fl_ad.addView(ad.getGdt2().getAdView());
+                    }
+
+                    @Override
+                    public void onRenderFail() {
+
+                    }
+
+                    @Override
+                    public void onAdClosed() {
+                        if (adEventListener != null) {
+                            adEventListener.closeAd(ad);
+                        }
+                    }
+                });
+                ad.getGdt2().render();
 
             } else if (ad.getCsj() != null) {
+                if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getCsj().getExpressAdView()) {
+                    return;
+                }
+
                 ad.getCsj().setDislikeCallback(activity, new TTAdDislike.DislikeInteractionCallback() {
 
                     @Override
                     public void onSelected(int i, String s) {
                         if (adEventListener != null) {
-                            adEventListener.closeAd();
+                            adEventListener.closeAd(ad);
                         }
                     }
 
@@ -368,6 +541,9 @@
                     }
                 });
                 ad.getCsj().render();
+                if (ad.getCsj().getExpressAdView().getParent() != null) {
+                    ((ViewGroup) ad.getCsj().getExpressAdView().getParent()).removeAllViews();
+                }
                 fl_ad.addView(ad.getCsj().getExpressAdView());
             }
         }
@@ -375,8 +551,272 @@
     }
 
 
+    /**
+     * 娓叉煋骞垮憡
+     *
+     * @param activity
+     * @param ad
+     * @param adRenderListener
+     * @param adEventListener
+     */
+    public static void renderAd(Activity activity, final ExpressAdContainer ad, final IAdRenderListener adRenderListener, final IAdEventListener adEventListener) {
+
+        if (ad == null) {//骞垮憡涓虹┖
+            return;
+        }
+
+        if (ad.getGdt() != null) {
+            ad.getGdt().render();
+            List<ExpressAdContainer> list = new ArrayList<>();
+            list.add(ad);
+            if (adRenderListener != null)
+                adRenderListener.onRenderSuccess(list);
+        } else if (ad.getGdt2() != null) {
+            ad.getGdt2().setAdEventListener(new AdEventListener() {
+                @Override
+                public void onClick() {
+
+                }
+
+                @Override
+                public void onExposed() {
+
+                }
+
+                @Override
+                public void onRenderSuccess() {
+                    List<ExpressAdContainer> list = new ArrayList<>();
+                    list.add(ad);
+                    if (adRenderListener != null)
+                        adRenderListener.onRenderSuccess(list);
+                }
+
+                @Override
+                public void onRenderFail() {
+                    List<ExpressAdContainer> list = new ArrayList<>();
+                    list.add(ad);
+                    if (adRenderListener != null)
+                        adRenderListener.onRenderFail(list);
+                }
+
+                @Override
+                public void onAdClosed() {
+                    if (adEventListener != null)
+                        adEventListener.closeAd(ad);
+                }
+            });
+            ad.getGdt2().render();
+
+        } else if (ad.getCsj() != null) {
+            ad.getCsj().setExpressInteractionListener(new TTNativeExpressAd.ExpressAdInteractionListener() {
+                @Override
+                public void onAdClicked(View view, int i) {
+
+                }
+
+                @Override
+                public void onAdShow(View view, int i) {
+
+                }
+
+                @Override
+                public void onRenderFail(View view, String s, int i) {
+                    List<ExpressAdContainer> list = new ArrayList<>();
+                    list.add(ad);
+                    if (adRenderListener != null)
+                        adRenderListener.onRenderFail(list);
+                }
+
+                @Override
+                public void onRenderSuccess(View view, float v, float v1) {
+                    Log.d(TAG, "onRenderSuccess");
+                    List<ExpressAdContainer> list = new ArrayList<>();
+                    list.add(ad);
+                    if (adRenderListener != null)
+                        adRenderListener.onRenderSuccess(list);
+                }
+            });
+            if (activity != null)
+                ad.getCsj().setDislikeCallback(activity, new TTAdDislike.DislikeInteractionCallback() {
+
+                    @Override
+                    public void onSelected(int i, String s) {
+                        if (adEventListener != null) {
+                            adEventListener.closeAd(ad);
+                        }
+                    }
+
+                    @Override
+                    public void onCancel() {
+
+                    }
+
+                    @Override
+                    public void onRefuse() {
+
+                    }
+                });
+            ad.getCsj().render();
+        }
+
+
+    }
+
+    /**
+     * 涓哄箍鍛婄粦瀹氬叧闂簨浠�
+     *
+     * @param activity
+     * @param ad
+     * @param adEventListener
+     */
+    public static void bindCloseListener(Activity activity, final ExpressAdContainer ad, final IAdEventListener adEventListener) {
+
+        if (ad == null) {//骞垮憡涓虹┖
+            return;
+        }
+
+        if (ad.getGdt() != null) {
+            return;
+        } else if (ad.getGdt2() != null) {
+            ad.getGdt2().setAdEventListener(new AdEventListener() {
+                @Override
+                public void onClick() {
+
+                }
+
+                @Override
+                public void onExposed() {
+
+                }
+
+                @Override
+                public void onRenderSuccess() {
+
+                }
+
+                @Override
+                public void onRenderFail() {
+                }
+
+                @Override
+                public void onAdClosed() {
+                    if (adEventListener != null)
+                        adEventListener.closeAd(ad);
+                }
+            });
+
+        } else if (ad.getCsj() != null) {
+            ad.getCsj().setExpressInteractionListener(new TTNativeExpressAd.ExpressAdInteractionListener() {
+                @Override
+                public void onAdClicked(View view, int i) {
+
+                }
+
+                @Override
+                public void onAdShow(View view, int i) {
+
+                }
+
+                @Override
+                public void onRenderFail(View view, String s, int i) {
+
+                }
+
+                @Override
+                public void onRenderSuccess(View view, float v, float v1) {
+
+                }
+            });
+            ad.getCsj().setDislikeCallback(activity, new TTAdDislike.DislikeInteractionCallback() {
+
+                @Override
+                public void onSelected(int i, String s) {
+                    if (adEventListener != null) {
+                        adEventListener.closeAd(ad);
+                    }
+                }
+
+                @Override
+                public void onCancel() {
+
+                }
+
+                @Override
+                public void onRefuse() {
+
+                }
+            });
+        }
+
+
+    }
+
+
+    /**
+     * 濉厖骞垮憡
+     *
+     * @param ad
+     * @param fl_ad
+     */
+    public static void fillAd(final ExpressAdContainer ad, final FrameLayout fl_ad) {
+
+        fl_ad.post(new Runnable() {
+            @Override
+            public void run() {
+                if (ad == null) {//骞垮憡涓虹┖
+                    fl_ad.setVisibility(View.GONE);
+                } else {
+                    fl_ad.setVisibility(View.VISIBLE);
+                    if (ad.getGdt() != null) {
+                        if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getGdt()) {
+                            return;
+                        }
+                        if (ad.getGdt().getParent() != null) {
+                            ((ViewGroup) ad.getGdt().getParent()).removeAllViews();
+                        }
+                        fl_ad.removeAllViews();
+                        fl_ad.addView(ad.getGdt());
+                    } else if (ad.getGdt2() != null) {
+                        if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getGdt2().getAdView()) {
+                            return;
+                        }
+                        if (ad.getGdt2().getAdView().getParent() != null) {
+                            ((ViewGroup) ad.getGdt2().getAdView().getParent()).removeAllViews();
+                        }
+                        fl_ad.removeAllViews();
+                        fl_ad.addView(ad.getGdt2().getAdView());
+
+                    } else if (ad.getCsj() != null) {
+                        if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getCsj().getExpressAdView()) {
+                            return;
+                        }
+                        if (ad.getCsj().getExpressAdView().getParent() != null) {
+                            ((ViewGroup) ad.getCsj().getExpressAdView().getParent()).removeAllViews();
+                        }
+                        fl_ad.removeAllViews();
+                        fl_ad.addView(ad.getCsj().getExpressAdView());
+                    }
+                }
+                if (fl_ad.getChildCount() > 0) {
+                    fl_ad.getChildAt(0).setVisibility(View.VISIBLE);
+                    fl_ad.getChildAt(0).post(new Runnable() {
+                        @Override
+                        public void run() {
+
+                        }
+                    });
+                }
+            }
+        });
+
+
+    }
+
+
     interface IGDTAdLoadListener {
         public void onSuccess(List<NativeExpressADView> adList);
+
+        public void onSuccess2(List<NativeExpressADData2> adList);
     }
 
     interface ICSJAdLoadListener {
@@ -388,7 +828,19 @@
         public void onSuccess(List<ExpressAdContainer> adList);
     }
 
-    public interface IAdEventListener {
-        public void closeAd();
+    public interface IAdRenderListener {
+        public void onRenderSuccess(List<ExpressAdContainer> adList);
+
+        public void onRenderFail(List<ExpressAdContainer> adList);
     }
+
+    public interface IAdEventListener {
+        public void closeAd(ExpressAdContainer ad);
+    }
+
+
+    public interface IAdShowListener {
+        public void show();
+    }
+
 }

--
Gitblit v1.8.0