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 @@ -