fix: SimplifyQQSettingMe for QQ 9.0.80

This commit is contained in:
klxiaoniu
2024-07-21 22:48:38 +08:00
parent 018e2de59c
commit 4512bea4aa
2 changed files with 17 additions and 2 deletions

View File

@@ -26,6 +26,7 @@ import android.view.ViewGroup
import android.view.ViewTreeObserver
import android.widget.LinearLayout
import android.widget.TextView
import androidx.core.view.children
import androidx.core.view.forEach
import androidx.core.view.forEachIndexed
import androidx.core.view.get
@@ -38,8 +39,6 @@ import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.github.kyuubiran.ezxhelper.utils.hookReturnConstant
import com.github.kyuubiran.ezxhelper.utils.paramCount
import com.github.kyuubiran.ezxhelper.utils.setViewZeroSize
import io.github.qauxv.util.xpcompat.XC_MethodReplacement
import io.github.qauxv.util.xpcompat.XposedBridge
import io.github.qauxv.base.annotation.FunctionHookEntry
import io.github.qauxv.base.annotation.UiItemAgentEntry
import io.github.qauxv.dsl.FunctionEntryRouter
@@ -59,6 +58,8 @@ import io.github.qauxv.util.dexkit.QQSettingMeABTestHelper_isZplanExpGroup_Old
import io.github.qauxv.util.dexkit.QQ_SETTING_ME_CONFIG_CLASS
import io.github.qauxv.util.hostInfo
import io.github.qauxv.util.requireMinQQVersion
import io.github.qauxv.util.xpcompat.XC_MethodReplacement
import io.github.qauxv.util.xpcompat.XposedBridge
import xyz.nextalone.base.MultiItemDelayableHook
import xyz.nextalone.util.*
import java.lang.reflect.Array
@@ -284,6 +285,19 @@ object SimplifyQQSettingMe :
}
}
// QQ 9.0.80 在xml布局中固定了14个item这里将上面步骤完成后还未初始化的item隐藏
if (requireMinQQVersion(QQVersion.QQ_9_0_80)) {
"com.tencent.mobileqq.bizParts.QQSettingMeMenuPanelPart".clazz!!.method("onInitView")!!.hookAfter { param ->
// val parent=param.thisObject.javaClass.declaredFields.first {
// it.javaClass==ViewGroup::class.java && (it.get(param.thisObject) as ViewGroup).childCount>=14
// }.get(param.thisObject) as ViewGroup
val parent = param.thisObject.get("h") as ViewGroup
parent.children.forEach {
if (!it.isClickable) it.setViewZeroSize()
}
}
}
if (requireMinQQVersion(QQVersion.QQ_9_0_0)) {
// View层隐藏超级QQ秀 (到这里应该只需要处理 超级QQ秀 了
// 9.0.20起此段代码无效果且该版本起超级QQ秀可以在上面移除所以不再执行

View File

@@ -127,4 +127,5 @@ public class QQVersion {
public static final long QQ_9_0_71 = 6702;
public static final long QQ_9_0_73 = 6722;
public static final long QQ_9_0_75 = 6786;
public static final long QQ_9_0_80 = 6896;
}