mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-06 02:35:40 +08:00
Specification callback code style
This commit is contained in:
@@ -609,11 +609,11 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara
|
||||
* 添加执行 Hook 需要满足的条件
|
||||
*
|
||||
* 不满足条件将直接停止 Hook
|
||||
* @param initiate 条件方法体
|
||||
* @param condition 条件方法体
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
inline fun by(initiate: () -> Boolean): Result {
|
||||
isDisableMemberRunHook = (runCatching { initiate() }.getOrNull() ?: false).not()
|
||||
inline fun by(condition: () -> Boolean): Result {
|
||||
isDisableMemberRunHook = (runCatching { condition() }.getOrNull() ?: false).not()
|
||||
if (isDisableMemberRunHook) ignoredAllFailure()
|
||||
return this
|
||||
}
|
||||
@@ -624,11 +624,11 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara
|
||||
* 在首次 Hook 成功后回调
|
||||
*
|
||||
* 在重复 Hook 时会回调 [onAlreadyHooked]
|
||||
* @param initiate 回调被 Hook 的 [Member]
|
||||
* @param result 回调被 Hook 的 [Member]
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
fun onHooked(initiate: (Member) -> Unit): Result {
|
||||
onHookedCallback = initiate
|
||||
fun onHooked(result: (Member) -> Unit): Result {
|
||||
onHookedCallback = result
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -636,21 +636,21 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara
|
||||
* 监听 [member] 重复 Hook 的回调方法
|
||||
*
|
||||
* - ❗同一个 [hookClass] 中的同一个 [member] 不会被 API 重复 Hook - 若由于各种原因重复 Hook 会回调此方法
|
||||
* @param initiate 回调被重复 Hook 的 [Member]
|
||||
* @param result 回调被重复 Hook 的 [Member]
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
fun onAlreadyHooked(initiate: (Member) -> Unit): Result {
|
||||
onAlreadyHookedCallback = initiate
|
||||
fun onAlreadyHooked(result: (Member) -> Unit): Result {
|
||||
onAlreadyHookedCallback = result
|
||||
return this
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听 [member] 不存在发生错误的回调方法
|
||||
* @param initiate 回调错误
|
||||
* @param result 回调错误
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
fun onNoSuchMemberFailure(initiate: (Throwable) -> Unit): Result {
|
||||
onNoSuchMemberFailureCallback = initiate
|
||||
fun onNoSuchMemberFailure(result: (Throwable) -> Unit): Result {
|
||||
onNoSuchMemberFailureCallback = result
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -662,11 +662,11 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara
|
||||
|
||||
/**
|
||||
* 监听 Hook 进行过程中发生错误的回调方法
|
||||
* @param initiate 回调错误 - ([HookParam] 当前 Hook 实例,[Throwable] 异常)
|
||||
* @param result 回调错误 - ([HookParam] 当前 Hook 实例,[Throwable] 异常)
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
fun onConductFailure(initiate: (HookParam, Throwable) -> Unit): Result {
|
||||
onConductFailureCallback = initiate
|
||||
fun onConductFailure(result: (HookParam, Throwable) -> Unit): Result {
|
||||
onConductFailureCallback = result
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -678,11 +678,11 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara
|
||||
|
||||
/**
|
||||
* 监听 Hook 开始时发生错误的回调方法
|
||||
* @param initiate 回调错误
|
||||
* @param result 回调错误
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
fun onHookingFailure(initiate: (Throwable) -> Unit): Result {
|
||||
onHookingFailureCallback = initiate
|
||||
fun onHookingFailure(result: (Throwable) -> Unit): Result {
|
||||
onHookingFailureCallback = result
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -694,11 +694,11 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara
|
||||
|
||||
/**
|
||||
* 监听全部 Hook 过程发生错误的回调方法
|
||||
* @param initiate 回调错误
|
||||
* @param result 回调错误
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
fun onAllFailure(initiate: (Throwable) -> Unit): Result {
|
||||
onAllFailureCallback = initiate
|
||||
fun onAllFailure(result: (Throwable) -> Unit): Result {
|
||||
onAllFailureCallback = result
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -731,31 +731,31 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara
|
||||
* 添加执行 Hook 需要满足的条件
|
||||
*
|
||||
* 不满足条件将直接停止 Hook
|
||||
* @param initiate 条件方法体
|
||||
* @param condition 条件方法体
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
inline fun by(initiate: () -> Boolean): Result {
|
||||
isDisableCreaterRunHook = (runCatching { initiate() }.getOrNull() ?: false).not()
|
||||
inline fun by(condition: () -> Boolean): Result {
|
||||
isDisableCreaterRunHook = (runCatching { condition() }.getOrNull() ?: false).not()
|
||||
return this
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听 [hookClass] 存在时准备开始 Hook 的操作
|
||||
* @param initiate 条件方法体
|
||||
* @param callback 准备开始 Hook 后回调
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
fun onPrepareHook(initiate: () -> Unit): Result {
|
||||
onPrepareHook = initiate
|
||||
fun onPrepareHook(callback: () -> Unit): Result {
|
||||
onPrepareHook = callback
|
||||
return this
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听 [hookClass] 找不到时发生错误的回调方法
|
||||
* @param initiate 回调错误
|
||||
* @param result 回调错误
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
fun onHookClassNotFoundFailure(initiate: (Throwable) -> Unit): Result {
|
||||
onHookClassNotFoundFailureCallback = initiate
|
||||
fun onHookClassNotFoundFailure(result: (Throwable) -> Unit): Result {
|
||||
onHookClassNotFoundFailureCallback = result
|
||||
return this
|
||||
}
|
||||
|
||||
|
@@ -340,21 +340,21 @@ class YukiResourcesHookCreater(private val packageParam: PackageParam, @Publishe
|
||||
* 添加执行 Hook 需要满足的条件
|
||||
*
|
||||
* 不满足条件将直接停止 Hook
|
||||
* @param initiate 条件方法体
|
||||
* @param condition 条件方法体
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
inline fun by(initiate: () -> Boolean): Result {
|
||||
isDisableCreaterRunHook = (runCatching { initiate() }.getOrNull() ?: false).not()
|
||||
inline fun by(condition: () -> Boolean): Result {
|
||||
isDisableCreaterRunHook = (runCatching { condition() }.getOrNull() ?: false).not()
|
||||
return this
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听 Hook 过程发生错误的回调方法
|
||||
* @param initiate 回调错误
|
||||
* @param result 回调错误
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
fun onHookingFailure(initiate: (Throwable) -> Unit): Result {
|
||||
onHookFailureCallback = initiate
|
||||
fun onHookingFailure(result: (Throwable) -> Unit): Result {
|
||||
onHookFailureCallback = result
|
||||
return this
|
||||
}
|
||||
|
||||
|
@@ -344,11 +344,11 @@ class ConstructorFinder @PublishedApi internal constructor(
|
||||
* 监听找不到构造方法时
|
||||
*
|
||||
* 只会返回第一次的错误信息 - 不会返回 [RemedyPlan] 的错误信息
|
||||
* @param initiate 回调错误
|
||||
* @param result 回调错误
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
inline fun onNoSuchConstructor(initiate: (Throwable) -> Unit): Result {
|
||||
if (isNoSuch) initiate(e ?: Throwable())
|
||||
inline fun onNoSuchConstructor(result: (Throwable) -> Unit): Result {
|
||||
if (isNoSuch) result(e ?: Throwable())
|
||||
return this
|
||||
}
|
||||
|
||||
|
@@ -235,11 +235,11 @@ class FieldFinder @PublishedApi internal constructor(
|
||||
|
||||
/**
|
||||
* 监听找不到变量时
|
||||
* @param initiate 回调错误
|
||||
* @param result 回调错误
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
fun onNoSuchField(initiate: (Throwable) -> Unit): Result {
|
||||
if (isNoSuch) initiate(e ?: Throwable())
|
||||
fun onNoSuchField(result: (Throwable) -> Unit): Result {
|
||||
if (isNoSuch) result(e ?: Throwable())
|
||||
return this
|
||||
}
|
||||
|
||||
|
@@ -416,11 +416,11 @@ class MethodFinder @PublishedApi internal constructor(
|
||||
* 监听找不到方法时
|
||||
*
|
||||
* 只会返回第一次的错误信息 - 不会返回 [RemedyPlan] 的错误信息
|
||||
* @param initiate 回调错误
|
||||
* @param result 回调错误
|
||||
* @return [Result] 可继续向下监听
|
||||
*/
|
||||
inline fun onNoSuchMethod(initiate: (Throwable) -> Unit): Result {
|
||||
if (isNoSuch) initiate(e ?: Throwable("Initialization Error"))
|
||||
inline fun onNoSuchMethod(result: (Throwable) -> Unit): Result {
|
||||
if (isNoSuch) result(e ?: Throwable("Initialization Error"))
|
||||
return this
|
||||
}
|
||||
|
||||
|
@@ -182,21 +182,21 @@ inline fun <T> Class<*>.buildOf(vararg param: Any?, initiate: ConstructorFinder.
|
||||
|
||||
/**
|
||||
* 遍历当前类中的所有方法
|
||||
* @param callback 回调 - ([Int] 下标,[Method] 实例)
|
||||
* @param result 回调 - ([Int] 下标,[Method] 实例)
|
||||
*/
|
||||
inline fun Class<*>.allMethods(callback: (index: Int, method: Method) -> Unit) =
|
||||
declaredMethods.forEachIndexed { p, it -> callback(p, it.apply { isAccessible = true }) }
|
||||
inline fun Class<*>.allMethods(result: (index: Int, method: Method) -> Unit) =
|
||||
declaredMethods.forEachIndexed { p, it -> result(p, it.apply { isAccessible = true }) }
|
||||
|
||||
/**
|
||||
* 遍历当前类中的所有构造方法
|
||||
* @param callback 回调 - ([Int] 下标,[Constructor] 实例)
|
||||
* @param result 回调 - ([Int] 下标,[Constructor] 实例)
|
||||
*/
|
||||
inline fun Class<*>.allConstructors(callback: (index: Int, constructor: Constructor<*>) -> Unit) =
|
||||
declaredConstructors.forEachIndexed { p, it -> callback(p, it.apply { isAccessible = true }) }
|
||||
inline fun Class<*>.allConstructors(result: (index: Int, constructor: Constructor<*>) -> Unit) =
|
||||
declaredConstructors.forEachIndexed { p, it -> result(p, it.apply { isAccessible = true }) }
|
||||
|
||||
/**
|
||||
* 遍历当前类中的所有变量
|
||||
* @param callback 回调 - ([Int] 下标,[Field] 实例)
|
||||
* @param result 回调 - ([Int] 下标,[Field] 实例)
|
||||
*/
|
||||
inline fun Class<*>.allFields(callback: (index: Int, field: Field) -> Unit) =
|
||||
declaredFields.forEachIndexed { p, it -> callback(p, it.apply { isAccessible = true }) }
|
||||
inline fun Class<*>.allFields(result: (index: Int, field: Field) -> Unit) =
|
||||
declaredFields.forEachIndexed { p, it -> result(p, it.apply { isAccessible = true }) }
|
@@ -414,10 +414,10 @@ open class PackageParam internal constructor(@PublishedApi internal var wrapper:
|
||||
|
||||
/**
|
||||
* 监听当前 Hook APP 装载 [Application.attachBaseContext]
|
||||
* @param initiate 回调 - ([Context] baseContext,[Boolean] 是否已执行 super)
|
||||
* @param result 回调 - ([Context] baseContext,[Boolean] 是否已执行 super)
|
||||
*/
|
||||
fun attachBaseContext(initiate: (baseContext: Context, hasCalledSuper: Boolean) -> Unit) {
|
||||
YukiHookBridge.AppLifecycleCallback.attachBaseContextCallback = initiate
|
||||
fun attachBaseContext(result: (baseContext: Context, hasCalledSuper: Boolean) -> Unit) {
|
||||
YukiHookBridge.AppLifecycleCallback.attachBaseContextCallback = result
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -446,27 +446,27 @@ open class PackageParam internal constructor(@PublishedApi internal var wrapper:
|
||||
|
||||
/**
|
||||
* 监听当前 Hook APP 装载 [Application.onTrimMemory]
|
||||
* @param initiate 回调 - ([Application] 当前实例,[Int] 类型)
|
||||
* @param result 回调 - ([Application] 当前实例,[Int] 类型)
|
||||
*/
|
||||
fun onTrimMemory(initiate: (self: Application, level: Int) -> Unit) {
|
||||
YukiHookBridge.AppLifecycleCallback.onTrimMemoryCallback = initiate
|
||||
fun onTrimMemory(result: (self: Application, level: Int) -> Unit) {
|
||||
YukiHookBridge.AppLifecycleCallback.onTrimMemoryCallback = result
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听当前 Hook APP 装载 [Application.onConfigurationChanged]
|
||||
* @param initiate 回调 - ([Application] 当前实例,[Configuration] 配置实例)
|
||||
* @param result 回调 - ([Application] 当前实例,[Configuration] 配置实例)
|
||||
*/
|
||||
fun onConfigurationChanged(initiate: (self: Application, config: Configuration) -> Unit) {
|
||||
YukiHookBridge.AppLifecycleCallback.onConfigurationChangedCallback = initiate
|
||||
fun onConfigurationChanged(result: (self: Application, config: Configuration) -> Unit) {
|
||||
YukiHookBridge.AppLifecycleCallback.onConfigurationChangedCallback = result
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册系统广播监听
|
||||
* @param action 系统广播 Action
|
||||
* @param initiate 回调 - ([Context] 当前上下文,[Intent] 当前 Intent)
|
||||
* @param result 回调 - ([Context] 当前上下文,[Intent] 当前 Intent)
|
||||
*/
|
||||
fun registerReceiver(vararg action: String, initiate: (context: Context, intent: Intent) -> Unit) {
|
||||
if (action.isNotEmpty()) YukiHookBridge.AppLifecycleCallback.onReceiversCallback[action.value()] = Pair(action, initiate)
|
||||
fun registerReceiver(vararg action: String, result: (context: Context, intent: Intent) -> Unit) {
|
||||
if (action.isNotEmpty()) YukiHookBridge.AppLifecycleCallback.onReceiversCallback[action.value()] = Pair(action, result)
|
||||
}
|
||||
|
||||
/** 设置创建生命周期监听回调 */
|
||||
|
@@ -80,8 +80,8 @@ class RunBlockResult(@PublishedApi internal val afterMs: Long) {
|
||||
|
||||
/**
|
||||
* 获取耗时计算结果
|
||||
* @param initiate 回调结果 - ([Long] 耗时)
|
||||
* @param result 回调结果 - ([Long] 耗时)
|
||||
*/
|
||||
@YukiPrivateApi
|
||||
inline fun result(initiate: (Long) -> Unit) = initiate(afterMs)
|
||||
inline fun result(result: (Long) -> Unit) = result(afterMs)
|
||||
}
|
@@ -58,26 +58,26 @@ object YukiXposedEvent {
|
||||
|
||||
/**
|
||||
* 设置 initZygote 事件监听
|
||||
* @param initiate 回调方法体
|
||||
* @param result 回调方法体
|
||||
*/
|
||||
fun onInitZygote(initiate: (StartupParam) -> Unit) {
|
||||
initZygoteCallback = initiate
|
||||
fun onInitZygote(result: (StartupParam) -> Unit) {
|
||||
initZygoteCallback = result
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置 handleLoadPackage 事件监听
|
||||
* @param initiate 回调方法体
|
||||
* @param result 回调方法体
|
||||
*/
|
||||
fun onHandleLoadPackage(initiate: (LoadPackageParam) -> Unit) {
|
||||
handleLoadPackageCallback = initiate
|
||||
fun onHandleLoadPackage(result: (LoadPackageParam) -> Unit) {
|
||||
handleLoadPackageCallback = result
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置 handleInitPackageResources 事件监听
|
||||
* @param initiate 回调方法体
|
||||
* @param result 回调方法体
|
||||
*/
|
||||
fun onHandleInitPackageResources(initiate: (InitPackageResourcesParam) -> Unit) {
|
||||
handleInitPackageResourcesCallback = initiate
|
||||
fun onHandleInitPackageResources(result: (InitPackageResourcesParam) -> Unit) {
|
||||
handleInitPackageResourcesCallback = result
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -267,12 +267,12 @@ class YukiHookDataChannel private constructor() {
|
||||
*
|
||||
* - ❗仅限使用 [VALUE_WAIT_FOR_LISTENER] 发送的监听才能被接收
|
||||
* @param key 键值名称
|
||||
* @param result 回调结果
|
||||
* @param callback 回调结果
|
||||
*/
|
||||
fun wait(key: String, result: () -> Unit) {
|
||||
fun wait(key: String, callback: () -> Unit) {
|
||||
receiverCallbacks[key + keyShortName(CallbackKeyType.VMFL)] = Pair(context) { action, intent ->
|
||||
if (action == if (isXposedEnvironment) hostActionName(packageName) else moduleActionName(context))
|
||||
if (intent.getStringExtra(key) == VALUE_WAIT_FOR_LISTENER) result()
|
||||
if (intent.getStringExtra(key) == VALUE_WAIT_FOR_LISTENER) callback()
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -597,10 +597,10 @@ class YukiHookModulePrefs private constructor(private var context: Context? = nu
|
||||
* 仅在模块环境执行
|
||||
*
|
||||
* 非模块环境使用会打印警告信息
|
||||
* @param initiate 在模块环境执行
|
||||
* @param callback 在模块环境执行
|
||||
*/
|
||||
private inline fun moduleEnvironment(initiate: () -> Unit) {
|
||||
if (isXposedEnvironment.not()) initiate()
|
||||
private inline fun moduleEnvironment(callback: () -> Unit) {
|
||||
if (isXposedEnvironment.not()) callback()
|
||||
else yLoggerW(msg = "You cannot use write prefs function in Xposed Environment")
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user