commit 23de1aa4fde404e32d118ea68dbc04f04ef4c9e9
parent 0688c276bb990cf77cc16a7acbde22a232cee943
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Wed,  5 Jun 2024 19:02:59 +0200

refactor: log hook errors

Signed-off-by: rhunk <101876869+rhunk@users.noreply.github.com>

Diffstat:
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/util/hook/Hooker.kt | 13+++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/util/hook/Hooker.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/util/hook/Hooker.kt @@ -2,6 +2,7 @@ package me.rhunk.snapenhance.core.util.hook import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge +import me.rhunk.snapenhance.common.logger.AbstractLogger import java.lang.reflect.Member import java.lang.reflect.Method import java.lang.reflect.Modifier @@ -14,11 +15,19 @@ object Hooker { ): XC_MethodHook { return if (stage == HookStage.BEFORE) object : XC_MethodHook() { override fun beforeHookedMethod(param: MethodHookParam<*>) { - HookAdapter(param).takeIf(filter)?.also(consumer) + runCatching { + HookAdapter(param).takeIf(filter)?.also(consumer) + }.onFailure { + AbstractLogger.directError("Failed to execute before hook", it) + } } } else object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam<*>) { - HookAdapter(param).takeIf(filter)?.also(consumer) + runCatching { + HookAdapter(param).takeIf(filter)?.also(consumer) + }.onFailure { + AbstractLogger.directError("Failed to execute after hook", it) + } } } }