From 5dd79073f1ec8d9f928a384a3282926d94419518 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Wed, 22 Jan 2025 13:15:50 +0900 Subject: [PATCH] fix(YouTube - Overlay Buttons): When the patch option `Bottom margin` is 0, all player bottom buttons are hidden https://github.com/inotia00/ReVanced_Extended/issues/2720 --- .../overlaybuttons/OverlayButtonsPatch.kt | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/player/overlaybuttons/OverlayButtonsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/player/overlaybuttons/OverlayButtonsPatch.kt index fce3674e3..06708acc8 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/player/overlaybuttons/OverlayButtonsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/player/overlaybuttons/OverlayButtonsPatch.kt @@ -21,6 +21,7 @@ import app.revanced.patches.youtube.utils.settings.settingsPatch import app.revanced.patches.youtube.video.information.videoEndMethod import app.revanced.patches.youtube.video.information.videoInformationPatch import app.revanced.util.ResourceGroup +import app.revanced.util.Utils.printWarn import app.revanced.util.copyResources import app.revanced.util.copyXmlNode import app.revanced.util.doRecursively @@ -55,7 +56,7 @@ private val overlayButtonsBytecodePatch = bytecodePatch( } } -private const val MARGIN_NONE = "0.0dip" +private const val MARGIN_MINIMUM = "0.1dip" private const val MARGIN_DEFAULT = "2.5dip" private const val MARGIN_WIDER = "5.0dip" @@ -95,7 +96,7 @@ val overlayButtonsPatch = resourcePatch( default = MARGIN_DEFAULT, values = mapOf( "Default" to MARGIN_DEFAULT, - "None" to MARGIN_NONE, + "Minimum" to MARGIN_MINIMUM, "Wider" to MARGIN_WIDER, ), title = "Bottom margin", @@ -125,9 +126,20 @@ val overlayButtonsPatch = resourcePatch( val iconType = iconTypeOption .lowerCaseOrThrow() - val marginBottom = bottomMarginOption + var marginBottom = bottomMarginOption .lowerCaseOrThrow() + try { + val marginBottomFloat = marginBottom.split("dip")[0].toFloat() + if (marginBottomFloat <= 0f) { + printWarn("Patch option \"Bottom margin\" must be greater than 0, fallback to minimum.") + marginBottom = MARGIN_MINIMUM + } + } catch (e: NumberFormatException) { + printWarn("Patch option \"Bottom margin\" failed validation, fallback to default.") + marginBottom = MARGIN_DEFAULT + } + val useWiderButtonsSpace = widerButtonsSpace == true // Inject hooks for overlay buttons.