diff --git a/app/src/main/java/me/iacn/biliroaming/hook/JsonHook.kt b/app/src/main/java/me/iacn/biliroaming/hook/JsonHook.kt index 3f41d2ebb6..4cb809f1f1 100644 --- a/app/src/main/java/me/iacn/biliroaming/hook/JsonHook.kt +++ b/app/src/main/java/me/iacn/biliroaming/hook/JsonHook.kt @@ -242,6 +242,22 @@ class JsonHook(classLoader: ClassLoader) : BaseHook(classLoader) { } title in hides } + + // liveTip + // 就是通常在 我的 -> 创做中心 下 但不属于创作中心的提示 + result.getObjectFieldOrNull("liveTip")?.let { liveTip -> + val text = liveTip.getObjectFieldAs("text") + val id = liveTip.getObjectField("id").toString() + val url = liveTip.getObjectFieldAs("url") + val showing = id !in hides + drawerItems.add(BottomItem( + name = text, id = id, uri = url, showing = showing + )) + if (!showing) { + result.setObjectField("liveTip", null) + } + } + } accountMineClass.findFieldOrNull("vipSectionRight")?.set(result, null) if (sPrefs.getBoolean("custom_theme", false)) { diff --git a/app/src/main/java/me/iacn/biliroaming/utils/Utils.kt b/app/src/main/java/me/iacn/biliroaming/utils/Utils.kt index 90c6edc677..f44a774170 100644 --- a/app/src/main/java/me/iacn/biliroaming/utils/Utils.kt +++ b/app/src/main/java/me/iacn/biliroaming/utils/Utils.kt @@ -438,3 +438,23 @@ fun Context.inflateLayout( fun Context.addModuleAssets() { resources.assets.callMethod("addAssetPath", XposedInit.modulePath) } + +@OptIn(ExperimentalStdlibApi::class) +fun Any.dumpToString(): String { + val sb = StringBuilder() + sb.append("---- ${this.javaClass.name}@${this.hashCode().toHexString()} dump begin ----\n") + fun dumpClassFields(clazz: Class<*>) { + clazz.fields.forEach { field -> + if (field.isStatic) return@forEach + field.isAccessible = true + val v = field.get(this) + sb.append("${field.name}: $v\n") + } + clazz.superclass?.let { + dumpClassFields(it) + } + } + dumpClassFields(this.javaClass) + sb.append("---- ${this.javaClass.name}@${this.hashCode().toHexString()} dump end ----") + return sb.toString() +}