From c6cd502a50370ae878d05f86a0266b63284cf537 Mon Sep 17 00:00:00 2001 From: hd <1839732296@qq.com> Date: Sun, 27 Oct 2024 17:06:26 +0800 Subject: [PATCH] feat: HideShortcutBar Closes #1226 --- .../github/qauxv/util/dexkit/DexKitTarget.kt | 7 +++ .../main/java/me/hd/hook/HideShortcutBar.kt | 52 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 app/src/main/java/me/hd/hook/HideShortcutBar.kt diff --git a/app/src/main/java/io/github/qauxv/util/dexkit/DexKitTarget.kt b/app/src/main/java/io/github/qauxv/util/dexkit/DexKitTarget.kt index 5f6f062f92..0dec2f7896 100644 --- a/app/src/main/java/io/github/qauxv/util/dexkit/DexKitTarget.kt +++ b/app/src/main/java/io/github/qauxv/util/dexkit/DexKitTarget.kt @@ -1029,4 +1029,11 @@ data object RemoveAudioTransitionMethod : DexKitTarget.UsingStr() { override val traitString = arrayOf("getDrawable onCompositionLoaded lottieComposition is null or mIsDestroyed") override val declaringClass = "Lcom/tencent/mobileqq/activity/aio/audiopanel/AudioTransitionAnimManager;" override val filter = DexKitFilter.allowAll +} + +data object Hd_HideShortcutBar_Method : DexKitTarget.UsingStr() { + override val findMethod = true + override val traitString = arrayOf("isShortcutBarVisibleOrGoingToBeVisible return false for AIOIceBreakViewShowing") + override val declaringClass = "Lcom/tencent/mobileqq/activity/aio/helper/TroopAppShortcutBarHelper;" + override val filter = DexKitFilter.strInClsName("com/tencent/mobileqq/activity/aio/helper/") } \ No newline at end of file diff --git a/app/src/main/java/me/hd/hook/HideShortcutBar.kt b/app/src/main/java/me/hd/hook/HideShortcutBar.kt new file mode 100644 index 0000000000..bf41fa3908 --- /dev/null +++ b/app/src/main/java/me/hd/hook/HideShortcutBar.kt @@ -0,0 +1,52 @@ +/* + * QAuxiliary - An Xposed module for QQ/TIM + * Copyright (C) 2019-2024 QAuxiliary developers + * https://github.com/cinit/QAuxiliary + * + * This software is an opensource software: you can redistribute it + * and/or modify it under the terms of the General Public License + * as published by the Free Software Foundation; either + * version 3 of the License, or any later version as published + * by QAuxiliary contributors. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the General Public License for more details. + * + * You should have received a copy of the General Public License + * along with this software. + * If not, see + * . + */ + +package me.hd.hook + +import cc.ioctl.util.hookAfterIfEnabled +import io.github.qauxv.base.annotation.FunctionHookEntry +import io.github.qauxv.base.annotation.UiItemAgentEntry +import io.github.qauxv.dsl.FunctionEntryRouter +import io.github.qauxv.hook.CommonSwitchFunctionHook +import io.github.qauxv.util.QQVersion +import io.github.qauxv.util.dexkit.DexKit +import io.github.qauxv.util.dexkit.Hd_HideShortcutBar_Method +import io.github.qauxv.util.requireMinQQVersion + +@FunctionHookEntry +@UiItemAgentEntry +object HideShortcutBar : CommonSwitchFunctionHook( + targets = arrayOf(Hd_HideShortcutBar_Method) +) { + + override val name = "隐藏聊天快捷栏" + override val description = "隐藏聊天输入框上方快捷栏展示的群应用" + override val uiItemLocation = FunctionEntryRouter.Locations.Simplify.CHAT_OTHER + override val isAvailable = requireMinQQVersion(QQVersion.QQ_8_9_88) + + override fun initOnce(): Boolean { + hookAfterIfEnabled(DexKit.requireMethodFromCache(Hd_HideShortcutBar_Method)) { param -> + param.result = false + } + return true + } +} \ No newline at end of file