Skip to content

Commit a01dbad

Browse files
committed
优化小细节
1 parent 64cb592 commit a01dbad

File tree

4 files changed

+62
-40
lines changed

4 files changed

+62
-40
lines changed

app/src/main/java/com/matthewchen/togetherad/App.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class App : Application() {
2121
TogetherAdConst.AD_TIEPIAN_LIVE to "5873734",
2222
TogetherAdConst.AD_WEBVIEW_BANNER to "6293556"
2323
)
24-
TogetherAd.initBaiduAd(applicationContext, "cd3d8b16", baiduIdMap)
24+
TogetherAd.initBaiduAd(this, "cd3d8b16", baiduIdMap)
2525

2626
val gdtIdMap = mutableMapOf(
2727
TogetherAdConst.AD_SPLASH to "5070550501041614",
@@ -30,7 +30,7 @@ class App : Application() {
3030
TogetherAdConst.AD_TIEPIAN_LIVE to "6040255571748678",
3131
TogetherAdConst.AD_WEBVIEW_BANNER to "3050767842595815"
3232
)
33-
TogetherAd.initGDTAd(applicationContext, "1105965856", gdtIdMap)
33+
TogetherAd.initGDTAd(this, "1105965856", gdtIdMap)
3434

3535
val csjIdMap = mutableMapOf(
3636
TogetherAdConst.AD_SPLASH to "820413685",
@@ -39,7 +39,7 @@ class App : Application() {
3939
TogetherAdConst.AD_TIEPIAN_LIVE to "920413238",
4040
TogetherAdConst.AD_WEBVIEW_BANNER to "920413685"
4141
)
42-
TogetherAd.initCsjAd(applicationContext, "5020413", getString(R.string.app_name), csjIdMap)
42+
TogetherAd.initCsjAd(this, "5020413", getString(R.string.app_name), csjIdMap)
4343

4444
TogetherAd.setAdTimeOutMillis(5000)
4545
}

app/src/main/java/com/matthewchen/togetherad/ui/SplashActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ class SplashActivity : AppCompatActivity() {
137137

138138
override fun onAdFailed(failedMsg: String?) {
139139
Log.e("ifmvo", "onAdFailed:failedMsg:$failedMsg")
140-
actionHome(2000)
140+
actionHome(0)
141141
}
142142

143143
override fun onAdDismissed() {

togetherAd/src/main/java/com/rumtel/ad/TogetherAd.kt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.rumtel.ad
22

3-
import android.content.Context
3+
import android.app.Application
44
import android.support.annotation.NonNull
55
import com.baidu.mobads.AdView
66
import com.bytedance.sdk.openadsdk.TTAdConfig
@@ -24,6 +24,11 @@ object TogetherAd {
2424
var idMapCsj = mutableMapOf<String, String>()
2525
private set
2626

27+
/**
28+
* 保存application
29+
*/
30+
lateinit var mContext: Application
31+
2732
/**
2833
* 广点通的 AppId
2934
*/
@@ -46,19 +51,22 @@ object TogetherAd {
4651
* 初始化广告
4752
*/
4853
//baidu
49-
fun initBaiduAd(@NonNull context: Context, @NonNull baiduAdAppId: String, baiduIdMap: MutableMap<String, String>) {
54+
fun initBaiduAd(@NonNull context: Application, @NonNull baiduAdAppId: String, baiduIdMap: MutableMap<String, String>) {
55+
mContext = context
5056
AdView.setAppSid(context, baiduAdAppId)
5157
idMapBaidu = baiduIdMap
5258
}
5359

5460
//广点通
55-
fun initGDTAd(@NonNull context: Context, @NonNull gdtAdAppId: String, @NonNull gdtIdMap: MutableMap<String, String>) {
61+
fun initGDTAd(@NonNull context: Application, @NonNull gdtAdAppId: String, @NonNull gdtIdMap: MutableMap<String, String>) {
62+
mContext = context
5663
idMapGDT = gdtIdMap
5764
appIdGDT = gdtAdAppId
5865
}
5966

6067
//穿山甲
61-
fun initCsjAd(@NonNull context: Context, @NonNull csjAdAppId: String, @NonNull appName: String, @NonNull csjIdMap: MutableMap<String, String>) {
68+
fun initCsjAd(@NonNull context: Application, @NonNull csjAdAppId: String, @NonNull appName: String, @NonNull csjIdMap: MutableMap<String, String>) {
69+
mContext = context
6270
idMapCsj = csjIdMap
6371
//强烈建议在应用对应的Application#onCreate()方法中调用,避免出现content为null的异常
6472
TTAdSdk.init(

togetherAd/src/main/java/com/rumtel/ad/helper/splash/TogetherAdSplash.kt

Lines changed: 46 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package com.rumtel.ad.helper.splash
22

33
import android.app.Activity
4+
import android.content.Context
5+
import android.graphics.Point
6+
import android.os.Build
47
import android.support.annotation.NonNull
5-
import android.util.DisplayMetrics
68
import android.view.View
79
import android.view.ViewGroup
10+
import android.view.WindowManager
811
import com.baidu.mobads.SplashAd
912
import com.baidu.mobads.SplashAdListener
1013
import com.bytedance.sdk.openadsdk.AdSlot
@@ -16,6 +19,7 @@ import com.qq.e.ads.splash.SplashADListener
1619
import com.qq.e.comm.util.AdError
1720
import com.rumtel.ad.R
1821
import com.rumtel.ad.TogetherAd
22+
import com.rumtel.ad.TogetherAd.mContext
1923
import com.rumtel.ad.helper.AdBase
2024
import com.rumtel.ad.other.AdNameType
2125
import 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

Comments
 (0)