feat(YouTube/Hide shorts components): match original ReVanced code

This commit is contained in:
inotia00 2024-04-25 02:45:00 +09:00
parent 16dad655ba
commit dafaa60087
8 changed files with 231 additions and 226 deletions

View File

@ -5,15 +5,18 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
import app.revanced.patcher.fingerprint.MethodFingerprint import app.revanced.patcher.fingerprint.MethodFingerprint
import app.revanced.patcher.patch.PatchException
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
import app.revanced.patcher.util.smali.ExternalLabel import app.revanced.patcher.util.smali.ExternalLabel
import app.revanced.patches.shared.litho.LithoFilterPatch import app.revanced.patches.shared.litho.LithoFilterPatch
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsButtonFingerprint import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsButtonFingerprint
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsInfoPanelFingerprint
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsPaidPromotionFingerprint import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsPaidPromotionFingerprint
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsPivotFingerprint import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsPivotFingerprint
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsPivotLegacyFingerprint import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsPivotLegacyFingerprint
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsSubscriptionsTabletFingerprint
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsSubscriptionsTabletParentFingerprint
import app.revanced.patches.youtube.utils.integrations.Constants.COMPATIBLE_PACKAGE import app.revanced.patches.youtube.utils.integrations.Constants.COMPATIBLE_PACKAGE
import app.revanced.patches.youtube.utils.integrations.Constants.COMPONENTS_PATH import app.revanced.patches.youtube.utils.integrations.Constants.COMPONENTS_PATH
import app.revanced.patches.youtube.utils.integrations.Constants.SHORTS_CLASS_DESCRIPTOR import app.revanced.patches.youtube.utils.integrations.Constants.SHORTS_CLASS_DESCRIPTOR
@ -23,9 +26,6 @@ import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelD
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelDynShare import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelDynShare
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelForcedMuteButton import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelForcedMuteButton
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPivotButton import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPivotButton
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPlayerBadge
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPlayerBadge2
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPlayerInfoPanel
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelRightDislikeIcon import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelRightDislikeIcon
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelRightLikeIcon import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelRightLikeIcon
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.RightComment import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.RightComment
@ -37,6 +37,9 @@ import app.revanced.util.patch.BaseBytecodePatch
import app.revanced.util.resultOrThrow import app.revanced.util.resultOrThrow
import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.FieldReference
@Suppress("unused") @Suppress("unused")
object ShortsComponentPatch : BaseBytecodePatch( object ShortsComponentPatch : BaseBytecodePatch(
@ -48,16 +51,15 @@ object ShortsComponentPatch : BaseBytecodePatch(
SettingsPatch::class, SettingsPatch::class,
SharedResourceIdPatch::class, SharedResourceIdPatch::class,
ShortsNavigationBarPatch::class, ShortsNavigationBarPatch::class,
ShortsSubscriptionsButtonPatch::class,
ShortsToolBarPatch::class ShortsToolBarPatch::class
), ),
compatiblePackages = COMPATIBLE_PACKAGE, compatiblePackages = COMPATIBLE_PACKAGE,
fingerprints = setOf( fingerprints = setOf(
ShortsButtonFingerprint, ShortsButtonFingerprint,
ShortsInfoPanelFingerprint,
ShortsPaidPromotionFingerprint, ShortsPaidPromotionFingerprint,
ShortsPivotFingerprint, ShortsPivotFingerprint,
ShortsPivotLegacyFingerprint ShortsPivotLegacyFingerprint,
ShortsSubscriptionsTabletParentFingerprint
) )
) { ) {
private const val BUTTON_FILTER_CLASS_DESCRIPTOR = private const val BUTTON_FILTER_CLASS_DESCRIPTOR =
@ -67,14 +69,14 @@ object ShortsComponentPatch : BaseBytecodePatch(
override fun execute(context: BytecodeContext) { override fun execute(context: BytecodeContext) {
/** // region patch for hide comments button (non-litho)
* Comment button
*/
ShortsButtonFingerprint.hideButton(RightComment, "hideShortsCommentsButton", false) ShortsButtonFingerprint.hideButton(RightComment, "hideShortsCommentsButton", false)
/** // endregion
* Dislike button
*/ // region patch for hide dislike button (non-litho)
ShortsButtonFingerprint.resultOrThrow().let { ShortsButtonFingerprint.resultOrThrow().let {
it.mutableMethod.apply { it.mutableMethod.apply {
val constIndex = getWideLiteralInstructionIndex(ReelRightDislikeIcon) val constIndex = getWideLiteralInstructionIndex(ReelRightDislikeIcon)
@ -93,14 +95,10 @@ object ShortsComponentPatch : BaseBytecodePatch(
} }
} }
/** // endregion
* Info panel
*/ // region patch for hide like button (non-litho)
ShortsInfoPanelFingerprint.hideButtons(ReelPlayerInfoPanel, "hideShortsInfoPanel(Landroid/view/ViewGroup;)Landroid/view/ViewGroup;")
/**
* Like button
*/
ShortsButtonFingerprint.resultOrThrow().let { ShortsButtonFingerprint.resultOrThrow().let {
it.mutableMethod.apply { it.mutableMethod.apply {
val insertIndex = getWideLiteralInstructionIndex(ReelRightLikeIcon) val insertIndex = getWideLiteralInstructionIndex(ReelRightLikeIcon)
@ -118,15 +116,10 @@ object ShortsComponentPatch : BaseBytecodePatch(
} }
} }
/** // endregion
* Paid promotion
*/ // region patch for hide sound button
ShortsPaidPromotionFingerprint.hideButtons(ReelPlayerBadge, "hideShortsPaidPromotionBanner(Landroid/view/ViewStub;)Landroid/view/ViewStub;")
ShortsPaidPromotionFingerprint.hideButtons(ReelPlayerBadge2, "hideShortsPaidPromotionBanner(Landroid/view/ViewStub;)Landroid/view/ViewStub;")
/**
* Sound button
*/
ShortsPivotLegacyFingerprint.result?.let { ShortsPivotLegacyFingerprint.result?.let {
it.mutableMethod.apply { it.mutableMethod.apply {
val targetIndex = getWideLiteralInstructionIndex(ReelForcedMuteButton) val targetIndex = getWideLiteralInstructionIndex(ReelForcedMuteButton)
@ -152,16 +145,97 @@ object ShortsComponentPatch : BaseBytecodePatch(
} }
} }
/** // endregion
* Remix button
*/ // region patch for hide remix button (non-litho)
ShortsButtonFingerprint.hideButton(ReelDynRemix, "hideShortsRemixButton", true) ShortsButtonFingerprint.hideButton(ReelDynRemix, "hideShortsRemixButton", true)
/** // endregion
* Share button
*/ // region patch for hide share button (non-litho)
ShortsButtonFingerprint.hideButton(ReelDynShare, "hideShortsShareButton", true) ShortsButtonFingerprint.hideButton(ReelDynShare, "hideShortsShareButton", true)
// endregion
// region patch for hide paid promotion label (non-litho)
ShortsPaidPromotionFingerprint.resultOrThrow().let {
it.mutableMethod.apply {
when (returnType) {
"Landroid/widget/TextView;" -> {
val insertIndex = implementation!!.instructions.size - 1
val insertRegister = getInstruction<OneRegisterInstruction>(insertIndex).registerA
addInstructions(
insertIndex + 1, """
invoke-static {v$insertRegister}, $SHORTS_CLASS_DESCRIPTOR->hideShortsPaidPromotionLabel(Landroid/widget/TextView;)V
return-object v$insertRegister
"""
)
removeInstruction(insertIndex)
}
"V" -> {
addInstructionsWithLabels(
0, """
invoke-static {}, $SHORTS_CLASS_DESCRIPTOR->hideShortsPaidPromotionLabel()Z
move-result v0
if-eqz v0, :show
return-void
""", ExternalLabel("show", getInstruction(0))
)
}
else -> {
throw PatchException("Unknown returnType: $returnType")
}
}
}
}
// endregion
// region patch for hide subscribe button (non-litho)
// This method is deprecated since YouTube v18.31.xx.
if (!SettingsPatch.upward1831) {
ShortsSubscriptionsTabletParentFingerprint.resultOrThrow().let { parentResult ->
lateinit var subscriptionFieldReference: FieldReference
parentResult.mutableMethod.apply {
val targetIndex = getWideLiteralInstructionIndex(SharedResourceIdPatch.ReelPlayerFooter) - 1
subscriptionFieldReference =
(getInstruction<ReferenceInstruction>(targetIndex)).reference as FieldReference
}
ShortsSubscriptionsTabletFingerprint.also {
it.resolve(
context,
parentResult.classDef
)
}.resultOrThrow().mutableMethod.apply {
implementation!!.instructions.filter { instruction ->
val fieldReference =
(instruction as? ReferenceInstruction)?.reference as? FieldReference
instruction.opcode == Opcode.IGET
&& fieldReference == subscriptionFieldReference
}.forEach { instruction ->
val insertIndex = implementation!!.instructions.indexOf(instruction) + 1
val register = (instruction as TwoRegisterInstruction).registerA
addInstructions(
insertIndex, """
invoke-static {v$register}, $SHORTS_CLASS_DESCRIPTOR->hideShortsSubscribeButton(I)I
move-result v$register
"""
)
}
}
}
}
// endregion
LithoFilterPatch.addFilter(BUTTON_FILTER_CLASS_DESCRIPTOR) LithoFilterPatch.addFilter(BUTTON_FILTER_CLASS_DESCRIPTOR)
LithoFilterPatch.addFilter(SHELF_FILTER_CLASS_DESCRIPTOR) LithoFilterPatch.addFilter(SHELF_FILTER_CLASS_DESCRIPTOR)

View File

@ -1,83 +0,0 @@
package app.revanced.patches.youtube.shorts.components
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsSubscriptionsFingerprint
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsSubscriptionsTabletFingerprint
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsSubscriptionsTabletParentFingerprint
import app.revanced.patches.youtube.utils.integrations.Constants.SHORTS_CLASS_DESCRIPTOR
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPlayerFooter
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPlayerPausedStateButton
import app.revanced.patches.youtube.utils.settings.SettingsPatch
import app.revanced.util.getWideLiteralInstructionIndex
import app.revanced.util.resultOrThrow
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.FieldReference
@Patch(dependencies = [SettingsPatch::class])
object ShortsSubscriptionsButtonPatch : BytecodePatch(
setOf(
ShortsSubscriptionsFingerprint,
ShortsSubscriptionsTabletParentFingerprint
)
) {
private lateinit var subscriptionFieldReference: FieldReference
override fun execute(context: BytecodeContext) {
ShortsSubscriptionsFingerprint.resultOrThrow().let {
it.mutableMethod.apply {
val insertIndex = getWideLiteralInstructionIndex(ReelPlayerPausedStateButton) + 2
val insertRegister = getInstruction<OneRegisterInstruction>(insertIndex).registerA
addInstruction(
insertIndex + 1,
"invoke-static {v$insertRegister}, $SHORTS_CLASS_DESCRIPTOR->hideShortsSubscriptionsButton(Landroid/view/View;)V"
)
}
}
/**
* Deprecated in YouTube v18.31.xx+
*/
if (!SettingsPatch.upward1831) {
ShortsSubscriptionsTabletParentFingerprint.resultOrThrow().let { parentResult ->
parentResult.mutableMethod.apply {
val targetIndex = getWideLiteralInstructionIndex(ReelPlayerFooter) - 1
subscriptionFieldReference =
(getInstruction<ReferenceInstruction>(targetIndex)).reference as FieldReference
}
ShortsSubscriptionsTabletFingerprint.also {
it.resolve(
context,
parentResult.classDef
)
}.resultOrThrow().mutableMethod.apply {
implementation!!.instructions.filter { instruction ->
val fieldReference =
(instruction as? ReferenceInstruction)?.reference as? FieldReference
instruction.opcode == Opcode.IGET
&& fieldReference == subscriptionFieldReference
}.forEach { instruction ->
val insertIndex = implementation!!.instructions.indexOf(instruction) + 1
val register = (instruction as TwoRegisterInstruction).registerA
addInstructions(
insertIndex, """
invoke-static {v$register}, $SHORTS_CLASS_DESCRIPTOR->hideShortsSubscriptionsButton(I)I
move-result v$register
"""
)
}
}
}
}
}
}

View File

@ -1,12 +0,0 @@
package app.revanced.patches.youtube.shorts.components.fingerprints
import app.revanced.patcher.extensions.or
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPlayerInfoPanel
import app.revanced.util.fingerprint.LiteralValueFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
internal object ShortsInfoPanelFingerprint : LiteralValueFingerprint(
returnType = "V",
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
literalSupplier = { ReelPlayerInfoPanel }
)

View File

@ -1,17 +1,13 @@
package app.revanced.patches.youtube.shorts.components.fingerprints package app.revanced.patches.youtube.shorts.components.fingerprints
import app.revanced.patcher.extensions.or import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.BadgeLabel
import app.revanced.patcher.fingerprint.MethodFingerprint import app.revanced.util.fingerprint.LiteralValueFingerprint
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPlayerBadge
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPlayerBadge2
import app.revanced.util.containsWideLiteralInstructionIndex
import com.android.tools.smali.dexlib2.AccessFlags
internal object ShortsPaidPromotionFingerprint : MethodFingerprint( /**
returnType = "V", * The method by which patches are applied is different between the minimum supported version and the maximum supported version.
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, * There are two classes where R.id.badge_label[BadgeLabel] is used,
customFingerprint = { methodDef, _ -> * but due to the structure of ReVanced Patcher, the patch is applied to the method found first.
methodDef.containsWideLiteralInstructionIndex(ReelPlayerBadge) */
&& methodDef.containsWideLiteralInstructionIndex(ReelPlayerBadge2) internal object ShortsPaidPromotionFingerprint : LiteralValueFingerprint(
}, literalSupplier = { BadgeLabel }
) )

View File

@ -1,13 +0,0 @@
package app.revanced.patches.youtube.shorts.components.fingerprints
import app.revanced.patcher.extensions.or
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPlayerPausedStateButton
import app.revanced.util.fingerprint.LiteralValueFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
internal object ShortsSubscriptionsFingerprint : LiteralValueFingerprint(
returnType = "V",
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
parameters = emptyList(),
literalSupplier = { ReelPlayerPausedStateButton }
)

View File

@ -25,6 +25,7 @@ object SharedResourceIdPatch : ResourcePatch() {
var AutoNavPreviewStub = -1L var AutoNavPreviewStub = -1L
var AutoNavToggle = -1L var AutoNavToggle = -1L
var BackgroundCategory = -1L var BackgroundCategory = -1L
var BadgeLabel = -1L
var Bar = -1L var Bar = -1L
var BarContainerHeight = -1L var BarContainerHeight = -1L
var BottomSheetFooterText = -1L var BottomSheetFooterText = -1L
@ -66,11 +67,7 @@ object SharedResourceIdPatch : ResourcePatch() {
var ReelDynShare = -1L var ReelDynShare = -1L
var ReelForcedMuteButton = -1L var ReelForcedMuteButton = -1L
var ReelPivotButton = -1L var ReelPivotButton = -1L
var ReelPlayerBadge = -1L
var ReelPlayerBadge2 = -1L
var ReelPlayerFooter = -1L var ReelPlayerFooter = -1L
var ReelPlayerInfoPanel = -1L
var ReelPlayerPausedStateButton = -1L
var ReelRightDislikeIcon = -1L var ReelRightDislikeIcon = -1L
var ReelRightLikeIcon = -1L var ReelRightLikeIcon = -1L
var ReelTimeBarPlayedColor = -1L var ReelTimeBarPlayedColor = -1L
@ -99,6 +96,7 @@ object SharedResourceIdPatch : ResourcePatch() {
AutoNavPreviewStub = getId(ID, "autonav_preview_stub") AutoNavPreviewStub = getId(ID, "autonav_preview_stub")
AutoNavToggle = getId(ID, "autonav_toggle") AutoNavToggle = getId(ID, "autonav_toggle")
BackgroundCategory = getId(STRING, "pref_background_and_offline_category") BackgroundCategory = getId(STRING, "pref_background_and_offline_category")
BadgeLabel = getId(ID, "badge_label")
Bar = getId(LAYOUT, "bar") Bar = getId(LAYOUT, "bar")
BarContainerHeight = getId(DIMEN, "bar_container_height") BarContainerHeight = getId(DIMEN, "bar_container_height")
BottomSheetFooterText = getId(ID, "bottom_sheet_footer_text") BottomSheetFooterText = getId(ID, "bottom_sheet_footer_text")
@ -142,11 +140,7 @@ object SharedResourceIdPatch : ResourcePatch() {
ReelDynShare = getId(ID, "reel_dyn_share") ReelDynShare = getId(ID, "reel_dyn_share")
ReelForcedMuteButton = getId(ID, "reel_player_forced_mute_button") ReelForcedMuteButton = getId(ID, "reel_player_forced_mute_button")
ReelPivotButton = getId(ID, "reel_pivot_button") ReelPivotButton = getId(ID, "reel_pivot_button")
ReelPlayerBadge = getId(ID, "reel_player_badge")
ReelPlayerBadge2 = getId(ID, "reel_player_badge2")
ReelPlayerFooter = getId(LAYOUT, "reel_player_dyn_footer_vert_stories3") ReelPlayerFooter = getId(LAYOUT, "reel_player_dyn_footer_vert_stories3")
ReelPlayerInfoPanel = getId(ID, "reel_player_info_panel")
ReelPlayerPausedStateButton = getId(ID, "reel_player_paused_state_buttons")
ReelRightDislikeIcon = getId(DRAWABLE, "reel_right_dislike_icon") ReelRightDislikeIcon = getId(DRAWABLE, "reel_right_dislike_icon")
ReelRightLikeIcon = getId(DRAWABLE, "reel_right_like_icon") ReelRightLikeIcon = getId(DRAWABLE, "reel_right_like_icon")
ReelTimeBarPlayedColor = getId(COLOR, "reel_time_bar_played_color") ReelTimeBarPlayedColor = getId(COLOR, "reel_time_bar_played_color")

View File

@ -808,55 +808,14 @@ Please download %2$s from the website."</string>
<string name="revanced_disable_resuming_shorts_player_title">Disable resuming Shorts player</string> <string name="revanced_disable_resuming_shorts_player_title">Disable resuming Shorts player</string>
<string name="revanced_disable_resuming_shorts_player_summary_on">Shorts player will not resume on app startup</string> <string name="revanced_disable_resuming_shorts_player_summary_on">Shorts player will not resume on app startup</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Shorts player will resume on app startup</string> <string name="revanced_disable_resuming_shorts_player_summary_off">Shorts player will resume on app startup</string>
<string name="revanced_hide_shorts_comments_button_title">Hide comments button</string>
<string name="revanced_hide_shorts_comments_button_summary_on">Comments button is hidden.</string>
<string name="revanced_hide_shorts_comments_button_summary_off">Comments button is shown.</string>
<string name="revanced_hide_shorts_dislike_button_title">Hide dislike button</string>
<string name="revanced_hide_shorts_dislike_button_summary_on">Dislike button is hidden.</string>
<string name="revanced_hide_shorts_dislike_button_summary_off">Dislike button is shown.</string>
<string name="revanced_hide_shorts_info_panel_title">Hide info panels</string>
<string name="revanced_hide_shorts_info_panel_summary_on">Info panels are hidden.</string>
<string name="revanced_hide_shorts_info_panel_summary_off">Info panels are shown.</string>
<string name="revanced_hide_shorts_join_button_title">Hide join button</string>
<string name="revanced_hide_shorts_join_button_summary_on">Join button is hidden.</string>
<string name="revanced_hide_shorts_join_button_summary_off">Join button is shown.</string>
<string name="revanced_hide_shorts_like_button_title">Hide like button</string>
<string name="revanced_hide_shorts_like_button_summary_on">Like button is hidden.</string>
<string name="revanced_hide_shorts_like_button_summary_off">Like button is shown.</string>
<string name="revanced_hide_shorts_paid_promotion_banner_title">Hide paid promotion banner</string>
<string name="revanced_hide_shorts_paid_promotion_banner_summary_on">Paid promotion banner is hidden.</string>
<string name="revanced_hide_shorts_paid_promotion_banner_summary_off">Paid promotion banner is shown.</string>
<string name="revanced_hide_shorts_remix_button_title">Hide remix button</string>
<string name="revanced_hide_shorts_remix_button_summary_on">Remix button is hidden.</string>
<string name="revanced_hide_shorts_remix_button_summary_off">Remix button is shown.</string>
<string name="revanced_hide_shorts_share_button_title">Hide share button</string>
<string name="revanced_hide_shorts_share_button_summary_on">Share button is hidden.</string>
<string name="revanced_hide_shorts_share_button_summary_off">Share button is shown.</string>
<string name="revanced_hide_shorts_sound_button_title">Hide sound button</string>
<string name="revanced_hide_shorts_sound_button_summary_on">Sound button is hidden.</string>
<string name="revanced_hide_shorts_sound_button_summary_off">Sound button is shown.</string>
<string name="revanced_hide_shorts_subscriptions_button_title">Hide subscriptions button</string>
<string name="revanced_hide_shorts_subscriptions_button_summary_on">Subscriptions button is hidden.</string>
<string name="revanced_hide_shorts_subscriptions_button_summary_off">Subscriptions button is shown.</string>
<string name="revanced_hide_shorts_thanks_button_title">Hide thanks button</string>
<string name="revanced_hide_shorts_thanks_button_summary_on">Thanks button is hidden.</string>
<string name="revanced_hide_shorts_thanks_button_summary_off">Thanks button is shown.</string>
<string name="revanced_hide_shorts_toolbar_title">Hide toolbar</string>
<string name="revanced_hide_shorts_toolbar_summary_on">Toolbar is hidden.</string>
<string name="revanced_hide_shorts_toolbar_summary_off">Toolbar is shown.</string>
<string name="revanced_hide_shorts_navigation_bar_title">Hide navigation bar</string>
<string name="revanced_hide_shorts_navigation_bar_summary_on">Navigation bar is hidden.</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Navigation bar is shown.</string>
<!-- PreferenceScreen: Shorts, PreferenceCategory: Shorts, PreferenceScreen: Shorts shelf --> <!-- PreferenceScreen: Shorts, PreferenceCategory: Shorts shelf -->
<string name="revanced_preference_screen_shorts_shelf_title">Shorts shelf</string> <string name="revanced_preference_category_shorts_shelf">Shorts shelf</string>
<string name="revanced_preference_screen_shorts_shelf_summary">Hide or show shorts shelf in the feed, search, etc.</string>
<string name="revanced_hide_shorts_shelf_title">Hide shorts shelf</string> <string name="revanced_hide_shorts_shelf_title">Hide shorts shelf</string>
<string name="revanced_hide_shorts_shelf_summary">"Hides Shorts shelves. <string name="revanced_hide_shorts_shelf_summary">"Hides Shorts shelves.
Limitation: Official headers in search results will be hidden."</string> Limitation: Official headers in search results will be hidden."</string>
<string name="revanced_hide_shorts_shelf_home_related_videos_title">Hide in home feed and related videos</string> <string name="revanced_hide_shorts_shelf_home_related_videos_title">Hide in home feed and related videos</string>
<string name="revanced_hide_shorts_shelf_home_related_videos_summary_on">Hidden in home feed and related videos.</string> <string name="revanced_hide_shorts_shelf_home_related_videos_summary_on">Hidden in home feed and related videos.</string>
<string name="revanced_hide_shorts_shelf_home_related_videos_summary_off">Shown in home feed and related videos.</string> <string name="revanced_hide_shorts_shelf_home_related_videos_summary_off">Shown in home feed and related videos.</string>
@ -870,6 +829,82 @@ Limitation: Official headers in search results will be hidden."</string>
<string name="revanced_hide_shorts_shelf_history_summary_on">Hidden in watch history.</string> <string name="revanced_hide_shorts_shelf_history_summary_on">Hidden in watch history.</string>
<string name="revanced_hide_shorts_shelf_history_summary_off">Shown in watch history.</string> <string name="revanced_hide_shorts_shelf_history_summary_off">Shown in watch history.</string>
<!-- PreferenceScreen: Shorts, PreferenceCategory: Shorts, PreferenceScreen: Shorts player -->
<string name="revanced_preference_screen_shorts_player_title">Shorts player</string>
<string name="revanced_preference_screen_shorts_player_summary">Hide or show components in the shorts player.</string>
<string name="revanced_hide_shorts_join_button_title">Hide join button</string>
<string name="revanced_hide_shorts_join_button_summary_on">Join button is hidden.</string>
<string name="revanced_hide_shorts_join_button_summary_off">Join button is shown.</string>
<string name="revanced_hide_shorts_subscribe_button_title">Hide subscribe button</string>
<string name="revanced_hide_shorts_subscribe_button_summary_on">Subscribe button is hidden.</string>
<string name="revanced_hide_shorts_subscribe_button_summary_off">Subscribe button is shown.</string>
<string name="revanced_hide_shorts_paused_overlay_buttons_title">Hide paused overlay buttons</string>
<string name="revanced_hide_shorts_paused_overlay_buttons_summary_on">Paused overlay buttons are hidden.</string>
<string name="revanced_hide_shorts_paused_overlay_buttons_summary_off">Paused overlay buttons are shown.</string>
<string name="revanced_hide_shorts_paid_promotion_label_title">Hide paid promotion label</string>
<string name="revanced_hide_shorts_paid_promotion_label_summary_on">Paid promotion label is hidden.</string>
<string name="revanced_hide_shorts_paid_promotion_label_summary_off">Paid promotion label is shown.</string>
<string name="revanced_hide_shorts_shop_button_title">Hide shop button</string>
<string name="revanced_hide_shorts_shop_button_summary_on">Shop button is hidden.</string>
<string name="revanced_hide_shorts_shop_button_summary_off">Shop button is shown.</string>
<string name="revanced_hide_shorts_tagged_products_title">Hide tagged products</string>
<string name="revanced_hide_shorts_tagged_products_summary_on">Tagged products are hidden.</string>
<string name="revanced_hide_shorts_tagged_products_summary_off">Tagged products are shown.</string>
<string name="revanced_hide_shorts_location_label_title">Hide location label</string>
<string name="revanced_hide_shorts_location_label_summary_on">Location label is hidden.</string>
<string name="revanced_hide_shorts_location_label_summary_off">Location label is shown.</string>
<string name="revanced_hide_shorts_save_sound_button_title">Hide save sound to playlist button</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Save sound to playlist is hidden.</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Save sound to playlist is shown.</string>
<string name="revanced_hide_shorts_search_suggestions_title">Hide search suggestions</string>
<string name="revanced_hide_shorts_search_suggestions_summary_on">Search suggestions are hidden.</string>
<string name="revanced_hide_shorts_search_suggestions_summary_off">Search suggestions are shown.</string>
<string name="revanced_hide_shorts_info_panel_title">Hide info panels</string>
<string name="revanced_hide_shorts_info_panel_summary_on">Info panels are hidden.</string>
<string name="revanced_hide_shorts_info_panel_summary_off">Info panels are shown.</string>
<string name="revanced_hide_shorts_channel_bar_title">Hide channel bar</string>
<string name="revanced_hide_shorts_channel_bar_summary_on">Channel bar is hidden.</string>
<string name="revanced_hide_shorts_channel_bar_summary_off">Channel bar is shown.</string>
<string name="revanced_hide_shorts_video_title_title">Hide video title</string>
<string name="revanced_hide_shorts_video_title_summary_on">Title is hidden.</string>
<string name="revanced_hide_shorts_video_title_summary_off">Title is shown.</string>
<string name="revanced_hide_shorts_sound_metadata_label_title">Hide sound metadata label</string>
<string name="revanced_hide_shorts_sound_metadata_label_summary_on">Metadata label is hidden.</string>
<string name="revanced_hide_shorts_sound_metadata_label_summary_off">Metadata label is shown.</string>
<string name="revanced_hide_shorts_full_video_link_label_title">Hide full video link label</string>
<string name="revanced_hide_shorts_full_video_link_label_summary_on">Video link label is hidden.</string>
<string name="revanced_hide_shorts_full_video_link_label_summary_off">Video link label is shown.</string>
<!-- PreferenceScreen: Shorts, PreferenceCategory: Shorts, PreferenceScreen: Shorts player, PreferenceCategory: Action buttons -->
<string name="revanced_preference_category_action_buttons">Action buttons</string>
<string name="revanced_hide_shorts_like_button_title">Hide like button</string>
<string name="revanced_hide_shorts_like_button_summary_on">Like button is hidden.</string>
<string name="revanced_hide_shorts_like_button_summary_off">Like button is shown.</string>
<string name="revanced_hide_shorts_dislike_button_title">Hide dislike button</string>
<string name="revanced_hide_shorts_dislike_button_summary_on">Dislike button is hidden.</string>
<string name="revanced_hide_shorts_dislike_button_summary_off">Dislike button is shown.</string>
<string name="revanced_hide_shorts_comments_button_title">Hide comments button</string>
<string name="revanced_hide_shorts_comments_button_summary_on">Comments button is hidden.</string>
<string name="revanced_hide_shorts_comments_button_summary_off">Comments button is shown.</string>
<string name="revanced_hide_shorts_remix_button_title">Hide remix button</string>
<string name="revanced_hide_shorts_remix_button_summary_on">Remix button is hidden.</string>
<string name="revanced_hide_shorts_remix_button_summary_off">Remix button is shown.</string>
<string name="revanced_hide_shorts_share_button_title">Hide share button</string>
<string name="revanced_hide_shorts_share_button_summary_on">Share button is hidden.</string>
<string name="revanced_hide_shorts_share_button_summary_off">Share button is shown.</string>
<string name="revanced_hide_shorts_sound_button_title">Hide sound button</string>
<string name="revanced_hide_shorts_sound_button_summary_on">Sound button is hidden.</string>
<string name="revanced_hide_shorts_sound_button_summary_off">Sound button is shown.</string>
<!-- PreferenceScreen: Shorts, PreferenceCategory: Shorts, PreferenceScreen: Shorts player, PreferenceCategory: Experimental Flags -->
<string name="revanced_hide_shorts_toolbar_title">Hide toolbar</string>
<string name="revanced_hide_shorts_toolbar_summary_on">Toolbar is hidden.</string>
<string name="revanced_hide_shorts_toolbar_summary_off">Toolbar is shown.</string>
<string name="revanced_hide_shorts_navigation_bar_title">Hide navigation bar</string>
<string name="revanced_hide_shorts_navigation_bar_summary_on">Navigation bar is hidden.</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Navigation bar is shown.</string>
<!-- PreferenceScreen: Swipe controls --> <!-- PreferenceScreen: Swipe controls -->
<string name="revanced_preference_screen_swipe_controls_title">Swipe controls</string> <string name="revanced_preference_screen_swipe_controls_title">Swipe controls</string>

View File

@ -369,12 +369,34 @@
<PreferenceScreen android:title="@string/revanced_preference_screen_shorts_title" android:key="revanced_preference_screen_shorts">PREFERENCE_SCREEN: SHORTS --> <PreferenceScreen android:title="@string/revanced_preference_screen_shorts_title" android:key="revanced_preference_screen_shorts">PREFERENCE_SCREEN: SHORTS -->
<!-- SETTINGS: HIDE_SHORTS_COMPONENTS <!-- SETTINGS: HIDE_SHORTS_COMPONENTS
<PreferenceScreen android:title="@string/revanced_preference_screen_shorts_shelf_title" android:key="revanced_preference_screen_shorts_shelf" android:summary="@string/revanced_preference_screen_shorts_shelf_summary"> <PreferenceScreen android:title="@string/revanced_preference_screen_shorts_player_title" android:key="revanced_preference_screen_shorts_player" android:summary="@string/revanced_preference_screen_shorts_player_summary">
<SwitchPreference android:title="@string/revanced_hide_shorts_shelf_title" android:key="revanced_hide_shorts_shelf" android:defaultValue="true" android:summary="@string/revanced_hide_shorts_shelf_summary" /> <SwitchPreference android:title="@string/revanced_hide_shorts_join_button_title" android:key="revanced_hide_shorts_join_button" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_join_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_join_button_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_shelf_home_related_videos_title" android:key="revanced_hide_shorts_shelf_home_related_videos" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_shelf_home_related_videos_summary_on" android:summaryOff="@string/revanced_hide_shorts_shelf_home_related_videos_summary_off" android:dependency="revanced_hide_shorts_shelf" /> <SwitchPreference android:title="@string/revanced_hide_shorts_subscribe_button_title" android:key="revanced_hide_shorts_subscribe_button" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_subscribe_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_subscribe_button_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_shelf_subscriptions_title" android:key="revanced_hide_shorts_shelf_subscriptions" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_shelf_subscriptions_summary_on" android:summaryOff="@string/revanced_hide_shorts_shelf_subscriptions_summary_off" android:dependency="revanced_hide_shorts_shelf" /> <SwitchPreference android:title="@string/revanced_hide_shorts_paused_overlay_buttons_title" android:key="revanced_hide_shorts_paused_overlay_buttons" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_paused_overlay_buttons_summary_on" android:summaryOff="@string/revanced_hide_shorts_paused_overlay_buttons_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_shelf_search_title" android:key="revanced_hide_shorts_shelf_search" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_shelf_search_summary_on" android:summaryOff="@string/revanced_hide_shorts_shelf_search_summary_off" android:dependency="revanced_hide_shorts_shelf" /> <SwitchPreference android:title="@string/revanced_hide_shorts_paid_promotion_label_title" android:key="revanced_hide_shorts_paid_promotion_label" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_paid_promotion_label_summary_on" android:summaryOff="@string/revanced_hide_shorts_paid_promotion_label_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_shelf_history_title" android:key="revanced_hide_shorts_shelf_history" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_shelf_history_summary_on" android:summaryOff="@string/revanced_hide_shorts_shelf_history_summary_off" android:dependency="revanced_hide_shorts_shelf" /> <SwitchPreference android:title="@string/revanced_hide_shorts_shop_button_title" android:key="revanced_hide_shorts_shop_button" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_shop_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_shop_button_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_tagged_products_title" android:key="revanced_hide_shorts_tagged_products" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_tagged_products_summary_on" android:summaryOff="@string/revanced_hide_shorts_tagged_products_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_location_label_title" android:key="revanced_hide_shorts_location_label" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_location_label_summary_on" android:summaryOff="@string/revanced_hide_shorts_location_label_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_save_sound_button_title" android:key="revanced_hide_shorts_save_sound_button" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_save_sound_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_save_sound_button_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_search_suggestions_title" android:key="revanced_hide_shorts_search_suggestions" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_search_suggestions_summary_on" android:summaryOff="@string/revanced_hide_shorts_search_suggestions_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_info_panel_title" android:key="revanced_hide_shorts_info_panel" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_info_panel_summary_on" android:summaryOff="@string/revanced_hide_shorts_info_panel_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_channel_bar_title" android:key="revanced_hide_shorts_channel_bar" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_channel_bar_summary_on" android:summaryOff="@string/revanced_hide_shorts_channel_bar_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_video_title_title" android:key="revanced_hide_shorts_video_title" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_video_title_summary_on" android:summaryOff="@string/revanced_hide_shorts_video_title_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_sound_metadata_label_title" android:key="revanced_hide_shorts_sound_metadata_label" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_sound_metadata_label_summary_on" android:summaryOff="@string/revanced_hide_shorts_sound_metadata_label_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_full_video_link_label_title" android:key="revanced_hide_shorts_full_video_link_label" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_full_video_link_label_summary_on" android:summaryOff="@string/revanced_hide_shorts_full_video_link_label_summary_off" />
<PreferenceCategory android:title="@string/revanced_preference_category_action_buttons" android:layout="@layout/revanced_settings_preferences_category"/>
<SwitchPreference android:title="@string/revanced_hide_shorts_like_button_title" android:key="revanced_hide_shorts_like_button" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_like_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_like_button_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_dislike_button_title" android:key="revanced_hide_shorts_dislike_button" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_dislike_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_dislike_button_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_comments_button_title" android:key="revanced_hide_shorts_comments_button" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_comments_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_comments_button_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_remix_button_title" android:key="revanced_hide_shorts_remix_button" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_remix_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_remix_button_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_share_button_title" android:key="revanced_hide_shorts_share_button" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_share_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_share_button_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_sound_button_title" android:key="revanced_hide_shorts_sound_button" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_sound_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_sound_button_summary_off" />
<PreferenceCategory android:title="@string/revanced_preference_category_experimental_flag" android:layout="@layout/revanced_settings_preferences_category"/>
<SwitchPreference android:title="@string/revanced_hide_shorts_toolbar_title" android:key="revanced_hide_shorts_toolbar" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_toolbar_summary_on" android:summaryOff="@string/revanced_hide_shorts_toolbar_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_navigation_bar_title" android:key="revanced_hide_shorts_navigation_bar" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_navigation_bar_summary_on" android:summaryOff="@string/revanced_hide_shorts_navigation_bar_summary_off" />
</PreferenceScreen>SETTINGS: HIDE_SHORTS_COMPONENTS --> </PreferenceScreen>SETTINGS: HIDE_SHORTS_COMPONENTS -->
<!-- SETTINGS: CHANGE_SHORTS_REPEAT_STATE <!-- SETTINGS: CHANGE_SHORTS_REPEAT_STATE
@ -384,20 +406,12 @@
<SwitchPreference android:title="@string/revanced_disable_resuming_shorts_player_title" android:key="revanced_disable_resuming_shorts_player" android:defaultValue="true" android:summaryOn="@string/revanced_disable_resuming_shorts_player_summary_on" android:summaryOff="@string/revanced_disable_resuming_shorts_player_summary_off" />SETTINGS: DISABLE_RESUMING_SHORTS_PLAYER --> <SwitchPreference android:title="@string/revanced_disable_resuming_shorts_player_title" android:key="revanced_disable_resuming_shorts_player" android:defaultValue="true" android:summaryOn="@string/revanced_disable_resuming_shorts_player_summary_on" android:summaryOff="@string/revanced_disable_resuming_shorts_player_summary_off" />SETTINGS: DISABLE_RESUMING_SHORTS_PLAYER -->
<!-- SETTINGS: HIDE_SHORTS_COMPONENTS <!-- SETTINGS: HIDE_SHORTS_COMPONENTS
<SwitchPreference android:title="@string/revanced_hide_shorts_comments_button_title" android:key="revanced_hide_shorts_comments_button" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_comments_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_comments_button_summary_off" /> <PreferenceCategory android:title="@string/revanced_preference_category_shorts_shelf" android:layout="@layout/revanced_settings_preferences_category"/>
<SwitchPreference android:title="@string/revanced_hide_shorts_dislike_button_title" android:key="revanced_hide_shorts_dislike_button" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_dislike_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_dislike_button_summary_off" /> <SwitchPreference android:title="@string/revanced_hide_shorts_shelf_title" android:key="revanced_hide_shorts_shelf" android:defaultValue="true" android:summary="@string/revanced_hide_shorts_shelf_summary" />
<SwitchPreference android:title="@string/revanced_hide_shorts_info_panel_title" android:key="revanced_hide_shorts_info_panel" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_info_panel_summary_on" android:summaryOff="@string/revanced_hide_shorts_info_panel_summary_off" /> <SwitchPreference android:title="@string/revanced_hide_shorts_shelf_home_related_videos_title" android:key="revanced_hide_shorts_shelf_home_related_videos" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_shelf_home_related_videos_summary_on" android:summaryOff="@string/revanced_hide_shorts_shelf_home_related_videos_summary_off" android:dependency="revanced_hide_shorts_shelf" />
<SwitchPreference android:title="@string/revanced_hide_shorts_join_button_title" android:key="revanced_hide_shorts_join_button" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_join_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_join_button_summary_off" /> <SwitchPreference android:title="@string/revanced_hide_shorts_shelf_subscriptions_title" android:key="revanced_hide_shorts_shelf_subscriptions" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_shelf_subscriptions_summary_on" android:summaryOff="@string/revanced_hide_shorts_shelf_subscriptions_summary_off" android:dependency="revanced_hide_shorts_shelf" />
<SwitchPreference android:title="@string/revanced_hide_shorts_like_button_title" android:key="revanced_hide_shorts_like_button" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_like_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_like_button_summary_off" /> <SwitchPreference android:title="@string/revanced_hide_shorts_shelf_search_title" android:key="revanced_hide_shorts_shelf_search" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_shelf_search_summary_on" android:summaryOff="@string/revanced_hide_shorts_shelf_search_summary_off" android:dependency="revanced_hide_shorts_shelf" />
<SwitchPreference android:title="@string/revanced_hide_shorts_paid_promotion_banner_title" android:key="revanced_hide_shorts_paid_promotion_banner" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_paid_promotion_banner_summary_on" android:summaryOff="@string/revanced_hide_shorts_paid_promotion_banner_summary_off" /> <SwitchPreference android:title="@string/revanced_hide_shorts_shelf_history_title" android:key="revanced_hide_shorts_shelf_history" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_shelf_history_summary_on" android:summaryOff="@string/revanced_hide_shorts_shelf_history_summary_off" android:dependency="revanced_hide_shorts_shelf" />SETTINGS: HIDE_SHORTS_COMPONENTS -->
<SwitchPreference android:title="@string/revanced_hide_shorts_remix_button_title" android:key="revanced_hide_shorts_remix_button" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_remix_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_remix_button_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_share_button_title" android:key="revanced_hide_shorts_share_button" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_share_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_share_button_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_sound_button_title" android:key="revanced_hide_shorts_sound_button" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_sound_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_sound_button_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_subscriptions_button_title" android:key="revanced_hide_shorts_subscriptions_button" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_subscriptions_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_subscriptions_button_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_thanks_button_title" android:key="revanced_hide_shorts_thanks_button" android:defaultValue="true" android:summaryOn="@string/revanced_hide_shorts_thanks_button_summary_on" android:summaryOff="@string/revanced_hide_shorts_thanks_button_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_shorts_toolbar_title" android:key="revanced_hide_shorts_toolbar" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_toolbar_summary_on" android:summaryOff="@string/revanced_hide_shorts_toolbar_summary_off" />
<PreferenceCategory android:title="@string/revanced_preference_category_experimental_flag" android:layout="@layout/revanced_settings_preferences_category"/>
<SwitchPreference android:title="@string/revanced_hide_shorts_navigation_bar_title" android:key="revanced_hide_shorts_navigation_bar" android:defaultValue="false" android:summaryOn="@string/revanced_hide_shorts_navigation_bar_summary_on" android:summaryOff="@string/revanced_hide_shorts_navigation_bar_summary_off" />SETTINGS: HIDE_SHORTS_COMPONENTS -->
<!-- PREFERENCE_SCREEN: SHORTS <!-- PREFERENCE_SCREEN: SHORTS
</PreferenceScreen>PREFERENCE_SCREEN: SHORTS --> </PreferenceScreen>PREFERENCE_SCREEN: SHORTS -->