feat(YouTube/Seekbar components): add Hide seekbar chapters settings

This commit is contained in:
inotia00 2024-05-02 03:47:47 +09:00
parent f90b9a2397
commit 15512e46c1
3 changed files with 33 additions and 0 deletions

View File

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

View File

@ -821,6 +821,9 @@ Please download %2$s from the website."</string>
<string name="revanced_hide_seekbar_thumbnail_title">Hide seekbar in video thumbnails</string>
<string name="revanced_hide_seekbar_thumbnail_summary_on">Thumbnail seekbar is hidden.</string>
<string name="revanced_hide_seekbar_thumbnail_summary_off">Thumbnail seekbar is shown.</string>
<string name="revanced_hide_seekbar_chapters_title">Hide seekbar chapters</string>
<string name="revanced_hide_seekbar_chapters_summary_on">Chapters are hidden in seekbar.</string>
<string name="revanced_hide_seekbar_chapters_summary_off">Chapters are shown in seekbar.</string>
<string name="revanced_hide_time_stamp_title">Hide time stamp</string>
<string name="revanced_hide_time_stamp_summary_on">Time stamp is hidden.</string>
<string name="revanced_hide_time_stamp_summary_off">Time stamp is shown.</string>

View File

@ -352,6 +352,7 @@
<SwitchPreference android:title="@string/revanced_enable_seekbar_tapping_title" android:key="revanced_enable_seekbar_tapping" android:defaultValue="true" android:summaryOn="@string/revanced_enable_seekbar_tapping_summary_on" android:summaryOff="@string/revanced_enable_seekbar_tapping_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_seekbar_title" android:key="revanced_hide_seekbar" android:defaultValue="false" android:summaryOn="@string/revanced_hide_seekbar_summary_on" android:summaryOff="@string/revanced_hide_seekbar_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_seekbar_thumbnail_title" android:key="revanced_hide_seekbar_thumbnail" android:defaultValue="false" android:summaryOn="@string/revanced_hide_seekbar_thumbnail_summary_on" android:summaryOff="@string/revanced_hide_seekbar_thumbnail_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_seekbar_chapters_title" android:key="revanced_hide_seekbar_chapters" android:defaultValue="false" android:summaryOn="@string/revanced_hide_seekbar_chapters_summary_on" android:summaryOff="@string/revanced_hide_seekbar_chapters_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_time_stamp_title" android:key="revanced_hide_time_stamp" android:defaultValue="false" android:summaryOn="@string/revanced_hide_time_stamp_summary_on" android:summaryOff="@string/revanced_hide_time_stamp_summary_off" />
<SwitchPreference android:title="@string/revanced_restore_old_seekbar_thumbnails_title" android:key="revanced_restore_old_seekbar_thumbnails" android:defaultValue="true" android:summaryOn="@string/revanced_restore_old_seekbar_thumbnails_summary_on" android:summaryOff="@string/revanced_restore_old_seekbar_thumbnails_summary_off" />
</PreferenceScreen>SETTINGS: SEEKBAR_COMPONENTS -->