Files
BiliRoaming/app/src/main/java/me/iacn/biliroaming/hook/BangumiPageAdHook.kt
T
Zhaohui Huang d5d3e61e30
Android CI / build (push) Has been cancelled
backup repo
2026-07-06 19:09:41 -11:00

33 lines
1.2 KiB
Kotlin

package me.iacn.biliroaming.hook
import me.iacn.biliroaming.BiliBiliPackage.Companion.instance
import me.iacn.biliroaming.utils.*
class BangumiPageAdHook(classLoader: ClassLoader) : BaseHook(classLoader) {
override fun startHook() {
if (!sPrefs.getBoolean("block_view_page_ads", false)) return
Log.d("startHook: BangumiPageAd")
val oGVActivityVoHooker: Hooker = { param ->
val args = param.args
for (i in args.indices) {
when (val item = args[i]) {
is Int -> args[i] = 0
is MutableList<*> -> item.clear()
else -> args[i] = null
}
}
}
// activity toast ad
"com.bilibili.bangumi.data.page.detail.entity.OGVActivityVo".from(mClassLoader)
?.hookBeforeAllConstructors(oGVActivityVoHooker)
"com.bilibili.ship.theseus.ogv.activity.OGVActivityVo".from(mClassLoader)
?.hookBeforeAllConstructors(oGVActivityVoHooker)
// mall
instance.bangumiUniformSeasonActivityEntrance()?.let {
instance.bangumiUniformSeasonClass?.replaceMethod(it) { null }
}
}
}