mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-06-12 13:17:46 +02:00
feat(YouTube/Player components): add Skip autoplay countdown
settings
This commit is contained in:
@ -24,6 +24,7 @@ import app.revanced.patches.youtube.player.components.fingerprints.RestoreSlideT
|
||||
import app.revanced.patches.youtube.player.components.fingerprints.SeekEduContainerFingerprint
|
||||
import app.revanced.patches.youtube.player.components.fingerprints.SpeedOverlayFingerprint
|
||||
import app.revanced.patches.youtube.player.components.fingerprints.SuggestedActionsFingerprint
|
||||
import app.revanced.patches.youtube.player.components.fingerprints.TouchAreaOnClickListenerFingerprint
|
||||
import app.revanced.patches.youtube.player.components.fingerprints.WatermarkFingerprint
|
||||
import app.revanced.patches.youtube.player.components.fingerprints.WatermarkParentFingerprint
|
||||
import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE
|
||||
@ -77,6 +78,7 @@ object PlayerComponentsPatch : BaseBytecodePatch(
|
||||
SeekEduContainerFingerprint,
|
||||
SpeedOverlayFingerprint,
|
||||
SuggestedActionsFingerprint,
|
||||
TouchAreaOnClickListenerFingerprint,
|
||||
WatermarkParentFingerprint,
|
||||
YouTubeControlsOverlayFingerprint,
|
||||
)
|
||||
@ -323,6 +325,25 @@ object PlayerComponentsPatch : BaseBytecodePatch(
|
||||
|
||||
// endregion
|
||||
|
||||
// region patch for skip autoplay countdown
|
||||
|
||||
// This patch works fine when the [SuggestedVideoEndScreenPatch] patch is included.
|
||||
TouchAreaOnClickListenerFingerprint.resultOrThrow().let {
|
||||
it.mutableClass.methods.find { method ->
|
||||
method.parameters == listOf("Landroid/view/View${'$'}OnClickListener;")
|
||||
}?.apply {
|
||||
val setOnClickListenerIndex = getTargetIndexWithMethodReferenceName("setOnClickListener")
|
||||
val setOnClickListenerRegister = getInstruction<FiveRegisterInstruction>(setOnClickListenerIndex).registerC
|
||||
|
||||
addInstruction(
|
||||
setOnClickListenerIndex + 1,
|
||||
"invoke-static {v$setOnClickListenerRegister}, $PLAYER_CLASS_DESCRIPTOR->skipAutoPlayCountdown(Landroid/view/View;)V"
|
||||
)
|
||||
} ?: throw PatchException("Failed to find setOnClickListener method")
|
||||
}
|
||||
|
||||
// endregion
|
||||
|
||||
LithoFilterPatch.addFilter(PLAYER_COMPONENTS_FILTER_CLASS_DESCRIPTOR)
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,12 @@
|
||||
package app.revanced.patches.youtube.player.components.fingerprints
|
||||
|
||||
import app.revanced.patcher.extensions.or
|
||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.TouchArea
|
||||
import app.revanced.util.fingerprint.LiteralValueFingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal object TouchAreaOnClickListenerFingerprint : LiteralValueFingerprint(
|
||||
returnType = "V",
|
||||
accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
|
||||
literalSupplier = { TouchArea }
|
||||
)
|
@ -91,6 +91,7 @@ object SharedResourceIdPatch : ResourcePatch() {
|
||||
var TitleAnchor = -1L
|
||||
var ToolTipContentView = -1L
|
||||
var TotalTime = -1L
|
||||
var TouchArea = -1L
|
||||
var VideoQualityBottomSheet = -1L
|
||||
var VoiceSearch = -1L
|
||||
var YouTubeControlsOverlaySubtitleButton = -1L
|
||||
@ -178,6 +179,7 @@ object SharedResourceIdPatch : ResourcePatch() {
|
||||
TitleAnchor = getId(ID, "title_anchor")
|
||||
ToolTipContentView = getId(LAYOUT, "tooltip_content_view")
|
||||
TotalTime = getId(STRING, "total_time")
|
||||
TouchArea = getId(ID, "touch_area")
|
||||
VideoQualityBottomSheet = getId(LAYOUT, "video_quality_bottom_sheet_list_fragment_title")
|
||||
VoiceSearch = getId(ID, "voice_search")
|
||||
YouTubeControlsOverlaySubtitleButton = getId(LAYOUT, "youtube_controls_overlay_subtitle_button")
|
||||
|
Reference in New Issue
Block a user