From 2c5b6e472c368e80d85b8ea2b461c9ea62981d9b Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期日, 08 十月 2023 11:28:56 +0800 Subject: [PATCH] 广告升级/bug修复 --- BuWanVideo/src/com/weikou/beibeivideo/util/ExitDialog.java | 135 +++++++++++++++++++------------------------- 1 files changed, 58 insertions(+), 77 deletions(-) diff --git a/BuWanVideo/src/com/weikou/beibeivideo/util/ExitDialog.java b/BuWanVideo/src/com/weikou/beibeivideo/util/ExitDialog.java index be2fe3b..c89ca61 100644 --- a/BuWanVideo/src/com/weikou/beibeivideo/util/ExitDialog.java +++ b/BuWanVideo/src/com/weikou/beibeivideo/util/ExitDialog.java @@ -3,19 +3,22 @@ import android.app.Activity; import android.app.Dialog; import android.content.Context; +import android.content.DialogInterface; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; import android.widget.FrameLayout; -import android.widget.Toast; +import com.lcjian.library.util.ManifestDataUtil; import com.lcjian.library.util.SystemCommon; -import com.qq.e.ads.cfg.VideoOption; -import com.qq.e.ads.nativ.ADSize; -import com.qq.e.ads.nativ.NativeADDataRef; import com.qq.e.ads.nativ.NativeExpressAD; -import com.qq.e.ads.nativ.NativeExpressADView; -import com.qq.e.comm.util.AdError; -import com.yeshi.buwanshequ.R; +import com.weikou.beibeivideo.R; +import com.weikou.beibeivideo.entity.ad.AdPositionEnum; +import com.weikou.beibeivideo.entity.ad.ExpressAdContainer; +import com.weikou.beibeivideo.util.ad.AdUtil; +import com.weikou.beibeivideo.util.ad.ExpressAdManager; +import com.weikou.beibeivideo.util.ad.ExpressAdManager.IAdEventListener; import java.util.List; @@ -34,15 +37,21 @@ this.setCancelable(false); } + public static class Builder { private Activity context; private String positiveButtonText; private String negativeButtonText; private OnClickListener positiveButtonClickListener; private OnClickListener negativeButtonClickListener; + ExpressAdManager expressAdManager; public Builder(Activity context) { this.context = context; + AdUtil.AD_TYPE adType = AdUtil.getAdType(context, AdPositionEnum.exitApp); + if (adType == AdUtil.AD_TYPE.gdt) + adType = AdUtil.AD_TYPE.gdt2; + expressAdManager = new ExpressAdManager(adType, context); } @@ -87,6 +96,8 @@ */ private FrameLayout fl_advertisement; + private ExpressAdContainer expressAdContainer; + public ExitDialog create() { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); @@ -94,9 +105,8 @@ final ExitDialog dialog = new ExitDialog(context, R.style.Dialog); View layout = inflater.inflate(R.layout.item_exit, null); fl_advertisement = layout.findViewById(R.id.fl_advertisement); - nativeAd(); dialog.addContentView(layout, new FrameLayout.LayoutParams( - FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT)); + FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT)); // set the confirm button layout.findViewById(R.id.tv_login) .setOnClickListener(new View.OnClickListener() { @@ -119,90 +129,61 @@ params.height = android.view.WindowManager.LayoutParams.WRAP_CONTENT; dialog.getWindow().setAttributes(params); dialog.setCanceledOnTouchOutside(false); + dialog.setOnDismissListener(new OnDismissListener() { + @Override + public void onDismiss(DialogInterface dialog) { + fl_advertisement.removeAllViews(); + } + }); return dialog; } - - NativeADDataRef adDataRef; private NativeExpressAD nativeExpressAD; // 1.鍔犺浇骞垮憡锛屽厛璁剧疆鍔犺浇涓婁笅鏂囩幆澧冨拰鏉′欢 - private void nativeAd() { - fl_advertisement.removeAllViews(); - nativeExpressAD = new NativeExpressAD(context, new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT), - BeibeiConstant.GDT_EXIT_DIALOG, new NativeExpressAD.NativeExpressADListener() { + private void loadAd(boolean show) { + //vivo鏃犲箍鍛� + if ("vivo".equalsIgnoreCase(ManifestDataUtil.getAppMetaData(context, "UMENG_CHANNEL"))) { + return; + } + + expressAdManager.loadAppExitAd(new ExpressAdManager.IAdLoadListener() { @Override - public void onADLoaded(final List<NativeExpressADView> list) { - fl_advertisement.post(new Runnable() { - @Override - public void run() { - if (null != list && list.size() > 0) { - NativeExpressADView adView = list.get(0); - adView.render(); - FrameLayout parent = (FrameLayout) adView.getParent(); - if (parent != null) { - parent.removeAllViews(); + public void onSuccess(List<ExpressAdContainer> adList) { + if (adList != null && adList.size() > 0) { + + ExpressAdManager.renderAd(context, adList.get(0), new ExpressAdManager.IAdRenderListener() { + @Override + public void onRenderSuccess(List<ExpressAdContainer> adList) { + expressAdContainer = adList.get(0); + if (show) { + ExpressAdManager.renderAndFillAd(context, adList.get(0), fl_advertisement, new IAdEventListener() { + @Override + public void closeAd(ExpressAdContainer ad) { + fl_advertisement.removeAllViews(); + } + }); } - fl_advertisement.addView(adView); } - } - }); + + @Override + public void onRenderFail(List<ExpressAdContainer> adList) { + } + }, null); + + } } + }); - @Override - public void onRenderFail(NativeExpressADView nativeExpressADView) { + } - } - - @Override - public void onRenderSuccess(NativeExpressADView nativeExpressADView) { - - } - - @Override - public void onADExposure(NativeExpressADView nativeExpressADView) { - } - - @Override - public void onADClicked(NativeExpressADView nativeExpressADView) { - - } - - @Override - public void onADClosed(NativeExpressADView nativeExpressADView) { - - } - - @Override - public void onADLeftApplication(NativeExpressADView nativeExpressADView) { - - } - - @Override - public void onADOpenOverlay(NativeExpressADView nativeExpressADView) { - - } - - @Override - public void onADCloseOverlay(NativeExpressADView nativeExpressADView) { - - } - - @Override - public void onNoAD(AdError adError) { - } - }); // 浼犲叆Activity - // 娉ㄦ剰锛氬鏋滄偍鍦ㄨ仈鐩熷钩鍙颁笂鏂板缓鍘熺敓妯℃澘骞垮憡浣嶆椂锛岄�夋嫨浜嗘敮鎸佽棰戯紝閭d箞鍙互杩涜涓�у寲璁剧疆锛堝彲閫夛級 - nativeExpressAD.setVideoOption(new VideoOption.Builder() - .setAutoPlayPolicy(VideoOption.AutoPlayPolicy.WIFI) // WIFI 鐜涓嬪彲浠ヨ嚜鍔ㄦ挱鏀捐棰� - .setAutoPlayMuted(true) // 鑷姩鎾斁鏃朵负闈欓煶 - .build()); // - nativeExpressAD.loadAD(2); + public void showAd() { + loadAd(true); } public void refreshAd() { - nativeAd(); + loadAd(false); } } -- Gitblit v1.8.0