feat(youtube): minor improvement

This commit is contained in:
inotia00
2023-07-22 02:43:47 +09:00
parent 09d5313823
commit eaced9527e
4 changed files with 30 additions and 22 deletions

View File

@ -8,5 +8,8 @@ object PlaybackSpeedPatchFingerprint : MethodFingerprint(
returnType = "V",
accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
parameters = listOf("F"),
customFingerprint = { methodDef, _ -> methodDef.definingClass.endsWith("/PlaybackSpeedPatch;") && methodDef.name == "overrideSpeed" }
customFingerprint = { methodDef, _ ->
methodDef.definingClass.endsWith("/PlaybackSpeedPatch;")
&& methodDef.name == "overrideSpeed"
}
)

View File

@ -17,10 +17,10 @@ import app.revanced.patcher.util.proxy.mutableTypes.MutableField.Companion.toMut
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable
import app.revanced.patcher.util.smali.toInstructions
import app.revanced.patches.youtube.utils.overridespeed.fingerprints.SpeedClassFingerprint
import app.revanced.patches.youtube.utils.overridespeed.fingerprints.PlaybackSpeedChangedFingerprint
import app.revanced.patches.youtube.utils.overridespeed.fingerprints.PlaybackSpeedParentFingerprint
import app.revanced.patches.youtube.utils.overridespeed.fingerprints.PlaybackSpeedPatchFingerprint
import app.revanced.patches.youtube.utils.overridespeed.fingerprints.SpeedClassFingerprint
import app.revanced.util.integrations.Constants.INTEGRATIONS_PATH
import app.revanced.util.integrations.Constants.VIDEO_PATH
import org.jf.dexlib2.AccessFlags
@ -34,9 +34,9 @@ import org.jf.dexlib2.immutable.ImmutableMethodParameter
class OverrideSpeedHookPatch : BytecodePatch(
listOf(
SpeedClassFingerprint,
PlaybackSpeedPatchFingerprint,
PlaybackSpeedParentFingerprint
PlaybackSpeedParentFingerprint,
SpeedClassFingerprint
)
) {
override fun execute(context: BytecodeContext): PatchResult {
@ -44,7 +44,12 @@ class OverrideSpeedHookPatch : BytecodePatch(
PlaybackSpeedParentFingerprint.result?.let { parentResult ->
val parentClassDef = parentResult.classDef
PlaybackSpeedChangedFingerprint.also { it.resolve(context, parentClassDef) }.result?.let {
PlaybackSpeedChangedFingerprint.also {
it.resolve(
context,
parentClassDef
)
}.result?.let {
it.mutableMethod.apply {
playbackSpeedChangedResult = it
val startIndex = it.scanResult.patternScanResult!!.startIndex