fix(FontsModule): hook correct class on 280201+
This commit is contained in:
parent
bf39d6c7ef
commit
163c3a5eb6
1 changed files with 25 additions and 11 deletions
|
|
@ -51,17 +51,13 @@ class FontsModule: Module() {
|
|||
}
|
||||
|
||||
override fun onInit(packageParam: XC_LoadPackage.LoadPackageParam) = with (packageParam) {
|
||||
XposedHelpers.findAndHookMethod("com.facebook.react.views.text.ReactFontManager", classLoader, "createAssetTypeface",
|
||||
String::class.java,
|
||||
Int::class.java,
|
||||
"android.content.res.AssetManager", object : XC_MethodReplacement() {
|
||||
override fun replaceHookedMethod(param: MethodHookParam): Typeface? {
|
||||
val fontFamilyName: String = param.args[0].toString()
|
||||
val style: Int = param.args[1] as Int
|
||||
val assetManager: AssetManager = param.args[2] as AssetManager
|
||||
return createAssetTypeface(fontFamilyName, style, assetManager)
|
||||
}
|
||||
})
|
||||
try {
|
||||
// 280201+
|
||||
hookClass(classLoader, "com.facebook.react.views.text.ReactFontManager\$Companion")
|
||||
} catch (e: NoSuchMethodError) {
|
||||
// 280200-
|
||||
hookClass(classLoader, "com.facebook.react.views.text.ReactFontManager")
|
||||
}
|
||||
|
||||
val fontDefFile = File(appInfo.dataDir, "files/pyoncord/fonts.json")
|
||||
if (!fontDefFile.exists()) return@with
|
||||
|
|
@ -117,6 +113,24 @@ class FontsModule: Module() {
|
|||
return@with
|
||||
}
|
||||
|
||||
private fun hookClass(classLoader: ClassLoader, className: String) {
|
||||
XposedHelpers.findAndHookMethod(
|
||||
className,
|
||||
classLoader,
|
||||
"createAssetTypeface",
|
||||
String::class.java,
|
||||
Int::class.java,
|
||||
"android.content.res.AssetManager",
|
||||
object : XC_MethodReplacement() {
|
||||
override fun replaceHookedMethod(param: MethodHookParam): Typeface? {
|
||||
val fontFamilyName: String = param.args[0].toString()
|
||||
val style: Int = param.args[1] as Int
|
||||
val assetManager: AssetManager = param.args[2] as AssetManager
|
||||
return createAssetTypeface(fontFamilyName, style, assetManager)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private fun createAssetTypefaceWithFallbacks(
|
||||
fontFamilyNames: Array<String>,
|
||||
style: Int,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue