diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/SeekbarComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/SeekbarComponentsPatch.kt index d88ebafe5..fc7c0ce79 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/SeekbarComponentsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/SeekbarComponentsPatch.kt @@ -14,6 +14,8 @@ import app.revanced.patches.youtube.player.seekbar.fingerprints.ShortsSeekbarCol import app.revanced.patches.youtube.player.seekbar.fingerprints.ThumbnailPreviewConfigFingerprint import app.revanced.patches.youtube.player.seekbar.fingerprints.TimeCounterFingerprint import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE +import app.revanced.patches.youtube.utils.fingerprints.PlayerButtonsResourcesFingerprint +import app.revanced.patches.youtube.utils.fingerprints.PlayerButtonsVisibilityFingerprint import app.revanced.patches.youtube.utils.fingerprints.PlayerSeekbarColorFingerprint import app.revanced.patches.youtube.utils.fingerprints.SeekbarFingerprint import app.revanced.patches.youtube.utils.fingerprints.SeekbarOnDrawFingerprint @@ -26,6 +28,7 @@ import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelT import app.revanced.patches.youtube.utils.settings.SettingsPatch import app.revanced.patches.youtube.utils.settings.SettingsPatch.contexts import app.revanced.patches.youtube.video.information.VideoInformationPatch +import app.revanced.util.getTargetIndex import app.revanced.util.getTargetIndexWithMethodReferenceName import app.revanced.util.getWalkerMethod import app.revanced.util.getWideLiteralInstructionIndex @@ -54,6 +57,7 @@ object SeekbarComponentsPatch : BaseBytecodePatch( compatiblePackages = COMPATIBLE_PACKAGE, fingerprints = setOf( ControlsOverlayStyleFingerprint, + PlayerButtonsResourcesFingerprint, PlayerSeekbarColorFingerprint, PlayerSeekbarColorFingerprint, SeekbarFingerprint, @@ -187,6 +191,31 @@ object SeekbarComponentsPatch : BaseBytecodePatch( // endregion + // region patch for hide chapter + + PlayerButtonsVisibilityFingerprint.resolve( + context, + PlayerButtonsResourcesFingerprint.resultOrThrow().mutableClass + ) + PlayerButtonsVisibilityFingerprint.resultOrThrow().let { + it.mutableMethod.apply { + val freeRegister = implementation!!.registerCount - parameters.size - 2 + val viewIndex = getTargetIndex(Opcode.INVOKE_INTERFACE) + val viewRegister = getInstruction(viewIndex).registerD + + addInstructionsWithLabels( + viewIndex, """ + invoke-static {v$viewRegister}, $PLAYER_CLASS_DESCRIPTOR->hideSeekbarChapters(Landroid/view/View;)Z + move-result v$freeRegister + if-eqz v$freeRegister, :ignore + return-void + """, ExternalLabel("ignore", getInstruction(viewIndex)) + ) + } + } + + // endregion + // region patch for hide seekbar SeekbarFingerprint.resultOrThrow().mutableClass.let { mutableClass -> diff --git a/src/main/resources/youtube/settings/host/values/strings.xml b/src/main/resources/youtube/settings/host/values/strings.xml index 9799b89be..d40e9cb86 100644 --- a/src/main/resources/youtube/settings/host/values/strings.xml +++ b/src/main/resources/youtube/settings/host/values/strings.xml @@ -821,6 +821,9 @@ Please download %2$s from the website." Hide seekbar in video thumbnails Thumbnail seekbar is hidden. Thumbnail seekbar is shown. + Hide seekbar chapters + Chapters are hidden in seekbar. + Chapters are shown in seekbar. Hide time stamp Time stamp is hidden. Time stamp is shown. diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml index e8a600b03..b8732ff0f 100644 --- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -352,6 +352,7 @@ + SETTINGS: SEEKBAR_COMPONENTS -->