From db61722987c277787e0aff6fa389a7394d3b85fb Mon Sep 17 00:00:00 2001 From: LoveSy Date: Thu, 11 Jan 2024 03:04:01 +0800 Subject: [PATCH] Fix small window playing --- .../biliroaming/hook/AllowMiniPlayHook.kt | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/me/iacn/biliroaming/hook/AllowMiniPlayHook.kt b/app/src/main/java/me/iacn/biliroaming/hook/AllowMiniPlayHook.kt index ce575e4289..0235bcfd12 100644 --- a/app/src/main/java/me/iacn/biliroaming/hook/AllowMiniPlayHook.kt +++ b/app/src/main/java/me/iacn/biliroaming/hook/AllowMiniPlayHook.kt @@ -2,6 +2,7 @@ package me.iacn.biliroaming.hook import me.iacn.biliroaming.utils.from import me.iacn.biliroaming.utils.getStaticObjectField +import me.iacn.biliroaming.utils.hookBeforeAllConstructors import me.iacn.biliroaming.utils.hookBeforeConstructor import me.iacn.biliroaming.utils.sPrefs @@ -10,18 +11,27 @@ class AllowMiniPlayHook(classLoader: ClassLoader) : BaseHook(classLoader) { if (!sPrefs.getBoolean("main_func", false)) return if (sPrefs.getBoolean("allow_mini_play", false)) { - "com.bilibili.lib.media.resource.PlayConfig\$PlayMenuConfig".from(mClassLoader) - ?.hookBeforeConstructor( - Boolean::class.javaPrimitiveType, + val miniPlayerType = "com.bilibili.lib.media.resource.PlayConfig\$PlayConfigType" + .from(mClassLoader)?.getStaticObjectField("MINIPLAYER") + "com.bilibili.lib.media.resource.PlayConfig\$PlayMenuConfig".from(mClassLoader)?.run { + hookBeforeConstructor( + Boolean::class.javaPrimitiveType, + "com.bilibili.lib.media.resource.PlayConfig\$PlayConfigType" + ) { param -> + val type = param.args[1] + if (type == miniPlayerType) + param.args[0] = true + } + hookBeforeConstructor(Boolean::class.javaPrimitiveType, + "com.bilibili.lib.media.resource.PlayConfig\$PlayConfigType", + List::class.java ) { param -> val type = param.args[1] - val miniPlayerType = - "com.bilibili.lib.media.resource.PlayConfig\$PlayConfigType" - .from(mClassLoader)?.getStaticObjectField("MINIPLAYER") if (type == miniPlayerType) param.args[0] = true } + } } } }