From c99b66e3946a9845a7aab99665570e31a0c3985e Mon Sep 17 00:00:00 2001 From: klxiaoniu Date: Thu, 9 Nov 2023 20:26:41 +0800 Subject: [PATCH] feat: EnableEmotionDownload --- .../hook/DisableAddTroopToRecentUser.kt | 3 +- .../com/xiaoniu/hook/EnableEmotionDownload.kt | 48 +++++++++++++++++++ .../github/qauxv/util/dexkit/DexKitTarget.kt | 7 +++ 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/xiaoniu/hook/EnableEmotionDownload.kt diff --git a/app/src/main/java/com/xiaoniu/hook/DisableAddTroopToRecentUser.kt b/app/src/main/java/com/xiaoniu/hook/DisableAddTroopToRecentUser.kt index c789d9585d..53bd2b8b50 100644 --- a/app/src/main/java/com/xiaoniu/hook/DisableAddTroopToRecentUser.kt +++ b/app/src/main/java/com/xiaoniu/hook/DisableAddTroopToRecentUser.kt @@ -29,13 +29,12 @@ import io.github.qauxv.dsl.FunctionEntryRouter import io.github.qauxv.hook.CommonSwitchFunctionHook import io.github.qauxv.util.Initiator import io.github.qauxv.util.QQVersion -import io.github.qauxv.util.dexkit.TroopGuildChatPie_flingRToL import io.github.qauxv.util.requireMinQQVersion @FunctionHookEntry @UiItemAgentEntry -object DisableAddTroopToRecentUser : CommonSwitchFunctionHook(arrayOf(TroopGuildChatPie_flingRToL)) { +object DisableAddTroopToRecentUser : CommonSwitchFunctionHook() { override val name = "禁止群助手中的群有新帖时显示在主页" diff --git a/app/src/main/java/com/xiaoniu/hook/EnableEmotionDownload.kt b/app/src/main/java/com/xiaoniu/hook/EnableEmotionDownload.kt new file mode 100644 index 0000000000..1725a804b3 --- /dev/null +++ b/app/src/main/java/com/xiaoniu/hook/EnableEmotionDownload.kt @@ -0,0 +1,48 @@ +/* + * QAuxiliary - An Xposed module for QQ/TIM + * Copyright (C) 2019-2023 QAuxiliary developers + * https://github.com/cinit/QAuxiliary + * + * This software is non-free but opensource software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public License + * as published by the Free Software Foundation; either + * version 3 of the License, or any later version and our eula 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 GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * and eula along with this software. If not, see + * + * . + */ + +package com.xiaoniu.hook + +import com.github.kyuubiran.ezxhelper.utils.hookReturnConstant +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.EmotionDownloadEnableSwitch +import io.github.qauxv.util.requireMinQQVersion + +@FunctionHookEntry +@UiItemAgentEntry +object EnableEmotionDownload : CommonSwitchFunctionHook(arrayOf(EmotionDownloadEnableSwitch)) { + override val name = "允许保存图片表情" + + override fun initOnce(): Boolean { + DexKit.requireMethodFromCache(EmotionDownloadEnableSwitch).hookReturnConstant(false) + return true + } + + override val uiItemLocation = FunctionEntryRouter.Locations.Auxiliary.MESSAGE_CATEGORY + + override val isAvailable = requireMinQQVersion(QQVersion.QQ_8_9_80) +} 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 5a22abae29..bace2ba3ec 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 @@ -817,3 +817,10 @@ data object X5_Properties_conf: DexKitTarget.UsingStr() { override val declaringClass: String = "com.tencent.smtt.utils.LoadPropertiesUtils" override val filter = DexKitFilter.allowAll } + +data object EmotionDownloadEnableSwitch: DexKitTarget.UsingStringVector() { + override val findMethod = true + override val traitStringVectors = arrayOf(arrayOf("emotion_download_disable_8980_887036489","QRoute.api(IUnitedConfig…le_8980_887036489")) + override val declaringClass: String = "" + override val filter = DexKitFilter.strInClsName("com/tencent/mobileqq/emotionintegrate/") +}