refactor: update KavaRef usage to 1.0.1

This commit is contained in:
2025-07-06 21:29:16 +08:00
parent 147e4c117e
commit 53249108d1
4 changed files with 10 additions and 7 deletions

View File

@@ -47,6 +47,7 @@ import com.fankes.tsbattery.hook.factory.startModuleSettings
import com.fankes.tsbattery.hook.helper.DexKitHelper
import com.fankes.tsbattery.utils.factory.appVersionName
import com.fankes.tsbattery.utils.factory.dp
import com.highcapable.kavaref.KavaRef.Companion.asResolver
import com.highcapable.kavaref.KavaRef.Companion.resolve
import com.highcapable.kavaref.extension.ArrayClass
import com.highcapable.kavaref.extension.VariousClass
@@ -150,7 +151,7 @@ object QQTIMHooker : YukiBaseHooker() {
* @return [Activity] or null
*/
private fun Any.compatToActivity() = if (this !is Activity)
resolve().optional().firstMethodOrNull { name = "getActivity"; superclass() }?.invoke()
asResolver().optional().firstMethodOrNull { name = "getActivity"; superclass() }?.invoke()
else this
/** 使用 DexKit 进行搜索 */
@@ -496,13 +497,13 @@ object QQTIMHooker : YukiBaseHooker() {
*/
private fun hookQQSettingsUiLegacy(instance: Any?) {
/** 当前的顶级 Item 实例 */
val formItemRefRoot = instance?.resolve()?.optional()?.lastFieldOrNull {
val formItemRefRoot = instance?.asResolver()?.optional()?.lastFieldOrNull {
type { it == FormSimpleItemClass || it == FormCommonSingleLineItemClass }
}?.get<View>()
/** 创建一个新的 Item */
val item = FormSimpleItemClass?.createInstanceAsTypeOrNull<View>(instance?.compatToActivity())
item?.resolve()?.optional()?.apply {
item?.asResolver()?.optional()?.apply {
firstMethodOrNull {
name = "setLeftText"
parameters(CharSequence::class)

View File

@@ -42,6 +42,7 @@ import com.fankes.tsbattery.utils.factory.absoluteStatusBarHeight
import com.fankes.tsbattery.utils.factory.appVersionCode
import com.fankes.tsbattery.utils.factory.appVersionName
import com.fankes.tsbattery.utils.factory.dp
import com.highcapable.kavaref.KavaRef.Companion.asResolver
import com.highcapable.kavaref.KavaRef.Companion.resolve
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
import com.highcapable.yukihookapi.hook.factory.injectModuleAppResources
@@ -125,7 +126,7 @@ object WeChatHooker : YukiBaseHooker() {
name = "get_fragment"
emptyParameters()
superclass()
}?.of(instance)?.invoke()?.resolve()?.optional()?.firstMethodOrNull {
}?.of(instance)?.invoke()?.asResolver()?.optional()?.firstMethodOrNull {
name = "getView"
emptyParameters()
returnType = View::class

View File

@@ -30,6 +30,7 @@ import com.fankes.tsbattery.const.JumpEvent
import com.fankes.tsbattery.const.PackageName
import com.fankes.tsbattery.hook.entity.QQTIMHooker.toClass
import com.fankes.tsbattery.ui.activity.parasitic.ConfigActivity
import com.highcapable.kavaref.KavaRef.Companion.asResolver
import com.highcapable.kavaref.KavaRef.Companion.resolve
import com.highcapable.kavaref.extension.VariousClass
import com.highcapable.yukihookapi.YukiHookAPI
@@ -53,7 +54,7 @@ fun Context.isQQNightMode(): Boolean {
name = "sMobileQQ"
superclass()
}?.get()
val mAppRuntime = sMobileQQ?.resolve()
val mAppRuntime = sMobileQQ?.asResolver()
?.optional()
?.firstFieldOrNull {
name = "mAppRuntime"

View File

@@ -48,9 +48,9 @@ libraries:
version-ref: <this>::api
com.highcapable.kavaref:
kavaref-core:
version: 1.0.0
version: 1.0.1
kavaref-extension:
version: 1.0.0
version: 1.0.1
com.highcapable.hikage:
hikage-core:
version: 1.0.1