Added QQ version support situation

This commit is contained in:
2022-07-05 22:45:17 +08:00
parent 4b36437dac
commit 3d12d3f4a5

View File

@@ -84,6 +84,9 @@ class HookEntry : IYukiHookXposedInit {
) )
} }
/** 是否完全支持当前版本 */
private var isHookClientSupport = true
/** /**
* 这个类 QQ 的 BaseChatPie 是控制聊天界面的 * 这个类 QQ 的 BaseChatPie 是控制聊天界面的
* *
@@ -142,7 +145,10 @@ class HookEntry : IYukiHookXposedInit {
interceptBaseChatPie(methodName = "M3") interceptBaseChatPie(methodName = "M3")
interceptBaseChatPie(methodName = "S") interceptBaseChatPie(methodName = "S")
} }
else -> loggerD(msg = "$version not supported!") else -> {
isHookClientSupport = false
loggerD(msg = "$version not supported!")
}
} }
} }
@@ -196,11 +202,12 @@ class HookEntry : IYukiHookXposedInit {
/** /**
* 提示模块运行信息 QQ、TIM、微信 * 提示模块运行信息 QQ、TIM、微信
* @param isQQTIM 是否为 QQ、TIM * @param isQQ 是否为 QQ
* @param isTIM 是否为 TIM
*/ */
private fun PackageParam.hookModuleRunningInfo(isQQTIM: Boolean) = private fun PackageParam.hookModuleRunningInfo(isQQ: Boolean = false, isTIM: Boolean = false) =
when { when {
isQQTIM -> SplashActivityClass.hook { isQQ || isTIM -> SplashActivityClass.hook {
/** /**
* Hook 启动界面的第一个 [Activity] * Hook 启动界面的第一个 [Activity]
* QQ 和 TIM 都是一样的类 * QQ 和 TIM 都是一样的类
@@ -217,7 +224,9 @@ class HookEntry : IYukiHookXposedInit {
showDialog { showDialog {
title = "TSBattery 已激活" title = "TSBattery 已激活"
msg = "[提示模块运行信息功能已打开]\n\n" + msg = "[提示模块运行信息功能已打开]\n\n" +
"模块工作看起来一切正常,请自行测试是否能达到省电效果。\n\n" + (if (isQQ && isHookClientSupport.not())
"❎ 当前版本 $versionName($versionCode) 不在兼容列表,请自行测试是否生效~\n\n"
else "✅ 模块工作看起来一切正常,请自行测试是否能达到省电效果。\n\n") +
"已生效模块版本:${prefs.get(DataConst.ENABLE_MODULE_VERSION)}\n" + "已生效模块版本:${prefs.get(DataConst.ENABLE_MODULE_VERSION)}\n" +
"当前模式:${if (prefs.get(DataConst.ENABLE_QQTIM_WHITE_MODE)) "保守模式" else "完全模式"}" + "当前模式:${if (prefs.get(DataConst.ENABLE_QQTIM_WHITE_MODE)) "保守模式" else "完全模式"}" +
"\n\n包名:${packageName}\n版本:$versionName($versionCode)" + "\n\n包名:${packageName}\n版本:$versionName($versionCode)" +
@@ -356,7 +365,7 @@ class HookEntry : IYukiHookXposedInit {
method { method {
name = "setRightText" name = "setRightText"
param(CharSequenceType) param(CharSequenceType)
}.call(prefs.get(DataConst.ENABLE_MODULE_VERSION)) }.call("${if (isQQ && isHookClientSupport.not()) "❎" else "✅"} ${prefs.get(DataConst.ENABLE_MODULE_VERSION)}")
method { method {
name = "setBgType" name = "setBgType"
param(IntType) param(IntType)
@@ -366,7 +375,9 @@ class HookEntry : IYukiHookXposedInit {
instance<Activity>().apply { instance<Activity>().apply {
showDialog { showDialog {
title = "TSBattery 守护中" title = "TSBattery 守护中"
msg = "已生效模块版本:${prefs.get(DataConst.ENABLE_MODULE_VERSION)}\n" + msg = (if (isQQ && isHookClientSupport.not())
"❎ 当前版本 $versionName($versionCode) 不在兼容列表,请自行测试是否生效~\n\n" else "") +
"已生效模块版本:${prefs.get(DataConst.ENABLE_MODULE_VERSION)}\n" +
"当前模式:${if (prefs.get(DataConst.ENABLE_QQTIM_WHITE_MODE)) "保守模式" else "完全模式"}" + "当前模式:${if (prefs.get(DataConst.ENABLE_QQTIM_WHITE_MODE)) "保守模式" else "完全模式"}" +
"\n\n包名:${packageName}\n版本:$versionName($versionCode)" + "\n\n包名:${packageName}\n版本:$versionName($versionCode)" +
"\n\n模块只对挂后台锁屏情况下有省电效果," + "\n\n模块只对挂后台锁屏情况下有省电效果," +
@@ -417,7 +428,7 @@ class HookEntry : IYukiHookXposedInit {
hookSystemWakeLock() hookSystemWakeLock()
hookNotification() hookNotification()
hookCoreService(isQQ = true) hookCoreService(isQQ = true)
hookModuleRunningInfo(isQQTIM = true) hookModuleRunningInfo(isQQ = true)
hookQQSettingsSettingActivity(isQQ = true) hookQQSettingsSettingActivity(isQQ = true)
if (prefs.get(DataConst.ENABLE_QQTIM_WHITE_MODE)) return@loadApp if (prefs.get(DataConst.ENABLE_QQTIM_WHITE_MODE)) return@loadApp
/** 通过在 [SplashActivityClass] 里取到应用的版本号 */ /** 通过在 [SplashActivityClass] 里取到应用的版本号 */
@@ -638,13 +649,13 @@ class HookEntry : IYukiHookXposedInit {
hookSystemWakeLock() hookSystemWakeLock()
hookNotification() hookNotification()
hookCoreService(isQQ = false) hookCoreService(isQQ = false)
hookModuleRunningInfo(isQQTIM = true) hookModuleRunningInfo(isTIM = true)
hookQQSettingsSettingActivity(isQQ = false) hookQQSettingsSettingActivity(isQQ = false)
} }
loadApp(WECHAT_PACKAGE_NAME) { loadApp(WECHAT_PACKAGE_NAME) {
if (prefs.get(DataConst.DISABLE_WECHAT_HOOK)) return@loadApp if (prefs.get(DataConst.DISABLE_WECHAT_HOOK)) return@loadApp
hookSystemWakeLock() hookSystemWakeLock()
hookModuleRunningInfo(isQQTIM = false) hookModuleRunningInfo()
loggerD(msg = "ウイチャット:それが機能するかどうかはわかりませんでした") loggerD(msg = "ウイチャット:それが機能するかどうかはわかりませんでした")
} }
} }