From acd15e331e5bf93400b1665778d2af772b70b12f Mon Sep 17 00:00:00 2001 From: inotia00 Date: Wed, 12 Apr 2023 20:34:12 +0900 Subject: [PATCH] refactor(video-id-hook): integrate --- .../patch/OverlayButtonsBytecodePatch.kt | 4 +- .../patch/OldQualityLayoutPatch.kt | 2 - .../patch/ReturnYouTubeDislikePatch.kt | 8 +-- .../patch/SponsorBlockBytecodePatch.kt | 14 ++--- ...erControllerSetTimeReferenceFingerprint.kt | 2 +- .../fingerprint/PlayerInitFingerprint.kt | 2 +- .../fingerprint/SeekFingerprint.kt | 2 +- .../fingerprint/TimebarFingerprint.kt | 2 +- .../VideoIdFingerprint.kt} | 4 +- .../VideoTimeHighPrecisionFingerprint.kt | 2 +- ...VideoTimeHighPrecisionParentFingerprint.kt | 2 +- .../fingerprint/LegacyVideoIdFingerprint.kt | 16 ----- .../legacy/patch/LegacyVideoIdPatch.kt | 63 ------------------- .../VideoIdPatch.kt} | 16 ++--- .../patch/VideoQualityBytecodePatch.kt | 6 +- .../bytecode/patch/VideoSpeedBytecodePatch.kt | 8 +-- 16 files changed, 35 insertions(+), 118 deletions(-) rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{mainstream => }/fingerprint/PlayerControllerSetTimeReferenceFingerprint.kt (82%) rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{mainstream => }/fingerprint/PlayerInitFingerprint.kt (75%) rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{mainstream => }/fingerprint/SeekFingerprint.kt (70%) rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{mainstream => }/fingerprint/TimebarFingerprint.kt (85%) rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{mainstream/fingerprint/MainstreamVideoIdFingerprint.kt => fingerprint/VideoIdFingerprint.kt} (80%) rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{mainstream => }/fingerprint/VideoTimeHighPrecisionFingerprint.kt (88%) rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{mainstream => }/fingerprint/VideoTimeHighPrecisionParentFingerprint.kt (74%) delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/fingerprint/LegacyVideoIdFingerprint.kt delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/patch/LegacyVideoIdPatch.kt rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{mainstream/patch/MainstreamVideoIdPatch.kt => patch/VideoIdPatch.kt} (96%) diff --git a/src/main/kotlin/app/revanced/patches/youtube/button/overlaybuttons/bytecode/patch/OverlayButtonsBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/button/overlaybuttons/bytecode/patch/OverlayButtonsBytecodePatch.kt index dd4e267f9..9a9634fba 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/button/overlaybuttons/bytecode/patch/OverlayButtonsBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/button/overlaybuttons/bytecode/patch/OverlayButtonsBytecodePatch.kt @@ -9,14 +9,14 @@ import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patches.shared.annotation.YouTubeCompatibility import app.revanced.patches.youtube.misc.playercontrols.patch.PlayerControlsPatch -import app.revanced.patches.youtube.misc.videoid.mainstream.patch.MainstreamVideoIdPatch +import app.revanced.patches.youtube.misc.videoid.patch.VideoIdPatch import app.revanced.util.integrations.Constants.BUTTON_PATH @Name("overlay-buttons-bytecode-patch") @DependsOn( dependencies = [ PlayerControlsPatch::class, - MainstreamVideoIdPatch::class + VideoIdPatch::class ] ) @YouTubeCompatibility diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/flyoutpanel/oldqualitylayout/patch/OldQualityLayoutPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/flyoutpanel/oldqualitylayout/patch/OldQualityLayoutPatch.kt index 6e9d37465..15f0b4e3d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/flyoutpanel/oldqualitylayout/patch/OldQualityLayoutPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/flyoutpanel/oldqualitylayout/patch/OldQualityLayoutPatch.kt @@ -16,7 +16,6 @@ import app.revanced.patches.shared.annotation.YouTubeCompatibility import app.revanced.patches.youtube.layout.flyoutpanel.oldqualitylayout.fingerprints.QualityMenuViewInflateFingerprint import app.revanced.patches.youtube.misc.resourceid.patch.SharedResourceIdPatch import app.revanced.patches.youtube.misc.settings.resource.patch.SettingsPatch -import app.revanced.patches.youtube.misc.videoid.legacy.patch.LegacyVideoIdPatch import app.revanced.util.integrations.Constants.FLYOUT_PANEL import org.jf.dexlib2.iface.instruction.OneRegisterInstruction @@ -25,7 +24,6 @@ import org.jf.dexlib2.iface.instruction.OneRegisterInstruction @Description("Enables the original quality flyout menu.") @DependsOn( [ - LegacyVideoIdPatch::class, SettingsPatch::class, SharedResourceIdPatch::class ] diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/patch/ReturnYouTubeDislikePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/patch/ReturnYouTubeDislikePatch.kt index 6a460fc42..aab4d7ca3 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/patch/ReturnYouTubeDislikePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/patch/ReturnYouTubeDislikePatch.kt @@ -19,7 +19,7 @@ import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod import app.revanced.patches.shared.annotation.YouTubeCompatibility import app.revanced.patches.youtube.misc.returnyoutubedislike.fingerprints.* import app.revanced.patches.youtube.misc.settings.resource.patch.SettingsPatch -import app.revanced.patches.youtube.misc.videoid.mainstream.patch.MainstreamVideoIdPatch +import app.revanced.patches.youtube.misc.videoid.patch.VideoIdPatch import app.revanced.util.integrations.Constants.UTILS_PATH import org.jf.dexlib2.Opcode import org.jf.dexlib2.builder.instruction.BuilderInstruction3rc @@ -35,8 +35,8 @@ import org.jf.dexlib2.iface.reference.MethodReference @Description("Shows the dislike count of videos using the Return YouTube Dislike API.") @DependsOn( [ - MainstreamVideoIdPatch::class, - SettingsPatch::class + SettingsPatch::class, + VideoIdPatch::class ] ) @YouTubeCompatibility @@ -168,7 +168,7 @@ class ReturnYouTubeDislikePatch : BytecodePatch( } ?: return ShortsTextComponentParentFingerprint.toErrorResult() - MainstreamVideoIdPatch.injectCall("$INTEGRATIONS_RYD_CLASS_DESCRIPTOR->newVideoLoaded(Ljava/lang/String;)V") + VideoIdPatch.injectCall("$INTEGRATIONS_RYD_CLASS_DESCRIPTOR->newVideoLoaded(Ljava/lang/String;)V") /* * Add ReVanced Settings diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/patch/SponsorBlockBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/patch/SponsorBlockBytecodePatch.kt index 1ce8deca7..7a0464fc8 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/patch/SponsorBlockBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/patch/SponsorBlockBytecodePatch.kt @@ -17,8 +17,7 @@ import app.revanced.patches.youtube.misc.playercontrols.patch.PlayerControlsPatc import app.revanced.patches.youtube.misc.resourceid.patch.SharedResourceIdPatch import app.revanced.patches.youtube.misc.sponsorblock.bytecode.fingerprints.* import app.revanced.patches.youtube.misc.timebar.patch.HookTimebarPatch -import app.revanced.patches.youtube.misc.videoid.legacy.patch.LegacyVideoIdPatch -import app.revanced.patches.youtube.misc.videoid.mainstream.patch.MainstreamVideoIdPatch +import app.revanced.patches.youtube.misc.videoid.patch.VideoIdPatch import app.revanced.util.bytecode.BytecodeHelper.injectInit import app.revanced.util.bytecode.BytecodeHelper.updatePatchStatus import org.jf.dexlib2.Opcode @@ -32,11 +31,10 @@ import org.jf.dexlib2.iface.reference.MethodReference @Name("sponsorblock-bytecode-patch") @DependsOn( [ - LegacyVideoIdPatch::class, - MainstreamVideoIdPatch::class, OverrideSpeedHookPatch::class, PlayerControlsPatch::class, - SharedResourceIdPatch::class + SharedResourceIdPatch::class, + VideoIdPatch::class ] ) @YouTubeCompatibility @@ -51,7 +49,7 @@ class SponsorBlockBytecodePatch : BytecodePatch( /* * Hook the video time methods */ - with(MainstreamVideoIdPatch) { + with(VideoIdPatch) { videoTimeHook( INTEGRATIONS_PLAYER_CONTROLLER_CLASS_DESCRIPTOR, "setVideoTime" @@ -61,7 +59,7 @@ class SponsorBlockBytecodePatch : BytecodePatch( /* * Inject VideoIdPatch */ - MainstreamVideoIdPatch.injectCall("$INTEGRATIONS_PLAYER_CONTROLLER_CLASS_DESCRIPTOR->setCurrentVideoId(Ljava/lang/String;)V") + VideoIdPatch.injectCall("$INTEGRATIONS_PLAYER_CONTROLLER_CLASS_DESCRIPTOR->setCurrentVideoId(Ljava/lang/String;)V") /* @@ -148,7 +146,7 @@ class SponsorBlockBytecodePatch : BytecodePatch( val register = (instruction as OneRegisterInstruction).registerA it.replaceInstruction( index, - "const-string v$register, \"${MainstreamVideoIdPatch.reactReference}\"" + "const-string v$register, \"${VideoIdPatch.reactReference}\"" ) break } diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/PlayerControllerSetTimeReferenceFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/PlayerControllerSetTimeReferenceFingerprint.kt similarity index 82% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/PlayerControllerSetTimeReferenceFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/PlayerControllerSetTimeReferenceFingerprint.kt index 3af0e0aab..6d546eff2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/PlayerControllerSetTimeReferenceFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/PlayerControllerSetTimeReferenceFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint +package app.revanced.patches.youtube.misc.videoid.fingerprint import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import org.jf.dexlib2.Opcode diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/PlayerInitFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/PlayerInitFingerprint.kt similarity index 75% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/PlayerInitFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/PlayerInitFingerprint.kt index b35e1df5c..532e4afbe 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/PlayerInitFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/PlayerInitFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint +package app.revanced.patches.youtube.misc.videoid.fingerprint import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/SeekFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/SeekFingerprint.kt similarity index 70% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/SeekFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/SeekFingerprint.kt index 256007ec5..6e6f14f3b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/SeekFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/SeekFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint +package app.revanced.patches.youtube.misc.videoid.fingerprint import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/TimebarFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/TimebarFingerprint.kt similarity index 85% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/TimebarFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/TimebarFingerprint.kt index 664b8ce6c..c2748dab9 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/TimebarFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/TimebarFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint +package app.revanced.patches.youtube.misc.videoid.fingerprint import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/MainstreamVideoIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoIdFingerprint.kt similarity index 80% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/MainstreamVideoIdFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoIdFingerprint.kt index a1af6f296..fb724c890 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/MainstreamVideoIdFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoIdFingerprint.kt @@ -1,11 +1,11 @@ -package app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint +package app.revanced.patches.youtube.misc.videoid.fingerprint import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode -object MainstreamVideoIdFingerprint : MethodFingerprint( +object VideoIdFingerprint : MethodFingerprint( returnType = "V", access = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoTimeHighPrecisionFingerprint.kt similarity index 88% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoTimeHighPrecisionFingerprint.kt index e58f4a07a..016c258cc 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoTimeHighPrecisionFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint +package app.revanced.patches.youtube.misc.videoid.fingerprint import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoTimeHighPrecisionParentFingerprint.kt similarity index 74% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionParentFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoTimeHighPrecisionParentFingerprint.kt index b5eb3e2e4..3544fd9ce 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoTimeHighPrecisionParentFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint +package app.revanced.patches.youtube.misc.videoid.fingerprint import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/fingerprint/LegacyVideoIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/fingerprint/LegacyVideoIdFingerprint.kt deleted file mode 100644 index 30ca9f748..000000000 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/fingerprint/LegacyVideoIdFingerprint.kt +++ /dev/null @@ -1,16 +0,0 @@ -package app.revanced.patches.youtube.misc.videoid.legacy.fingerprint - -import app.revanced.patcher.extensions.or -import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import org.jf.dexlib2.AccessFlags -import org.jf.dexlib2.Opcode - -object LegacyVideoIdFingerprint : MethodFingerprint( - returnType = "V", - access = AccessFlags.DECLARED_SYNCHRONIZED or AccessFlags.FINAL or AccessFlags.PUBLIC, - parameters = listOf("L"), - opcodes = listOf(Opcode.INVOKE_INTERFACE), - customFingerprint = { - it.definingClass.endsWith("PlaybackLifecycleMonitor;") - } -) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/patch/LegacyVideoIdPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/patch/LegacyVideoIdPatch.kt deleted file mode 100644 index 90d01a327..000000000 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/patch/LegacyVideoIdPatch.kt +++ /dev/null @@ -1,63 +0,0 @@ -package app.revanced.patches.youtube.misc.videoid.legacy.patch - -import app.revanced.extensions.toErrorResult -import app.revanced.patcher.annotation.Description -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version -import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.patch.BytecodePatch -import app.revanced.patcher.patch.PatchResult -import app.revanced.patcher.patch.PatchResultSuccess -import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod -import app.revanced.patches.shared.annotation.YouTubeCompatibility -import app.revanced.patches.youtube.misc.videoid.legacy.fingerprint.LegacyVideoIdFingerprint -import org.jf.dexlib2.iface.instruction.OneRegisterInstruction - -@Name("video-id-hook-legacy") -@Description("Hook to detect when the video id changes (legacy)") -@YouTubeCompatibility -@Version("0.0.1") -class LegacyVideoIdPatch : BytecodePatch( - listOf( - LegacyVideoIdFingerprint - ) -) { - override fun execute(context: BytecodeContext): PatchResult { - - LegacyVideoIdFingerprint.result?.let { - insertIndex = it.scanResult.patternScanResult!!.endIndex - - with (it.mutableMethod) { - insertMethod = this - videoIdRegister = (implementation!!.instructions[insertIndex + 1] as OneRegisterInstruction).registerA - } - offset++ // offset so setCurrentVideoId is called before any injected call - } ?: return LegacyVideoIdFingerprint.toErrorResult() - - return PatchResultSuccess() - } - - companion object { - private var offset = 2 - - private var insertIndex: Int = 0 - private var videoIdRegister: Int = 0 - private lateinit var insertMethod: MutableMethod - - - /** - * Adds an invoke-static instruction, called with the new id when the video changes - * @param methodDescriptor which method to call. Params have to be `Ljava/lang/String;` - */ - fun injectCall( - methodDescriptor: String - ) { - insertMethod.addInstructions( - insertIndex + offset, // move-result-object offset - "invoke-static {v$videoIdRegister}, $methodDescriptor" - ) - } - } -} - diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/patch/MainstreamVideoIdPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/patch/VideoIdPatch.kt similarity index 96% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/patch/MainstreamVideoIdPatch.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/patch/VideoIdPatch.kt index 883b5ad27..f6029360b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/patch/MainstreamVideoIdPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/patch/VideoIdPatch.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.videoid.mainstream.patch +package app.revanced.patches.youtube.misc.videoid.patch import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Description @@ -19,7 +19,7 @@ import app.revanced.patches.shared.fingerprints.VideoEndFingerprint import app.revanced.patches.shared.fingerprints.VideoEndParentFingerprint import app.revanced.patches.youtube.misc.playertype.patch.PlayerTypeHookPatch import app.revanced.patches.youtube.misc.timebar.patch.HookTimebarPatch -import app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint.* +import app.revanced.patches.youtube.misc.videoid.fingerprint.* import app.revanced.util.integrations.Constants.VIDEO_PATH import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.builder.MutableMethodImplementation @@ -32,8 +32,8 @@ import org.jf.dexlib2.immutable.ImmutableMethod import org.jf.dexlib2.immutable.ImmutableMethodParameter import org.jf.dexlib2.util.MethodUtil -@Name("video-id-hook-mainstream") -@Description("Hook to detect when the video id changes (mainstream)") +@Name("video-id-hook") +@Description("Hook to detect when the video id changes") @YouTubeCompatibility @Version("0.0.1") @DependsOn( @@ -42,14 +42,14 @@ import org.jf.dexlib2.util.MethodUtil PlayerTypeHookPatch::class ] ) -class MainstreamVideoIdPatch : BytecodePatch( +class VideoIdPatch : BytecodePatch( listOf( - MainstreamVideoIdFingerprint, PlayerControllerSetTimeReferenceFingerprint, PlayerInitFingerprint, SeekFingerprint, TimebarFingerprint, VideoEndParentFingerprint, + VideoIdFingerprint, VideoTimeHighPrecisionFingerprint, VideoTimeHighPrecisionParentFingerprint ) @@ -154,7 +154,7 @@ class MainstreamVideoIdPatch : BytecodePatch( } - MainstreamVideoIdFingerprint.result?.let { + VideoIdFingerprint.result?.let { insertIndex = it.scanResult.patternScanResult!!.endIndex with (it.mutableMethod) { @@ -162,7 +162,7 @@ class MainstreamVideoIdPatch : BytecodePatch( videoIdRegister = (implementation!!.instructions[insertIndex] as OneRegisterInstruction).registerA } offset++ // offset so setVideoId is called before any injected call - } ?: return MainstreamVideoIdFingerprint.toErrorResult() + } ?: return VideoIdFingerprint.toErrorResult() injectCall("$INTEGRATIONS_CLASS_DESCRIPTOR->setVideoId(Ljava/lang/String;)V") diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/patch/VideoQualityBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/patch/VideoQualityBytecodePatch.kt index a952b245b..5d06f8234 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/patch/VideoQualityBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/patch/VideoQualityBytecodePatch.kt @@ -12,14 +12,14 @@ import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patches.shared.annotation.YouTubeCompatibility -import app.revanced.patches.youtube.misc.videoid.legacy.patch.LegacyVideoIdPatch +import app.revanced.patches.youtube.misc.videoid.patch.VideoIdPatch import app.revanced.patches.youtube.video.quality.bytecode.fingerprints.* import app.revanced.util.integrations.Constants.VIDEO_PATH import org.jf.dexlib2.iface.instruction.ReferenceInstruction import org.jf.dexlib2.iface.reference.FieldReference @Name("default-video-quality-bytecode-patch") -@DependsOn([LegacyVideoIdPatch::class]) +@DependsOn([VideoIdPatch::class]) @YouTubeCompatibility @Version("0.0.1") class VideoQualityBytecodePatch : BytecodePatch( @@ -62,7 +62,7 @@ class VideoQualityBytecodePatch : BytecodePatch( ) } ?: return VideoQualitySettingsParentFingerprint.toErrorResult() - LegacyVideoIdPatch.injectCall("$INTEGRATIONS_VIDEO_QUALITY_CLASS_DESCRIPTOR->newVideoStarted(Ljava/lang/String;)V") + VideoIdPatch.injectCall("$INTEGRATIONS_VIDEO_QUALITY_CLASS_DESCRIPTOR->newVideoStarted(Ljava/lang/String;)V") return PatchResultSuccess() } diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/patch/VideoSpeedBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/patch/VideoSpeedBytecodePatch.kt index bf926a7e7..2ec2a538f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/patch/VideoSpeedBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/patch/VideoSpeedBytecodePatch.kt @@ -13,7 +13,7 @@ import app.revanced.patches.shared.annotation.YouTubeCompatibility import app.revanced.patches.youtube.misc.overridespeed.bytecode.fingerprints.VideoSpeedSettingsFingerprint import app.revanced.patches.youtube.misc.overridespeed.bytecode.patch.OverrideSpeedHookPatch import app.revanced.patches.youtube.misc.resourceid.patch.SharedResourceIdPatch -import app.revanced.patches.youtube.misc.videoid.legacy.patch.LegacyVideoIdPatch +import app.revanced.patches.youtube.misc.videoid.patch.VideoIdPatch import app.revanced.patches.youtube.video.livestream.patch.LiveStreamPatch import app.revanced.patches.youtube.video.speed.bytecode.fingerprints.* import app.revanced.util.bytecode.BytecodeHelper.updatePatchStatus @@ -23,10 +23,10 @@ import org.jf.dexlib2.iface.instruction.FiveRegisterInstruction @Name("default-video-speed-bytecode-patch") @DependsOn( [ - LegacyVideoIdPatch::class, LiveStreamPatch::class, OverrideSpeedHookPatch::class, - SharedResourceIdPatch::class + SharedResourceIdPatch::class, + VideoIdPatch::class ] ) @YouTubeCompatibility @@ -56,7 +56,7 @@ class VideoSpeedBytecodePatch : BytecodePatch( "invoke-static {}, $INTEGRATIONS_VIDEO_SPEED_CLASS_DESCRIPTOR->setDefaultSpeed()V" ) ?: return VideoSpeedSettingsFingerprint.toErrorResult() - LegacyVideoIdPatch.injectCall("$INTEGRATIONS_VIDEO_SPEED_CLASS_DESCRIPTOR->newVideoStarted(Ljava/lang/String;)V") + VideoIdPatch.injectCall("$INTEGRATIONS_VIDEO_SPEED_CLASS_DESCRIPTOR->newVideoStarted(Ljava/lang/String;)V") context.updatePatchStatus("VideoSpeed")