feat(YouTube/Seekbar components): add Disable seekbar chapters setting

This commit is contained in:
inotia00
2024-10-13 22:49:27 +09:00
parent 20389d549a
commit 504998f326
4 changed files with 37 additions and 6 deletions

View File

@ -14,6 +14,7 @@ import app.revanced.patches.youtube.player.seekbar.fingerprints.SeekbarTappingFi
import app.revanced.patches.youtube.player.seekbar.fingerprints.ShortsSeekbarColorFingerprint
import app.revanced.patches.youtube.player.seekbar.fingerprints.ThumbnailPreviewConfigFingerprint
import app.revanced.patches.youtube.player.seekbar.fingerprints.TimeCounterFingerprint
import app.revanced.patches.youtube.player.seekbar.fingerprints.TimelineMarkerArrayFingerprint
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
@ -67,8 +68,9 @@ object SeekbarComponentsPatch : BaseBytecodePatch(
SeekbarFingerprint,
SeekbarTappingFingerprint,
ShortsSeekbarColorFingerprint,
TimelineMarkerArrayFingerprint,
ThumbnailPreviewConfigFingerprint,
TotalTimeFingerprint
TotalTimeFingerprint,
)
) {
override fun execute(context: BytecodeContext) {
@ -211,6 +213,21 @@ object SeekbarComponentsPatch : BaseBytecodePatch(
// region patch for hide chapter
TimelineMarkerArrayFingerprint.resultOrThrow().let {
it.mutableMethod.apply {
addInstructionsWithLabels(
0, """
invoke-static {}, $PLAYER_CLASS_DESCRIPTOR->disableSeekbarChapters()Z
move-result v0
if-eqz v0, :show
const/4 v0, 0x0
new-array v0, v0, [Lcom/google/android/libraries/youtube/player/features/overlay/timebar/TimelineMarker;
return-object v0
""", ExternalLabel("show", getInstruction(0))
)
}
}
PlayerButtonsVisibilityFingerprint.resolve(
context,
PlayerButtonsResourcesFingerprint.resultOrThrow().mutableClass
@ -223,7 +240,7 @@ object SeekbarComponentsPatch : BaseBytecodePatch(
addInstructionsWithLabels(
viewIndex, """
invoke-static {v$viewRegister}, $PLAYER_CLASS_DESCRIPTOR->hideSeekbarChapters(Landroid/view/View;)Z
invoke-static {v$viewRegister}, $PLAYER_CLASS_DESCRIPTOR->hideSeekbarChapterLabel(Landroid/view/View;)Z
move-result v$freeRegister
if-eqz v$freeRegister, :ignore
return-void

View File

@ -0,0 +1,10 @@
package app.revanced.patches.youtube.player.seekbar.fingerprints
import app.revanced.patcher.extensions.or
import app.revanced.patcher.fingerprint.MethodFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
internal object TimelineMarkerArrayFingerprint : MethodFingerprint(
returnType = "[Lcom/google/android/libraries/youtube/player/features/overlay/timebar/TimelineMarker;",
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
)