fix(YouTube - Disable double tap actions): Remove old incompatible targets

This commit is contained in:
LisoUseInAIKyrios
2025-07-13 10:15:16 +04:00
parent aa37105ea3
commit 294b2dce2e
5 changed files with 36 additions and 23 deletions

View File

@@ -3,7 +3,7 @@ package app.revanced.extension.youtube.patches;
import app.revanced.extension.youtube.settings.Settings; import app.revanced.extension.youtube.settings.Settings;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public final class DisableChapterSkipDoubleTapPatch { public final class DisableDoubleTapActionsPatch {
/** /**
* Injection point. * Injection point.

View File

@@ -1238,6 +1238,7 @@ public final class app/revanced/patches/youtube/interaction/dialog/RemoveViewerD
public final class app/revanced/patches/youtube/interaction/doubletap/DisableChapterSkipDoubleTapPatchKt { public final class app/revanced/patches/youtube/interaction/doubletap/DisableChapterSkipDoubleTapPatchKt {
public static final fun getDisableChapterSkipDoubleTapPatch ()Lapp/revanced/patcher/patch/BytecodePatch; public static final fun getDisableChapterSkipDoubleTapPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
public static final fun getDisableDoubleTapActionsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
} }
public final class app/revanced/patches/youtube/interaction/downloads/DownloadsPatchKt { public final class app/revanced/patches/youtube/interaction/downloads/DownloadsPatchKt {

View File

@@ -1,6 +1,7 @@
package app.revanced.patches.youtube.interaction.doubletap package app.revanced.patches.youtube.interaction.doubletap
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.fingerprint
import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.all.misc.resources.addResources import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.all.misc.resources.addResourcesPatch import app.revanced.patches.all.misc.resources.addResourcesPatch
@@ -8,12 +9,14 @@ import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch import app.revanced.patches.youtube.misc.settings.settingsPatch
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
private const val EXTENSION_CLASS_DESCRIPTOR = private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/patches/DisableChapterSkipDoubleTapPatch;" "Lapp/revanced/extension/youtube/patches/DisableDoubleTapActionsPatch;"
@Suppress("unused") @Suppress("unused")
val disableChapterSkipDoubleTapPatch = bytecodePatch( val disableDoubleTapActionsPatch = bytecodePatch(
name = "Disable double tap actions", name = "Disable double tap actions",
description = "Adds an option to disable player double tap gestures.", description = "Adds an option to disable player double tap gestures.",
) { ) {
@@ -25,9 +28,6 @@ val disableChapterSkipDoubleTapPatch = bytecodePatch(
compatibleWith( compatibleWith(
"com.google.android.youtube"( "com.google.android.youtube"(
"19.34.42",
"19.43.41",
"19.47.53",
"20.07.39", "20.07.39",
"20.12.46", "20.12.46",
"20.13.41", "20.13.41",
@@ -35,12 +35,28 @@ val disableChapterSkipDoubleTapPatch = bytecodePatch(
) )
execute { execute {
addResources("youtube", "interaction.doubletap.disableChapterSkipDoubleTapPatch") addResources("youtube", "interaction.doubletap.disableDoubleTapActionsPatch")
PreferenceScreen.PLAYER.addPreferences( PreferenceScreen.PLAYER.addPreferences(
SwitchPreference("revanced_disable_chapter_skip_double_tap"), SwitchPreference("revanced_disable_chapter_skip_double_tap"),
) )
val doubleTapInfoGetSeekSourceFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters("Z")
returns(seekTypeEnumFingerprint.originalClassDef.type)
opcodes(
Opcode.IF_EQZ,
Opcode.SGET_OBJECT,
Opcode.RETURN_OBJECT,
Opcode.SGET_OBJECT,
Opcode.RETURN_OBJECT,
)
custom { _, classDef ->
classDef.fields.count() == 4
}
}
// Force isChapterSeek flag to false. // Force isChapterSeek flag to false.
doubleTapInfoGetSeekSourceFingerprint.method.addInstructions( doubleTapInfoGetSeekSourceFingerprint.method.addInstructions(
0, 0,
@@ -60,4 +76,9 @@ val disableChapterSkipDoubleTapPatch = bytecodePatch(
""" """
) )
} }
} }
@Deprecated("Patch was renamed", ReplaceWith("disableDoubleTapActionsPatch"))
val disableChapterSkipDoubleTapPatch = bytecodePatch {
dependsOn(disableDoubleTapActionsPatch)
}

View File

@@ -2,22 +2,13 @@ package app.revanced.patches.youtube.interaction.doubletap
import app.revanced.patcher.fingerprint import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val doubleTapInfoGetSeekSourceFingerprint = fingerprint { internal val seekTypeEnumFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) accessFlags(AccessFlags.STATIC, AccessFlags.CONSTRUCTOR)
parameters("Z") strings(
returns("L") // Enum SeekSource, but name obfuscated. "SEEK_SOURCE_SEEK_TO_NEXT_CHAPTER",
opcodes( "SEEK_SOURCE_SEEK_TO_PREVIOUS_CHAPTER"
Opcode.IF_EQZ,
Opcode.SGET_OBJECT,
Opcode.RETURN_OBJECT,
Opcode.SGET_OBJECT,
Opcode.RETURN_OBJECT,
) )
custom { _, classDef ->
classDef.fields.count() == 4
}
} }
internal val doubleTapInfoCtorFingerprint = fingerprint { internal val doubleTapInfoCtorFingerprint = fingerprint {

View File

@@ -516,7 +516,7 @@ This feature is only available for older devices"</string>
<string name="revanced_remove_viewer_discretion_dialog_summary_off">Dialog will be shown</string> <string name="revanced_remove_viewer_discretion_dialog_summary_off">Dialog will be shown</string>
<string name="revanced_remove_viewer_discretion_dialog_user_dialog_message">This does not bypass the age restriction. It just accepts it automatically.</string> <string name="revanced_remove_viewer_discretion_dialog_user_dialog_message">This does not bypass the age restriction. It just accepts it automatically.</string>
</patch> </patch>
<patch id="interaction.doubletap.disableChapterSkipDoubleTapPatch"> <patch id="interaction.doubletap.disableDoubleTapActionsPatch">
<string name="revanced_disable_chapter_skip_double_tap_title">Disable double tap chapter skip</string> <string name="revanced_disable_chapter_skip_double_tap_title">Disable double tap chapter skip</string>
<string name="revanced_disable_chapter_skip_double_tap_summary_on">Double tap can never trigger a skip to the next/previous chapter</string> <string name="revanced_disable_chapter_skip_double_tap_summary_on">Double tap can never trigger a skip to the next/previous chapter</string>
<string name="revanced_disable_chapter_skip_double_tap_summary_off">Double tap can occasionally trigger a skip to the next/previous chapter</string> <string name="revanced_disable_chapter_skip_double_tap_summary_off">Double tap can occasionally trigger a skip to the next/previous chapter</string>