diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/doubletapbackground/DoubleTapOverlayBackgroundPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/doubletapbackground/DoubleTapOverlayBackgroundPatch.kt
deleted file mode 100644
index dec4c0468..000000000
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/doubletapbackground/DoubleTapOverlayBackgroundPatch.kt
+++ /dev/null
@@ -1,26 +0,0 @@
-package app.revanced.patches.youtube.layout.doubletapbackground
-
-import app.revanced.patcher.data.ResourceContext
-import app.revanced.patches.shared.overlaybackground.OverlayBackgroundUtils.removeOverlayBackground
-import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE
-import app.revanced.patches.youtube.utils.settings.SettingsPatch
-import app.revanced.util.patch.BaseResourcePatch
-
-@Suppress("unused")
-object DoubleTapOverlayBackgroundPatch : BaseResourcePatch(
- name = "Hide double tap overlay filter",
- description = "Removes, at compile time, the dark overlay that appears when double-tapping to seek.",
- dependencies = setOf(SettingsPatch::class),
- compatiblePackages = COMPATIBLE_PACKAGE,
- use = false
-) {
- override fun execute(context: ResourceContext) {
-
- context.removeOverlayBackground(
- arrayOf("quick_seek_overlay.xml"),
- arrayOf("tap_bloom_view", "dark_background")
- )
-
- SettingsPatch.updatePatchStatus(this)
- }
-}
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt
index 9fdaed546..da19e2a2d 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt
@@ -20,6 +20,7 @@ import app.revanced.patches.youtube.player.components.fingerprints.InfoCardsInco
import app.revanced.patches.youtube.player.components.fingerprints.LayoutCircleFingerprint
import app.revanced.patches.youtube.player.components.fingerprints.LayoutIconFingerprint
import app.revanced.patches.youtube.player.components.fingerprints.LayoutVideoFingerprint
+import app.revanced.patches.youtube.player.components.fingerprints.QuickSeekOverlayFingerprint
import app.revanced.patches.youtube.player.components.fingerprints.SeekEduContainerFingerprint
import app.revanced.patches.youtube.player.components.fingerprints.SuggestedActionsFingerprint
import app.revanced.patches.youtube.player.components.fingerprints.TouchAreaOnClickListenerFingerprint
@@ -34,14 +35,18 @@ import app.revanced.patches.youtube.utils.integrations.Constants.COMPONENTS_PATH
import app.revanced.patches.youtube.utils.integrations.Constants.PLAYER_CLASS_DESCRIPTOR
import app.revanced.patches.youtube.utils.playertype.PlayerTypeHookPatch
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch
+import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.DarkBackground
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.FadeDurationFast
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ScrimOverlay
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.SeekUndoEduOverlayStub
+import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.TapBloomView
import app.revanced.patches.youtube.utils.settings.SettingsPatch
+import app.revanced.util.REGISTER_TEMPLATE_REPLACEMENT
import app.revanced.util.getTargetIndexOrThrow
import app.revanced.util.getTargetIndexReversedOrThrow
import app.revanced.util.getTargetIndexWithMethodReferenceNameOrThrow
import app.revanced.util.getWideLiteralInstructionIndex
+import app.revanced.util.literalInstructionViewHook
import app.revanced.util.patch.BaseBytecodePatch
import app.revanced.util.resultOrThrow
import com.android.tools.smali.dexlib2.Opcode
@@ -73,6 +78,7 @@ object PlayerComponentsPatch : BaseBytecodePatch(
LayoutCircleFingerprint,
LayoutIconFingerprint,
LayoutVideoFingerprint,
+ QuickSeekOverlayFingerprint,
SeekEduContainerFingerprint,
SuggestedActionsFingerprint,
TouchAreaOnClickListenerFingerprint,
@@ -164,6 +170,24 @@ object PlayerComponentsPatch : BaseBytecodePatch(
// endregion
+ // region patch for hide double-tap overlay filter
+
+ val smaliInstruction = """
+ invoke-static {v$REGISTER_TEMPLATE_REPLACEMENT}, $PLAYER_CLASS_DESCRIPTOR->hideDoubleTapOverlayFilter(Landroid/view/View;)V
+ """
+
+ arrayOf(
+ DarkBackground,
+ TapBloomView
+ ).forEach { literal ->
+ QuickSeekOverlayFingerprint.literalInstructionViewHook(
+ literal,
+ smaliInstruction
+ )
+ }
+
+ // endregion
+
// region patch for hide end screen cards
listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/components/fingerprints/QuickSeekOverlayFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/player/components/fingerprints/QuickSeekOverlayFingerprint.kt
new file mode 100644
index 000000000..b07040639
--- /dev/null
+++ b/src/main/kotlin/app/revanced/patches/youtube/player/components/fingerprints/QuickSeekOverlayFingerprint.kt
@@ -0,0 +1,15 @@
+package app.revanced.patches.youtube.player.components.fingerprints
+
+import app.revanced.patcher.fingerprint.MethodFingerprint
+import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.DarkBackground
+import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.TapBloomView
+import app.revanced.util.containsWideLiteralInstructionIndex
+
+internal object QuickSeekOverlayFingerprint : MethodFingerprint(
+ returnType = "V",
+ parameters = emptyList(),
+ customFingerprint = { methodDef, _ ->
+ methodDef.containsWideLiteralInstructionIndex(DarkBackground)
+ && methodDef.containsWideLiteralInstructionIndex(TapBloomView)
+ },
+)
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/resourceid/SharedResourceIdPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/resourceid/SharedResourceIdPatch.kt
index ec570889c..70ff2ab04 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/utils/resourceid/SharedResourceIdPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/utils/resourceid/SharedResourceIdPatch.kt
@@ -39,6 +39,7 @@ object SharedResourceIdPatch : ResourcePatch() {
var CompactLink = -1L
var CompactListItem = -1L
var ControlsLayoutStub = -1L
+ var DarkBackground = -1L
var DarkSplashAnimation = -1L
var DonationCompanion = -1L
var DrawerContentView = -1L
@@ -93,6 +94,7 @@ object SharedResourceIdPatch : ResourcePatch() {
var SlidingDialogAnimation = -1L
var SubtitleMenuSettingsFooterInfo = -1L
var SuggestedAction = -1L
+ var TapBloomView = -1L
var TitleAnchor = -1L
var ToolTipContentView = -1L
var TotalTime = -1L
@@ -132,6 +134,7 @@ object SharedResourceIdPatch : ResourcePatch() {
CompactLink = getId(LAYOUT, "compact_link")
CompactListItem = getId(LAYOUT, "compact_list_item")
ControlsLayoutStub = getId(ID, "controls_layout_stub")
+ DarkBackground = getId(ID, "dark_background")
DarkSplashAnimation = getId(ID, "dark_splash_animation")
DonationCompanion = getId(LAYOUT, "donation_companion")
DrawerContentView = getId(ID, "drawer_content_view")
@@ -189,6 +192,7 @@ object SharedResourceIdPatch : ResourcePatch() {
SlidingDialogAnimation = getId(STYLE, "SlidingDialogAnimation")
SubtitleMenuSettingsFooterInfo = getId(STRING, "subtitle_menu_settings_footer_info")
SuggestedAction = getId(LAYOUT, "suggested_action")
+ TapBloomView = getId(ID, "tap_bloom_view")
TitleAnchor = getId(ID, "title_anchor")
ToolTipContentView = getId(LAYOUT, "tooltip_content_view")
TotalTime = getId(STRING, "total_time")
diff --git a/src/main/resources/youtube/settings/host/values/strings.xml b/src/main/resources/youtube/settings/host/values/strings.xml
index 94f6ece3e..810cd20f0 100644
--- a/src/main/resources/youtube/settings/host/values/strings.xml
+++ b/src/main/resources/youtube/settings/host/values/strings.xml
@@ -520,6 +520,9 @@ Note:
Hide crowdfunding box
Crowdfunding box is hidden.
Crowdfunding box is shown.
+ Hide double-tap overlay filter
+ Double-tap overlay filter is hidden.
+ Double-tap overlay filter is shown.
Hide end screen cards
End screen cards are hidden.
End screen cards are shown.
diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml
index be034e9b8..46b560f79 100644
--- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml
+++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml
@@ -430,6 +430,7 @@
+
@@ -709,7 +710,6 @@
-