diff --git a/app/src/main/java/nep/timeline/re_telegram/features/NEWAntiRecall.java b/app/src/main/java/nep/timeline/re_telegram/features/NEWAntiRecall.java index eeb7e6b..8ca71e0 100644 --- a/app/src/main/java/nep/timeline/re_telegram/features/NEWAntiRecall.java +++ b/app/src/main/java/nep/timeline/re_telegram/features/NEWAntiRecall.java @@ -327,10 +327,23 @@ public static void initProcessing(ClassLoader classLoader) { @Override protected void beforeMethod(MethodHookParam param) { - long currentUserId = UserConfig.getCurrentUser().getId(); // 获取当前登录用户ID - long deletingUserId = (long) param.args[3]; // 删除消息的用户ID - boolean isCurrentUserDeleting = (deletingUserId == currentUserId); - +long currentUserId = 0; +try { + Object currentUser = XposedHelpers.callStaticMethod( + XposedHelpers.findClass(AutomationResolver.resolve("org.telegram.messenger.UserConfig", classLoader), + classLoader), + AutomationResolver.resolve("UserConfig", "getCurrentUser", AutomationResolver.ResolverType.Method) + ); + + if (currentUser != null) { + currentUserId = (long) XposedHelpers.callMethod(currentUser, "getId"); + } +} catch (Exception e) { + Utils.log("Error getting current user ID: " + e); +} + +long deletingUserId = (long) param.args[3]; +boolean isCurrentUserDeleting = (deletingUserId == currentUserId); if (Configs.isAntiRecall()) { ArrayList deletedMessages = new ArrayList<>(); @@ -376,9 +389,23 @@ protected void beforeMethod(MethodHookParam param) { @Override protected void beforeMethod(MethodHookParam param) { - long currentUserId = UserConfig.getCurrentUser().getId(); // 获取当前登录用户ID - long deletingUserId = (long) param.args[3]; // 删除消息的用户ID - boolean isCurrentUserDeleting = (deletingUserId == currentUserId); +long currentUserId = 0; +try { + Object currentUser = XposedHelpers.callStaticMethod( + XposedHelpers.findClass(AutomationResolver.resolve("org.telegram.messenger.UserConfig", classLoader), + classLoader), + AutomationResolver.resolve("UserConfig", "getCurrentUser", AutomationResolver.ResolverType.Method) + ); + + if (currentUser != null) { + currentUserId = (long) XposedHelpers.callMethod(currentUser, "getId"); + } +} catch (Exception e) { + Utils.log("Error getting current user ID: " + e); +} + +long deletingUserId = (long) param.args[3]; +boolean isCurrentUserDeleting = (deletingUserId == currentUserId); if (Configs.isAntiRecall()) { long channelID = -((long) param.args[1]);