Skip to content

Commit

Permalink
逻辑完善
Browse files Browse the repository at this point in the history
逻辑完善
  • Loading branch information
Espoir committed Nov 13, 2023
1 parent 28394e1 commit f90161e
Show file tree
Hide file tree
Showing 26 changed files with 1,166 additions and 398 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ android {
compileSdkVersion 31

defaultConfig {
applicationId = "com.black.years.camera"
applicationId = "com.espoir.easyadvapp"
minSdkVersion 21
targetSdkVersion 31
versionCode 1
Expand Down Expand Up @@ -35,5 +35,5 @@ dependencies {
implementation "com.pangle.cn:mediation-sdk:5.7.0.5"
implementation "com.pangle.cn:mediation-ks-adapter:3.3.44.1"//ks adapter
implementation "com.pangle.cn:mediation-gdt-adapter:4.530.1400.1" //gdt adapter
implementation project(":easyadv")
// implementation project(":easyadv")
}
24 changes: 24 additions & 0 deletions app/src/main/java/com/espoir/easyadvapp/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -1,11 +1,35 @@
package com.espoir.easyadvapp

import android.os.Bundle
import android.widget.FrameLayout
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

private var container: FrameLayout? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
container = findViewById(R.id.container)
//
// //显示插屏广告
// EasyAdv.fullVideoConfig()
// .setCodeId("KFC_V_WO_50")
// .setActivity(this)
// .showFullScreenVideoAdv()
//
// //banner广告
// EasyAdv.bannerConfig()
// .setCodeId("KFC_V_WO_50")
// .setActivity(this)
// .showBannerAdv()
//
// //信息流广告
// EasyAdv.feedConfig()
// .setCodeId("KFC_V_WO_50")
// .setActivity(this)
// .setContainer(container)
// .showFeedAdv()
}
}
34 changes: 15 additions & 19 deletions app/src/main/java/com/espoir/easyadvapp/MyApp.kt
Original file line number Diff line number Diff line change
@@ -1,30 +1,26 @@
package com.espoir.easyadvapp

import android.app.Application
import com.espoir.easyadv.EasyAdv
import com.espoir.easyadvapp.ad.TTAdSdkPlatform
import com.espoir.easyadvapp.ad.TTHotSplashAdvStrategy
import com.espoir.easyadvapp.ad.TTSplashAdvEngine

class MyApp : Application() {

override fun onCreate() {
super.onCreate()

EasyAdv.init(this)
.sdkConfig {
context = this@MyApp
appId = "5421722"
appName = "EasyAdvApp"
userId = "123456"
debug = true
}
.setGlobalAdvConfig {
enableHotSplashAdv = true
hotSplashAdvStrategy = TTHotSplashAdvStrategy()
}
.setPlatform(TTAdSdkPlatform())
.setSplashAdvEngine(TTSplashAdvEngine())
.apply()
// EasyAdv.init(this)
// .sdkConfig {
// context = this@MyApp
// appId = "5421722"
// appName = "EasyAdvApp"
// userId = "123456"
// debug = true
// }
// .setGlobalAdvConfig {
// enableHotSplashAdv = true
// hotSplashAdvStrategy = TTHotSplashAdvStrategy()
// }
// .setPlatform(TTAdSdkPlatform())
// .setSplashAdvEngine(TTSplashAdvEngine())
// .apply()
}
}
47 changes: 17 additions & 30 deletions app/src/main/java/com/espoir/easyadvapp/SplashActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,9 @@ package com.espoir.easyadvapp

import android.content.Intent
import android.os.Bundle
import android.widget.FrameLayout
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import com.espoir.easyadv.EasyAdv
import com.espoir.easyadv.setSplashAdvListener
import com.espoir.glidedslib.loadImage
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext

class SplashActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
Expand All @@ -21,31 +13,26 @@ class SplashActivity : AppCompatActivity() {

findViewById<ImageView>(R.id.bgView).loadImage("https://img-blog.csdnimg.cn/3731d157c66a4ab681f78580456f4b4f.png")

lifecycleScope.launch(Dispatchers.IO) {
delay(3000)
withContext(Dispatchers.Main) {
initSplashAdv()
}
}
initSplashAdv()
}

