diff --git a/app/src/main/java/io/github/chipppppppppp/lime/hooks/SendMuteMessage.java b/app/src/main/java/io/github/chipppppppppp/lime/hooks/SendMuteMessage.java index 41b7780b..588e9752 100644 --- a/app/src/main/java/io/github/chipppppppppp/lime/hooks/SendMuteMessage.java +++ b/app/src/main/java/io/github/chipppppppppp/lime/hooks/SendMuteMessage.java @@ -1,7 +1,9 @@ package io.github.chipppppppppp.lime.hooks; +import android.annotation.SuppressLint; import android.content.Context; import android.content.ContextWrapper; +import android.content.res.Resources; import android.view.ViewGroup; import android.widget.ListView; import android.widget.TextView; @@ -10,10 +12,13 @@ import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedBridge; +import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage; import io.github.chipppppppppp.lime.LimeOptions; public class SendMuteMessage implements IHook { + private static boolean isHandlingHook = false; + @Override public void hook(LimeOptions limeOptions, XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable { if (!limeOptions.sendMuteMessage.checked) return; @@ -33,6 +38,42 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { } } ); + XposedHelpers.findAndHookMethod( + "android.content.res.Resources", + loadPackageParam.classLoader, + "getString", + int.class, + new XC_MethodHook() { + + + @Override + protected void afterHookedMethod(MethodHookParam param) throws Throwable { + if (isHandlingHook) { + return; + } + + int resourceId = (int) param.args[0]; + Resources resources = (Resources) param.thisObject; + + try { + isHandlingHook = true; + + if (resourceId == 2132085513) { + @SuppressLint("ResourceType") String replacement = resources.getString(2132085514); + param.setResult(replacement); + } else if (resourceId == 2132085514) { + @SuppressLint("ResourceType") String replacement = resources.getString(2132085513); + param.setResult(replacement); + } + } finally { + isHandlingHook = false; + } + } + + + } + ); + XposedBridge.hookAllMethods( ListView.class,