From a43bb7d54dacc5cb0d7fb149215eac85b1fb7b4b Mon Sep 17 00:00:00 2001 From: klxiaoniu Date: Tue, 18 Jul 2023 13:06:47 +0800 Subject: [PATCH] fix: HideTroopLevel for QQNT --- .../java/io/github/qauxv/util/Initiator.java | 3 ++- .../java/xyz/nextalone/hook/HideTroopLevel.kt | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/io/github/qauxv/util/Initiator.java b/app/src/main/java/io/github/qauxv/util/Initiator.java index 2e956cd7e9..b8edc03365 100644 --- a/app/src/main/java/io/github/qauxv/util/Initiator.java +++ b/app/src/main/java/io/github/qauxv/util/Initiator.java @@ -373,7 +373,8 @@ public static Class _ThemeUtil() { } public static Class _TroopMemberLevelView() { - return findClassWithSynthetics("com.tencent.mobileqq.troop.troopMemberLevel.TroopMemberNewLevelView", + return findClassWithSynthetics("com.tencent.qqnt.aio.nick.memberlevel.TroopMemberLevelView", + "com.tencent.mobileqq.troop.troopMemberLevel.TroopMemberNewLevelView", "com.tencent.mobileqq.troop.widget.troopmemberlevel.TroopMemberNewLevelView"); } diff --git a/app/src/main/java/xyz/nextalone/hook/HideTroopLevel.kt b/app/src/main/java/xyz/nextalone/hook/HideTroopLevel.kt index cd19083e07..1ba7a31273 100644 --- a/app/src/main/java/xyz/nextalone/hook/HideTroopLevel.kt +++ b/app/src/main/java/xyz/nextalone/hook/HideTroopLevel.kt @@ -22,10 +22,13 @@ package xyz.nextalone.hook import android.view.ViewGroup +import android.widget.LinearLayout +import androidx.core.view.children import androidx.core.view.isVisible import com.tencent.qqnt.kernel.nativeinterface.MsgRecord import de.robv.android.xposed.XC_MethodHook import io.github.qauxv.base.annotation.UiItemAgentEntry +import io.github.qauxv.bridge.ntapi.ChatTypeConstants import io.github.qauxv.dsl.FunctionEntryRouter import io.github.qauxv.hook.CommonSwitchFunctionHook import io.github.qauxv.util.Initiator._TroopMemberLevelView @@ -69,7 +72,16 @@ object HideTroopLevel : CommonSwitchFunctionHook(), OnBubbleBuilder { } override fun onGetViewNt(rootView: ViewGroup, chatMessage: MsgRecord, param: XC_MethodHook.MethodHookParam) { - if (!isEnabled) return - + if (!isEnabled || chatMessage.chatType != ChatTypeConstants.GROUP) return + if (levelClass == null) return + val levelView = rootView.findViewByType(levelClass) ?: return + val sendUin = chatMessage.senderUin.toString() + val troopInfo = TroopInfo(chatMessage.peerUid) + val ownerUin = troopInfo.troopOwnerUin + val admin = troopInfo.troopAdmin + val isAdmin = admin?.contains(sendUin) == true || ownerUin == sendUin + //levelView.children.filter { it !is TextView }.forEach { it.visibility = android.view.View.GONE } + // 如果forEach,则会隐藏昵称右侧的部分图标 + (levelView as LinearLayout).children.first().isVisible = isAdmin } }