From cf7cd925c1279e86916eef6d6876b874943d1b77 Mon Sep 17 00:00:00 2001 From: klxiaoniu Date: Sun, 2 Jul 2023 16:58:58 +0800 Subject: [PATCH] fix: optimize HideMiniAppLoadingAd --- .../ioctl/hook/mini/HideMiniAppLoadingAd.kt | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/cc/ioctl/hook/mini/HideMiniAppLoadingAd.kt b/app/src/main/java/cc/ioctl/hook/mini/HideMiniAppLoadingAd.kt index 52d13b15e7..f23a31b586 100644 --- a/app/src/main/java/cc/ioctl/hook/mini/HideMiniAppLoadingAd.kt +++ b/app/src/main/java/cc/ioctl/hook/mini/HideMiniAppLoadingAd.kt @@ -23,6 +23,7 @@ package cc.ioctl.hook.mini import cc.ioctl.util.hookBeforeIfEnabled +import com.github.kyuubiran.ezxhelper.utils.hookBefore import io.github.qauxv.base.annotation.FunctionHookEntry import io.github.qauxv.base.annotation.UiItemAgentEntry import io.github.qauxv.dsl.FunctionEntryRouter @@ -33,6 +34,8 @@ import io.github.qauxv.util.SyncUtils import io.github.qauxv.util.TIMVersion import io.github.qauxv.util.requireMinQQVersion import io.github.qauxv.util.requireMinTimVersion +import xyz.nextalone.util.invoke +import xyz.nextalone.util.method @FunctionHookEntry @UiItemAgentEntry @@ -49,10 +52,19 @@ object HideMiniAppLoadingAd : CommonSwitchFunctionHook( get() = requireMinQQVersion(QQVersion.QQ_8_3_9) || requireMinTimVersion(TIMVersion.TIM_3_5_0) override fun initOnce(): Boolean { - val kMiniLoadingAdManager = Initiator.loadClass("com.tencent.qqmini.sdk.manager.MiniLoadingAdManager") - val method = kMiniLoadingAdManager.declaredMethods.single { it.name == "updateLoadingAdLayoutAndShow" } - hookBeforeIfEnabled(method) { param -> - param.result = null + try { + Initiator.loadClass("com.tencent.mobileqq.mini.widget.MiniLoadingAdLayout") + .method("show")!! + .hookBefore { param -> + param.args[0].invoke("onDismiss", true) + param.result = null + } + } catch (_: Exception) { + val kMiniLoadingAdManager = Initiator.loadClass("com.tencent.qqmini.sdk.manager.MiniLoadingAdManager") + val method = kMiniLoadingAdManager.declaredMethods.single { it.name == "updateLoadingAdLayoutAndShow" } + hookBeforeIfEnabled(method) { param -> + param.result = null + } } return true }