Changed "PackageParam.isHookParamCallback" to "HookParam.isCallbackCalled"

This commit is contained in:
2022-05-16 10:06:47 +08:00
parent 48af06b2e7
commit 755341094a
3 changed files with 16 additions and 8 deletions

View File

@@ -111,8 +111,8 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara
@PublishedApi
internal fun hook(): Result {
if (YukiHookBridge.hasXposedBridge.not()) return Result()
/** 过滤 [HookEntryType.ZYGOTE] 与 [HookEntryType.PACKAGE] 或 [PackageParam.isHookParamCallback] 已被执行 */
if (packageParam.wrapper?.type == HookEntryType.RESOURCES && packageParam.isHookParamCallback.not()) return Result()
/** 过滤 [HookEntryType.ZYGOTE] 与 [HookEntryType.PACKAGE] 或 [HookParam.isCallbackCalled] 已被执行 */
if (packageParam.wrapper?.type == HookEntryType.RESOURCES && HookParam.isCallbackCalled.not()) return Result()
return if (preHookMembers.isEmpty()) error("Hook Members is empty, hook aborted")
else Result().also {
Thread {
@@ -472,7 +472,7 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara
beforeHookCallback?.invoke(param)
if (beforeHookCallback != null)
onHookLogMsg(msg = "Before Hook Member [${member ?: "All of \"$allMethodsName\""}] done [$tag]")
packageParam.isHookParamCallback = true
HookParam.invoke()
}.onFailure {
onConductFailureCallback?.invoke(param, it)
onAllFailureCallback?.invoke(it)
@@ -487,7 +487,7 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara
afterHookCallback?.invoke(param)
if (afterHookCallback != null)
onHookLogMsg(msg = "After Hook Member [${member ?: "All of \"$allMethodsName\""}] done [$tag]")
packageParam.isHookParamCallback = true
HookParam.invoke()
}.onFailure {
onConductFailureCallback?.invoke(param, it)
onAllFailureCallback?.invoke(it)
@@ -504,7 +504,7 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara
YukiHookBridge.Hooker.hookMethod(member, replaceMent)?.also { onHookedCallback?.invoke(it) }
?: error("Hook Member [$member] failed")
else YukiHookBridge.Hooker.hookMethod(member, beforeAfterHook)?.also { onHookedCallback?.invoke(it) }
?: error("Hook Member [$member] failed")).run { packageParam.isHookParamCallback = true }
?: error("Hook Member [$member] failed")).run { HookParam.invoke() }
}.onFailure {
onHookingFailureCallback?.invoke(it)
onAllFailureCallback?.invoke(it)

View File

@@ -42,6 +42,17 @@ import java.lang.reflect.Method
*/
class HookParam(private val createrInstance: YukiMemberHookCreater, private var wrapper: HookParamWrapper? = null) {
internal companion object {
/** [HookParam] 是否已经执行首次回调事件 */
internal var isCallbackCalled = false
/** 设置 [HookParam] 执行首次回调事件 */
internal fun invoke() {
isCallbackCalled = true
}
}
/**
* 在回调中设置 [HookParam] 使用的 [HookParamWrapper]
* @param wrapper [HookParamWrapper] 实例

View File

@@ -56,9 +56,6 @@ import com.highcapable.yukihookapi.hook.xposed.prefs.YukiHookModulePrefs
*/
open class PackageParam(@PublishedApi internal var wrapper: PackageParamWrapper? = null) {
/** [HookParam] 是否已经执行回调事件 */
internal var isHookParamCallback = false
/**
* 用于展示的 APP 包名
* @return [String]