Commit 1602490b authored by wangxuewei's avatar wangxuewei

[提交人]:王雪伟

[提交简述] :幸福农场
[实现方案] :luckyfarm_1.0.4
1.加入瑞狮,sigmob广告平台,接入小满
2.title 钱数加入元单位
3,加速剂给的数量改为后台控制
4.调整土地倒计时,位置上移。
5.加入加速显示缩减时间动画
parent 834a3929
...@@ -36,5 +36,25 @@ ...@@ -36,5 +36,25 @@
<option name="name" value="MavenRepo" /> <option name="name" value="MavenRepo" />
<option name="url" value="https://repo.maven.apache.org/maven2/" /> <option name="url" value="https://repo.maven.apache.org/maven2/" />
</remote-repository> </remote-repository>
<remote-repository>
<option name="id" value="maven" />
<option name="name" value="maven" />
<option name="url" value="https://maven.aliyun.com/repository/google" />
</remote-repository>
<remote-repository>
<option name="id" value="maven2" />
<option name="name" value="maven2" />
<option name="url" value="https://maven.aliyun.com/repository/jcenter" />
</remote-repository>
<remote-repository>
<option name="id" value="maven3" />
<option name="name" value="maven3" />
<option name="url" value="https://maven.aliyun.com/repository/gradle-plugin" />
</remote-repository>
<remote-repository>
<option name="id" value="maven5" />
<option name="name" value="maven5" />
<option name="url" value="http://test.vlion.cn:8081/nexus/content/repositories/inland/" />
</remote-repository>
</component> </component>
</project> </project>
\ No newline at end of file
...@@ -5,8 +5,10 @@ import android.content.Intent ...@@ -5,8 +5,10 @@ import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import com.bx.adsdk.AdSdk
import com.game.luckyfarm.UnityPlayerActivity import com.game.luckyfarm.UnityPlayerActivity
import com.umeng.analytics.MobclickAgent import com.umeng.analytics.MobclickAgent
import com.ym.admodule.rs.RSADUtils
import com.ym.game.activity.SplashActivity import com.ym.game.activity.SplashActivity
import com.ym.game.activity.WxLoginActivity import com.ym.game.activity.WxLoginActivity
import com.ym.game.listener.IDialogViewCloseCallback import com.ym.game.listener.IDialogViewCloseCallback
...@@ -18,6 +20,7 @@ import com.ym.game.view.TurntableDialog ...@@ -18,6 +20,7 @@ import com.ym.game.view.TurntableDialog
import com.ym.library.AppliContext import com.ym.library.AppliContext
import com.ym.library.Constant import com.ym.library.Constant
import com.ym.library.config.AdManager import com.ym.library.config.AdManager
import com.ym.library.config.ZXADCallback
import com.ym.library.config.ZXADRewardVideo import com.ym.library.config.ZXADRewardVideo
import com.ym.library.down.UpdateVersionManager import com.ym.library.down.UpdateVersionManager
import com.ym.library.listener.ZXADVideoListener import com.ym.library.listener.ZXADVideoListener
...@@ -28,6 +31,7 @@ import com.ym.library.net.RxSchedulers ...@@ -28,6 +31,7 @@ import com.ym.library.net.RxSchedulers
import com.ym.library.net.UserInfoEntity import com.ym.library.net.UserInfoEntity
import com.ym.library.router.RounterApi import com.ym.library.router.RounterApi
import com.ym.library.router.RounterBus import com.ym.library.router.RounterBus
import com.ym.library.sm.SMADUtils
import com.ym.library.utils.* import com.ym.library.utils.*
import io.reactivex.Observable import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
...@@ -43,7 +47,6 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback { ...@@ -43,7 +47,6 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback {
private var mOrderString = ""; private var mOrderString = "";
private val mContext = AppliContext.get() private val mContext = AppliContext.get()
private var mRefreshLoginObservable: Observable<Boolean>? = null private var mRefreshLoginObservable: Observable<Boolean>? = null
@SuppressLint("CheckResult")
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
EventUtils.onEvent("tab_imp", "幸运农场") EventUtils.onEvent("tab_imp", "幸运农场")
...@@ -69,6 +72,12 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback { ...@@ -69,6 +72,12 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback {
}, { }, {
}) })
//小满上报
if (Constant.isReportXiaoman) {
AdSdk.exposure("2654", SettingPreference.getToken())
Constant.isReportXiaoman = false
}
} }
override fun onDestroy() { override fun onDestroy() {
...@@ -88,7 +97,7 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback { ...@@ -88,7 +97,7 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback {
super.onResume() super.onResume()
MobclickAgent.onResume(this) MobclickAgent.onResume(this)
Log.d("wxw","onResume") Log.d("wxw","onResume")
callUnity("Form_land", "getLandList", "") // callUnity("Form_land", "getLandList", "")
} }
override fun onPause() { override fun onPause() {
...@@ -125,6 +134,14 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback { ...@@ -125,6 +134,14 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback {
return false return false
} }
/**
* 小满入口
*/
fun gotoXiaoManActivity(){
EventUtils.onEvent("XiaoManClick","小满入口点击");
JumpUtils.jumpXiaomanActivity("天天领现金")
}
/** /**
* 跳转提现页 * 跳转提现页
*/ */
...@@ -132,6 +149,7 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback { ...@@ -132,6 +149,7 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback {
if(type==1){ if(type==1){
JumpUtils.h5Jump("跳转提现页", Constant.Param.WithDraw2, false,act) JumpUtils.h5Jump("跳转提现页", Constant.Param.WithDraw2, false,act)
}else{ }else{
EventUtils.onEvent("WithDrawClick","提现入口点击");
JumpUtils.h5Jump("跳转提现页", Constant.Param.WithDraw, false,act) JumpUtils.h5Jump("跳转提现页", Constant.Param.WithDraw, false,act)
} }
} }
...@@ -140,16 +158,16 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback { ...@@ -140,16 +158,16 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback {
* 上榜赚钱 * 上榜赚钱
*/ */
fun ranklistClick() { fun ranklistClick() {
Log.d("wxw", "上榜赚钱")
//JumpUtils.h5Jump("上榜赚钱", Constant.Param.RankList) //JumpUtils.h5Jump("上榜赚钱", Constant.Param.RankList)
JumpUtils.h5Jump("水滴排行榜", Constant.Param.RankList, false,act) EventUtils.onEvent("PaiHangBangClick","上榜入口点击");
JumpUtils.h5Jump("排行榜", Constant.Param.RankList, false,act)
} }
/** /**
* 每日福利 * 每日福利
*/ */
fun oneveryDayWelfareClick() { fun oneveryDayWelfareClick() {
Log.d("wxw", "每日福利") EventUtils.onEvent("MeiRiFuLiClick","每日福利入口点击");
JumpUtils.h5Jump("每日福利", Constant.Param.WelfareCenter, false,act) JumpUtils.h5Jump("每日福利", Constant.Param.WelfareCenter, false,act)
} }
...@@ -158,7 +176,7 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback { ...@@ -158,7 +176,7 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback {
* 打卡提现 * 打卡提现
*/ */
fun clockInMakeMoney() { fun clockInMakeMoney() {
Log.d("wxw", "打卡提现") EventUtils.onEvent("DaKaTiXianClick","打卡提现入口点击");
JumpUtils.h5Jump("打卡提现", Constant.Param.PunchRecord, false,act) JumpUtils.h5Jump("打卡提现", Constant.Param.PunchRecord, false,act)
} }
...@@ -166,6 +184,7 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback { ...@@ -166,6 +184,7 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback {
* 幸运转盘 * 幸运转盘
*/ */
fun luckyTurntable() { fun luckyTurntable() {
EventUtils.onEvent("ZhuanPanClick","转盘入口点击");
this.runOnUiThread(object : Runnable { this.runOnUiThread(object : Runnable {
override fun run() { override fun run() {
if (Utils.isFastClick()) { if (Utils.isFastClick()) {
...@@ -180,6 +199,7 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback { ...@@ -180,6 +199,7 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback {
* 领金币 * 领金币
*/ */
fun getCoin() { fun getCoin() {
EventUtils.onEvent("RenWuClick","领金币任务入口点击");
this.runOnUiThread(object : Runnable { this.runOnUiThread(object : Runnable {
override fun run() { override fun run() {
SiginDropsPopupwindow().init(this@GameActivity, this@GameActivity) SiginDropsPopupwindow().init(this@GameActivity, this@GameActivity)
......
...@@ -10,6 +10,7 @@ import com.bytedance.sdk.openadsdk.TTSplashAd ...@@ -10,6 +10,7 @@ import com.bytedance.sdk.openadsdk.TTSplashAd
import com.gyf.immersionbar.BarHide import com.gyf.immersionbar.BarHide
import com.gyf.immersionbar.ImmersionBar import com.gyf.immersionbar.ImmersionBar
import com.umeng.analytics.MobclickAgent import com.umeng.analytics.MobclickAgent
import com.ym.admodule.rs.RSADUtils
import com.ym.game.GameActivity import com.ym.game.GameActivity
import com.ym.xync.R import com.ym.xync.R
import com.ym.library.Constant import com.ym.library.Constant
...@@ -17,9 +18,13 @@ import com.ym.library.module.ReportEntity ...@@ -17,9 +18,13 @@ import com.ym.library.module.ReportEntity
import com.ym.library.net.SplashPresenter.Companion.PERMISSIONS import com.ym.library.net.SplashPresenter.Companion.PERMISSIONS
import com.ym.game.utils.CenterDialog import com.ym.game.utils.CenterDialog
import com.ym.library.config.AdManager import com.ym.library.config.AdManager
import com.ym.library.config.ZXADCallback
import com.ym.library.config.ZXADRewardVideo
import com.ym.library.listener.ZXADSplashListener import com.ym.library.listener.ZXADSplashListener
import com.ym.library.listener.ZXADVideoListener
import com.ym.library.module.NewsEntity import com.ym.library.module.NewsEntity
import com.ym.library.net.* import com.ym.library.net.*
import com.ym.library.sm.SMADUtils
import com.ym.library.utils.* import com.ym.library.utils.*
import com.ym.library.wechat.UserApiClient import com.ym.library.wechat.UserApiClient
import org.jetbrains.anko.act import org.jetbrains.anko.act
...@@ -37,7 +42,8 @@ class SplashActivity : BaseActivity(), SplashContract.View { ...@@ -37,7 +42,8 @@ class SplashActivity : BaseActivity(), SplashContract.View {
finish() finish()
return return
} }
Constant.ReportSessionId = "" + System.currentTimeMillis() + ReportUtils.getRandom(10)//上报使用的sessionId Constant.ReportSessionId =
"" + System.currentTimeMillis() + ReportUtils.getRandom(10)//上报使用的sessionId
EventUtils.onEvent("app_start") EventUtils.onEvent("app_start")
ImmersionBar.with(this) ImmersionBar.with(this)
.hideBar(BarHide.FLAG_HIDE_NAVIGATION_BAR) .hideBar(BarHide.FLAG_HIDE_NAVIGATION_BAR)
...@@ -66,8 +72,46 @@ class SplashActivity : BaseActivity(), SplashContract.View { ...@@ -66,8 +72,46 @@ class SplashActivity : BaseActivity(), SplashContract.View {
override fun jumpPage() { override fun jumpPage() {
if (!SettingPreference.getIsShowGuide()) { if (!SettingPreference.getIsShowGuide()) {
EventUtils.onEvent("SplashActivity_loadSplash") EventUtils.onEvent("SplashActivity_loadSplash")
// var newsEntity = NewsEntity()
// newsEntity.codeId = "26329"
// RSADUtils.loadSplashAd(
// newsEntity,
// this,
// splash_container!!,
// object : ZXADSplashListener {
// override fun onSuccessResult() {
// }
//
// },
// tv_skipview,
// object : ZXADCallback {
// override fun onAdSuccess() {
// }
//
// override fun onAdFail() {
// }
//
// })
// var newsEntity2 = NewsEntity()
// newsEntity2.codeId = "e95e6a55551"
// SMADUtils.loadSplashAd(newsEntity2,this,splash_container!!,object :ZXADSplashListener{
// override fun onSuccessResult() {
// }
// },tv_skipview,object :ZXADCallback{
// override fun onAdSuccess() {
// }
//
// override fun onAdFail() {
// }
//
// })
AdManager.loadSplashAd(this, AdManager.loadSplashAd(this,
ADConfig.AD_SPLASH, tv_skipview, splash_container!!,object : ZXADSplashListener { ADConfig.AD_SPLASH, tv_skipview, splash_container!!, object : ZXADSplashListener {
override fun onSuccessResult() { override fun onSuccessResult() {
Log.e("huang", "onSuccessResult()") Log.e("huang", "onSuccessResult()")
} }
...@@ -130,11 +174,11 @@ class SplashActivity : BaseActivity(), SplashContract.View { ...@@ -130,11 +174,11 @@ class SplashActivity : BaseActivity(), SplashContract.View {
startTime = System.currentTimeMillis() startTime = System.currentTimeMillis()
// startActivity(Intent(this@SplashActivity, GameActivity::class.java)) // startActivity(Intent(this@SplashActivity, GameActivity::class.java))
val token = SettingPreference.getToken() val token = SettingPreference.getToken()
if (token.isEmpty()){ if (token.isEmpty()) {
EventUtils.onEvent("login_token_null", "未登录") EventUtils.onEvent("login_token_null", "未登录")
startActivity(Intent(this@SplashActivity, WxLoginActivity::class.java)) startActivity(Intent(this@SplashActivity, WxLoginActivity::class.java))
finish() finish()
}else{ } else {
EventUtils.onEvent("login_token_not_null", "已登录") EventUtils.onEvent("login_token_not_null", "已登录")
startActivity(Intent(this@SplashActivity, GameActivity::class.java)) startActivity(Intent(this@SplashActivity, GameActivity::class.java))
finish() finish()
...@@ -204,13 +248,19 @@ class SplashActivity : BaseActivity(), SplashContract.View { ...@@ -204,13 +248,19 @@ class SplashActivity : BaseActivity(), SplashContract.View {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
EventUtils.onEvent("page_status", Utils.obj2Str(ReportEntity(Constant.ReportSessionId, "SplashActivity", "onResume"))) EventUtils.onEvent(
"page_status",
Utils.obj2Str(ReportEntity(Constant.ReportSessionId, "SplashActivity", "onResume"))
)
MobclickAgent.onResume(this) MobclickAgent.onResume(this)
} }
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
EventUtils.onEvent("page_status", Utils.obj2Str(ReportEntity(Constant.ReportSessionId, "SplashActivity", "onPause"))) EventUtils.onEvent(
"page_status",
Utils.obj2Str(ReportEntity(Constant.ReportSessionId, "SplashActivity", "onPause"))
)
MobclickAgent.onPause(this) MobclickAgent.onPause(this)
} }
} }
\ No newline at end of file
...@@ -11,6 +11,7 @@ import android.util.Log ...@@ -11,6 +11,7 @@ import android.util.Log
import android.webkit.WebView import android.webkit.WebView
import androidx.multidex.MultiDex import androidx.multidex.MultiDex
import androidx.multidex.MultiDexApplication import androidx.multidex.MultiDexApplication
import com.bx.adsdk.AdSdk
import com.tencent.bugly.crashreport.CrashReport import com.tencent.bugly.crashreport.CrashReport
import com.umeng.commonsdk.UMConfigure import com.umeng.commonsdk.UMConfigure
import com.umeng.socialize.PlatformConfig import com.umeng.socialize.PlatformConfig
...@@ -33,15 +34,16 @@ class BaseApplication : MultiDexApplication() { ...@@ -33,15 +34,16 @@ class BaseApplication : MultiDexApplication() {
// Config.init(this) // Config.init(this)
NetConfig.setBase_Url(NetConfig.Environment.PRODUCT)// TODO 上线之后提成成 NetConfig.Environment.PRODUCT NetConfig.setBase_Url(NetConfig.Environment.PRODUCT)// TODO 上线之后提成成 NetConfig.Environment.PRODUCT
Constant.appLs = "a03d5320d905cf3b"//appls Constant.appLs = "a03d5320d905cf3b"//applsq
AdManager.init(//TODO 替换id AdManager.init(//替换id
this, ZXADConfig this, ZXADConfig
.csjId("5113760") .csjId("5113760")
.gdtId("1111127526") .gdtId("1111127526")
// .bdId("ba584026") // .bdId("ba584026")
// .signMob("5105", "9d597f774eb14956") .signMob("6066", "f81de7f854836db4")
.ksId("533500009") .ksId("533500009")
.ylbId("10000160") .ylbId("10000160")
.rsId("31140")
.Build() .Build()
); );
//TODO Android 9及以上必须设置 (聚合快手时必须添加) //TODO Android 9及以上必须设置 (聚合快手时必须添加)
...@@ -78,8 +80,9 @@ class BaseApplication : MultiDexApplication() { ...@@ -78,8 +80,9 @@ class BaseApplication : MultiDexApplication() {
// ToponManager.init(this,isDebug) // ToponManager.init(this,isDebug)
//小满 //小满
// AdSdk.setDebug(isDebug)//打开日志 AdSdk.setDebug(isDebug)//打开日志
// AdSdk.init(this, "qmcgw-az-hdgj_eatxht", "lRu7697I4cHV913y")//初始化 需要在Applicaiton 中 AdSdk.init(this, "xygy-az-hdgj_depamr", "5R0K7vkJPsoE088c")//初始化 需要在Applicaiton 中
} }
override fun attachBaseContext(base: Context?) { override fun attachBaseContext(base: Context?) {
......
...@@ -32,6 +32,25 @@ public class LandListEntity { ...@@ -32,6 +32,25 @@ public class LandListEntity {
private int ownNum; private int ownNum;
private int cloudSecond;
private int acceleratorsSecond;
public int getCloudSecond() {
return cloudSecond;
}
public void setCloudSecond(int cloudSecond) {
this.cloudSecond = cloudSecond;
}
public int getAcceleratorsSecond() {
return acceleratorsSecond;
}
public void setAcceleratorsSecond(int acceleratorsSecond) {
this.acceleratorsSecond = acceleratorsSecond;
}
public int getOwnNum() { public int getOwnNum() {
return ownNum; return ownNum;
} }
......
...@@ -15,6 +15,15 @@ public class StatusEntity { ...@@ -15,6 +15,15 @@ public class StatusEntity {
private int needCoin; private int needCoin;
private int videoNum; private int videoNum;
private int awardNum;//加速剂数量
public int getAwardNum() {
return awardNum;
}
public void setAwardNum(int awardNum) {
this.awardNum = awardNum;
}
public int getNeedCoin() { public int getNeedCoin() {
return needCoin; return needCoin;
......
...@@ -347,7 +347,7 @@ object TurntableDialog : TurntableUtils(), TurntableContract.View { ...@@ -347,7 +347,7 @@ object TurntableDialog : TurntableUtils(), TurntableContract.View {
btnTurntableLottery?.isEnabled = true btnTurntableLottery?.isEnabled = true
tvTurntableCount?.text = "剩余次数: ${mLotteryResult?.lotteryNum}" tvTurntableCount?.text = "剩余次数: ${mLotteryResult?.lotteryNum}"
RxBusUtil.getDefault().send(RxBusConstant.RX_MAIN_UPDATE_HOME_INFO) // RxBusUtil.getDefault().send(RxBusConstant.RX_MAIN_UPDATE_HOME_INFO)
var type = mLotteryResult?.awardType var type = mLotteryResult?.awardType
if (type != null) { if (type != null) {
if (type != 6) { if (type != 6) {
......
PACKAGE_NAME=com.ym.xync PACKAGE_NAME=com.ym.xync
VERSION_CODE=4 VERSION_CODE=5
VERSION_NAME=1.0.3 VERSION_NAME=1.0.4
\ No newline at end of file \ No newline at end of file
...@@ -6,7 +6,6 @@ buildscript { ...@@ -6,7 +6,6 @@ buildscript {
repositories { repositories {
google() google()
jcenter() jcenter()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.6.1' classpath 'com.android.tools.build:gradle:3.6.1'
...@@ -25,6 +24,9 @@ allprojects { ...@@ -25,6 +24,9 @@ allprojects {
maven { maven {
url "http://47.97.184.214:8081/nexus/content/groups/public" url "http://47.97.184.214:8081/nexus/content/groups/public"
} }
maven {
url "http://test.vlion.cn:8081/nexus/content/repositories/inland/"
}
} }
} }
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -59,7 +59,7 @@ repositories { ...@@ -59,7 +59,7 @@ repositories {
dependencies { dependencies {
api fileTree(include: ['*.jar'], dir: 'libs') api fileTree(include: ['*.jar'], dir: 'libs')
api fileTree(include: ['*.aar'], dir: 'libs') api fileTree(include: ['*.aar'], dir: 'libs')
api 'androidx.appcompat:appcompat:1.1.0' api 'androidx.appcompat:appcompat:1.2.0-alpha02'
api 'com.android.support:design:28.0.0' api 'com.android.support:design:28.0.0'
api 'com.android.support:support-v4:28.0.0' api 'com.android.support:support-v4:28.0.0'
api 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72' api 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72'
...@@ -91,6 +91,27 @@ dependencies { ...@@ -91,6 +91,27 @@ dependencies {
api 'com.tencent.bugly:crashreport:latest.release' api 'com.tencent.bugly:crashreport:latest.release'
api 'com.tencent.bugly:nativecrashreport:latest.release' api 'com.tencent.bugly:nativecrashreport:latest.release'
api('cn.vlion.inland:inlandmix:9.8.2') {
exclude group: 'cn.vlion.inland', module: 'inlandb'
exclude group: 'cn.vlion.inland', module: 'inlandg'
exclude group: 'cn.vlion.inland', module: 'inlands'
exclude group: 'cn.vlion.inland', module: 'inlandt'
exclude group: 'cn.vlion.inland', module: 'inlandtf'
exclude group: 'pl.droidsonroids.gif'
exclude group: 'cn.vlion.inland', module: 'inlandk'
exclude group: 'cn.vlion.inland', module: 'inlandimb'
exclude group: 'com.squareup.picasso'
exclude group: 'cn.vlion.inland', module: 'inlanddk'
exclude group: 'com.github.bumptech.glide'
exclude group: 'com.tuia'
exclude group: 'cn.vlion.inland', module: 'inlandhy'
exclude group: 'com.mintegral.msdk'
exclude group: 'cn.vlion.inlandsh'
}
api "com.bx:adsdk:1.3.3"
} }
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<permission android:name="android.permission.DELETE_PACKAGES" /> <permission android:name="android.permission.DELETE_PACKAGES" />
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" /> <uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.READ_LOGS" />
...@@ -66,25 +67,6 @@ ...@@ -66,25 +67,6 @@
android:usesCleartextTraffic="true"> android:usesCleartextTraffic="true">
<!-- <activity-->
<!-- android:name="com.baidu.mobads.AppActivity"-->
<!-- android:configChanges="screenSize|keyboard|keyboardHidden|orientation"-->
<!-- android:theme="@android:style/Theme.Translucent.NoTitleBar" />-->
<!--<provider
android:name="com.baidu.mobads.openad.BdFileProvider"
android:authorities="${applicationId}.bd.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/bd_file_path" />
</provider>-->
<activity <activity
android:name=".net.PermissionsActivity" android:name=".net.PermissionsActivity"
android:configChanges="orientation|keyboardHidden|screenSize" android:configChanges="orientation|keyboardHidden|screenSize"
...@@ -92,75 +74,6 @@ ...@@ -92,75 +74,6 @@
android:theme="@android:style/Theme.Translucent.NoTitleBar" /> android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!--全屏广告,激励视频-->
<!--<activity
android:name="com.qq.e.ads.PortraitADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:launchMode="singleTask"
android:screenOrientation="portrait" />
<activity
android:name="com.qq.e.ads.LandscapeADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="landscape" />-->
<!-- <uses-library-->
<!-- android:name="org.apache.http.legacy"-->
<!-- android:required="false" />-->
<!-- 声明SDK所需要的组件 -->
<!-- <service
android:name="com.qq.e.comm.DownloadService"
android:exported="false" />-->
<!-- 请开发者注意字母的大小写,ADActivity,而不是AdActivity -->
<!-- <activity-->
<!-- android:name="com.qq.e.ads.ADActivity"-->
<!-- android:configChanges="keyboard|keyboardHidden|orientation|screenSize" />-->
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<!--<provider
android:name="com.bytedance.sdk.openadsdk.TTFileProvider"
android:authorities="${applicationId}.TTFileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>-->
<!-- <provider-->
<!-- android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider"-->
<!-- android:authorities="${applicationId}.TTMultiProvider"-->
<!-- android:exported="false" />-->
<!--广告展示Activity -->
<!--<activity
android:name="com.sigmob.sdk.base.common.AdActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.DeviceDefault" />
<provider
android:name="com.sigmob.sdk.SigmobXFileProvider"
android:authorities="${applicationId}.sigprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/sigmob_provider_paths" />
</provider>-->
<activity <activity
android:name=".activity.WebViewActivity" android:name=".activity.WebViewActivity"
android:exported="true" android:exported="true"
...@@ -206,153 +119,101 @@ ...@@ -206,153 +119,101 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity
android:name=".activity.XiaoManActivity"
android:exported="true"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="xiaoman"
android:scheme="luckyfarm" />
</intent-filter>
</activity>
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<!-- network type: china/network_sdk/pangle/AndroidManifest.xml-->
<provider
android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider"
android:authorities="${applicationId}.TTMultiProvider"
android:exported="false" />
<provider <provider
android:name="com.bytedance.sdk.openadsdk.TTFileProvider" android:name="com.baidu.mobads.openad.BdFileProvider"
android:authorities="${applicationId}.TTFileProvider" android:authorities="${applicationId}.bd.provider"
android:exported="false" android:exported="false"
android:grantUriPermissions="true"> android:grantUriPermissions="true">
<meta-data <meta-data
android:name="android.support.FILE_PROVIDER_PATHS" android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/anythink_bk_tt_file_path" /> android:resource="@xml/bd_file_path" />
</provider> </provider>
<!-- network type: china/network_sdk/gdt/AndroidManifest.xml-->
<service
android:name="com.qq.e.comm.DownloadService"
android:exported="false" />
<activity
android:name="com.qq.e.ads.ADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" />
<!--全屏广告,激励视频-->
<activity <activity
android:name="com.qq.e.ads.PortraitADActivity" android:name="com.qq.e.ads.PortraitADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:launchMode="singleTask"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name="com.qq.e.ads.LandscapeADActivity" android:name="com.qq.e.ads.LandscapeADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="landscape" /> android:screenOrientation="landscape" />
<!--&lt;!&ndash; <uses-permission android:name="android.permission.INTERNET" />--> <uses-library
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" />--> android:name="org.apache.http.legacy"
<!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />--> android:required="false" />
<!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />--> <!-- 声明SDK所需要的组件 -->
<!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />--> <service
<!-- <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />--> android:name="com.qq.e.comm.DownloadService"
<!-- <uses-permission android:name="android.permission.GET_TASKS" />--> android:exported="false" />
<!-- <uses-permission android:name="android.permission.WAKE_LOCK" />--> <!-- 请开发者注意字母的大小写,ADActivity,而不是AdActivity -->
<!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />-->
<!--<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />-->
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" />-->
<!-- &lt;!&ndash; <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />&ndash;&gt;-->
<!-- &lt;!&ndash; <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />&ndash;&gt;-->
<!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />-->
<!-- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />-->
<!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />-->
<!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />&ndash;&gt;-->
<!-- network type: china/network_sdk/mintegral/AndroidManifest.xml-->
<!-- <activity-->
<!-- android:name="com.mintegral.msdk.activity.MTGCommonActivity"-->
<!-- android:configChanges="keyboard|orientation"-->
<!-- android:exported="false"-->
<!-- android:screenOrientation="portrait"-->
<!-- android:theme="@android:style/Theme.Translucent.NoTitleBar"></activity>-->
<!-- <receiver android:name="com.mintegral.msdk.click.AppReceiver">-->
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.PACKAGE_ADDED" />-->
<!-- <data android:scheme="package" />-->
<!-- </intent-filter>-->
<!-- </receiver>-->
<!-- <service android:name="com.mintegral.msdk.shell.MTGService">-->
<!-- <intent-filter>-->
<!-- <action android:name="com.mintegral.msdk.download.action" />-->
<!-- </intent-filter>-->
<!-- </service>-->
<!-- <activity-->
<!-- android:name="com.mintegral.msdk.reward.player.MTGRewardVideoActivity"-->
<!-- android:configChanges="orientation|keyboardHidden|screenSize"-->
<!-- android:exported="false"-->
<!-- android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />-->
<!-- <activity-->
<!-- android:name="com.mintegral.msdk.interstitial.view.MTGInterstitialActivity"-->
<!-- android:configChanges="orientation|screenSize"-->
<!-- android:exported="false"-->
<!-- android:screenOrientation="portrait" />-->
<!-- <provider-->
<!-- android:name="com.mintegral.msdk.base.utils.MTGFileProvider"-->
<!-- android:authorities="${applicationId}.mtgFileProvider"-->
<!-- android:exported="false"-->
<!-- android:grantUriPermissions="true">-->
<!-- <meta-data-->
<!-- android:name="android.support.FILE_PROVIDER_PATHS"-->
<!-- android:resource="@xml/anythink_bk_mtg_file_path" />-->
<!-- </provider>-->
<!-- network type: china/network_sdk/baidu/AndroidManifest.xml-->
<!-- 非信息广告必须添加 -->
<activity <activity
android:name="com.baidu.mobads.AppActivity" android:name="com.qq.e.ads.ADActivity"
android:configChanges="screenSize|keyboard|keyboardHidden|orientation" android:configChanges="keyboard|keyboardHidden|orientation|screenSize" />
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<provider <provider
android:name="com.baidu.mobads.openad.BdFileProvider" android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.bd.provider" android:authorities="${applicationId}.fileprovider"
android:exported="false" android:exported="false"
android:grantUriPermissions="true"> android:grantUriPermissions="true">
<meta-data <meta-data
android:name="android.support.FILE_PROVIDER_PATHS" android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/anythink_bk_baidu_file_path" /> android:resource="@xml/file_paths" />
</provider> </provider>
<!-- network type: china/network_sdk/sigmob/AndroidManifest.xml-->
<!-- targetSDKVersion >= 24时才需要添加这个provider。
provider的authorities属性的值为${applicationId}.sigprovider -->
<provider <provider
android:name="com.sigmob.sdk.SigmobFileProvider" android:name="com.bytedance.sdk.openadsdk.TTFileProvider"
android:authorities="${applicationId}.sigprovider" android:authorities="${applicationId}.TTFileProvider"
android:exported="false" android:exported="false"
android:grantUriPermissions="true" android:grantUriPermissions="true">
tools:ignore="Instantiatable">
<meta-data <meta-data
android:name="android.support.FILE_PROVIDER_PATHS" android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/anythink_bk_sigmob_file_path" /> android:resource="@xml/file_paths" />
</provider> </provider>
<provider
android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider"
android:authorities="${applicationId}.TTMultiProvider"
android:exported="false" />
<!--广告展示Activity --> <!--广告展示Activity -->
<activity <activity
android:name="com.sigmob.sdk.base.common.AdActivity" android:name="com.sigmob.sdk.base.common.AdActivity"
android:configChanges="keyboardHidden|orientation|screenSize" android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.DeviceDefault" /> android:theme="@android:style/Theme.DeviceDefault" />
<provider
android:name="com.sigmob.sdk.SigmobXFileProvider"
android:authorities="${applicationId}.sigprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/sigmob_provider_paths" />
</provider>
<provider <provider
android:name="com.wannuosili.sdk.ad.component.WNFileProvider" android:name="com.wannuosili.sdk.ad.component.WNFileProvider"
android:authorities="${applicationId}.WNFileProvider" android:authorities="${applicationId}.WNFileProvider"
...@@ -363,7 +224,25 @@ ...@@ -363,7 +224,25 @@
android:resource="@xml/wn_file_paths" /> android:resource="@xml/wn_file_paths" />
</provider> </provider>
<provider
android:name="com.meishu.sdk.core.service.MeishuFileProvider"
android:authorities="${applicationId}.MeishuFileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/meishu_file_path" />
</provider>
<meta-data
android:name="TZ_APP_KEY"
android:value="qwqwq381fa7970a045342b004c42d5e" />
<meta-data
android:name="TZ_APP_SECRET"
android:value="c5c1a932c4749cd1be1db53419c97457" />
<meta-data
android:name="TZ_APP_CHANNEL"
android:value="TZ-001" />
</application> </application>
......
...@@ -591,4 +591,5 @@ public class Constant { ...@@ -591,4 +591,5 @@ public class Constant {
} }
public static String ReportSessionId = ""; public static String ReportSessionId = "";
public static boolean isReportXiaoman = true;
} }
...@@ -595,7 +595,7 @@ abstract class JavaInterface { ...@@ -595,7 +595,7 @@ abstract class JavaInterface {
val data = Utils.str2Obj(str, NewsEntity::class.java) as NewsEntity? val data = Utils.str2Obj(str, NewsEntity::class.java) as NewsEntity?
if (data != null) { if (data != null) {
JumpUtils.adJump(data,act) JumpUtils.adJump(data, act)
} }
} }
...@@ -880,7 +880,7 @@ abstract class JavaInterface { ...@@ -880,7 +880,7 @@ abstract class JavaInterface {
fun jumpWebActivity(json: String) { fun jumpWebActivity(json: String) {
act?.runOnUiThread(Runnable { act?.runOnUiThread(Runnable {
val newsEntity: NewsEntity = Utils.str2Obj(json, NewsEntity::class.java) as NewsEntity val newsEntity: NewsEntity = Utils.str2Obj(json, NewsEntity::class.java) as NewsEntity
JumpUtils.adJump(newsEntity,act) JumpUtils.adJump(newsEntity, act)
/*JumpUtils.webH5Jump( /*JumpUtils.webH5Jump(
newsEntity.title, newsEntity.title,
newsEntity.url, newsEntity.url,
...@@ -910,7 +910,7 @@ abstract class JavaInterface { ...@@ -910,7 +910,7 @@ abstract class JavaInterface {
@JavascriptInterface @JavascriptInterface
fun h5Jump(h5: String) { fun h5Jump(h5: String) {
act?.finish() act?.finish()
JumpUtils.h5Jump("", h5, false,act) JumpUtils.h5Jump("", h5, false, act)
// mWebView?.loadUrl(h5) // mWebView?.loadUrl(h5)
} }
...@@ -920,17 +920,16 @@ abstract class JavaInterface { ...@@ -920,17 +920,16 @@ abstract class JavaInterface {
*/ */
@JavascriptInterface @JavascriptInterface
fun showDialog(waterDropCount: Int, type: Int) { fun showDialog(waterDropCount: Int, type: Int) {
if (act == null) return
mWebView.context.runOnUiThread { mWebView.context.runOnUiThread {
CenterDialog.showgetWaterDrop( CenterDialog.showgetWaterDrop(
mWebView.context, act,
type, type,
waterDropCount, waterDropCount,
object : DialogInterface.OnCancelListener { DialogInterface.OnCancelListener {
override fun onCancel(p0: DialogInterface?) {
mWebView.context.runOnUiThread { mWebView.context.runOnUiThread {
mWebView?.loadUrl("javascript:onResume()") mWebView?.loadUrl("javascript:onResume()")
} }
}
}, },
mWebView mWebView
) )
......
package com.ym.library.activity
import android.util.Log
import com.bx.adsdk.CampaignCallback
import com.bx.adsdk.CampaignFragment
import com.bytedance.sdk.openadsdk.*
import com.google.gson.Gson
import com.qq.e.ads.rewardvideo.RewardVideoAD
import com.qq.e.ads.rewardvideo.RewardVideoADListener
import com.qq.e.comm.managers.GDTADManager
import com.qq.e.comm.util.AdError
import com.umeng.analytics.MobclickAgent
import com.ym.library.Constant
import com.ym.library.R
import com.ym.library.module.ReportEntity
import com.ym.library.net.*
import com.ym.library.utils.EventUtils
import com.ym.library.utils.SettingPreference
import com.ym.library.utils.Utils
import kotlinx.android.synthetic.main.activity_xiaoman.*
class XiaoManActivity : BaseActivity() {
override fun layoutID(): Int = R.layout.activity_xiaoman
private var campaignFragment: CampaignFragment? = null
private var rewardVideoAD: RewardVideoAD? = null
override fun init() {
id_tv_title.text = intent.data?.getQueryParameter("title")
/**
* @param userId 用户id,必传,不能为空,不能为0
* @param placeId 资源位id:必传
* @param callback CampaignCallback 回调
*/
campaignFragment = CampaignFragment.newInstance(SettingPreference.getToken())
campaignFragment?.setPlaceId("2654")
campaignFragment?.setCallback(object : CampaignCallback() {
override fun showAd(params: String) {
super.showAd(params)
val bridgeBean: XiaoManEntity = Gson().fromJson(params, XiaoManEntity::class.java)
val adType: String = bridgeBean.adType.toString()
val pId: String = bridgeBean.pid.toString()
val requestId: String = bridgeBean.requestId.toString()
if (adType.equals("1")) {
showTTAd("5113760", pId, requestId)
} else {
showGDTAd("1111127526", pId, requestId)
}
}
})
// campaignFragment?.canGoBack()//webview 是否可以返回上一页
// campaignFragment?.goBack()//webview 返回上一页
supportFragmentManager.beginTransaction().add(R.id.id_activity_fragment_content, campaignFragment!!).commitAllowingStateLoss()
id_iv_back.setOnClickListener {
finish()
}
}
/**
* 穿山甲广告
*/
fun showTTAd(appId: String, pId: String, requestId: String) {
//强烈建议在应用对应的Application#onCreate()方法中调用,避免出现content为null的异常
TTAdSdk.init(
this@XiaoManActivity,
TTAdConfig.Builder()
.appId(appId)
.useTextureView(true) //使用TextureView控件播放视频,默认为SurfaceView,当有SurfaceView冲突的场景,可以使用TextureView
.appName(this@XiaoManActivity.getString(R.string.app_name))
.titleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK)
.allowShowNotify(true) //是否允许sdk展示通知栏提示
.allowShowPageWhenScreenLock(true) //是否在锁屏场景支持展示广告落地页
.debug(true) //测试阶段打开,可以通过日志排查问题,上线时去除该调用
.directDownloadNetworkType(
TTAdConstant.NETWORK_STATE_WIFI,
TTAdConstant.NETWORK_STATE_3G
) //允许直接下载的网络状态集合
.supportMultiProcess(false) //是否支持多进程,true支持
//.httpStack(new MyOkStack3())//自定义网络库,demo中给出了okhttp3版本的样例,其余请自行开发或者咨询工作人员。
.build()
)
val mTTAdNative = TTAdSdk.getAdManager().createAdNative(this@XiaoManActivity)
val adSlot = AdSlot.Builder()
.setCodeId(pId)
.setSupportDeepLink(true)
.setAdCount(2) //个性化模板广告需要设置期望个性化模板广告的大小,单位dp,激励视频场景,只要设置的值大于0即可
.setExpressViewAcceptedSize(500f, 500f)
.setImageAcceptedSize(1080, 1920)
.setRewardName("金币") //奖励的名称
.setRewardAmount(0) //奖励的数量
//必传参数,表来标识应用侧唯一用户;若非服务器回调模式或不需sdk透传
//可设置为空字符串
.setUserID("")//userId
.setOrientation(TTAdConstant.VERTICAL) //设置期望视频播放的方向,为TTAdConstant.HORIZONTAL或TTAdConstant.VERTICAL
// .setMediaExtra("media_extra") //用户透传的信息,可不传
.build()
mTTAdNative.loadRewardVideoAd(adSlot, object : TTAdNative.RewardVideoAdListener {
override fun onError(code: Int, message: String) {
campaignFragment?.setVideoError(requestId)
}
//视频广告加载后的视频文件资源缓存到本地的回调
override fun onRewardVideoCached() {}
//视频广告素材加载到,如title,视频url等,不包括视频文件
override fun onRewardVideoAdLoad(ad: TTRewardVideoAd) {
ad.setRewardAdInteractionListener(object :
TTRewardVideoAd.RewardAdInteractionListener {
override fun onAdShow() {
campaignFragment?.setVideoLoad(requestId)
EventUtils.onEvent("XIAO_MAN_CSJ_SHOW","小满穿山甲广告展示")
}
override fun onAdVideoBarClick() {
EventUtils.onEvent("XIAO_MAN_CSJ_CLICK","小满穿山甲广告点击")
}
override fun onAdClose() {
EventUtils.onEvent("XIAO_MAN_CSJ_CLOSE_CLICK","小满穿山甲广告关闭点击")
campaignFragment?.setVideoClose(requestId)
}
override fun onVideoError() {
campaignFragment?.setVideoError(requestId)
}
override fun onVideoComplete() {
campaignFragment?.setVideoComplete(requestId)
}
override fun onRewardVerify(rewardVerify: Boolean, rewardAmount: Int, rewardName: String?) {}
override fun onSkippedVideo() {}
})
ad.setDownloadListener(object : TTAppDownloadListener {
override fun onIdle() {}
override fun onDownloadActive(totalBytes: Long, currBytes: Long, fileName: String, appName: String) {}
override fun onDownloadPaused(totalBytes: Long, currBytes: Long, fileName: String, appName: String) {}
override fun onDownloadFailed(totalBytes: Long, currBytes: Long, fileName: String, appName: String) {}
override fun onDownloadFinished(totalBytes: Long, fileName: String, appName: String) {}
override fun onInstalled(fileName: String, appName: String) {}
})
ad.showRewardVideoAd(this@XiaoManActivity)
}
})
}
/**
* 广点通广告
*/
fun showGDTAd(appID: String, pId: String, requestId: String) {
GDTADManager.getInstance().initWith(this@XiaoManActivity, requestId)
rewardVideoAD = RewardVideoAD(this, appID, pId, object : RewardVideoADListener {
override fun onADLoad() {
if (rewardVideoAD != null) rewardVideoAD?.showAD()
campaignFragment?.setVideoLoad(requestId)
}
override fun onVideoCached() {}
override fun onADShow() {
EventUtils.onEvent("XIAO_MAN_GDT_SHOW","小满广点通广告展示")
}
override fun onADExpose() {}
override fun onReward() {}
override fun onADClick() {
EventUtils.onEvent("XIAO_MAN_GDT_CLICK","小满广点通广告点击")
}
override fun onVideoComplete() {
campaignFragment?.setVideoComplete(requestId)
}
override fun onADClose() {
EventUtils.onEvent("XIAO_MAN_GDT_CLOSE_CLICK","小满广点通广告关闭点击")
campaignFragment?.setVideoClose(requestId)
}
override fun onError(adError: AdError) {
campaignFragment?.setVideoError(requestId)
}
})
rewardVideoAD?.loadAD()
}
override fun onResume() {
super.onResume()
EventUtils.onEvent("page_status", Utils.obj2Str(ReportEntity(Constant.ReportSessionId, "XiaoManActivity", "onResume")))
MobclickAgent.onResume(this)
}
override fun onPause() {
super.onPause()
EventUtils.onEvent("page_status", Utils.obj2Str(ReportEntity(Constant.ReportSessionId, "XiaoManActivity", "onPause")))
MobclickAgent.onPause(this)
}
class XiaoManEntity {
var adType: String? = ""
var requestId: String? = ""
var pid: String? = ""
}
/**
* 看视频上报
*/
fun videoClick() {
// ApiClient.userApi.videoReport().compose(
// RxSchedulers.observableIO2Main()).subscribe(object : BaseObserver<String>() {
// override fun onSuccess(result: String?) {}
// override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {}
// })
}
fun videoShow(){
}
fun videoCloseClick(){
}
}
\ No newline at end of file
...@@ -23,7 +23,7 @@ import com.ym.library.utils.EventUtils ...@@ -23,7 +23,7 @@ import com.ym.library.utils.EventUtils
import com.ym.library.utils.LogHelper import com.ym.library.utils.LogHelper
object BDADUtils { object BDADUtils {
private const val TAG = "AdManager"
//开屏 //开屏
fun loadSplashAd(newsEntity: NewsEntity, activity: Activity, container: ViewGroup, zxadListener: ZXADSplashListener?, skipView: TextView?,zxadCallback: ZXADCallback) { fun loadSplashAd(newsEntity: NewsEntity, activity: Activity, container: ViewGroup, zxadListener: ZXADSplashListener?, skipView: TextView?,zxadCallback: ZXADCallback) {
// 广告展现前先调用sdk初始化方法,可以有效缩短广告第一次展现所需时间 // 广告展现前先调用sdk初始化方法,可以有效缩短广告第一次展现所需时间
...@@ -35,18 +35,18 @@ object BDADUtils { ...@@ -35,18 +35,18 @@ object BDADUtils {
// 增加lp页面关闭回调,不需要该回调的继续使用原来接口就可以 // 增加lp页面关闭回调,不需要该回调的继续使用原来接口就可以
val listener: SplashLpCloseListener = object : SplashLpCloseListener { val listener: SplashLpCloseListener = object : SplashLpCloseListener {
override fun onLpClosed() { override fun onLpClosed() {
Toast.makeText(activity, "lp页面关闭", Toast.LENGTH_SHORT).show() // Toast.makeText(activity, "lp页面关闭", Toast.LENGTH_SHORT).show()
zxadListener?.onAdSkip() zxadListener?.onAdSkip()
Log.d(TAG,"百度 开屏 onLpClosed")
} }
override fun onAdDismissed() { override fun onAdDismissed() {
Log.i("RSplashActivity", "onAdDismissed")
zxadListener?.onAdSkip() zxadListener?.onAdSkip()
Log.d(TAG,"百度 开屏 onAdDismissed")
} }
override fun onAdFailed(arg0: String) { override fun onAdFailed(arg0: String) {
Log.i("RSplashActivity", arg0) Log.d(TAG,"百度 开屏 onAdFailed" + arg0)
zxadListener?.onAdSkip() zxadListener?.onAdSkip()
zxadCallback.onAdFail() zxadCallback.onAdFail()
...@@ -54,12 +54,12 @@ object BDADUtils { ...@@ -54,12 +54,12 @@ object BDADUtils {
} }
override fun onAdPresent() { override fun onAdPresent() {
Log.i("RSplashActivity", "onAdPresent") Log.d(TAG,"百度 开屏 onAdPresent")
container.setVisibility(View.GONE) container.setVisibility(View.GONE)
} }
override fun onAdClick() { override fun onAdClick() {
Log.i("RSplashActivity", "onAdClick") Log.d(TAG,"百度 开屏 onAdClick")
// 设置开屏可接受点击时,该回调可用 // 设置开屏可接受点击时,该回调可用
zxadListener?.onAdClicked(newsEntity) zxadListener?.onAdClicked(newsEntity)
...@@ -166,14 +166,14 @@ object BDADUtils { ...@@ -166,14 +166,14 @@ object BDADUtils {
val handler = object : Handler() { val handler = object : Handler() {
override fun handleMessage(msg: Message?) { override fun handleMessage(msg: Message) {
super.handleMessage(msg)
if (mRewardVideoAd != null) { if (mRewardVideoAd != null) {
mRewardVideoAd.show() mRewardVideoAd.show()
removeCallbacksAndMessages(null) removeCallbacksAndMessages(null)
} else{ } else{
sendEmptyMessageDelayed(1,20) sendEmptyMessageDelayed(1,20)
} }
} }
} }
...@@ -182,70 +182,6 @@ object BDADUtils { ...@@ -182,70 +182,6 @@ object BDADUtils {
} }
//激励视频
fun loadReward2VideoAd(
activity: Activity,
newsEntity: NewsEntity,
listener: ZXADVideoListener,
callback: ZXADCallback
) {
// 激励视屏产品可以选择是否使用SurfaceView进行渲染视频
var mRewardVideoAd = RewardVideoAd(
activity,
newsEntity.codeId, object :RewardVideoAd.RewardVideoAdListener{
override fun onAdFailed(p0: String?) {
callback.onAdFail()
}
override fun playCompletion() {
}
override fun onAdShow() {
// AdUpload.onAdImpression(newsEntity)
}
override fun onAdClick() {
// AdUpload.onAdClick(newsEntity)
}
override fun onAdClose(p0: Float) {
}
override fun onVideoDownloadSuccess() {
}
override fun onVideoDownloadFailed() {
}
}, true)
mRewardVideoAd.load()
listener.onLoadVideoAd(ZXADRewardVideo(mRewardVideoAd))
// val handler = object : Handler() {
// override fun handleMessage(msg: Message?) {
// if (mRewardVideoAd != null) {
// mRewardVideoAd.show()
// removeCallbacksAndMessages(null)
// } else{
// sendEmptyMessageDelayed(1,50)
// }
//
// }
//
// }
// handler.sendEmptyMessageDelayed(1,50)
}
//信息流 原生 //信息流 原生
fun loadFeedNativeAd(activity:Activity,newsEntity: NewsEntity,zxadCallback: ZXADCallback){ fun loadFeedNativeAd(activity:Activity,newsEntity: NewsEntity,zxadCallback: ZXADCallback){
......
...@@ -7,6 +7,7 @@ import android.util.Log ...@@ -7,6 +7,7 @@ import android.util.Log
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.TextView import android.widget.TextView
import cn.vlion.ad.core.ADManager
import com.baidu.mobads.AdView import com.baidu.mobads.AdView
import com.baidu.mobads.rewardvideo.RewardVideoAd import com.baidu.mobads.rewardvideo.RewardVideoAd
import com.bytedance.sdk.openadsdk.TTAdConfig import com.bytedance.sdk.openadsdk.TTAdConfig
...@@ -24,6 +25,7 @@ import com.tz.sdk.core.engine.ADEngineConfig ...@@ -24,6 +25,7 @@ import com.tz.sdk.core.engine.ADEngineConfig
import com.wannuosili.sdk.WNAdConfig import com.wannuosili.sdk.WNAdConfig
import com.wannuosili.sdk.WNAdSdk import com.wannuosili.sdk.WNAdSdk
import com.ym.admodule.listener.ZXADDrawListener import com.ym.admodule.listener.ZXADDrawListener
import com.ym.admodule.rs.RSADUtils
import com.ym.library.bd.BDADUtils import com.ym.library.bd.BDADUtils
import com.ym.library.csj.TTADUtils import com.ym.library.csj.TTADUtils
import com.ym.library.gdt.GDTAdUtils import com.ym.library.gdt.GDTAdUtils
...@@ -111,6 +113,7 @@ object AdManager { ...@@ -111,6 +113,7 @@ object AdManager {
//.httpStack(new MyOkStack3())//自定义网络库,demo中给出了okhttp3版本的样例,其余请自行开发或者咨询工作人员。 //.httpStack(new MyOkStack3())//自定义网络库,demo中给出了okhttp3版本的样例,其余请自行开发或者咨询工作人员。
.build() .build()
) )
} }
...@@ -128,33 +131,43 @@ object AdManager { ...@@ -128,33 +131,43 @@ object AdManager {
//TODO 珊瑚 2.1 //TODO 珊瑚 2.1
ADEngine.getInstance(context) /* ADEngine.getInstance(context)
.start( .start(
ADEngineConfig.Builder(context) ADEngineConfig.Builder(context)
.allowAutoNetworkSwitch(true) //是否允许切换至流量继续下载广告,默认true .allowAutoNetworkSwitch(true) //是否允许切换至流量继续下载广告,默认true
.log(true) //日志输出,默认false .log(true) //日志输出,默认false
.verbose(true) //日志输出唠叨模式(信息更详细),默认false .verbose(true) //日志输出唠叨模式(信息更详细),默认false
.forTest(false) //是否连接测试环境(如果上游支持),默认false .forTest(false) //是否连接测试环境(如果上游支持),默认false
.build() .build(),object :IADEngineState {
override fun onIdle() {}
override fun onFailed(code: Int, msg: String?) {
Log.e(TAG, "ADEngine failed: code=${code},msg=${msg}")
}
override fun onStarting() {}
override fun onStarted() {
Log.d(TAG, "珊瑚 ADEngine started")
}
}
) )
//TODO 珊瑚广告 需要珊瑚配置后才能调用 //TODO 珊瑚广告 需要珊瑚配置后才能调用
// TMSDKContext.setTMSDKLogEnable(true) TMSDKContext.setTMSDKLogEnable(true)
// TMSDKContext.init(context, object : AbsTMSConfig() { TMSDKContext.init(context, object : AbsTMSConfig() {
// override fun getServerAddress(): String { override fun getServerAddress(): String {
// return TCP_SERVER return TCP_SERVER
// } }
//
// }) })
// TMSDKContext.setAutoConnectionSwitch(context,true) TMSDKContext.setAutoConnectionSwitch(context,true)
//
// //初始化广告和下载回调 //初始化广告和下载回调
// //初始化广告和下载回调 //初始化广告和下载回调
// ShanHuAD.init( ShanHuAD.init(
// TMSDKContext.getApplicationContext(), TMSDKContext.getApplicationContext(),
// H5Browser(), H5Browser(),
// TMSDKContext.getCoinProductId() TMSDKContext.getCoinProductId()
// ) )*/
//SignMob广告 初始化 //SignMob广告 初始化
...@@ -179,16 +192,23 @@ object AdManager { ...@@ -179,16 +192,23 @@ object AdManager {
} }
if(!TextUtils.isEmpty(adconfig.KS_APP_ID)) { if(!TextUtils.isEmpty(adconfig.KS_APP_ID)) {
//快手初始化 //快手初始化
KsAdSDK.init( com.kwad.sdk.api.KsAdSDK.init(
context, SdkConfig.Builder() context, com.kwad.sdk.api.SdkConfig.Builder()
.appId(adconfig.KS_APP_ID) // 测试aapId,请联系快⼿平台申请正式AppId,必填 .appId(adconfig.KS_APP_ID) // 测试aapId,请联系快⼿平台申请正式AppId,必填
.appName("幸运农场") // 测试appName,请填写您应⽤的名称, .appName("") // 测试appName,请填写您应⽤的名称,
.showNotification(true) // 是否展示下载通知栏 .showNotification(true) // 是否展示下载通知栏
.debug(adconfig.IS_DEUG) // 是否开启sdk 调试⽇志 可选 .debug(adconfig.IS_DEUG) // 是否开启sdk 调试⽇志 可选
.build() .build()
); );
} }
//瑞狮
if (!TextUtils.isEmpty(adconfig.RS_APP_ID)) {
ADManager.getInstance()
.init(context,adconfig.RS_APP_ID)
.setException(true)
}
} }
...@@ -342,14 +362,14 @@ object AdManager { ...@@ -342,14 +362,14 @@ object AdManager {
fun loadRewardVideoAd(slotName: String, mActivity: Activity, listener: ZXADVideoListener) { fun loadRewardVideoAd(slotName: String, mActivity: Activity, listener: ZXADVideoListener) {
if (AdCache.rewardList.get(slotName)==null||AdCache.rewardList.get(slotName)?.size!! <=0) { if (AdCache.rewardList.get(slotName)==null||AdCache.rewardList.get(slotName)?.size!! <=0) {
Log.e("huang","请求服务器 获取广告数据") Log.e(TAG,"请求服务器 获取广告数据")
ZXADClient.adApi.getAd(slotName).compose(RxSchedulers.observableIO2Main()) ZXADClient.adApi.getAd(slotName).compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<List<NewsEntity>>() { .subscribe(object : BaseObserver<List<NewsEntity>>() {
override fun onSuccess(result: List<NewsEntity>) { override fun onSuccess(result: List<NewsEntity>) {
if (result != null && result.isNotEmpty()) { if (result != null && result.isNotEmpty()) {
AdCache.rewardList.put(slotName,result) AdCache.rewardList.put(slotName,result)
Log.e("huang","请求服务器 获取广告数据 放入缓存中"+result.size ) Log.e(TAG,"请求服务器 获取广告数据 放入缓存中"+result.size )
loadCacheRewardVideoAd(mActivity, listener, result,slotName) loadCacheRewardVideoAd(mActivity, listener, result,slotName)
} else { } else {
listener.onFail() listener.onFail()
...@@ -377,7 +397,7 @@ object AdManager { ...@@ -377,7 +397,7 @@ object AdManager {
result: List<NewsEntity>, result: List<NewsEntity>,
slotName: String slotName: String
) { ) {
Log.d("huang", "RewardVideo size = result:" + result.size) Log.d(TAG, "RewardVideo size = result:" + result.size)
var arrayList = result as ArrayList var arrayList = result as ArrayList
if(arrayList.size==0){ if(arrayList.size==0){
return return
...@@ -392,14 +412,14 @@ object AdManager { ...@@ -392,14 +412,14 @@ object AdManager {
var callback: ZXADCallback = object : ZXADCallback { var callback: ZXADCallback = object : ZXADCallback {
override fun onAdSuccess() { override fun onAdSuccess() {
Log.d("huang", "onAdSuccess") Log.d(TAG, "onAdSuccess")
result.remove(newsEntity) result.remove(newsEntity)
AdCache.rewardList.put(slotName,result) AdCache.rewardList.put(slotName,result)
Utils.showToast(mActivity,"看完视频即可获得奖励") Utils.showToast(mActivity,"看完视频即可获得奖励")
} }
override fun onAdFail() { override fun onAdFail() {
Log.d("huang", "onAdFail totalEntity.size" + totalEntity.size) Log.d(TAG, "onAdFail totalEntity.size" + totalEntity.size)
if (totalEntity.size > 0) { if (totalEntity.size > 0) {
var newsEntitys = totalEntity[0] var newsEntitys = totalEntity[0]
...@@ -483,7 +503,6 @@ object AdManager { ...@@ -483,7 +503,6 @@ object AdManager {
} }
//加载 DrawFeedVideoAd //加载 DrawFeedVideoAd
fun loadDrawFeedVideoAd(slotName: String, mActivity: Activity, listener: ZXADDrawListener) { fun loadDrawFeedVideoAd(slotName: String, mActivity: Activity, listener: ZXADDrawListener) {
ZXADClient.adApi.getAd(slotName).compose(RxSchedulers.observableIO2Main()) ZXADClient.adApi.getAd(slotName).compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<List<NewsEntity>>() { .subscribe(object : BaseObserver<List<NewsEntity>>() {
...@@ -506,7 +525,6 @@ object AdManager { ...@@ -506,7 +525,6 @@ object AdManager {
//个性化 draw视频 //个性化 draw视频
fun loadExpressDrawFeedAd(slotName: String, mActivity: Activity, listener: ZXADDrawListener) { fun loadExpressDrawFeedAd(slotName: String, mActivity: Activity, listener: ZXADDrawListener) {
ZXADClient.adApi.getAd(slotName).compose(RxSchedulers.observableIO2Main()) ZXADClient.adApi.getAd(slotName).compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<List<NewsEntity>>() { .subscribe(object : BaseObserver<List<NewsEntity>>() {
...@@ -613,47 +631,29 @@ object AdManager { ...@@ -613,47 +631,29 @@ object AdManager {
) { ) {
when (newsEntity.adPlatform) { when (newsEntity.adPlatform) {
ZXADType.PLANTFORM_AD_GDT -> { ZXADType.PLANTFORM_AD_GDT -> {
GDTAdUtils.loadSplashAd( GDTAdUtils.loadSplashAd(newsEntity, activity, container, zxadListener, skipview, callback)
newsEntity,
activity,
container,
zxadListener,
skipview,
callback
)
} }
ZXADType.PLANTFORM_AD_TT -> { ZXADType.PLANTFORM_AD_TT -> {
TTADUtils.loadSplashAd(newsEntity, activity, container, zxadListener, callback) TTADUtils.loadSplashAd(newsEntity, activity, container, zxadListener, callback)
} }
ZXADType.PLANTFORM_SH_AD -> { ZXADType.PLANTFORM_AD_SH -> {
SHADUtils.loadSplashAd( SHADUtils.loadSplashAd(newsEntity, activity, container, zxadListener, skipview, callback)
newsEntity,
activity,
container,
zxadListener,
skipview,
callback
)
} }
//百度广告 //百度广告
ZXADType.PLANTFORM_AD_BD -> { ZXADType.PLANTFORM_AD_BD -> {
BDADUtils.loadSplashAd( BDADUtils.loadSplashAd(newsEntity, activity, container, zxadListener, skipview, callback)
newsEntity,
activity,
container,
zxadListener,
skipview,
callback
)
} }
//快手 //快手
ZXADType.PLANTFORM_AD_KUS -> { ZXADType.PLANTFORM_AD_KUS -> {
KSADUtils.loadSplashAd(newsEntity, KSADUtils.loadSplashAd(newsEntity, activity, container, zxadListener, skipview, callback)
activity, }
container, //快手
zxadListener, ZXADType.PLANTFORM_AD_SIGNMOB -> {
skipview, SMADUtils.loadSplashAd(newsEntity, activity, container, zxadListener, skipview, callback)
callback) }
//瑞狮
ZXADType.PLANTFORM_AD_RS -> {
RSADUtils.loadSplashAd(newsEntity, activity, container, zxadListener, skipview, callback)
} }
} }
...@@ -719,6 +719,10 @@ object AdManager { ...@@ -719,6 +719,10 @@ object AdManager {
// ZXADType.PLANTFORM_AD_BD ->{ // ZXADType.PLANTFORM_AD_BD ->{
// BDADUtils.loadFeedAd(activity,newsEntity,zxadModelConfig,zxadExpressListener,container,callback) // BDADUtils.loadFeedAd(activity,newsEntity,zxadModelConfig,zxadExpressListener,container,callback)
// } // }
//瑞狮
ZXADType.PLANTFORM_AD_RS ->{
RSADUtils.loadFeedAd(activity,newsEntity,zxadModelConfig,zxadExpressListener,container,callback)
}
} }
} }
...@@ -763,7 +767,7 @@ object AdManager { ...@@ -763,7 +767,7 @@ object AdManager {
listener: ZXADVideoListener, listener: ZXADVideoListener,
callback: ZXADCallback callback: ZXADCallback
) { ) {
Log.e("huang","entity.adPlatform: "+entity.adPlatform) Log.e(TAG,"entity.adPlatform: "+entity.adPlatform)
when (entity.adPlatform) { when (entity.adPlatform) {
ZXADType.PLANTFORM_AD_GDT -> { ZXADType.PLANTFORM_AD_GDT -> {
GDTAdUtils.loadRewardVideoAd(activity, entity, listener, callback) GDTAdUtils.loadRewardVideoAd(activity, entity, listener, callback)
...@@ -771,7 +775,7 @@ object AdManager { ...@@ -771,7 +775,7 @@ object AdManager {
ZXADType.PLANTFORM_AD_TT -> { ZXADType.PLANTFORM_AD_TT -> {
TTADUtils.loadRewardVideoAd(activity, entity, listener, callback) TTADUtils.loadRewardVideoAd(activity, entity, listener, callback)
} }
ZXADType.PLANTFORM_SH_AD -> { ZXADType.PLANTFORM_AD_SH -> {
SHADUtils.loadRewardVideoAd(activity, entity, listener, callback) SHADUtils.loadRewardVideoAd(activity, entity, listener, callback)
} }
ZXADType.PLANTFORM_AD_SIGNMOB -> { ZXADType.PLANTFORM_AD_SIGNMOB -> {
...@@ -788,38 +792,13 @@ object AdManager { ...@@ -788,38 +792,13 @@ object AdManager {
ZXADType.PLANTFORM_AD_KUS -> { ZXADType.PLANTFORM_AD_KUS -> {
KSADUtils.loadRewardVideoAd(activity, entity, listener, callback) KSADUtils.loadRewardVideoAd(activity, entity, listener, callback)
} }
//瑞狮
ZXADType.PLANTFORM_AD_RS -> {
RSADUtils.loadRewardVideoAd(activity, entity, listener, callback)
} }
}
//激励视频广告
private fun loadReward2VideoAd(
activity: Activity,
entity: NewsEntity,
listener: ZXADVideoListener,
callback: ZXADCallback
) {
when (entity.adPlatform) {
ZXADType.PLANTFORM_AD_GDT -> {
GDTAdUtils.loadReward2VideoAd(activity, entity, listener, callback)
}
ZXADType.PLANTFORM_AD_TT -> {
TTADUtils.loadReward2VideoAd(activity, entity, listener, callback)
}
ZXADType.PLANTFORM_SH_AD -> {
SHADUtils.loadRewardVideoAd(activity, entity, listener, callback)
} }
ZXADType.PLANTFORM_AD_SIGNMOB -> {
SMADUtils.loadRewardVideoAd(activity, entity, listener, callback)
}
ZXADType.PLANTFORM_AD_BD -> {
BDADUtils.loadReward2VideoAd(activity, entity, listener, callback)
} }
}
}
//TODO 全屏视频广告 只有穿山甲 所以不需要重试 //TODO 全屏视频广告 只有穿山甲 所以不需要重试
private fun loadScreenVideoAd( private fun loadScreenVideoAd(
......
...@@ -24,6 +24,9 @@ object ZXADConfig { ...@@ -24,6 +24,9 @@ object ZXADConfig {
//快手 appId //快手 appId
var KS_APP_ID = "" var KS_APP_ID = ""
//瑞狮 appId
var RS_APP_ID = ""
//是否使用 TextureView //是否使用 TextureView
var useTextureView = false var useTextureView = false
...@@ -101,6 +104,10 @@ object ZXADConfig { ...@@ -101,6 +104,10 @@ object ZXADConfig {
KS_APP_ID = appid KS_APP_ID = appid
return zxadConfig return zxadConfig
} }
fun rsId(appid:String): ZXADConfig {
RS_APP_ID = appid
return zxadConfig
}
fun useTextureView(useTextureView: Boolean): ZXADConfig { fun useTextureView(useTextureView: Boolean): ZXADConfig {
ZXADConfig.useTextureView = useTextureView ZXADConfig.useTextureView = useTextureView
return zxadConfig return zxadConfig
......
...@@ -7,8 +7,6 @@ object ZXADType { ...@@ -7,8 +7,6 @@ object ZXADType {
// 1. 穿山甲 2.广点通 3. 快手 4. 搜狗 5.科大讯飞 // 1. 穿山甲 2.广点通 3. 快手 4. 搜狗 5.科大讯飞
/** /**
* 新 * 新
* 1001 chuanshanjia 穿山甲 1 * 1001 chuanshanjia 穿山甲 1
...@@ -21,15 +19,14 @@ object ZXADType { ...@@ -21,15 +19,14 @@ object ZXADType {
const val PLANTFORM_AD_GDT = "guangdiantong" //广点通 const val PLANTFORM_AD_GDT = "guangdiantong" //广点通
const val PLANTFORM_AD_KUS = "kuaishou" //快手 const val PLANTFORM_AD_KUS = "kuaishou" //快手
const val PLANTFORM_SH_YLB = "youliangbao"//优量宝 const val PLANTFORM_SH_YLB = "youliangbao"//优量宝
const val PLANTFORM_AD_SIGNMOB = "sigmob" //sign Mob
const val PLANTFORM_AD_BD = "baidu" //百度
const val PLANTFORM_AD_SH = "shanhu"//珊瑚
const val PLANTFORM_AD_RS = "ruishi"//瑞狮
const val PLANTFORM_AD_SG = 4 //搜狗 const val PLANTFORM_AD_SG = 4 //搜狗
const val PLANTFORM_AD_KDXF = 5 //科大讯飞 const val PLANTFORM_AD_KDXF = 5 //科大讯飞
const val PLANTFORM_AD_SIGNMOB = "signMob" //sign Mob
const val PLANTFORM_AD_BD = "baidu" //百度
const val PLANTFORM_SH_AD = "shanhu"//珊瑚
// =====================================================================stop // =====================================================================stop
...@@ -74,5 +71,4 @@ object ZXADType { ...@@ -74,5 +71,4 @@ object ZXADType {
const val AD_ID_SEL = "1104" const val AD_ID_SEL = "1104"
const val AD_ID_KUS = "1105" const val AD_ID_KUS = "1105"
} }
\ No newline at end of file
...@@ -31,7 +31,7 @@ import com.ym.library.widget.DislikeDialog ...@@ -31,7 +31,7 @@ import com.ym.library.widget.DislikeDialog
* 穿山甲广告 * 穿山甲广告
*/ */
object TTADUtils { object TTADUtils {
private val TAG = "AdManager"
//TODO 插屏广告 //TODO 插屏广告
fun loadInteractionAd( fun loadInteractionAd(
...@@ -82,6 +82,7 @@ object TTADUtils { ...@@ -82,6 +82,7 @@ object TTADUtils {
ttNativeExpressAd.setExpressInteractionListener(object :ExpressAdInteractionListener{ ttNativeExpressAd.setExpressInteractionListener(object :ExpressAdInteractionListener{
override fun onAdClicked(p0: View?, p1: Int) { override fun onAdClicked(p0: View?, p1: Int) {
// AdUpload.onAdClick(newsEntity) // AdUpload.onAdClick(newsEntity)
} }
override fun onAdShow(p0: View?, p1: Int) { override fun onAdShow(p0: View?, p1: Int) {
...@@ -110,6 +111,7 @@ object TTADUtils { ...@@ -110,6 +111,7 @@ object TTADUtils {
} }
// TODO 开屏 重要
fun loadSplashAd( fun loadSplashAd(
data: NewsEntity, data: NewsEntity,
activity: Activity, activity: Activity,
...@@ -127,12 +129,13 @@ object TTADUtils { ...@@ -127,12 +129,13 @@ object TTADUtils {
override fun onError(i: Int, s: String) { override fun onError(i: Int, s: String) {
zxadListener.onErrorResult(s) zxadListener.onErrorResult(s)
zxadCallback.onAdFail() zxadCallback.onAdFail()
Log.d(TAG,"穿山甲 开屏 onError s=" +s)
} }
override fun onTimeout() { override fun onTimeout() {
zxadListener.onTimeout() zxadListener.onTimeout()
zxadCallback.onAdFail() zxadCallback.onAdFail()
Log.d(TAG,"穿山甲 开屏 onTimeout")
} }
override fun onSplashAdLoad(ad: TTSplashAd) { override fun onSplashAdLoad(ad: TTSplashAd) {
...@@ -145,23 +148,30 @@ object TTADUtils { ...@@ -145,23 +148,30 @@ object TTADUtils {
override fun onAdClicked(view: View, i: Int) { override fun onAdClicked(view: View, i: Int) {
// AdUpload.onAdClick(data) // AdUpload.onAdClick(data)
zxadListener.onAdClicked(data) zxadListener.onAdClicked(data)
EventUtils.apiClient(data?.clk_tracking[0]) Log.d(TAG,"穿山甲 开屏 onAdClicked")
EventUtils.onEventUM("ad_splash_click","穿山甲开屏")
EventUtils.onEventClick(data)
EventUtils.onEventUM("ad_splash_click","穿山甲 开屏广告")
} }
override fun onAdShow(view: View, i: Int) { override fun onAdShow(view: View, i: Int) {
zxadListener.onAdShow(data) zxadListener.onAdShow(data)
// AdUpload.onAdImpression(data) // AdUpload.onAdImpression(data)
EventUtils.apiClient(data?.imp_tracking[0]) // EventUtils.apiClient(data?.imp_tracking[0])
EventUtils.onEventUM("ad_splash_show","穿山甲开屏") Log.d(TAG,"穿山甲 开屏 onAdShow")
EventUtils.onEventShow(data)
EventUtils.onEventUM("ad_splash_show","穿山甲 开屏广告")
} }
override fun onAdSkip() { override fun onAdSkip() {
zxadListener.onAdSkip() zxadListener.onAdSkip()
Log.d(TAG,"穿山甲 开屏 onAdSkip")
} }
override fun onAdTimeOver() { override fun onAdTimeOver() {
zxadListener.onAdTimeOver() zxadListener.onAdTimeOver()
Log.d(TAG,"穿山甲 开屏 onAdTimeOver")
} }
}) })
...@@ -267,15 +277,19 @@ object TTADUtils { ...@@ -267,15 +277,19 @@ object TTADUtils {
override fun onAdClicked(view: View, type: Int) { override fun onAdClicked(view: View, type: Int) {
zxadExpressListener.onAdClicked(entity) zxadExpressListener.onAdClicked(entity)
// AdUpload.onAdClick(entity) // AdUpload.onAdClick(entity)
EventUtils.apiClient(entity?.clk_tracking[0]) Log.d(TAG,"穿山甲 大图 onAdClicked")
EventUtils.onEventUM("ad_feed_click","穿山甲大图")
EventUtils.onEventClick(entity)
EventUtils.onEventUM("ad_feed_click","穿山甲 大图广告")
} }
override fun onAdShow(view: View, type: Int) { override fun onAdShow(view: View, type: Int) {
zxadExpressListener.onAdShow(entity) zxadExpressListener.onAdShow(entity)
callback.onAdSuccess() callback.onAdSuccess()
EventUtils.apiClient(entity?.imp_tracking[0]) Log.d(TAG,"穿山甲 大图 onAdShow")
EventUtils.onEventUM("ad_feed_show","穿山甲大图")
EventUtils.onEventShow(entity)
EventUtils.onEventUM("ad_feed_show","穿山甲 大图广告")
} }
override fun onRenderFail( override fun onRenderFail(
...@@ -283,10 +297,7 @@ object TTADUtils { ...@@ -283,10 +297,7 @@ object TTADUtils {
msg: String, msg: String,
code: Int code: Int
) { ) {
Log.e( Log.e(TAG, "穿山甲 大图 render fail:" + (System.currentTimeMillis() - startTime))
"ExpressView",
"render fail:" + (System.currentTimeMillis() - startTime)
)
// TToast.show(mContext, "$msg code:$code") // TToast.show(mContext, "$msg code:$code")
...@@ -302,8 +313,8 @@ object TTADUtils { ...@@ -302,8 +313,8 @@ object TTADUtils {
height: Float height: Float
) { ) {
Log.e( Log.e(
"ExpressView", TAG,
"render suc:" + (System.currentTimeMillis() - startTime) "窗扇加 大图 render suc:" + (System.currentTimeMillis() - startTime)
) )
//返回view的宽高 单位 dp //返回view的宽高 单位 dp
// TToast.show(mContext, "渲染成功") // TToast.show(mContext, "渲染成功")
...@@ -470,144 +481,19 @@ object TTADUtils { ...@@ -470,144 +481,19 @@ object TTADUtils {
mttRewardVideoAd.setRewardAdInteractionListener(object : mttRewardVideoAd.setRewardAdInteractionListener(object :
RewardAdInteractionListener { RewardAdInteractionListener {
override fun onAdShow() { override fun onAdShow() {
EventUtils.apiClient(entity?.imp_tracking[0])
listener.setRewardAdInteractionListener() listener.setRewardAdInteractionListener()
EventUtils.onEventUM("ad_reward_video_show","穿山甲激励视频")
// AdUpload.onAdImpression(entity)
}
override fun onAdVideoBarClick() {
EventUtils.apiClient(entity?.clk_tracking[0])
listener.onAdVideoBarClick(entity)
EventUtils.onEventUM("ad_reward_video_click","穿山甲激励视频")
}
override fun onAdClose() {
listener.onAdClose()
}
override fun onVideoError() {
listener.onVideoError()
}
override fun onVideoComplete() {
listener.onVideoComplete()
}
override fun onRewardVerify(
rewardVerify: Boolean,
rewardAmount: Int,
rewardName: String
) {
listener.onRewardVerify()
}
override fun onSkippedVideo() {
listener.onSkippedVideo()
}
})
mttRewardVideoAd.setDownloadListener(object : TTAppDownloadListener {
override fun onIdle() {}
override fun onDownloadActive(
totalBytes: Long,
currBytes: Long,
fileName: String,
appName: String
) {
// AdUpload.onAdClick(entity)
}
override fun onDownloadPaused(
totalBytes: Long,
currBytes: Long,
fileName: String,
appName: String
) {
}
override fun onDownloadFailed(
totalBytes: Long,
currBytes: Long,
fileName: String,
appName: String
) {
}
override fun onDownloadFinished(
totalBytes: Long,
fileName: String,
appName: String
) {
}
override fun onInstalled( EventUtils.onEventShow(entity)
fileName: String, EventUtils.onEventUM("ad_reward_video_show","穿山甲 激励视频广告")
appName: String
) {
}
})
Log.e("HUANG","穿山甲激励视频耗时"+ (System.currentTimeMillis()-startTime)+"")
listener.onRewardVideoAdLoad(entity)
mttRewardVideoAd.showRewardVideoAd(activity)
}
})
}
//TODO 加载 激励视频
fun loadReward2VideoAd(
activity: Activity,
entity: NewsEntity,
listener: ZXADVideoListener,
callback: ZXADCallback
) {
var startTime = System.currentTimeMillis()
val mTTAdNative =
TTAdSdk.getAdManager().createAdNative(activity) //baseContext建议为activity
val adSlot = AdSlot.Builder()
.setCodeId(entity.codeId)
.setSupportDeepLink(true)
.setAdCount(2) //个性化模板广告需要设置期望个性化模板广告的大小,单位dp,激励视频场景,只要设置的值大于0即可
// .setExpressViewAcceptedSize(500f, 500f)
.setImageAcceptedSize(1080, 1920)
.setRewardName("金币") //奖励的名称
.setRewardAmount(3) //奖励的数量
//必传参数,表来标识应用侧唯一用户;若非服务器回调模式或不需sdk透传
//可设置为空字符串
.setUserID("")//userId
.setOrientation(TTAdConstant.VERTICAL) //设置期望视频播放的方向,为TTAdConstant.HORIZONTAL或TTAdConstant.VERTICAL
.setMediaExtra("media_extra") //用户透传的信息,可不传
.build()
mTTAdNative.loadRewardVideoAd(adSlot, object : RewardVideoAdListener {
override fun onError(code: Int, message: String) {
listener.onError()
callback.onAdFail()
}
//视频广告加载后的视频文件资源缓存到本地的回调
override fun onRewardVideoCached() {
listener.onRewardVideoCached()
}
//视频广告素材加载到,如title,视频url等,不包括视频文件
override fun onRewardVideoAdLoad(ad: TTRewardVideoAd) {
var mttRewardVideoAd = ad
mttRewardVideoAd.setRewardAdInteractionListener(object :
RewardAdInteractionListener {
override fun onAdShow() {
listener.setRewardAdInteractionListener()
// AdUpload.onAdImpression(entity) // AdUpload.onAdImpression(entity)
} }
override fun onAdVideoBarClick() { override fun onAdVideoBarClick() {
listener.onAdVideoBarClick(entity) listener.onAdVideoBarClick(entity)
EventUtils.onEventClick(entity)
EventUtils.onEventUM("ad_reward_video_click","穿山甲 激励视频广告")
} }
override fun onAdClose() { override fun onAdClose() {
...@@ -633,7 +519,6 @@ object TTADUtils { ...@@ -633,7 +519,6 @@ object TTADUtils {
override fun onSkippedVideo() { override fun onSkippedVideo() {
listener.onSkippedVideo() listener.onSkippedVideo()
} }
}) })
mttRewardVideoAd.setDownloadListener(object : TTAppDownloadListener { mttRewardVideoAd.setDownloadListener(object : TTAppDownloadListener {
...@@ -679,21 +564,13 @@ object TTADUtils { ...@@ -679,21 +564,13 @@ object TTADUtils {
} }
}) })
Log.e("HUANG","穿山甲激励视频耗时"+ (System.currentTimeMillis()-startTime)+"") Log.e(TAG,"穿山甲激励视频耗时"+ (System.currentTimeMillis()-startTime)+"")
listener.onRewardVideoAdLoad(entity) listener.onRewardVideoAdLoad(entity)
// mttRewardVideoAd.showRewardVideoAd(activity) mttRewardVideoAd.showRewardVideoAd(activity)
val zxadRewardVideo = ZXADRewardVideo(ad)
listener.onLoadVideoAd(zxadRewardVideo)
} }
}) })
} }
//信息流 原生 //信息流 原生
fun loadFeedNativeAd(activity:Activity,newsEntity: NewsEntity,zxadCallback: ZXADCallback){ fun loadFeedNativeAd(activity:Activity,newsEntity: NewsEntity,zxadCallback: ZXADCallback){
...@@ -709,12 +586,12 @@ object TTADUtils { ...@@ -709,12 +586,12 @@ object TTADUtils {
zxadNative.loadAd(object :ADListener.NativeNetListener{ zxadNative.loadAd(object :ADListener.NativeNetListener{
override fun onAdFailed(error: AdError?) { override fun onAdFailed(error: AdError?) {
Log.e("HUANG",error.toString()) Log.e(TAG,error.toString())
zxadCallback.onAdFail() zxadCallback.onAdFail()
} }
override fun onAdLoaded(nativeData: NativeDataAD?) { override fun onAdLoaded(nativeData: NativeDataAD?) {
Log.e("HUANG",nativeData.toString()+nativeData?.adIconUrl) Log.e(TAG,nativeData.toString()+nativeData?.adIconUrl)
zxadCallback.onAdSuccess() zxadCallback.onAdSuccess()
} }
...@@ -754,7 +631,8 @@ object TTADUtils { ...@@ -754,7 +631,8 @@ object TTADUtils {
listener.onAdShow() listener.onAdShow()
// AdUpload.onAdImpression(entity) // AdUpload.onAdImpression(entity)
EventUtils.apiClient(entity?.imp_tracking[0]) EventUtils.onEventShow(entity)
EventUtils.onEventUM("ad_reward_video_show","穿山甲 激励视频广告")
} }
override fun onAdVideoBarClick() { override fun onAdVideoBarClick() {
...@@ -787,7 +665,9 @@ object TTADUtils { ...@@ -787,7 +665,9 @@ object TTADUtils {
override fun onDownloadActive(p0: Long, p1: Long, p2: String?, p3: String?) { override fun onDownloadActive(p0: Long, p1: Long, p2: String?, p3: String?) {
// AdUpload.onAdClick(entity) // AdUpload.onAdClick(entity)
EventUtils.apiClient(entity?.clk_tracking[0])
EventUtils.onEventClick(entity)
EventUtils.onEventUM("ad_reward_video_click","穿山甲 激励视频广告")
} }
override fun onDownloadFinished(p0: Long, p1: String?, p2: String?) { override fun onDownloadFinished(p0: Long, p1: String?, p2: String?) {
...@@ -895,7 +775,6 @@ object TTADUtils { ...@@ -895,7 +775,6 @@ object TTADUtils {
} }
} }
////绑定广告行为 ////绑定广告行为
......
...@@ -26,14 +26,13 @@ import com.ym.library.listener.ZXADExpressListener ...@@ -26,14 +26,13 @@ import com.ym.library.listener.ZXADExpressListener
import com.ym.library.listener.ZXADSplashListener import com.ym.library.listener.ZXADSplashListener
import com.ym.library.listener.ZXADVideoListener import com.ym.library.listener.ZXADVideoListener
import com.ym.library.module.NewsEntity import com.ym.library.module.NewsEntity
import com.ym.library.net.AdUpload
import com.ym.library.utils.EventUtils import com.ym.library.utils.EventUtils
import com.ym.library.utils.EventUtils.apiClient import com.ym.library.utils.EventUtils.onEventClick
import com.ym.library.utils.EventUtils.onEventUM import com.ym.library.utils.EventUtils.onEventUM
object GDTAdUtils { object GDTAdUtils {
private val TAG = "AdManager"
/** /**
* 加载开屏广告 * 加载开屏广告
...@@ -52,8 +51,9 @@ object GDTAdUtils { ...@@ -52,8 +51,9 @@ object GDTAdUtils {
override fun onADLoaded(p0: Long) { override fun onADLoaded(p0: Long) {
// AdUpload.onAdImpression(newsEntity) // AdUpload.onAdImpression(newsEntity)
zxadCallback.onAdSuccess() zxadCallback.onAdSuccess()
apiClient(newsEntity?.imp_tracking[0]) Log.d(TAG,"广点通 开屏显示")
onEventUM("ad_splash_show","广点通开屏") EventUtils.onEventShow(newsEntity)
onEventUM("ad_splash_show","广点通 开屏广告")
} }
override fun onNoAD(p0: AdError?) { override fun onNoAD(p0: AdError?) {
...@@ -64,9 +64,11 @@ object GDTAdUtils { ...@@ -64,9 +64,11 @@ object GDTAdUtils {
} }
override fun onADClicked() { override fun onADClicked() {
Log.d(TAG,"广点通 onADClicked")
// AdUpload.onAdClick(newsEntity) // AdUpload.onAdClick(newsEntity)
apiClient(newsEntity?.clk_tracking[0])
onEventUM("ad_splash_click","广点通开屏") EventUtils.onEventClick(newsEntity)
onEventUM("ad_feed_click","广点通 开屏广告")
} }
override fun onADTick(p0: Long) { override fun onADTick(p0: Long) {
...@@ -201,14 +203,19 @@ object GDTAdUtils { ...@@ -201,14 +203,19 @@ object GDTAdUtils {
override fun onADClicked(p0: NativeExpressADView?) { override fun onADClicked(p0: NativeExpressADView?) {
// AdUpload.onAdClick(newsEntity) // AdUpload.onAdClick(newsEntity)
EventUtils.apiClient(newsEntity?.clk_tracking[0]) Log.d(TAG,"广点通 大图 onADClicked")
onEventUM("ad_feed_click","广点通大图");
EventUtils.onEventClick(newsEntity)
onEventUM("ad_feed_click","广点通 大图广告")
} }
override fun onRenderSuccess(p0: NativeExpressADView?) { override fun onRenderSuccess(p0: NativeExpressADView?) {
// AdUpload.onAdImpression(newsEntity) // AdUpload.onAdImpression(newsEntity)
EventUtils.apiClient(newsEntity?.imp_tracking[0]) Log.d(TAG,"广点通 大图 onRenderSuccess")
onEventUM("ad_feed_show","广点通大图");
EventUtils.onEventShow(newsEntity)
onEventUM("ad_feed_show","广点通 大图广告")
} }
}) })
...@@ -264,9 +271,10 @@ object GDTAdUtils { ...@@ -264,9 +271,10 @@ object GDTAdUtils {
} }
override fun onADClick() { override fun onADClick() {
apiClient(entity?.clk_tracking[0])
listener.onAdVideoBarClick(entity) listener.onAdVideoBarClick(entity)
onEventUM("ad_reward_video_click","广点通激励视频") Log.d(TAG,"广点通 激励 onADClick")
onEventClick(entity)
onEventUM("ad_reward_video_click","广点通 激励视频广告")
} }
override fun onVideoCached() { override fun onVideoCached() {
...@@ -297,17 +305,17 @@ object GDTAdUtils { ...@@ -297,17 +305,17 @@ object GDTAdUtils {
override fun onError(p0: AdError?) { override fun onError(p0: AdError?) {
listener.onVideoError() listener.onVideoError()
callback.onAdFail() callback.onAdFail()
Log.d("huang", "adPlatform = " +entity.adPlatform + "----errorMsg= " + p0?.errorMsg)
} }
override fun onADShow() { override fun onADShow() {
// apiClient(entity?.imp_tracking[0]) // apiClient(entity?.imp_tracking[0])
callback.onAdSuccess() callback.onAdSuccess()
listener.onAdShow() listener.onAdShow()
Log.d(TAG,"广点通 激励 onADShow")
// AdUpload.onAdImpression(entity) // AdUpload.onAdImpression(entity)
apiClient(entity.imp_tracking[0]) EventUtils.onEventShow(entity)
onEventUM("ad_reward_video_show","广点通激励视频") onEventUM("ad_reward_video_show","广点通 激励视频广告")
} }
}) // 有声播放 }) // 有声播放
...@@ -318,7 +326,8 @@ object GDTAdUtils { ...@@ -318,7 +326,8 @@ object GDTAdUtils {
var startTime = System.currentTimeMillis() var startTime = System.currentTimeMillis()
val handler = object : Handler() { val handler = object : Handler() {
override fun handleMessage(msg: Message?) { override fun handleMessage(msg: Message) {
super.handleMessage(msg)
if (adLoaded) { //广告展示检查1:广告成功加载,此处也可以使用videoCached来实现视频预加载完成后再展示激励视频广告的逻辑 if (adLoaded) { //广告展示检查1:广告成功加载,此处也可以使用videoCached来实现视频预加载完成后再展示激励视频广告的逻辑
if (!rewardVideoAD.hasShown()) { //广告展示检查2:当前广告数据还没有展示过 if (!rewardVideoAD.hasShown()) { //广告展示检查2:当前广告数据还没有展示过
val delta: Long = 1000 //建议给广告过期时间加个buffer,单位ms,这里demo采用1000ms的buffer val delta: Long = 1000 //建议给广告过期时间加个buffer,单位ms,这里demo采用1000ms的buffer
...@@ -327,7 +336,7 @@ object GDTAdUtils { ...@@ -327,7 +336,7 @@ object GDTAdUtils {
rewardVideoAD.showAD() rewardVideoAD.showAD()
var endTime = System.currentTimeMillis() var endTime = System.currentTimeMillis()
Log.e("HUANG","广点通激励视频耗时"+ (System.currentTimeMillis()-startTime)+"") Log.e(TAG,"广点通激励视频耗时"+ (System.currentTimeMillis()-startTime)+"")
} else { } else {
...@@ -352,88 +361,6 @@ object GDTAdUtils { ...@@ -352,88 +361,6 @@ object GDTAdUtils {
handler.sendEmptyMessageDelayed(1,20) handler.sendEmptyMessageDelayed(1,20)
}
fun loadReward2VideoAd(
activity: Activity,
entity: NewsEntity,
listener: ZXADVideoListener,
callback: ZXADCallback
) {
var rewardVideoAD = RewardVideoAD(activity, entity.codeId, object : RewardVideoADListener {
override fun onADExpose() {
}
override fun onADClick() {
// AdUpload.onAdClick(entity)
}
override fun onVideoCached() {
}
override fun onReward() {
}
override fun onADClose() {
}
//如果这里
override fun onADLoad() {
}
override fun onVideoComplete() {
}
override fun onError(p0: AdError?) {
callback.onAdFail()
}
override fun onADShow() {
// AdUpload.onAdImpression(entity)
}
}) // 有声播放
rewardVideoAD.loadAD()
listener.onLoadVideoAd(ZXADRewardVideo(rewardVideoAD))
// val handler = object : Handler() {
// override fun handleMessage(msg: Message?) {
// if (adLoaded) { //广告展示检查1:广告成功加载,此处也可以使用videoCached来实现视频预加载完成后再展示激励视频广告的逻辑
// if (!rewardVideoAD.hasShown()) { //广告展示检查2:当前广告数据还没有展示过
// val delta: Long = 1000 //建议给广告过期时间加个buffer,单位ms,这里demo采用1000ms的buffer
// //广告展示检查3:展示广告前判断广告数据未过期
// if (SystemClock.elapsedRealtime() < rewardVideoAD.expireTimestamp - delta) {
// rewardVideoAD.showAD()
// var endTime = System.currentTimeMillis()
//
// } else {
//// Toast.makeText(activity, "激励视频广告已过期,请再次请求广告后进行广告展示!", Toast.LENGTH_LONG).show()
// listener.onError()
// }
// removeCallbacksAndMessages(null)
//
// } else {
//// Toast.makeText(activity, "此条广告已经展示过,请再次请求广告后进行广告展示!", Toast.LENGTH_LONG).show()
// listener.onError()
// removeCallbacksAndMessages(null)
// }
// } else {
//// Toast.makeText(activity, "成功加载广告后再进行广告展示!", Toast.LENGTH_LONG).show()
// listener.onError()
// sendEmptyMessageDelayed(1,50)
// }
// }
//
// }
// handler.sendEmptyMessageDelayed(1,50)
} }
//TODO 全屏视频广告 暂时没有 //TODO 全屏视频广告 暂时没有
......
...@@ -47,17 +47,20 @@ import java.util.List; ...@@ -47,17 +47,20 @@ import java.util.List;
* Craeted by 2020/10/19 * Craeted by 2020/10/19
*/ */
public class KSADUtils { public class KSADUtils {
private static final String TAG = "AdManager";
private static KsRewardVideoAd mRewardVideoAd; private static KsRewardVideoAd mRewardVideoAd;
private static FrameLayout mNativeAdContainer; private static FrameLayout mNativeAdContainer;
private static NewsEntity entity; private static NewsEntity entity;
private static Activity mActivity; private static Activity mActivity;
//原生 信息流 //原生 信息流
public static void loadFeedNativeAd(Activity activity, public static void loadFeedNativeAd(Activity activity,
NewsEntity newsEntity, NewsEntity newsEntity,
ZXADSizeConfig zxadModelConfig, ZXADSizeConfig zxadModelConfig,
ZXADExpressListener zxadExpressListener, ZXADExpressListener zxadExpressListener,
FrameLayout container, final FrameLayout container,
ZXADCallback zxadCallback) { final ZXADCallback zxadCallback) {
mNativeAdContainer = container; mNativeAdContainer = container;
entity = newsEntity; entity = newsEntity;
mActivity = activity; mActivity = activity;
...@@ -86,8 +89,8 @@ public class KSADUtils { ...@@ -86,8 +89,8 @@ public class KSADUtils {
// 1.请求开屏广告,获取广告对象,KsFullScreenVideoAd // 1.请求开屏广告,获取广告对象,KsFullScreenVideoAd
public static void loadSplashAd(NewsEntity newsEntity, Activity activity, ViewGroup container, ZXADSplashListener zxadListener, public static void loadSplashAd(final NewsEntity newsEntity, final Activity activity, final ViewGroup container, final ZXADSplashListener zxadListener,
TextView skipView, ZXADCallback zxadCallback) { TextView skipView, final ZXADCallback zxadCallback) {
KsScene scene = new KsScene.Builder(Long.parseLong(newsEntity.getCodeId())).build(); // 此为测试posId,请联系快手平台申请正式posId KsScene scene = new KsScene.Builder(Long.parseLong(newsEntity.getCodeId())).build(); // 此为测试posId,请联系快手平台申请正式posId
KsAdSDK.getLoadManager().loadSplashScreenAd(scene, new KsLoadManager.SplashScreenAdListener() { KsAdSDK.getLoadManager().loadSplashScreenAd(scene, new KsLoadManager.SplashScreenAdListener() {
@Override @Override
...@@ -95,13 +98,13 @@ public class KSADUtils { ...@@ -95,13 +98,13 @@ public class KSADUtils {
container.setVisibility(View.GONE); container.setVisibility(View.GONE);
// showTips("开屏广告请求失败" + code + msg); // showTips("开屏广告请求失败" + code + msg);
zxadCallback.onAdFail(); zxadCallback.onAdFail();
zxadListener.onErrorResult(""); zxadListener.onFailResult("");
LogUtils.e("huang: " +code+" "+ msg); LogUtils.e(TAG, "onError: code=" + code + "---- msg=" + msg);
} }
@Override @Override
public void onSplashScreenAdLoad(@NonNull KsSplashScreenAd splashScreenAd) { public void onSplashScreenAdLoad(@NonNull KsSplashScreenAd splashScreenAd) {
LogUtils.e("huang: onSplashScreenAdLoad " +splashScreenAd+" "); LogUtils.e(TAG, "onSplashScreenAdLoad " + splashScreenAd + " ");
zxadCallback.onAdSuccess(); zxadCallback.onAdSuccess();
container.setVisibility(View.VISIBLE); container.setVisibility(View.VISIBLE);
...@@ -113,11 +116,9 @@ public class KSADUtils { ...@@ -113,11 +116,9 @@ public class KSADUtils {
// showTips("开屏广告点击"); // showTips("开屏广告点击");
//onAdClick 会吊起h5或者应用商店。 不直接跳转,等返回后再跳转。 //onAdClick 会吊起h5或者应用商店。 不直接跳转,等返回后再跳转。
// mGotoMainActivity = true; // mGotoMainActivity = true;
if (newsEntity != null && newsEntity.getClk_tracking().size() > 0) {
EventUtils.INSTANCE.apiClient(newsEntity.getClk_tracking().get(0));
EventUtils.INSTANCE.onEventUM("ad_splash_click","快手开屏");
}
zxadListener.onAdClicked(newsEntity); zxadListener.onAdClicked(newsEntity);
EventUtils.INSTANCE.onEventClick(newsEntity);
EventUtils.INSTANCE.onEventUM("ad_splash_click", "快手 开屏广告");
} }
@Override @Override
...@@ -125,7 +126,7 @@ public class KSADUtils { ...@@ -125,7 +126,7 @@ public class KSADUtils {
// showTips("开屏广告显示错误 " + code + " extra " + extra); // showTips("开屏广告显示错误 " + code + " extra " + extra);
// gotoMainActivity(); // gotoMainActivity();
zxadListener.onErrorResult(extra); zxadListener.onErrorResult(extra);
LogUtils.e("huang: onAdShowError" +code+" "+ extra); LogUtils.e(TAG, "onAdShowError" + code + " " + extra);
} }
...@@ -133,20 +134,18 @@ public class KSADUtils { ...@@ -133,20 +134,18 @@ public class KSADUtils {
public void onAdShowEnd() { public void onAdShowEnd() {
// showTips("开屏广告显示结束"); // showTips("开屏广告显示结束");
// zxadListener.onSplashAdLoad(); // zxadListener.onSplashAdLoad();
LogUtils.e("huang: onAdShowEnd"); LogUtils.e(TAG, " onAdShowEnd");
zxadListener.onAdTimeOver();
} }
@Override @Override
public void onAdShowStart() { public void onAdShowStart() {
// showTips("开屏广告显示开始"); // showTips("开屏广告显示开始");
zxadListener.onAdShow(newsEntity); zxadListener.onAdShow(newsEntity);
if (newsEntity != null && newsEntity.getImp_tracking().size() > 0) { LogUtils.e(TAG, " onAdShowStart");
EventUtils.INSTANCE.apiClient(newsEntity.getImp_tracking().get(0));
EventUtils.INSTANCE.onEventUM("ad_splash_show","快手开屏");
}
LogUtils.e("huang: onAdShowStart");
EventUtils.INSTANCE.onEventShow(newsEntity);
EventUtils.INSTANCE.onEventUM("ad_splash_show", "快手 开屏广告");
} }
...@@ -154,14 +153,14 @@ public class KSADUtils { ...@@ -154,14 +153,14 @@ public class KSADUtils {
public void onSkippedAd() { public void onSkippedAd() {
// showTips("用户跳过开屏广告"); // showTips("用户跳过开屏广告");
zxadListener.onAdSkip(); zxadListener.onAdSkip();
LogUtils.e("huang: onSkippedAd"); LogUtils.e(TAG, " onSkippedAd");
} }
}); });
if (!activity.isFinishing()) { if (!activity.isFinishing()) {
// ((FrameLayout)container).addView(fragment.getView()); // ((FrameLayout)container).addView(fragment.getView());
((BaseActivity)activity).getSupportFragmentManager().beginTransaction() ((BaseActivity) activity).getSupportFragmentManager().beginTransaction()
.replace(container.getId(),fragment) .replace(container.getId(), fragment)
.commitAllowingStateLoss(); .commitAllowingStateLoss();
} }
} }
...@@ -171,9 +170,9 @@ public class KSADUtils { ...@@ -171,9 +170,9 @@ public class KSADUtils {
// 竖屏播放(默认) // 竖屏播放(默认)
// 展示激励视频广告,通过步骤1获取的KsRewardVideoAd对象,判断缓存有效,则设置监听并展示 // 展示激励视频广告,通过步骤1获取的KsRewardVideoAd对象,判断缓存有效,则设置监听并展示
public static void loadRewardVideoAd(Activity activity, NewsEntity entity, ZXADVideoListener listener, ZXADCallback callback) { public static void loadRewardVideoAd(final Activity activity, final NewsEntity entity, final ZXADVideoListener listener, final ZXADCallback callback) {
Log.e("huang", "快手 loadRewardVideoAd " + entity.getCodeId()); Log.e(TAG, "快手 loadRewardVideoAd " + entity.getCodeId());
KsScene scene = new KsScene.Builder(Long.parseLong(entity.getCodeId())).build(); // 此为测试posId,请联系快手平台申请正式posId KsScene scene = new KsScene.Builder(Long.parseLong(entity.getCodeId())).build(); // 此为测试posId,请联系快手平台申请正式posId
...@@ -183,7 +182,7 @@ public class KSADUtils { ...@@ -183,7 +182,7 @@ public class KSADUtils {
// ToastUtil.showToast(mContext, "激励视频广告请求失败" + code + msg); // ToastUtil.showToast(mContext, "激励视频广告请求失败" + code + msg);
listener.onVideoError(); listener.onVideoError();
callback.onAdFail(); callback.onAdFail();
Log.e("huang", "快手 code:" + code + "msg " + msg); Log.e(TAG, "快手 code:" + code + "msg " + msg);
} }
@Override @Override
...@@ -198,7 +197,7 @@ public class KSADUtils { ...@@ -198,7 +197,7 @@ public class KSADUtils {
} else { } else {
listener.onVideoError(); listener.onVideoError();
Log.e("huang", "快手 onRewardVideoAdLoad :"); Log.e(TAG, "快手 onRewardVideoAdLoad :");
} }
...@@ -207,14 +206,14 @@ public class KSADUtils { ...@@ -207,14 +206,14 @@ public class KSADUtils {
}); });
long startTime = System.currentTimeMillis(); final long startTime = System.currentTimeMillis();
Handler handler = new Handler() { Handler handler = new Handler() {
@Override @Override
public void handleMessage(Message msg) { public void handleMessage(Message msg) {
super.handleMessage(msg); super.handleMessage(msg);
Log.d("huang",(System.currentTimeMillis()-startTime) + ""); Log.d(TAG, (System.currentTimeMillis() - startTime) + "");
if(System.currentTimeMillis()-startTime>7000){ if (System.currentTimeMillis() - startTime > 7000) {
listener.onVideoError(); listener.onVideoError();
removeCallbacksAndMessages(null); removeCallbacksAndMessages(null);
return; return;
...@@ -227,10 +226,9 @@ public class KSADUtils { ...@@ -227,10 +226,9 @@ public class KSADUtils {
public void onAdClicked() { public void onAdClicked() {
// ToastUtil.showToast(mContext, "激励视频广告点击"); // ToastUtil.showToast(mContext, "激励视频广告点击");
listener.onAdVideoBarClick(entity); listener.onAdVideoBarClick(entity);
if (entity.getClk_tracking() != null && entity.getClk_tracking().size() > 0) {
EventUtils.INSTANCE.apiClient(entity.getClk_tracking().get(0)); EventUtils.INSTANCE.onEventClick(entity);
EventUtils.INSTANCE.onEventUM("ad_reward_video_click","快手激励视频"); EventUtils.INSTANCE.onEventUM("ad_reward_video_click", "快手 激励视频广告");
}
} }
@Override @Override
...@@ -243,7 +241,7 @@ public class KSADUtils { ...@@ -243,7 +241,7 @@ public class KSADUtils {
public void onVideoPlayError(int code, int extra) { public void onVideoPlayError(int code, int extra) {
// ToastUtil.showToast(mContext, "激励视频广告播放出错"); // ToastUtil.showToast(mContext, "激励视频广告播放出错");
listener.onVideoError(); listener.onVideoError();
Log.e("huang", "快手 onVideoPlayError code:" + code + "msg " + extra); Log.e(TAG, "快手 onVideoPlayError code:" + code + "msg " + extra);
} }
...@@ -252,25 +250,24 @@ public class KSADUtils { ...@@ -252,25 +250,24 @@ public class KSADUtils {
// ToastUtil.showToast(mContext, "激励视频广告播放完成"); // ToastUtil.showToast(mContext, "激励视频广告播放完成");
listener.onVideoComplete(); listener.onVideoComplete();
// listener.onAdClose(); // listener.onAdClose();
Log.e("huang", "快手 onVideoPlayEnd"); Log.e(TAG, "快手 onVideoPlayEnd");
} }
@Override @Override
public void onVideoPlayStart() { public void onVideoPlayStart() {
listener.onAdShow(); listener.onAdShow();
Log.e("huang", "快手 onVideoPlayStart"); Log.e(TAG, "快手 onVideoPlayStart");
if (entity.getImp_tracking() != null && entity.getImp_tracking().size() > 0) { EventUtils.INSTANCE.onEventShow(entity);
EventUtils.INSTANCE.apiClient(entity.getImp_tracking().get(0)); EventUtils.INSTANCE.onEventUM("ad_reward_video_show", "快手 激励视频广告");
EventUtils.INSTANCE.onEventUM("ad_reward_video_show","快手激励视频");
}
// ToastUtil.showToast(mContext, "激励视频广告播放开始"); // ToastUtil.showToast(mContext, "激励视频广告播放开始");
Log.e(TAG, "快手激励视频耗时" + (System.currentTimeMillis() - startTime) + "");
} }
@Override @Override
public void onRewardVerify() { public void onRewardVerify() {
listener.onRewardVerify(); listener.onRewardVerify();
// ToastUtil.showToast(mContext, "激励视频广告获取激励"); // ToastUtil.showToast(mContext, "激励视频广告获取激励");
Log.e("huang", "快手 onRewardVerify"); Log.e(TAG, "快手 onRewardVerify");
} }
}); });
mRewardVideoAd.showRewardVideoAd(activity, null); mRewardVideoAd.showRewardVideoAd(activity, null);
...@@ -283,7 +280,7 @@ public class KSADUtils { ...@@ -283,7 +280,7 @@ public class KSADUtils {
}; };
handler.sendEmptyMessageDelayed(1,20); handler.sendEmptyMessageDelayed(1, 20);
} }
// 横屏播放 // 横屏播放
...@@ -295,7 +292,6 @@ public class KSADUtils { ...@@ -295,7 +292,6 @@ public class KSADUtils {
} }
/** /**
* 加载自渲染View * 加载自渲染View
*/ */
...@@ -356,9 +352,9 @@ public class KSADUtils { ...@@ -356,9 +352,9 @@ public class KSADUtils {
@Override @Override
public void onAdClicked(View view, KsNativeAd ad) { public void onAdClicked(View view, KsNativeAd ad) {
if (ad != null) { if (ad != null) {
EventUtils.INSTANCE.apiClient(entity.getClk_tracking().get(0));
// Toast.makeText(mContext, "广告" + ad.getAppName() + "被点击", Toast.LENGTH_SHORT).show(); // Toast.makeText(mContext, "广告" + ad.getAppName() + "被点击", Toast.LENGTH_SHORT).show();
EventUtils.INSTANCE.onEventUM("ad_feed_click","快手大图"); EventUtils.INSTANCE.onEventClick(entity);
EventUtils.INSTANCE.onEventUM("ad_feed_click", "快手 大图广告");
} }
} }
...@@ -366,8 +362,8 @@ public class KSADUtils { ...@@ -366,8 +362,8 @@ public class KSADUtils {
public void onAdShow(KsNativeAd ad) { public void onAdShow(KsNativeAd ad) {
if (ad != null) { if (ad != null) {
// Toast.makeText(mContext, "广告" + ad.getAppName() + "展示", Toast.LENGTH_SHORT).show(); // Toast.makeText(mContext, "广告" + ad.getAppName() + "展示", Toast.LENGTH_SHORT).show();
EventUtils.INSTANCE.apiClient(entity.getImp_tracking().get(0)); EventUtils.INSTANCE.onEventShow(entity);
EventUtils.INSTANCE.onEventUM("ad_feed_show","快手大图"); EventUtils.INSTANCE.onEventUM("ad_feed_show", "快手 大图广告");
} }
} }
}); });
......
package com.ym.admodule.rs
import android.app.Activity
import android.os.Handler
import android.os.Message
import android.util.Log
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.TextView
import cn.vlion.ad.core.Config
import cn.vlion.ad.moudle.natives.NativeManager
import cn.vlion.ad.moudle.natives.model.NativeFeedsData
import cn.vlion.ad.moudle.splash.SplashManager
import cn.vlion.ad.moudle.video.VideoManager
import com.ym.library.config.ZXADCallback
import com.ym.library.config.ZXADSizeConfig
import com.ym.library.listener.ZXADExpressListener
import com.ym.library.listener.ZXADSplashListener
import com.ym.library.listener.ZXADVideoListener
import com.ym.library.module.NewsEntity
import com.ym.library.utils.EventUtils
import com.ym.library.utils.EventUtils.onEventClick
import com.ym.library.utils.EventUtils.onEventShow
import com.ym.library.utils.EventUtils.onEventUM
import show.vion.cn.vlion_ad_inter.splash.SplashViewListener
import show.vion.cn.vlion_ad_inter.video.VideoViewListener
import show.vion.cn.vlion_ad_inter.vlionnative.NativeListener
/**
*Craeted by ${junqi.li}
*Craeted by 2020/10/26
* http://wiki.vlion.cn/pages/viewpage.action?pageId=22578184#id-%E8%9E%8D%E5%90%88AndroidSDK%E6%8E%A5%E5%85%A5%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3-%E5%AF%BC%E5%85%A5SDK%E4%BE%9D%E8%B5%96%E7%9A%84%E5%8C%85
* 瑞狮
*/
object RSADUtils {
private val TAG = "AdManager"
//TODO 开屏
fun loadSplashAd(
newsEntity: NewsEntity,
activity: Activity,
container: ViewGroup,
zxadListener: ZXADSplashListener,
skipview: TextView?,
zxadCallback: ZXADCallback
) {
SplashManager.getInstance().setImageAcceptedSize(1080, 1920)
SplashManager.getInstance().setAutoJumpToTargetWhenShowFailed(true)
SplashManager.getInstance().setSplashViewContainer(container)
SplashManager.getInstance().setSkip_ad(skipview)
//8863364436303842842593 813395663
SplashManager.getInstance().showSplash(
activity,
newsEntity.codeId,
object : SplashViewListener {
override fun onRequestSuccess(adId: String, viewWidth: Int, viewHeight: Int) {
zxadCallback.onAdSuccess()
zxadListener.onSuccessResult()
Log.e(TAG, "瑞狮 开屏onRequestSuccess: adId:$adId,$viewWidth,$viewHeight")
// if (viewWidth > 0 && viewHeight > 0) {
// splashAdContainer.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;
// splashAdContainer.getLayoutParams().height = ScreenUtil.getScreenWidth(SplashActivity.this) * viewHeight / viewWidth;
// }
// else {
// splashAdContainer.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;
// splashAdContainer.getLayoutParams().height = ViewGroup.LayoutParams.MATCH_PARENT;
// }
}
override fun onRequestFailed(adId: String, code: Int, errorMsg: String) {
Log.e(TAG, "瑞狮 开屏onRequestFailed: adId:$adId,$code,$errorMsg")
zxadListener.onErrorResult(errorMsg + "")
zxadCallback.onAdFail()
}
override fun onShowSuccess(adId: String) {
Log.e(TAG, "瑞狮 开屏onShowSuccess: adId:$adId")
container.setVisibility(View.VISIBLE)
onEventShow(newsEntity)
onEventUM("ad_splash_show", "瑞狮 开屏广告")
}
override fun onShowFailed(adId: String, code: Int, msg: String) {
Log.e(TAG, "瑞狮 开屏onShowFailed: adId:$adId,$code,$msg")
zxadListener.onErrorResult(msg + "")
container.setVisibility(View.GONE)
}
override fun onSplashClicked(adId: String) {
Log.e(TAG, "瑞狮 开屏onSplashClicked: adId:$adId")
zxadListener.onAdClicked(newsEntity)
onEventClick(newsEntity)
onEventUM("ad_splash_click", "瑞狮 开屏广告")
}
override fun onSplashClosed(adId: String) {
Log.e(TAG, "瑞狮 开屏onSplashClosed: adId:$adId")
zxadListener.onAdSkip()
}
})
}
//TODO 原生
fun loadFeedAd(
activity: Activity,
newsEntity: NewsEntity,
zxadModelConfig: ZXADSizeConfig,
zxadExpressListener: ZXADExpressListener,
container: FrameLayout,
callback: ZXADCallback
) {
var nativeManager = NativeManager.initNative()
.setImageAcceptedSize(container.getWidth(), 0) //增加父布局
// .setNativeContainer(nativeLayout)
//7030020348049331
//913395440
.requestFeeds(activity, newsEntity.codeId, object : NativeListener<NativeFeedsData?> {
override fun onRequestSuccess(adId: String, data: NativeFeedsData?) {
// nativeLayout.setVisibility(View.VISIBLE);
Log.e(TAG, "瑞狮 大图广告 数据获取成功 adId:$adId")
if (data == null) return
container.visibility = View.VISIBLE
val view = data.nativeView
if (null != view) {
if (view.parent != null) {
val parent =
view.parent as ViewGroup
parent?.removeView(view)
}
container.removeAllViews()
container.addView(view)
data.onExposured()
callback.onAdSuccess()
}
}
override fun onShowSuccess(adid: String) {
container.visibility = View.VISIBLE
Log.e(TAG, "瑞狮大图广告 onShowSuccess: $adid")
onEventShow(newsEntity)
onEventUM("ad_feed_show", "瑞狮 大图广告")
}
override fun onShowFailed(adId: String, code: Int, msg: String) {
Log.e(TAG, "瑞狮大图广告 onShowFailed :$adId++code=$code++msg=$msg")
container.visibility = View.GONE
}
override fun onClick(adid: String) {
Log.e(TAG, "瑞狮大图广告 onClick:$adid")
onEventClick(newsEntity)
onEventUM("ad_feed_click", "瑞狮 大图广告")
}
override fun onExposure(adid: String) {
Log.e(TAG, "瑞狮大图广告 onExposure:$adid")
}
override fun onRequestFailed(adId: String, code: Int, message: String) {
Log.e(TAG, "瑞狮大图广告 数据加载失败 : code = $code , message = $message,adId:$adId")
container.visibility = View.GONE
callback.onAdFail()
}
})
}
//TODO 激励视频 在activity的onResume()、onPause()、onDestroy()分别调用
fun loadRewardVideoAd(
activity: Activity,
entity: NewsEntity,
listener: ZXADVideoListener,
callback: ZXADCallback
) {
var startTime = System.currentTimeMillis()
var adLoaded = false
//视频的填充适配类型
VideoManager.getInstance().setAdScalingModel(Config.AD_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING)
VideoManager.getInstance().setVideoOrientation(Config.AD_VERTIVAL_SCREEN_DISPLAY)
//视频的尺寸
VideoManager.getInstance().setImageAcceptedSize(1080, 1920)
//传入期望个性化模板广告的大小,单位dp。激励视频场景只需设置大于0即可 (必传的)
VideoManager.getInstance().setExpressViewAcceptedSize(6, 6)
VideoManager.getInstance().getVLionVideoView(
activity,
entity.codeId,
object : VideoViewListener {
override fun onLoadVideo(adId: String) {
Log.e(TAG, "onLoadVideo:缓存成功,可以展示 adId=$adId")
// if (VideoManager.getInstance().isReady) {
//展示广告
// adLoaded = true
// Log.e(TAG, "瑞狮 激励视频耗时" + (System.currentTimeMillis() - startTime) + "")
// VideoManager.getInstance().showVideo();
// }
}
override fun onVideoPlayStart(adId: String) {
Log.e(TAG, "onVideoPlayStart:adId=$adId")
callback.onAdSuccess()
listener.setRewardAdInteractionListener()
onEventShow(entity)
onEventUM("ad_reward_video_show", "瑞狮 激励视频广告")
}
override fun onVideoPlayFailed(adId: String, code: Int, msg: String) {
Log.e(TAG, "onVideoPlayFailed:adId=" + adId + "code=" + code + "msg=" + msg)
listener.onError()
}
override fun onVideoClosed(adId: String) {
Log.e(TAG, "onVideoClosed:adId=$adId")
listener.onAdClose()
}
override fun onVideoClicked(adId: String) {
Log.e(TAG, "onVideoClicked:adId=$adId")
listener.onAdVideoBarClick(entity)
onEventClick(entity)
onEventUM("ad_reward_video_click", "瑞狮 激励视频广告")
}
override fun onVideoFinish(adId: String) {
Log.e(TAG, "onVideoFinish:adId=$adId")
}
override fun onRewardVerify(adId: String) {
Log.e(TAG, "onRewardVerify:adId=$adId")
}
//广告请求失败
override fun onRequestFailed(adId: String, code: Int, errorMsg: String) {
Log.e(
TAG,
"onRequestFailed:adId=" + adId + "code=" + code + "errorMsg=" + errorMsg
)
listener.onError()
callback.onAdFail()
}
})
val handler = object : Handler() {
override fun handleMessage(msg: Message) {
super.handleMessage(msg)
Log.d(TAG, (System.currentTimeMillis() - startTime).toString() + "瑞狮")
if (System.currentTimeMillis() - startTime > 7000) {
listener.onVideoError()
removeCallbacksAndMessages(null)
return
}
if (!adLoaded) { //广告展示检查1:广告成功加载,
sendEmptyMessageDelayed(1, 20)
if (VideoManager.getInstance().isReady) {
Log.e(TAG, "播放视频wxw")
VideoManager.getInstance().showVideo();
removeCallbacksAndMessages(null)
}
} else {
removeCallbacksAndMessages(null)
}
}
}
if(!adLoaded){
handler.sendEmptyMessageDelayed(1, 20)
}
}
}
\ No newline at end of file
...@@ -13,6 +13,10 @@ import com.tz.sdk.core.ad.ADEvent; ...@@ -13,6 +13,10 @@ import com.tz.sdk.core.ad.ADEvent;
import com.tz.sdk.core.ad.ADSource; import com.tz.sdk.core.ad.ADSource;
import com.tz.sdk.core.ad.ADType; import com.tz.sdk.core.ad.ADType;
import com.tz.sdk.core.loader.ADLoader; import com.tz.sdk.core.loader.ADLoader;
import com.ym.library.config.ZXADCallback;
import com.ym.library.listener.ZXADVideoListener;
import com.ym.library.module.NewsEntity;
import com.ym.library.utils.EventUtils;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -22,10 +26,23 @@ import java.util.List; ...@@ -22,10 +26,23 @@ import java.util.List;
* Created by wanghl on 2020/6/18 * Created by wanghl on 2020/6/18
*/ */
public final class CoralRewardVideo extends CoralBase { public final class CoralRewardVideo extends CoralBase {
private String TAG = "AdManager";
private NewsEntity data;
private ZXADVideoListener listener;
private ZXADCallback callback;
public CoralRewardVideo(Context context, int taskType) { public CoralRewardVideo(Context context, int taskType) {
super(context, taskType); super(context, taskType);
} }
public CoralRewardVideo build(NewsEntity data,ZXADVideoListener listener,
ZXADCallback callback) {
this.data = data;
this.listener = listener;
this.callback = callback;
return this;
}
@Override @Override
public void pull() { public void pull() {
super.pull(); super.pull();
...@@ -46,8 +63,13 @@ public final class CoralRewardVideo extends CoralBase { ...@@ -46,8 +63,13 @@ public final class CoralRewardVideo extends CoralBase {
public void onAdLoaded(List<CoralAD> adList) { public void onAdLoaded(List<CoralAD> adList) {
if (adList != null && adList.size() > 0) { if (adList != null && adList.size() > 0) {
whenAdLoaded(adList.get(0)); whenAdLoaded(adList.get(0));
callback.onAdSuccess();
listener.onSuccess();
Log.d(TAG,"珊瑚 激励 onAdLoaded");
} else { } else {
whenAdError("视频类(" + mTaskType + ")广告返回数量0"); callback.onAdFail();
Log.d(TAG,"珊瑚 激励视频类(" + mTaskType + ")广告返回数量0");
whenAdError("珊瑚 激励视频类(" + mTaskType + ")广告返回数量0");
} }
} }
...@@ -58,17 +80,30 @@ public final class CoralRewardVideo extends CoralBase { ...@@ -58,17 +80,30 @@ public final class CoralRewardVideo extends CoralBase {
Log.e("CoralRewardVideo", adError.toString()); Log.e("CoralRewardVideo", adError.toString());
} }
whenAdError(adError.toString()); whenAdError(adError.toString());
callback.onAdFail();
listener.onError();
listener.onFail();
Log.d(TAG,"珊瑚 激励 onAdFailed" + adError.toString());
} }
@Override @Override
public boolean onAdShow(@Nullable CoralAD ad) { public boolean onAdShow(@Nullable CoralAD ad) {
whenAdShow(); whenAdShow();
listener.onAdShow();
EventUtils.INSTANCE.onEventShow(data);
EventUtils.INSTANCE.onEventUM("ad_reward_video_show","珊瑚 激励视频广告");
Log.d(TAG,"珊瑚 激励 onAdShow");
return super.onAdShow(ad); return super.onAdShow(ad);
} }
@Override @Override
public boolean onAdClicked(@Nullable CoralAD ad) { public boolean onAdClicked(@Nullable CoralAD ad) {
whenAdClicked(); whenAdClicked();
listener.onAdVideoBarClick(data);
EventUtils.INSTANCE.onEventClick(data);
EventUtils.INSTANCE.onEventUM("ad_reward_video_click","珊瑚 激励视频广告");
Log.d(TAG,"珊瑚 激励 onAdClicked");
return super.onAdClicked(ad); return super.onAdClicked(ad);
} }
...@@ -103,6 +138,8 @@ public final class CoralRewardVideo extends CoralBase { ...@@ -103,6 +138,8 @@ public final class CoralRewardVideo extends CoralBase {
@Override @Override
public boolean onVideoClosed(CoralAD coralAD, String s) { public boolean onVideoClosed(CoralAD coralAD, String s) {
listener.onAdClose();
Log.d(TAG,"珊瑚 激励 onVideoClosed");
return super.onVideoClosed(coralAD, s); return super.onVideoClosed(coralAD, s);
} }
}); });
......
...@@ -86,6 +86,7 @@ public final class CoralSplashImage extends CoralBase { ...@@ -86,6 +86,7 @@ public final class CoralSplashImage extends CoralBase {
public boolean onAdClicked(@Nullable CoralAD ad) { public boolean onAdClicked(@Nullable CoralAD ad) {
whenAdClicked(); whenAdClicked();
// return super.onAdClicked(ad); // return super.onAdClicked(ad);
mISplashImageListener.onAdClicked();
return true; return true;
} }
...@@ -169,5 +170,10 @@ public final class CoralSplashImage extends CoralBase { ...@@ -169,5 +170,10 @@ public final class CoralSplashImage extends CoralBase {
* 倒计时结束 * 倒计时结束
*/ */
void onTimesUp(); void onTimesUp();
/**
* 倒计时结束
*/
void onAdClicked();
} }
} }
...@@ -2,46 +2,63 @@ package com.ym.library.sh ...@@ -2,46 +2,63 @@ package com.ym.library.sh
import android.app.Activity import android.app.Activity
import android.util.Log
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.TextView import android.widget.TextView
import com.tencent.ep.shanhuad.adpublic.adbuilder.RewardVideo
import com.tencent.ep.shanhuad.adpublic.models.AdID
import com.ym.admodule.listener.ZXADDrawListener
import com.ym.library.R
import com.ym.library.config.ZXADCallback import com.ym.library.config.ZXADCallback
import com.ym.library.listener.ZXADSplashListener import com.ym.library.listener.ZXADSplashListener
import com.ym.library.listener.ZXADVideoListener import com.ym.library.listener.ZXADVideoListener
import com.ym.library.module.NewsEntity import com.ym.library.module.NewsEntity
import com.ym.library.net.AdUpload import com.ym.library.utils.EventUtils
import com.ym.library.utils.EventUtils.onEventClick
import com.ym.library.utils.EventUtils.onEventShow
object SHADUtils { object SHADUtils {
private val TAG = "AdManager"
//开屏 //开屏
fun loadSplashAd(newsEntity:NewsEntity,activity: Activity, container: ViewGroup, zxadListener: ZXADSplashListener?, fun loadSplashAd(
skipView: TextView?,zxadCallback: ZXADCallback) { newsEntity: NewsEntity,
activity: Activity,
container: ViewGroup,
zxadListener: ZXADSplashListener?,
skipView: TextView?,
zxadCallback: ZXADCallback
) {
CoralSplashImage(activity, 125) CoralSplashImage(activity, 125)
.container(container) .container(container)
.skip(skipView) .skip(skipView)
.listen(object : CoralSplashImage.ISplashImageListener { .listen(object : CoralSplashImage.ISplashImageListener {
override fun onAdError() { override fun onAdError() {
Log.d(TAG, "珊瑚 开屏 onAdError")
zxadListener?.onErrorResult("广告拉取失败"); zxadListener?.onErrorResult("广告拉取失败");
zxadCallback.onAdFail() zxadCallback.onAdFail()
zxadListener?.onTimeout() zxadListener?.onTimeout()
} }
override fun onAdClicked() {
Log.d(TAG, "珊瑚 开屏 onAdClicked")
onEventClick(newsEntity)
EventUtils.onEventUM("ad_splash_click", "珊瑚 开屏广告")
}
override fun onAdShow() { override fun onAdShow() {
Log.d(TAG, "珊瑚 开屏 onAdShow")
zxadListener?.onAdShow(newsEntity) zxadListener?.onAdShow(newsEntity)
zxadCallback.onAdSuccess() zxadCallback.onAdSuccess()
skipView?.visibility = View.VISIBLE skipView?.visibility = View.VISIBLE
onEventShow(newsEntity)
EventUtils.onEventUM("ad_splash_show", "珊瑚 开屏广告")
} }
override fun onTimeTick(msLeft: Long) { override fun onTimeTick(msLeft: Long) {
skipView?.text = "跳过:" + msLeft / 1000 skipView?.text = "跳过:" + msLeft / 1000
if(msLeft<=1000){ if (msLeft <= 1000) {
zxadListener?.onAdSkip() zxadListener?.onAdSkip()
} }
} }
...@@ -91,9 +108,9 @@ object SHADUtils { ...@@ -91,9 +108,9 @@ object SHADUtils {
// //
// }, newsEntity.codeId?.toInt()?.let { AdID(it, 720, 1080) }, container, skipView) // }, newsEntity.codeId?.toInt()?.let { AdID(it, 720, 1080) }, container, skipView)
// //
// skipView?.setOnClickListener { skipView?.setOnClickListener {
// zxadListener?.onAdSkip() zxadListener?.onAdSkip()
// } }
} }
...@@ -105,8 +122,8 @@ object SHADUtils { ...@@ -105,8 +122,8 @@ object SHADUtils {
callback: ZXADCallback callback: ZXADCallback
) { ) {
CoralRewardVideo(activity, 104 ).pull() // CoralRewardVideo(activity, 104 ).pull()
CoralRewardVideo(activity, 104).build(entity, listener, callback).pull()
// ADLoader(activity)[ADType.REWARD_VIDEO] // ADLoader(activity)[ADType.REWARD_VIDEO]
// .from(ADSource.CORAL) // .from(ADSource.CORAL)
// .count(1) // .count(1)
...@@ -218,7 +235,7 @@ object SHADUtils { ...@@ -218,7 +235,7 @@ object SHADUtils {
} }
//视频流 带广告 //视频流 带广告
fun loadSHFeedSpecialVideoAd(activity: Activity,i:Int) { fun loadSHFeedSpecialVideoAd(activity: Activity, i: Int) {
CoralVideoFeed(activity, 138).container(i).pull() CoralVideoFeed(activity, 138).container(i).pull()
} }
} }
\ No newline at end of file
package com.ym.library.sm package com.ym.library.sm
import android.app.Activity import android.app.Activity
import android.os.Handler
import android.os.Message
import android.util.Log
import android.view.ViewGroup
import android.widget.TextView
import com.sigmob.windad.Splash.WindSplashAD
import com.sigmob.windad.Splash.WindSplashADListener
import com.sigmob.windad.Splash.WindSplashAdRequest
import com.sigmob.windad.WindAdError import com.sigmob.windad.WindAdError
import com.sigmob.windad.WindAds import com.sigmob.windad.WindAds
import com.sigmob.windad.fullscreenvideo.WindFullScreenAdRequest import com.sigmob.windad.fullscreenvideo.WindFullScreenAdRequest
...@@ -11,57 +19,129 @@ import com.sigmob.windad.rewardedVideo.WindRewardInfo ...@@ -11,57 +19,129 @@ import com.sigmob.windad.rewardedVideo.WindRewardInfo
import com.sigmob.windad.rewardedVideo.WindRewardedVideoAd import com.sigmob.windad.rewardedVideo.WindRewardedVideoAd
import com.sigmob.windad.rewardedVideo.WindRewardedVideoAdListener import com.sigmob.windad.rewardedVideo.WindRewardedVideoAdListener
import com.ym.library.config.ZXADCallback import com.ym.library.config.ZXADCallback
import com.ym.library.listener.ZXADSplashListener
import com.ym.library.listener.ZXADVideoListener import com.ym.library.listener.ZXADVideoListener
import com.ym.library.module.NewsEntity import com.ym.library.module.NewsEntity
import com.ym.library.net.AdUpload import com.ym.library.net.AdUpload
import com.ym.library.utils.EventUtils
import com.ym.library.utils.EventUtils.onEventClick
import com.ym.library.utils.EventUtils.onEventShow
import com.ym.library.utils.EventUtils.onEventUM
import com.ym.library.utils.SettingPreference import com.ym.library.utils.SettingPreference
object SMADUtils { object SMADUtils {
private val TAG = "AdManager"
//开屏
fun loadSplashAd(
newsEntity: NewsEntity, activity: Activity, container: ViewGroup,
zxadListener: ZXADSplashListener, skipview: TextView?,
zxadCallback: ZXADCallback
) {
val splashAdRequest = WindSplashAdRequest(newsEntity?.codeId, "", null)
/**
* 广告结束,广告内容是否自动隐藏。
* 若开屏和应用共用Activity,建议false。
* 开屏是单独Activity ,建议true。
*/
splashAdRequest.isDisableAutoHideAd = true
/**
* 广告允许最大等待返回时间
*/
splashAdRequest.fetchDelay = 3
/**
* 全屏开屏展示
*/
var mWindSplashAD =
WindSplashAD(activity, container, splashAdRequest, object : WindSplashADListener {
override fun onSplashAdSuccessPresentScreen() {
Log.d(TAG, "Sigmob 开屏 onSplashAdSuccessPresentScreen")
EventUtils.onEventShow(newsEntity)
onEventUM("ad_splash_show", "Sigmob 开屏广告")
zxadListener.onAdShow(newsEntity)
zxadCallback.onAdSuccess()
}
override fun onSplashAdClicked() {
Log.d(TAG, "Sigmob 开屏 onSplashAdClicked")
zxadListener.onAdClicked(newsEntity)
EventUtils.onEventClick(newsEntity)
onEventUM("ad_splash_click", "Sigmob 开屏广告")
zxadListener.onAdClicked(newsEntity)
}
override fun onSplashClosed() {
Log.d(TAG, "Sigmob 开屏 onSplashClosed")
zxadListener.onAdSkip()
}
override fun onSplashAdFailToPresent(p0: WindAdError?, p1: String?) {
Log.d(
TAG,
"Sigmob 开屏 onSplashAdFailToPresent:errorCode:" + p0?.errorCode + " --- message:" + p1
)
zxadListener.onFailResult(p1 ?: "")
zxadCallback.onAdFail()
}
})
}
//激励视频 //激励视频
fun loadRewardVideoAd( fun loadRewardVideoAd(
activity: Activity, activity: Activity,
entity: NewsEntity?, entity: NewsEntity,
listener: ZXADVideoListener?, listener: ZXADVideoListener?,
callback: ZXADCallback? callback: ZXADCallback?
) { ) {
val startTime = System.currentTimeMillis()
//主动READ_PHONE_STATE,WRITE_EXTERNAL_STORAGE,ACCESS_FINE_LOCATION 权限授权请求 //主动READ_PHONE_STATE,WRITE_EXTERNAL_STORAGE,ACCESS_FINE_LOCATION 权限授权请求
WindAds.requestPermission(activity); WindAds.requestPermission(activity);
val windRewardedVideoAd = WindRewardedVideoAd.sharedInstance() val windRewardedVideoAd = WindRewardedVideoAd.sharedInstance()
//placementId 必填,USER_ID,OPTIONS可不填, //placementId 必填,USER_ID,OPTIONS可不填, "e859a9a8882"
val request = WindRewardAdRequest(entity.codeId, SettingPreference.getUid() ?: "", null)
//placementId 必填,USER_ID,OPTIONS可不填,
val request = WindRewardAdRequest("e859a9a8882",SettingPreference.getUid(),null)
windRewardedVideoAd.loadAd(request) windRewardedVideoAd.loadAd(request)
windRewardedVideoAd.setWindRewardedVideoAdListener(object :WindRewardedVideoAdListener{ windRewardedVideoAd.setWindRewardedVideoAdListener(object : WindRewardedVideoAdListener {
override fun onVideoAdPlayError(p0: WindAdError?, p1: String?) { override fun onVideoAdPlayError(p0: WindAdError?, p1: String?) {
listener?.onVideoError() listener?.onVideoError()
callback?.onAdFail() callback?.onAdFail()
Log.d(TAG, "Sigmob 激励 onVideoAdPlayError" + p0?.message)
} }
override fun onVideoAdPreLoadFail(p0: String?) { override fun onVideoAdPreLoadFail(p0: String?) {
listener?.onVideoError() listener?.onVideoError()
callback?.onAdFail() callback?.onAdFail()
Log.d(TAG, "Sigmob 激励 onVideoAdPreLoadFail" + p0)
} }
override fun onVideoAdPlayStart(p0: String?) { override fun onVideoAdPlayStart(p0: String?) {
callback?.onAdSuccess()
listener?.onAdShow()
onEventShow(entity)
onEventUM("ad_reward_video_show", "Sigmob 激励视频")
Log.d(TAG, "Sigmob 激励 onVideoAdPlayStart")
} }
override fun onVideoAdClosed(p0: WindRewardInfo?, p1: String?) { override fun onVideoAdClosed(p0: WindRewardInfo?, p1: String?) {
Log.d(TAG, "Sigmob 激励 onVideoAdClosed")
listener?.onAdClose() listener?.onAdClose()
} }
override fun onVideoAdPlayEnd(p0: String?) { override fun onVideoAdPlayEnd(p0: String?) {
} }
override fun onVideoAdLoadSuccess(p0: String?) { override fun onVideoAdLoadSuccess(p0: String?) {
listener?.onAdShow() Log.d(TAG, "Sigmob 激励 onVideoAdLoadSuccess")
// AdUpload.onAdImpression(entity)
} }
override fun onVideoAdPreLoadSuccess(p0: String?) { override fun onVideoAdPreLoadSuccess(p0: String?) {
...@@ -69,7 +149,12 @@ object SMADUtils { ...@@ -69,7 +149,12 @@ object SMADUtils {
override fun onVideoAdClicked(p0: String?) { override fun onVideoAdClicked(p0: String?) {
listener?.onVideoComplete() listener?.onVideoComplete()
// AdUpload.onAdClick(entity) AdUpload.onAdClick(entity)
onEventClick(entity)
onEventUM("ad_reward_video_click", "Sigmob 激励视频")
Log.d(TAG, "Sigmob 激励 onVideoAdClicked")
} }
override fun onVideoAdLoadError(p0: WindAdError?, p1: String?) { override fun onVideoAdLoadError(p0: WindAdError?, p1: String?) {
...@@ -79,16 +164,30 @@ object SMADUtils { ...@@ -79,16 +164,30 @@ object SMADUtils {
}) })
val handler: Handler = object : Handler() {
try { override fun handleMessage(msg: Message) {
//检查广告是否准备完毕 super.handleMessage(msg)
Log.d(
TAG, "Sigmob 激励视频耗时" +
(System.currentTimeMillis() - startTime).toString() + ""
)
if (System.currentTimeMillis() - startTime > 6000) {
listener?.onVideoError()
removeCallbacksAndMessages(null)
return
}
if (windRewardedVideoAd.isReady(request.placementId)) { if (windRewardedVideoAd.isReady(request.placementId)) {
//广告播放 //广告播放
Log.d(TAG, "Sigmob 广告播放")
windRewardedVideoAd.show(activity, request) windRewardedVideoAd.show(activity, request)
removeCallbacksAndMessages(null)
} else {
// Toast.makeText(activity, "成功加载广告后再进行广告展示!", Toast.LENGTH_LONG).show()
sendEmptyMessageDelayed(1, 20)
} }
} catch (e: java.lang.IllegalArgumentException) {
e.printStackTrace()
} }
}
handler.sendEmptyMessageDelayed(1, 20)
} }
...@@ -97,7 +196,7 @@ object SMADUtils { ...@@ -97,7 +196,7 @@ object SMADUtils {
entity: NewsEntity?, entity: NewsEntity?,
listener: ZXADVideoListener?, listener: ZXADVideoListener?,
callback: ZXADCallback? callback: ZXADCallback?
){ ) {
// val windFullScreenVideoAd = WindFullScreenVideoAd.sharedInstance() // val windFullScreenVideoAd = WindFullScreenVideoAd.sharedInstance()
...@@ -111,10 +210,12 @@ object SMADUtils { ...@@ -111,10 +210,12 @@ object SMADUtils {
val request = WindFullScreenAdRequest( val request = WindFullScreenAdRequest(
"e8599e387e8", "e8599e387e8",
SettingPreference.getUid(), SettingPreference.getUid(),
null) null
windFullScreenVideoAd.loadAd( request) )
windFullScreenVideoAd.loadAd(request)
windFullScreenVideoAd.setWindFullScreenVideoAdListener(object : WindFullScreenVideoAdListener { windFullScreenVideoAd.setWindFullScreenVideoAdListener(object :
WindFullScreenVideoAdListener {
override fun onFullScreenVideoAdPlayError(p0: WindAdError?, p1: String?) { override fun onFullScreenVideoAdPlayError(p0: WindAdError?, p1: String?) {
} }
......
...@@ -328,7 +328,7 @@ object CenterDialog : BaseDialog() { ...@@ -328,7 +328,7 @@ object CenterDialog : BaseDialog() {
* adType: 广告的类型 * adType: 广告的类型
*/ */
fun showgetWaterDrop( fun showgetWaterDrop(
context: Context?, context: Activity?,
type: Int, type: Int,
rewardCount: Int, rewardCount: Int,
listener: DialogInterface.OnCancelListener, listener: DialogInterface.OnCancelListener,
......
...@@ -4,6 +4,7 @@ package com.ym.library.utils ...@@ -4,6 +4,7 @@ package com.ym.library.utils
import android.util.Log import android.util.Log
import com.umeng.analytics.MobclickAgent import com.umeng.analytics.MobclickAgent
import com.ym.library.AppliContext import com.ym.library.AppliContext
import com.ym.library.module.NewsEntity
import com.ym.library.net.EventApiClient import com.ym.library.net.EventApiClient
import io.reactivex.Observer import io.reactivex.Observer
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
...@@ -73,6 +74,20 @@ object EventUtils { ...@@ -73,6 +74,20 @@ object EventUtils {
apiClient(jsonObj) apiClient(jsonObj)
MobclickAgent.onEvent(AppliContext.get(), action, value) MobclickAgent.onEvent(AppliContext.get(), action, value)
} }
fun onEventShow(entity: NewsEntity) {
if (entity?.imp_tracking != null && entity?.imp_tracking.size >0) {
apiClient(entity?.imp_tracking[0])
}
}
fun onEventClick(entity: NewsEntity) {
if (entity?.clk_tracking != null && entity?.clk_tracking.size >0) {
apiClient(entity?.clk_tracking[0])
}
}
fun onEventUM(action: String, value: String) { fun onEventUM(action: String, value: String) {
MobclickAgent.onEvent(AppliContext.get(), action, value) MobclickAgent.onEvent(AppliContext.get(), action, value)
} }
......
...@@ -31,9 +31,11 @@ public class WxImplUtils implements UMAuthListener { ...@@ -31,9 +31,11 @@ public class WxImplUtils implements UMAuthListener {
private IWxLoginCallback mCallback; private IWxLoginCallback mCallback;
private Context mContext = AppliContext.get(); private Context mContext = AppliContext.get();
private static final String TAG = "WxImplUtils"; private static final String TAG = "WxImplUtils";
private Activity activity;
public void init(IWxLoginCallback mCallback, Activity activity) { public void init(IWxLoginCallback mCallback, Activity activity) {
this.mCallback = mCallback; this.mCallback = mCallback;
this.activity = activity;
mShareAPI = UMShareAPI.get(activity); mShareAPI = UMShareAPI.get(activity);
mLoading = LoadingDialog.getLoadingDialog(activity, mContext.getString(R.string.wait_ing), true, true); mLoading = LoadingDialog.getLoadingDialog(activity, mContext.getString(R.string.wait_ing), true, true);
mLoading.dismiss(); mLoading.dismiss();
...@@ -71,7 +73,7 @@ public class WxImplUtils implements UMAuthListener { ...@@ -71,7 +73,7 @@ public class WxImplUtils implements UMAuthListener {
Log.i(TAG, "onComplete: "); Log.i(TAG, "onComplete: ");
dismissDialog(); dismissDialog();
ApiClient.INSTANCE.getUserApi().bindWx(data.get("openid"),data.get("accessToken")). ApiClient.INSTANCE.getUserApi().bindWx(data.get("openid"), data.get("accessToken")).
compose(RxSchedulers.observableIO2Main(mContext)) compose(RxSchedulers.observableIO2Main(mContext))
.subscribe(new BaseObserver<WxBindEntity>() { .subscribe(new BaseObserver<WxBindEntity>() {
@Override @Override
...@@ -81,7 +83,7 @@ public class WxImplUtils implements UMAuthListener { ...@@ -81,7 +83,7 @@ public class WxImplUtils implements UMAuthListener {
SettingPreference.setToken(result.getFlushToken()); SettingPreference.setToken(result.getFlushToken());
UserInfoEntity user = SettingPreference.getUserInfoData(); UserInfoEntity user = SettingPreference.getUserInfoData();
if (user!=null){ if (user != null) {
user.setBind(true); user.setBind(true);
user.setHeadimgurl(data.get("iconurl")); user.setHeadimgurl(data.get("iconurl"));
user.setNickname(data.get("screen_name")); user.setNickname(data.get("screen_name"));
...@@ -89,7 +91,7 @@ public class WxImplUtils implements UMAuthListener { ...@@ -89,7 +91,7 @@ public class WxImplUtils implements UMAuthListener {
SettingPreference.saveUserInfo(user); SettingPreference.saveUserInfo(user);
SettingPreference.saveUserInfoName(data.get("screen_name")); SettingPreference.saveUserInfoName(data.get("screen_name"));
mCallback.onWxSuccess(data.get("access_token"), data.get("openid")); mCallback.onWxSuccess(data.get("access_token"), data.get("openid"));
}else { } else {
mCallback.onWxFail("绑定失败"); mCallback.onWxFail("绑定失败");
} }
...@@ -135,7 +137,7 @@ public class WxImplUtils implements UMAuthListener { ...@@ -135,7 +137,7 @@ public class WxImplUtils implements UMAuthListener {
} }
public void dismissDialog() { public void dismissDialog() {
if (mLoading != null) { if (mLoading != null && activity != null && !activity.isFinishing()) {
mLoading.dismiss(); mLoading.dismiss();
} }
} }
...@@ -153,6 +155,7 @@ public class WxImplUtils implements UMAuthListener { ...@@ -153,6 +155,7 @@ public class WxImplUtils implements UMAuthListener {
public interface IWxLoginCallback { public interface IWxLoginCallback {
void onWxSuccess(String token, String openid); void onWxSuccess(String token, String openid);
void onWxFail(String mes); void onWxFail(String mes);
} }
......
...@@ -33,7 +33,7 @@ object WNManager { ...@@ -33,7 +33,7 @@ object WNManager {
override fun onError(code: Int, message: String) { override fun onError(code: Int, message: String) {
listener.onError() listener.onError()
callback.onAdFail() callback.onAdFail()
Log.i("WNManager","code:${code} -- message:${message}") Log.i("WNManager", "code:${code} -- message:${message}")
} }
override fun onLoad(ad: WNRewardVideoAd) { override fun onLoad(ad: WNRewardVideoAd) {
...@@ -42,15 +42,15 @@ object WNManager { ...@@ -42,15 +42,15 @@ object WNManager {
Log.d("WNManager", "激励视频展示") Log.d("WNManager", "激励视频展示")
listener.onAdShow() listener.onAdShow()
callback.onAdSuccess() callback.onAdSuccess()
EventUtils.apiClient(entity?.imp_tracking[0]) EventUtils.onEventShow(entity)
EventUtils.onEventUM("ad_reward_video_show","优量宝激励视频") EventUtils.onEventUM("ad_reward_video_show", "优量宝激励视频")
} }
override fun onAdClick() { override fun onAdClick() {
Log.d("WNManager", "激励视频点击") Log.d("WNManager", "激励视频点击")
listener.onAdVideoBarClick(entity) listener.onAdVideoBarClick(entity)
EventUtils.apiClient(entity?.clk_tracking[0]) EventUtils.onEventClick(entity)
EventUtils.onEventUM("ad_reward_video_click","优量宝激励视频") EventUtils.onEventUM("ad_reward_video_click", "优量宝激励视频")
} }
override fun onAdClose() { override fun onAdClose() {
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false"
tools:ignore="MissingDefaultResource"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="30dp">
<ImageView
android:id="@+id/id_iv_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/vlion_back"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"/>
<TextView
android:id="@+id/id_tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textStyle="bold"
android:layout_centerInParent="true"/>
</RelativeLayout>
<FrameLayout
android:id="@+id/id_activity_fragment_content"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
\ No newline at end of file
...@@ -5,8 +5,10 @@ import android.content.ClipboardManager ...@@ -5,8 +5,10 @@ import android.content.ClipboardManager
import android.content.Context import android.content.Context
import com.bytedance.sdk.openadsdk.TTNativeExpressAd import com.bytedance.sdk.openadsdk.TTNativeExpressAd
import com.umeng.analytics.MobclickAgent import com.umeng.analytics.MobclickAgent
import com.ym.admodule.rs.RSADUtils
import com.ym.library.Constant import com.ym.library.Constant
import com.ym.library.config.AdManager import com.ym.library.config.AdManager
import com.ym.library.config.ZXADCallback
import com.ym.library.config.ZXADSizeConfig import com.ym.library.config.ZXADSizeConfig
import com.ym.library.down.UpdateVersionManager import com.ym.library.down.UpdateVersionManager
import com.ym.library.listener.ZXADExpressListener import com.ym.library.listener.ZXADExpressListener
...@@ -27,7 +29,7 @@ class SettingActivity : BaseActivity() { ...@@ -27,7 +29,7 @@ class SettingActivity : BaseActivity() {
} }
override fun init() { override fun init() {
if(SettingPreference.getUserInfoData()!=null){ if (SettingPreference.getUserInfoData() != null) {
id_tv_id.text = "ID: ${SettingPreference.getUserInfoData().uid}" id_tv_id.text = "ID: ${SettingPreference.getUserInfoData().uid}"
} }
if (Constant.qq != 0) { if (Constant.qq != 0) {
...@@ -43,22 +45,21 @@ class SettingActivity : BaseActivity() { ...@@ -43,22 +45,21 @@ class SettingActivity : BaseActivity() {
// tv_user_toolbar_title.text = "设置" // tv_user_toolbar_title.text = "设置"
//用户协议 //用户协议
tv_setting_user_agreement.setOnClickListener { tv_setting_user_agreement.setOnClickListener {
JumpUtils.h5Jump("用户协议", Constant.Param.USER, true,this) JumpUtils.h5Jump("用户协议", Constant.Param.USER, true, this)
} }
//隐私条款 //隐私条款
tv_setting_privacy_policy.setOnClickListener { tv_setting_privacy_policy.setOnClickListener {
JumpUtils.h5Jump("隐私条款", Constant.Param.PRIVACY, true,this) JumpUtils.h5Jump("隐私条款", Constant.Param.PRIVACY, true, this)
} }
//关于我们 //关于我们
tv_setting_about_us.setOnClickListener { tv_setting_about_us.setOnClickListener {
JumpUtils.h5Jump("关于我们", Constant.Param.ABOUTUS, true,this) JumpUtils.h5Jump("关于我们", Constant.Param.ABOUTUS, true, this)
} }
//版本升级 //版本升级
id_setting_update_version.setOnClickListener { id_setting_update_version.setOnClickListener {
val updateVersionManager = this?.let { it1 -> UpdateVersionManager(it1) } val updateVersionManager = this?.let { it1 -> UpdateVersionManager(it1) }
updateVersionManager?.checkUpdate(true) updateVersionManager?.checkUpdate(true)
} }
AdManager.loadFeedAd( AdManager.loadFeedAd(
ADConfig.AD_IMG_FADE, ADConfig.AD_IMG_FADE,
this, this,
...@@ -120,7 +121,7 @@ class SettingActivity : BaseActivity() { ...@@ -120,7 +121,7 @@ class SettingActivity : BaseActivity() {
this?.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager this?.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
// 创建普通字符型ClipData // 创建普通字符型ClipData
var idDesc = "123456" var idDesc = "123456"
if (SettingPreference.getUserInfoData()!=null){ if (SettingPreference.getUserInfoData() != null) {
idDesc = SettingPreference.getUserInfoData()?.uid.toString() idDesc = SettingPreference.getUserInfoData()?.uid.toString()
} }
val mClipData: ClipData = val mClipData: ClipData =
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment