diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/SpeedOverlayPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/SpeedOverlayPatch.kt deleted file mode 100644 index 601922638..000000000 --- a/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/SpeedOverlayPatch.kt +++ /dev/null @@ -1,117 +0,0 @@ -package app.revanced.patches.youtube.player.speedoverlay - -import app.revanced.extensions.exception -import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.InstructionExtensions.addInstructions -import app.revanced.patcher.extensions.InstructionExtensions.getInstruction -import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction -import app.revanced.patcher.patch.BytecodePatch -import app.revanced.patcher.patch.annotation.CompatiblePackage -import app.revanced.patcher.patch.annotation.Patch -import app.revanced.patches.youtube.player.speedoverlay.fingerprints.SpeedOverlayHookAlternativeFingerprint -import app.revanced.patches.youtube.player.speedoverlay.fingerprints.SpeedOverlayHookFingerprint -import app.revanced.patches.youtube.player.speedoverlay.fingerprints.YouTubeTextViewFingerprint -import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch -import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.SpeedOverlayText -import app.revanced.patches.youtube.utils.settings.SettingsPatch -import app.revanced.util.integrations.Constants.UTILS_PATH -import com.android.tools.smali.dexlib2.Opcode -import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction -import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction35c - -@Patch( - name = "Custom speed overlay", - description = "Customize 'Play at 2x speed' while holding down.", - dependencies = [ - SettingsPatch::class, - SharedResourceIdPatch::class - ], - compatiblePackages = [ - CompatiblePackage( - "com.google.android.youtube", - [ - "18.24.37", - "18.25.40", - "18.27.36", - "18.29.38", - "18.30.37", - "18.31.40", - "18.32.39", - "18.33.40", - "18.34.38", - "18.35.36", - "18.36.39", - "18.37.36", - "18.38.44", - "18.39.41", - "18.40.34" - ] - ) - ] -) -@Suppress("unused") -object SpeedOverlayPatch : BytecodePatch( - setOf( - SpeedOverlayHookAlternativeFingerprint, - SpeedOverlayHookFingerprint, - YouTubeTextViewFingerprint - ) -) { - override fun execute(context: BytecodeContext) { - - val speedOverlayHookResult = - SpeedOverlayHookFingerprint.result - ?: SpeedOverlayHookAlternativeFingerprint.result - ?: throw SpeedOverlayHookFingerprint.exception - - speedOverlayHookResult.let { - it.mutableMethod.apply { - val insertIndex = implementation!!.instructions.indexOfFirst { instruction -> - instruction.opcode == Opcode.CMPL_FLOAT - } + 3 - val insertRegister = getInstruction(insertIndex).registerD - - addInstructions( - insertIndex, """ - invoke-static {v$insertRegister}, $INTEGRATIONS_CLASS_DESCRIPTOR->getSpeed(F)F - move-result v$insertRegister - """ - ) - } - } - - YouTubeTextViewFingerprint.result?.let { - it.mutableMethod.apply { - val targetIndex = it.scanResult.patternScanResult!!.startIndex - val targetInstruction = getInstruction(targetIndex) - val targetReference = getInstruction(targetIndex).reference - - addInstructions( - targetIndex + 1, """ - const v0, $SpeedOverlayText - invoke-static {v${targetInstruction.registerC}, v${targetInstruction.registerD}, v0}, $INTEGRATIONS_CLASS_DESCRIPTOR->getSpeedText(Landroid/widget/TextView;Ljava/lang/CharSequence;I)Ljava/lang/CharSequence; - move-result-object v${targetInstruction.registerD} - invoke-super {v${targetInstruction.registerC}, v${targetInstruction.registerD}, v${targetInstruction.registerE}}, $targetReference - """ - ) - removeInstruction(targetIndex) - } - } ?: throw YouTubeTextViewFingerprint.exception - - /** - * Add settings - */ - SettingsPatch.addPreference( - arrayOf( - "PREFERENCE: PLAYER_SETTINGS", - "SETTINGS: CUSTOM_SPEED_OVERLAY" - ) - ) - - SettingsPatch.updatePatchStatus("Custom speed overlay") - - } - - private const val INTEGRATIONS_CLASS_DESCRIPTOR = - "$UTILS_PATH/SpeedOverlayPatch;" -} diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/fingerprints/SpeedOverlayHookAlternativeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/fingerprints/SpeedOverlayHookAlternativeFingerprint.kt deleted file mode 100644 index 3e0e3d807..000000000 --- a/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/fingerprints/SpeedOverlayHookAlternativeFingerprint.kt +++ /dev/null @@ -1,57 +0,0 @@ -package app.revanced.patches.youtube.player.speedoverlay.fingerprints - -import app.revanced.patcher.fingerprint.MethodFingerprint -import com.android.tools.smali.dexlib2.Opcode - -object SpeedOverlayHookAlternativeFingerprint : MethodFingerprint( - returnType = "V", - opcodes = listOf( - Opcode.IGET_OBJECT, - Opcode.CHECK_CAST, - Opcode.INVOKE_VIRTUAL, - Opcode.IGET_OBJECT, - Opcode.CHECK_CAST, - Opcode.IGET_OBJECT, - Opcode.IGET_OBJECT, - Opcode.INVOKE_VIRTUAL, - Opcode.IGET_OBJECT, - Opcode.CHECK_CAST, - Opcode.INVOKE_VIRTUAL, - Opcode.MOVE_RESULT, - Opcode.IF_EQZ, - Opcode.IGET_OBJECT, - Opcode.CHECK_CAST, - Opcode.IGET_OBJECT, - Opcode.INVOKE_VIRTUAL, - Opcode.IGET_OBJECT, - Opcode.INVOKE_VIRTUAL, - Opcode.MOVE_RESULT, - Opcode.IF_EQZ, - Opcode.GOTO, - Opcode.IGET_OBJECT, - Opcode.INVOKE_VIRTUAL, - Opcode.MOVE_RESULT, - Opcode.INVOKE_STATIC, - Opcode.MOVE_RESULT_OBJECT, - Opcode.INVOKE_STATIC, - Opcode.MOVE_RESULT_OBJECT, - Opcode.IPUT_OBJECT, - Opcode.IGET_OBJECT, - Opcode.INVOKE_VIRTUAL, - Opcode.MOVE_RESULT_OBJECT, - Opcode.CHECK_CAST, - Opcode.INVOKE_VIRTUAL, - Opcode.MOVE_RESULT, - Opcode.IGET, - Opcode.CMPL_FLOAT, - Opcode.IF_GEZ, - Opcode.IGET_OBJECT, - Opcode.INVOKE_VIRTUAL, - Opcode.IGET_OBJECT, - Opcode.INVOKE_STATIC, - Opcode.MOVE_RESULT_OBJECT, - Opcode.INVOKE_VIRTUAL, - Opcode.RETURN_VOID - ), - customFingerprint = { methodDef, _ -> methodDef.name == "run" } -) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/fingerprints/SpeedOverlayHookFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/fingerprints/SpeedOverlayHookFingerprint.kt deleted file mode 100644 index 79fa6408c..000000000 --- a/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/fingerprints/SpeedOverlayHookFingerprint.kt +++ /dev/null @@ -1,16 +0,0 @@ -package app.revanced.patches.youtube.player.speedoverlay.fingerprints - -import app.revanced.patcher.fingerprint.MethodFingerprint -import com.android.tools.smali.dexlib2.Opcode - -object SpeedOverlayHookFingerprint : MethodFingerprint( - returnType = "V", - opcodes = listOf( - Opcode.CMPL_FLOAT, - Opcode.IF_GEZ, - Opcode.IGET_OBJECT, - Opcode.INVOKE_VIRTUAL - ), - strings = listOf("Failed to easy seek haptics vibrate."), - customFingerprint = { methodDef, _ -> methodDef.name == "run" } -) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/fingerprints/YouTubeTextViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/fingerprints/YouTubeTextViewFingerprint.kt deleted file mode 100644 index 021bf37df..000000000 --- a/src/main/kotlin/app/revanced/patches/youtube/player/speedoverlay/fingerprints/YouTubeTextViewFingerprint.kt +++ /dev/null @@ -1,13 +0,0 @@ -package app.revanced.patches.youtube.player.speedoverlay.fingerprints - -import app.revanced.patcher.fingerprint.MethodFingerprint -import com.android.tools.smali.dexlib2.Opcode - -object YouTubeTextViewFingerprint : MethodFingerprint( - returnType = "V", - opcodes = listOf(Opcode.INVOKE_SUPER), - customFingerprint = { methodDef, _ -> - methodDef.definingClass.endsWith("/YouTubeTextView;") - && methodDef.name == "setText" - } -) \ No newline at end of file diff --git a/src/main/resources/youtube/settings/host/values/strings.xml b/src/main/resources/youtube/settings/host/values/strings.xml index c60a0c4be..0dc93bd9a 100644 --- a/src/main/resources/youtube/settings/host/values/strings.xml +++ b/src/main/resources/youtube/settings/host/values/strings.xml @@ -55,8 +55,6 @@ Player overlay opacity must be between 0-100. Reset to default values. Type the hex code of the seekbar color Custom seekbar color value - Speed value that changes while holding down - Custom speed overlay To open RVX in an external browser, turn on \'Open supported links\' and enable supported web addresses Open default app settings Default playback speed diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml index dfd1253e1..5bf381716 100644 --- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -399,7 +399,6 @@ - @@ -501,10 +500,7 @@ PREFERENCE: PLAYER_SETTINGS --> - - + SETTINGS: CUSTOM_PLAYER_OVERLAY_OPACITY -->