From aabc48aacb39f5c1bf2e71bd3885607489234469 Mon Sep 17 00:00:00 2001 From: hd <1839732296@qq.com> Date: Sun, 1 Sep 2024 18:22:06 +0800 Subject: [PATCH] fix: ShowMsgCount show mini aio msg count Closes #1159 --- .../java/cc/ioctl/hook/msg/ShowMsgCount.kt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/app/src/main/java/cc/ioctl/hook/msg/ShowMsgCount.kt b/app/src/main/java/cc/ioctl/hook/msg/ShowMsgCount.kt index d4277b937c..33134f1780 100644 --- a/app/src/main/java/cc/ioctl/hook/msg/ShowMsgCount.kt +++ b/app/src/main/java/cc/ioctl/hook/msg/ShowMsgCount.kt @@ -28,6 +28,7 @@ import cc.ioctl.util.HookUtils.BeforeAndAfterHookedMethod import cc.ioctl.util.HookUtils.hookBeforeAndAfterIfEnabled import cc.ioctl.util.LayoutHelper import cc.ioctl.util.hookBeforeIfEnabled +import com.github.kyuubiran.ezxhelper.utils.findFieldObjectAs import com.github.kyuubiran.ezxhelper.utils.hookAfter import io.github.qauxv.base.annotation.FunctionHookEntry import io.github.qauxv.base.annotation.UiItemAgentEntry @@ -40,8 +41,10 @@ import io.github.qauxv.util.dexkit.AIOTitleVB_updateLeftTopBack_NT import io.github.qauxv.util.dexkit.CCustomWidgetUtil_updateCustomNoteTxt_NT import io.github.qauxv.util.dexkit.DexKit import io.github.qauxv.util.dexkit.NCustomWidgetUtil_updateCustomNoteTxt +import io.github.qauxv.util.hostInfo import io.github.qauxv.util.requireMinQQVersion import io.github.qauxv.util.xpcompat.XC_MethodHook.MethodHookParam +import me.ketal.util.findViewByType import xyz.nextalone.util.get import xyz.nextalone.util.throwOrTrue @@ -77,6 +80,24 @@ object ShowMsgCount : CommonSwitchFunctionHook( } } + if (QQVersion.QQ_8_9_63 <= hostInfo.versionCode && hostInfo.versionCode <= QQVersion.QQ_9_0_68) { + // 隐藏会话右上角消息数量 + Initiator.loadClass("com.tencent.mobileqq.activity.miniaio.h") + .getDeclaredMethod("updateUnreadCount", Int::class.java, Boolean::class.java) + .hookAfter { param -> + val tv = if (requireMinQQVersion(QQVersion.QQ_9_0_60)) { + val view = param.thisObject.get("h") as ViewGroup + view.findViewByType(TextView::class.java) as TextView + } else { + param.thisObject.findFieldObjectAs { + type == TextView::class.java + } + } + val count = param.args[0] as Int + tv.text = count.toString() + } + } + if (requireMinQQVersion(QQVersion.QQ_9_0_8)) { // 群消息数量 + 群聊左上角返回消息数量 val clz = Initiator.loadClass("com.tencent.mobileqq.quibadge.QUIBadge")