public static void init(final XSharedPreferences prefs, final ClassLoader classLoader) {
try {
final Class<?> classVoiceIoSettings = XposedHelpers.findClass(CLASS_VOICEIO_SETTINGS, classLoader);
if (DEBUG) log("replacing populateOrRemovePreferences method");
XposedHelpers.findAndHookMethod(classVoiceIoSettings, "populateOrRemovePreferences",
new XC_MethodReplacement() {
@Override
protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
boolean hasRecognizer = (Boolean) XposedHelpers.callMethod(param.thisObject,
"populateOrRemoveRecognizerPrefs");
boolean hasTts = (Boolean) XposedHelpers.callMethod(param.thisObject,
"populateOrRemoveTtsPrefs");
if (DEBUG) log("populateOrRemovePreferences: hasRecognizer=" + hasRecognizer + "; hasTts=" + hasTts);
if (hasRecognizer || hasTts) {
return null;
}
PreferenceFragment fragment = (PreferenceFragment) XposedHelpers.getObjectField(
param.thisObject, "mFragment");
PreferenceCategory prefCat = (PreferenceCategory) XposedHelpers.getObjectField(
param.thisObject, "mVoiceCategory");
if (fragment != null && prefCat != null) {
fragment.getPreferenceScreen().removePreference(prefCat);
}
return null;
}
});
}
catch (Throwable t) {
XposedBridge.log(t);
}
}
MtkFixTtsSettings.java 文件源码
java
阅读 34
收藏 0
点赞 0
评论 0
项目:GravityBox
作者:
评论列表
文章目录