11package com.rumtel.ad.helper.splash
22
33import android.app.Activity
4+ import android.content.Context
5+ import android.graphics.Point
6+ import android.os.Build
47import android.support.annotation.NonNull
5- import android.util.DisplayMetrics
68import android.view.View
79import android.view.ViewGroup
10+ import android.view.WindowManager
811import com.baidu.mobads.SplashAd
912import com.baidu.mobads.SplashAdListener
1013import com.bytedance.sdk.openadsdk.AdSlot
@@ -16,6 +19,7 @@ import com.qq.e.ads.splash.SplashADListener
1619import com.qq.e.comm.util.AdError
1720import com.rumtel.ad.R
1821import com.rumtel.ad.TogetherAd
22+ import com.rumtel.ad.TogetherAd.mContext
1923import com.rumtel.ad.helper.AdBase
2024import com.rumtel.ad.other.AdNameType
2125import com.rumtel.ad.other.AdRandomUtil
@@ -54,8 +58,7 @@ object TogetherAdSplash : AdBase {
5458 stop = false
5559 startTimerTask(activity, adListener)
5660
57- val randomAdName = AdRandomUtil .getRandomAdName(splashConfigStr)
58- when (randomAdName) {
61+ when (AdRandomUtil .getRandomAdName(splashConfigStr)) {
5962 AdNameType .BAIDU -> showAdFullBaiduMob(activity, splashConfigStr, adConstStr, adsParentLayout, adListener)
6063 AdNameType .GDT -> showAdFullGDT(activity, splashConfigStr, adConstStr, adsParentLayout, adListener)
6164 AdNameType .CSJ -> showAdFullCsj(activity, splashConfigStr, adConstStr, adsParentLayout, adListener)
@@ -65,8 +68,8 @@ object TogetherAdSplash : AdBase {
6568 }
6669 cancelTimerTask()
6770
68- adListener.onAdFailed(activity .getString(R .string.all_ad_error))
69- loge(activity .getString(R .string.all_ad_error))
71+ adListener.onAdFailed(mContext .getString(R .string.all_ad_error))
72+ loge(mContext .getString(R .string.all_ad_error))
7073 }
7174 }
7275 }
@@ -91,7 +94,7 @@ object TogetherAdSplash : AdBase {
9194 object : SplashADListener {
9295 override fun onADDismissed () {
9396 adListener.onAdDismissed()
94- logd(" ${AdNameType .GDT .type} : ${activity .getString(R .string.dismiss)} " )
97+ logd(" ${AdNameType .GDT .type} : ${mContext .getString(R .string.dismiss)} " )
9598 }
9699
97100 override fun onNoAD (adError : AdError ) {
@@ -118,20 +121,20 @@ object TogetherAdSplash : AdBase {
118121 cancelTimerTask()
119122
120123 adListener.onAdPrepared(AdNameType .GDT .type)
121- logd(" ${AdNameType .GDT .type} : ${activity .getString(R .string.prepared)} " )
124+ logd(" ${AdNameType .GDT .type} : ${mContext .getString(R .string.prepared)} " )
122125 }
123126
124127 override fun onADClicked () {
125128 adListener.onAdClick(AdNameType .GDT .type)
126- logd(" ${AdNameType .GDT .type} : ${activity .getString(R .string.clicked)} " )
129+ logd(" ${AdNameType .GDT .type} : ${mContext .getString(R .string.clicked)} " )
127130 }
128131
129132 override fun onADTick (l : Long ) {
130133 logd(" ${AdNameType .GDT .type} : 倒计时: $l " )
131134 }
132135
133136 override fun onADExposure () {
134- logd(" ${AdNameType .GDT .type} : ${activity .getString(R .string.exposure)} " )
137+ logd(" ${AdNameType .GDT .type} : ${mContext .getString(R .string.exposure)} " )
135138 }
136139 })
137140 }
@@ -148,30 +151,34 @@ object TogetherAdSplash : AdBase {
148151 ) {
149152 adListener.onStartRequest(AdNameType .BAIDU .type)
150153
151- SplashAd (activity , adsParentLayout, object : SplashAdListener {
154+ SplashAd (mContext , adsParentLayout, object : SplashAdListener {
152155 override fun onAdPresent () {
153156 if (stop) {
154157 return
155158 }
156159 cancelTimerTask()
157160
158161 adListener.onAdPrepared(AdNameType .BAIDU .type)
159- logd(" ${AdNameType .BAIDU .type} : ${activity .getString(R .string.prepared)} " )
162+ logd(" ${AdNameType .BAIDU .type} : ${mContext .getString(R .string.prepared)} " )
160163 }
161164
162165 override fun onAdDismissed () {
163- logd(" ${AdNameType .BAIDU .type} : ${activity .getString(R .string.dismiss)} " )
166+ logd(" ${AdNameType .BAIDU .type} : ${mContext .getString(R .string.dismiss)} " )
164167 adListener.onAdDismissed()
165168 }
166169
167170 override fun onAdFailed (s : String ) {
171+ if (stop) {
172+ return
173+ }
174+ cancelTimerTask()
168175 loge(" ${AdNameType .BAIDU .type} : $s " )
169176 val newConfigPreMovie = splashConfigStr?.replace(AdNameType .BAIDU .type, AdNameType .NO .type)
170177 showAdFull(activity, newConfigPreMovie, adConstStr, adsParentLayout, adListener)
171178 }
172179
173180 override fun onAdClick () {
174- logd(" ${AdNameType .BAIDU .type} : ${activity .getString(R .string.clicked)} " )
181+ logd(" ${AdNameType .BAIDU .type} : ${mContext .getString(R .string.clicked)} " )
175182 adListener.onAdClick(AdNameType .BAIDU .type)
176183 }
177184
@@ -189,51 +196,58 @@ object TogetherAdSplash : AdBase {
189196 @NonNull adListener : AdListenerSplashFull
190197 ) {
191198 adListener.onStartRequest(AdNameType .CSJ .type)
192- val dm = DisplayMetrics ()
193- activity.windowManager.defaultDisplay.getMetrics(dm)
199+ val wm = mContext.getSystemService(Context .WINDOW_SERVICE ) as WindowManager
200+ val point = Point ()
201+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .JELLY_BEAN_MR1 ) {
202+
203+ wm.defaultDisplay.getRealSize(point)
204+ } else {
205+
206+ wm.defaultDisplay.getSize(point)
207+ }
194208 // step3:创建开屏广告请求参数AdSlot,具体参数含义参考文档
195209 val adSlot = AdSlot .Builder ()
196210 .setCodeId(TogetherAd .idMapCsj[adConstStr])
197211 .setSupportDeepLink(true )
198- .setImageAcceptedSize(dm.widthPixels, dm.heightPixels )
212+ .setImageAcceptedSize(point.x, point.y )
199213 .build()
200- TTAdSdk .getAdManager().createAdNative(activity ).loadSplashAd(adSlot, object : TTAdNative .SplashAdListener {
214+ TTAdSdk .getAdManager().createAdNative(mContext ).loadSplashAd(adSlot, object : TTAdNative .SplashAdListener {
201215 override fun onSplashAdLoad (splashAd : TTSplashAd ? ) {
216+ if (stop) {
217+ return
218+ }
219+ cancelTimerTask()
220+
202221 if (splashAd == null ) {
203222 loge(" ${AdNameType .CSJ .type} : 广告是 null" )
204223 val newSplashConfigStr = splashConfigStr?.replace(AdNameType .CSJ .type, AdNameType .NO .type)
205224 showAdFull(activity, newSplashConfigStr, adConstStr, adsParentLayout, adListener)
206225 return
207226 }
208227
209- if (stop) {
210- return
211- }
212- cancelTimerTask()
213-
214228 adListener.onAdPrepared(AdNameType .CSJ .type)
215- logd(" ${AdNameType .CSJ .type} : ${activity .getString(R .string.prepared)} " )
229+ logd(" ${AdNameType .CSJ .type} : ${mContext .getString(R .string.prepared)} " )
216230
217231 adsParentLayout.removeAllViews()
218232 adsParentLayout.addView(splashAd.splashView)
219233
220234 splashAd.setSplashInteractionListener(object : TTSplashAd .AdInteractionListener {
221235 override fun onAdClicked (view : View ? , p1 : Int ) {
222- logd(" ${AdNameType .CSJ .type} : ${activity .getString(R .string.clicked)} " )
236+ logd(" ${AdNameType .CSJ .type} : ${mContext .getString(R .string.clicked)} " )
223237 adListener.onAdClick(AdNameType .CSJ .type)
224238 }
225239
226240 override fun onAdSkip () {
227- logd(" ${AdNameType .CSJ .type} : ${activity .getString(R .string.dismiss)} " )
241+ logd(" ${AdNameType .CSJ .type} : ${mContext .getString(R .string.dismiss)} " )
228242 adListener.onAdDismissed()
229243 }
230244
231245 override fun onAdShow (p0 : View ? , p1 : Int ) {
232- logd(" ${AdNameType .CSJ .type} : ${activity .getString(R .string.exposure)} " )
246+ logd(" ${AdNameType .CSJ .type} : ${mContext .getString(R .string.exposure)} " )
233247 }
234248
235249 override fun onAdTimeOver () {
236- logd(" ${AdNameType .CSJ .type} : ${activity .getString(R .string.dismiss)} " )
250+ logd(" ${AdNameType .CSJ .type} : ${mContext .getString(R .string.dismiss)} " )
237251 adListener.onAdDismissed()
238252 }
239253 })
@@ -245,7 +259,7 @@ object TogetherAdSplash : AdBase {
245259 }
246260 cancelTimerTask()
247261
248- loge(" ${AdNameType .CSJ .type} : ${activity .getString(R .string.timeout)} " )
262+ loge(" ${AdNameType .CSJ .type} : ${mContext .getString(R .string.timeout)} " )
249263 val newSplashConfigStr = splashConfigStr?.replace(AdNameType .CSJ .type, AdNameType .NO .type)
250264 showAdFull(activity, newSplashConfigStr, adConstStr, adsParentLayout, adListener)
251265 }
@@ -290,24 +304,24 @@ object TogetherAdSplash : AdBase {
290304 /* *
291305 * 开始超时任务
292306 */
293- private fun startTimerTask (activity : Activity , listener : AdListenerSplashFull ) {
307+ private fun startTimerTask (mContext : Activity , listener : AdListenerSplashFull ) {
294308 cancelTimerTask()
295309 timer = Timer ()
296- overTimerTask = OverTimerTask (activity , listener)
310+ overTimerTask = OverTimerTask (mContext , listener)
297311 timer?.schedule(overTimerTask, TogetherAd .timeOutMillis)
298312 }
299313
300314 /* *
301315 * 超时任务
302316 */
303- private class OverTimerTask (activity : Activity , listener : AdListenerSplashFull ) : TimerTask() {
317+ private class OverTimerTask (mContext : Activity , listener : AdListenerSplashFull ) : TimerTask() {
304318
305319 private val weakReference: WeakReference <AdListenerSplashFull >?
306320 private val weakRefContext: WeakReference <Activity >?
307321
308322 init {
309323 weakReference = WeakReference (listener)
310- weakRefContext = WeakReference (activity )
324+ weakRefContext = WeakReference (mContext )
311325 }
312326
313327 override fun run () {
0 commit comments