feat: 推广打包配置项增加关键行为上报 https://jira.shanqu.cc/browse/GHZS-2797

This commit is contained in:
juntao
2023-06-30 16:02:27 +08:00
parent c999ddf914
commit cfe4c243e6
10 changed files with 62 additions and 8 deletions

View File

@ -23,6 +23,7 @@ import com.gh.gamecenter.feature.entity.GameEntity
import com.gh.gamecenter.feature.entity.SimulatorEntity
import com.gh.gamecenter.feature.utils.PlatformUtils
import com.gh.gamecenter.help.HelpAndFeedbackBridge
import com.gh.gamecenter.pkg.PkgHelper
import com.gh.vspace.VHelper
import com.halo.assistant.HaloApp
import com.lightgame.download.*
@ -38,7 +39,7 @@ object DownloadObserver {
// TODO 修复因为更改内存对象造成的双重下载完成事件问题,具体触发代码见 DownloadDao.updateSnapshotList
private var mDoneDebouncePair: Pair<String, Long>? = null
private const val TEA_EVENT_DOWNLOAD_COMPLETE = "game_addiction"
private const val CORE_EVENT_DOWNLOAD_COMPLETE_LOGGED = "CORE_EVENT_DOWNLOAD_COMPLETE_LOGGED"
// 如果在WIFI状态下,下载自动暂停,则再重试一遍
@JvmStatic
@ -203,10 +204,7 @@ object DownloadObserver {
} else {
statDoneEvent(downloadEntity)
if (!SPUtils.getBoolean(TEA_EVENT_DOWNLOAD_COMPLETE)) {
HaloApp.getInstance().flavorProvider.logEvent(TEA_EVENT_DOWNLOAD_COMPLETE)
SPUtils.setBoolean(TEA_EVENT_DOWNLOAD_COMPLETE, true)
}
logCoreEventIfNeeded(downloadEntity.getGameCategory())
GameActivityDownloadHelper.clear()
@ -445,4 +443,21 @@ object DownloadObserver {
DataLogUtils.uploadHijack(mApplication, downloadEntity)
}
/**
* 根据预设的游戏类型上报关键事件(下载完成事件)
*/
private fun logCoreEventIfNeeded(gameCategory: String) {
val category = PkgHelper.getCoreEventGameCategory()
val categoryMatched = if (category == "standard" || category.isNullOrEmpty()) {
true
} else {
gameCategory == category
}
if (!SPUtils.getBoolean(CORE_EVENT_DOWNLOAD_COMPLETE_LOGGED) && categoryMatched) {
HaloApp.getInstance().flavorProvider.logCoreEvent()
SPUtils.setBoolean(CORE_EVENT_DOWNLOAD_COMPLETE_LOGGED, true)
}
}
}

View File

@ -16,6 +16,7 @@ object PkgHelper {
private const val SP_PKG_CONFIG_IS_USED = "pkg_config_is_used"
private var mActivateRatioFromInternet = 0
private var mCoreEventGameCategory: String? = null
private val mPkgProvider by lazy {
ARouter.getInstance().build(RouteConsts.provider.pkg).navigation() as? IPkgProvider<PkgConfigEntity>
@ -32,6 +33,13 @@ object PkgHelper {
}
}
/**
* 获取预设的游戏类型上报关键事件
*/
fun getCoreEventGameCategory(): String? {
return mCoreEventGameCategory ?: BuildConfig.CORE_EVENT_GAME_CATEGORY
}
fun getPkgConfig(isFromHomeTopTab: Boolean): PkgConfigEntity.PkgLinkEntity? {
if (mPkgConfigLink == null
&& !SPUtils.getBoolean(SP_PKG_CONFIG_IS_USED, false)
@ -70,6 +78,7 @@ object PkgHelper {
mPkgProvider?.requestPkgConfig(configId) {
mPkgConfigLink = it.data?.link
mActivateRatioFromInternet = it.data?.activateRatio ?: 0
mCoreEventGameCategory = it.data?.coreEventGameCategory
}
}