private fun initSplashAdv() {
EasyAdv.splashConfig()
.setCodeId("KFC_V_WO_50")
.setActivity(this)
.setWidth(getScreenWidth())
.setHeight(getScreenHeight())
.setContainer(findViewById<FrameLayout>(R.id.adLayout))
.setSplashAdvListener(onError = { _, _ ->
toMain()
}, onAdClicked = { _, _ ->
toMain()
}, onAdSkip = {
toMain()
}, onAdTimeOver = {
toMain()
})
.showSplashAdv()
// EasyAdv.splashConfig()
// .setCodeId("KFC_V_WO_50")
// .setActivity(this)
// .setWidth(getScreenWidth())
// .setHeight(getScreenHeight())
// .setContainer(findViewById<FrameLayout>(R.id.adLayout))
// .setSplashAdvListener(onError = { _, _ ->
// toMain()
// }, onAdClicked = { _, _ ->
// toMain()
// }, onAdSkip = {
// toMain()
// }, onAdTimeOver = {
toMain()
// })
// .showSplashAdv()
}

private fun toMain() {
Expand Down
77 changes: 34 additions & 43 deletions app/src/main/java/com/espoir/easyadvapp/ad/TTAdSdkPlatform.kt
Original file line number Diff line number Diff line change
@@ -1,45 +1,36 @@
package com.espoir.easyadvapp.ad

import com.bytedance.sdk.openadsdk.TTAdConfig
import com.bytedance.sdk.openadsdk.TTAdConstant
import com.bytedance.sdk.openadsdk.TTAdSdk
import com.bytedance.sdk.openadsdk.mediation.init.MediationConfig
import com.bytedance.sdk.openadsdk.mediation.init.MediationConfigUserInfoForSegment
import com.espoir.easyadv.AdvSDKBuilder
import com.espoir.easyadv.AdvSdkInitCallback
import com.espoir.easyadv.ISdkPlatform

class TTAdSdkPlatform : ISdkPlatform {
override fun initAdvSdk(builder: AdvSDKBuilder, callback: AdvSdkInitCallback) {
TTAdSdk.init(
builder.context, TTAdConfig.Builder()
.appId(builder.appId)
.useTextureView(true)
.appName(builder.appName)
.supportMultiProcess(true)
.titleBarTheme(TTAdConstant.TITLE_BAR_THEME_NO_TITLE_BAR)
.allowShowNotify(false)
.useMediation(true)
.setMediationConfig(
MediationConfig.Builder()
.setMediationConfigUserInfoForSegment(
object : MediationConfigUserInfoForSegment() {
override fun getUserId(): String {
return builder.userId.orEmpty()
}
}).build()
)
.debug(builder.debug)
.build()
)
TTAdSdk.start(object : TTAdSdk.Callback {
override fun success() {
callback.onInitSuccess()
}

override fun fail(code: Int, msg: String?) {
callback.onInitFail(code, msg)
}
})
}
}
//class TTAdSdkPlatform : ISdkPlatform {
// override fun initAdvSdk(builder: AdvSDKBuilder, callback: AdvSdkInitCallback) {
// TTAdSdk.init(
// builder.context, TTAdConfig.Builder()
// .appId(builder.appId)
// .useTextureView(true)
// .appName(builder.appName)
// .supportMultiProcess(true)
// .titleBarTheme(TTAdConstant.TITLE_BAR_THEME_NO_TITLE_BAR)
// .allowShowNotify(false)
// .useMediation(true)
// .setMediationConfig(
// MediationConfig.Builder()
// .setMediationConfigUserInfoForSegment(
// object : MediationConfigUserInfoForSegment() {
// override fun getUserId(): String {
// return builder.userId.orEmpty()
// }
// }).build()
// )
// .debug(builder.debug)
// .build()
// )
// TTAdSdk.start(object : TTAdSdk.Callback {
// override fun success() {
// callback.onInitSuccess()
// }
//
// override fun fail(code: Int, msg: String?) {
// callback.onInitFail(code, msg)
// }
// })
// }
//}
139 changes: 63 additions & 76 deletions app/src/main/java/com/espoir/easyadvapp/ad/TTBannerAdvEngine.kt
Original file line number Diff line number Diff line change
@@ -1,78 +1,65 @@
package com.espoir.easyadvapp.ad

import android.view.View
import androidx.core.view.isVisible
import com.bytedance.sdk.openadsdk.AdSlot
import com.bytedance.sdk.openadsdk.TTAdDislike
import com.bytedance.sdk.openadsdk.TTAdNative
import com.bytedance.sdk.openadsdk.TTAdSdk
import com.bytedance.sdk.openadsdk.TTNativeExpressAd
import com.espoir.easyadv.CallbackType
import com.espoir.easyadv.EasyAdv
import com.espoir.easyadv.IBannerAdvEngine
import com.espoir.easyadv.config.BannerAdvConfig
import com.espoir.easyadv.config.listener

class TTBannerAdvEngine : IBannerAdvEngine {
override fun showBannerAdv(config: BannerAdvConfig) {
if (config.activity == null) {
config.listener(CallbackType.ERROR, EasyAdv.ERROR_ACT, "activity is null")
return
}
if (config.codeId.isEmpty()) {
config.listener(CallbackType.ERROR, EasyAdv.ERROR_PARAM, "codeId is null")
return
}
val act = config.activity?.get() ?: return
val adNativeLoader = TTAdSdk.getAdManager().createAdNative(act)
val adSlot = AdSlot.Builder()
.setAdCount(config.adCount)
.setCodeId(config.codeId)
.setImageAcceptedSize(config.width, config.height) // 单位px
.build()
adNativeLoader.loadBannerExpressAd(adSlot, object : TTAdNative.NativeExpressAdListener {
override fun onError(code: Int, msg: String?) {
config.listener(CallbackType.ERROR, code, msg)
}

override fun onNativeExpressAdLoad(list: MutableList<TTNativeExpressAd>?) {
config.listener(CallbackType.AD_LOAD, config.codeId, list?.getOrNull(0))
list?.getOrNull(0)?.let {
showBannerAdImpl(config, it)
}
}
})
}

private fun showBannerAdImpl(config: BannerAdvConfig, bannerAd: TTNativeExpressAd?) {
bannerAd?.setExpressInteractionListener(object : TTNativeExpressAd.ExpressAdInteractionListener {
override fun onAdClicked(view: View?, i: Int) {
config.listener(CallbackType.AD_CLICK, config.codeId, bannerAd)
}

override fun onAdShow(view: View?, i: Int) {
config.listener(CallbackType.AD_SHOW, config.codeId, bannerAd)
}

override fun onRenderFail(view: View?, s: String, i: Int) {
}

override fun onRenderSuccess(view: View?, v: Float, v1: Float) {
}
})
bannerAd?.setDislikeCallback(config.activity?.get(), object : TTAdDislike.DislikeInteractionCallback {
override fun onShow() {
}

override fun onSelected(i: Int, s: String, b: Boolean) {
}

override fun onCancel() {}
})
config.container?.let {
it.isVisible = true
it.removeAllViews()
it.addView(bannerAd?.expressAdView)
}
}
}
//class TTBannerAdvEngine : IBannerAdvEngine {
// override fun showBannerAdv(config: BannerAdvConfig) {
// if (config.activity == null) {
// config.listener(CallbackType.ERROR, EasyAdv.ERROR_ACT, "activity is null")
// return
// }
// if (config.codeId.isEmpty()) {
// config.listener(CallbackType.ERROR, EasyAdv.ERROR_PARAM, "codeId is null")
// return
// }
// val act = config.activity?.get() ?: return
// val adNativeLoader = TTAdSdk.getAdManager().createAdNative(act)
// val adSlot = AdSlot.Builder()
// .setAdCount(config.adCount)
// .setCodeId(config.codeId)
// .setImageAcceptedSize(config.width, config.height) // 单位px
// .build()
// adNativeLoader.loadBannerExpressAd(adSlot, object : TTAdNative.NativeExpressAdListener {
// override fun onError(code: Int, msg: String?) {
// config.listener(CallbackType.ERROR, code, msg)
// }
//
// override fun onNativeExpressAdLoad(list: MutableList<TTNativeExpressAd>?) {
// config.listener(CallbackType.AD_LOAD, config.codeId, list?.getOrNull(0))
// list?.getOrNull(0)?.let {
// showBannerAdImpl(config, it)
// }
// }
// })
// }
//
// private fun showBannerAdImpl(config: BannerAdvConfig, bannerAd: TTNativeExpressAd?) {
// bannerAd?.setExpressInteractionListener(object : TTNativeExpressAd.ExpressAdInteractionListener {
// override fun onAdClicked(view: View?, i: Int) {
// config.listener(CallbackType.AD_CLICK, config.codeId, bannerAd)
// }
//
// override fun onAdShow(view: View?, i: Int) {
// config.listener(CallbackType.AD_SHOW, config.codeId, bannerAd)
// }
//
// override fun onRenderFail(view: View?, s: String, i: Int) {
// }
//
// override fun onRenderSuccess(view: View?, v: Float, v1: Float) {
// }
// })
// bannerAd?.setDislikeCallback(config.activity?.get(), object : TTAdDislike.DislikeInteractionCallback {
// override fun onShow() {
// }
//
// override fun onSelected(i: Int, s: String, b: Boolean) {
// }
//
// override fun onCancel() {}
// })
// config.container?.let {
// it.isVisible = true
// it.removeAllViews()
// it.addView(bannerAd?.expressAdView)
// }
// }
//}
Loading

0 comments on commit f90161e

Please sign in to comment.