Compare commits

...

8 Commits

Author SHA1 Message Date
semantic-release-bot
dc813fe617 chore: Release v5.47.0-dev.12 [skip ci]
# [5.47.0-dev.12](https://github.com/ReVanced/revanced-patches/compare/v5.47.0-dev.11...v5.47.0-dev.12) (2025-12-08)

### Features

* **YouTube - Hide layout components:** Add "Hide Join button" and "Hide Subscribe button" options for channel page ([#6345](https://github.com/ReVanced/revanced-patches/issues/6345)) ([02831a6](02831a6069))
2025-12-08 21:14:39 +00:00
ILoveOpenSourceApplications
02831a6069 feat(YouTube - Hide layout components): Add "Hide Join button" and "Hide Subscribe button" options for channel page (#6345) 2025-12-08 22:10:35 +01:00
semantic-release-bot
5228fd4b58 chore: Release v5.47.0-dev.11 [skip ci]
# [5.47.0-dev.11](https://github.com/ReVanced/revanced-patches/compare/v5.47.0-dev.10...v5.47.0-dev.11) (2025-12-08)

### Features

* **Disney+:** Add `Skip ads` patch ([#6343](https://github.com/ReVanced/revanced-patches/issues/6343)) ([6bd7dca](6bd7dca75b))
2025-12-08 13:51:15 +00:00
g9q
6bd7dca75b feat(Disney+): Add Skip ads patch (#6343)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2025-12-08 14:45:41 +01:00
semantic-release-bot
22ed7bfbb3 chore: Release v5.47.0-dev.10 [skip ci]
# [5.47.0-dev.10](https://github.com/ReVanced/revanced-patches/compare/v5.47.0-dev.9...v5.47.0-dev.10) (2025-12-08)

### Features

* **YouTube - Hide Shorts components:** Add "Hide auto-dubbed label" and "Hide live preview" options ([#6334](https://github.com/ReVanced/revanced-patches/issues/6334)) ([a7c220a](a7c220a4ae))
2025-12-08 12:57:23 +00:00
ILoveOpenSourceApplications
a7c220a4ae feat(YouTube - Hide Shorts components): Add "Hide auto-dubbed label" and "Hide live preview" options (#6334) 2025-12-08 13:51:57 +01:00
semantic-release-bot
d8ca4ee931 chore: Release v5.47.0-dev.9 [skip ci]
# [5.47.0-dev.9](https://github.com/ReVanced/revanced-patches/compare/v5.47.0-dev.8...v5.47.0-dev.9) (2025-12-08)

### Features

* **YouTube - Hide layout components:** Add "Hide cell divider", "Hide featured links", and "Hide featured videos" options ([#6335](https://github.com/ReVanced/revanced-patches/issues/6335)) ([a5d197b](a5d197b977))
2025-12-08 12:06:03 +00:00
ILoveOpenSourceApplications
a5d197b977 feat(YouTube - Hide layout components): Add "Hide cell divider", "Hide featured links", and "Hide featured videos" options (#6335)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2025-12-08 13:02:22 +01:00
13 changed files with 226 additions and 60 deletions

View File

@@ -1,3 +1,31 @@
# [5.47.0-dev.12](https://github.com/ReVanced/revanced-patches/compare/v5.47.0-dev.11...v5.47.0-dev.12) (2025-12-08)
### Features
* **YouTube - Hide layout components:** Add "Hide Join button" and "Hide Subscribe button" options for channel page ([#6345](https://github.com/ReVanced/revanced-patches/issues/6345)) ([02831a6](https://github.com/ReVanced/revanced-patches/commit/02831a6069fc30ffa3a87f8e4de653d003a2187e))
# [5.47.0-dev.11](https://github.com/ReVanced/revanced-patches/compare/v5.47.0-dev.10...v5.47.0-dev.11) (2025-12-08)
### Features
* **Disney+:** Add `Skip ads` patch ([#6343](https://github.com/ReVanced/revanced-patches/issues/6343)) ([6bd7dca](https://github.com/ReVanced/revanced-patches/commit/6bd7dca75bd2ea335a596aa93a8b767d39be5f83))
# [5.47.0-dev.10](https://github.com/ReVanced/revanced-patches/compare/v5.47.0-dev.9...v5.47.0-dev.10) (2025-12-08)
### Features
* **YouTube - Hide Shorts components:** Add "Hide auto-dubbed label" and "Hide live preview" options ([#6334](https://github.com/ReVanced/revanced-patches/issues/6334)) ([a7c220a](https://github.com/ReVanced/revanced-patches/commit/a7c220a4aea93ea7ae7005b5760443d7571c4228))
# [5.47.0-dev.9](https://github.com/ReVanced/revanced-patches/compare/v5.47.0-dev.8...v5.47.0-dev.9) (2025-12-08)
### Features
* **YouTube - Hide layout components:** Add "Hide cell divider", "Hide featured links", and "Hide featured videos" options ([#6335](https://github.com/ReVanced/revanced-patches/issues/6335)) ([a5d197b](https://github.com/ReVanced/revanced-patches/commit/a5d197b9775b98d7a37bfdee9e5f726d5e04d8cf))
# [5.47.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.47.0-dev.7...v5.47.0-dev.8) (2025-12-08)

View File

@@ -58,6 +58,23 @@ public abstract class Setting<T> {
};
}
/**
* Availability based on a single parent setting being disabled.
*/
public static Availability parentNot(BooleanSetting parent) {
return new Availability() {
@Override
public boolean isAvailable() {
return !parent.get();
}
@Override
public List<Setting<?>> getParentSettings() {
return Collections.singletonList(parent);
}
};
}
/**
* Availability based on all parents being enabled.
*/

View File

@@ -44,10 +44,14 @@ final class DescriptionComponentsFilter extends Filter {
"video_attributes_section"
);
final StringFilterGroup featuredSection = new StringFilterGroup(
Settings.HIDE_FEATURED_SECTION,
// "media_lockup", "structured_description_video_lockup"
"compact_infocard"
final StringFilterGroup featuredLinksSection = new StringFilterGroup(
Settings.HIDE_FEATURED_LINKS_SECTION,
"media_lockup"
);
final StringFilterGroup featuredVideosSection = new StringFilterGroup(
Settings.HIDE_FEATURED_VIDEOS_SECTION,
"structured_description_video_lockup"
);
final StringFilterGroup podcastSection = new StringFilterGroup(
@@ -76,7 +80,7 @@ final class DescriptionComponentsFilter extends Filter {
);
subscribeButton = new StringFilterGroup(
Settings.HIDE_DESCRIPTION_SUBSCRIBE_BUTTON,
Settings.HIDE_SUBSCRIBE_BUTTON,
"subscribe_button"
);
@@ -110,7 +114,8 @@ final class DescriptionComponentsFilter extends Filter {
aiGeneratedVideoSummarySection,
askSection,
attributesSection,
featuredSection,
featuredLinksSection,
featuredVideosSection,
horizontalShelf,
howThisWasMadeSection,
hypePoints,

View File

@@ -68,8 +68,14 @@ public final class LayoutComponentsFilter extends Filter {
"chips_shelf"
);
final var visualSpacer = new StringFilterGroup(
Settings.HIDE_VISUAL_SPACER,
"cell_divider"
);
addIdentifierCallbacks(
chipsShelf
chipsShelf,
visualSpacer
);
// Paths.
@@ -260,12 +266,20 @@ public final class LayoutComponentsFilter extends Filter {
);
channelProfileBuffer = new ByteArrayFilterGroupList();
channelProfileBuffer.addAll(new ByteArrayFilterGroup(
Settings.HIDE_VISIT_STORE_BUTTON,
"header_store_button"
Settings.HIDE_STORE_BUTTON,
"store_button"
),
new ByteArrayFilterGroup(
Settings.HIDE_VISIT_COMMUNITY_BUTTON,
Settings.HIDE_COMMUNITY_BUTTON,
"community_button"
),
new ByteArrayFilterGroup(
Settings.HIDE_JOIN_BUTTON,
"sponsor_button"
),
new ByteArrayFilterGroup(
Settings.HIDE_SUBSCRIBE_BUTTON_IN_CHANNEL_PAGE,
"subscribe_menu"
)
);

View File

@@ -44,9 +44,10 @@ public final class ShortsFilter extends Filter {
private final StringFilterGroup useTemplateButton;
private final ByteArrayFilterGroup useTemplateButtonBuffer;
private final StringFilterGroup autoDubbedLabel;
private final StringFilterGroup subscribeButton;
private final StringFilterGroup joinButton;
private final StringFilterGroup paidPromotionButton;
private final StringFilterGroup paidPromotionLabel;
private final StringFilterGroup shelfHeader;
private final StringFilterGroup suggestedAction;
@@ -161,6 +162,18 @@ public final class ShortsFilter extends Filter {
"participation_bar.e"
);
StringFilterGroup livePreview = new StringFilterGroup(
Settings.HIDE_SHORTS_LIVE_PREVIEW,
// Live Shorts preview that can popup while scrolling through Shorts player.
// Can be removed if a way to disable live Shorts is found.
"live_preview_page_vm.e"
);
autoDubbedLabel = new StringFilterGroup(
Settings.HIDE_SHORTS_AUTO_DUBBED_LABEL,
"badge."
);
joinButton = new StringFilterGroup(
Settings.HIDE_SHORTS_JOIN_BUTTON,
"sponsor_button"
@@ -171,9 +184,10 @@ public final class ShortsFilter extends Filter {
"subscribe_button"
);
paidPromotionButton = new StringFilterGroup(
paidPromotionLabel = new StringFilterGroup(
Settings.HIDE_PAID_PROMOTION_LABEL,
"reel_player_disclosure.e"
"reel_player_disclosure.e",
"shorts_disclosures.e"
);
shortsActionBar = new StringFilterGroup(
@@ -219,10 +233,10 @@ public final class ShortsFilter extends Filter {
);
addPathCallbacks(
shortsCompactFeedVideo, joinButton, subscribeButton, paidPromotionButton,
shortsCompactFeedVideo, joinButton, subscribeButton, paidPromotionLabel, autoDubbedLabel,
shortsActionBar, suggestedAction, pausedOverlayButtons, channelBar, previewComment,
fullVideoLinkLabel, videoTitle, useSoundButton, reelSoundMetadata, soundButton, infoPanel,
stickers, likeFountain, likeButton, dislikeButton
stickers, likeFountain, likeButton, dislikeButton, livePreview
);
//
@@ -250,6 +264,12 @@ public final class ShortsFilter extends Filter {
// Suggested actions.
//
suggestedActionsBuffer.addAll(
new ByteArrayFilterGroup(
Settings.HIDE_SHORTS_PREVIEW_COMMENT,
// Preview comment that can popup while a Short is playing.
// Uses no bundled icons, and instead the users profile photo is shown.
"shorts-comments-panel"
),
new ByteArrayFilterGroup(
Settings.HIDE_SHORTS_SHOP_BUTTON,
"yt_outline_bag_"
@@ -322,7 +342,8 @@ public final class ShortsFilter extends Filter {
boolean isFiltered(String identifier, String path, byte[] buffer,
StringFilterGroup matchedGroup, FilterContentType contentType, int contentIndex) {
if (contentType == FilterContentType.PATH) {
if (matchedGroup == subscribeButton || matchedGroup == joinButton || matchedGroup == paidPromotionButton) {
if (matchedGroup == subscribeButton || matchedGroup == joinButton
|| matchedGroup == paidPromotionLabel || matchedGroup == autoDubbedLabel) {
// Selectively filter to avoid false positive filtering of other subscribe/join buttons.
return path.startsWith(REEL_CHANNEL_BAR_PATH) || path.startsWith(REEL_METAPANEL_PATH);
}

View File

@@ -3,6 +3,7 @@ package app.revanced.extension.youtube.settings;
import static java.lang.Boolean.FALSE;
import static java.lang.Boolean.TRUE;
import static app.revanced.extension.shared.settings.Setting.parent;
import static app.revanced.extension.shared.settings.Setting.parentNot;
import static app.revanced.extension.shared.settings.Setting.parentsAll;
import static app.revanced.extension.shared.settings.Setting.parentsAny;
import static app.revanced.extension.youtube.patches.ChangeFormFactorPatch.FormFactor;
@@ -115,6 +116,7 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_UPLOAD_TIME = new BooleanSetting("revanced_hide_upload_time", FALSE, "revanced_hide_upload_time_user_dialog_message");
public static final BooleanSetting HIDE_VIDEO_RECOMMENDATION_LABELS = new BooleanSetting("revanced_hide_video_recommendation_labels", TRUE);
public static final BooleanSetting HIDE_VIEW_COUNT = new BooleanSetting("revanced_hide_view_count", FALSE, "revanced_hide_view_count_user_dialog_message");
public static final BooleanSetting HIDE_VISUAL_SPACER = new BooleanSetting("revanced_hide_visual_spacer", TRUE);
// Alternative thumbnails
public static final EnumSetting<ThumbnailOption> ALT_THUMBNAIL_HOME = new EnumSetting<>("revanced_alt_thumbnail_home", ThumbnailOption.ORIGINAL);
@@ -136,11 +138,13 @@ public class Settings extends BaseSettings {
parentsAny(HIDE_KEYWORD_CONTENT_HOME, HIDE_KEYWORD_CONTENT_SUBSCRIPTIONS, HIDE_KEYWORD_CONTENT_SEARCH));
// Channel page
public static final BooleanSetting HIDE_COMMUNITY_BUTTON = new BooleanSetting("revanced_hide_community_button", TRUE);
public static final BooleanSetting HIDE_FOR_YOU_SHELF = new BooleanSetting("revanced_hide_for_you_shelf", FALSE);
public static final BooleanSetting HIDE_JOIN_BUTTON = new BooleanSetting("revanced_hide_join_button", FALSE);
public static final BooleanSetting HIDE_LINKS_PREVIEW = new BooleanSetting("revanced_hide_links_preview", TRUE);
public static final BooleanSetting HIDE_MEMBERS_SHELF = new BooleanSetting("revanced_hide_members_shelf", TRUE);
public static final BooleanSetting HIDE_VISIT_COMMUNITY_BUTTON = new BooleanSetting("revanced_hide_visit_community_button", TRUE);
public static final BooleanSetting HIDE_VISIT_STORE_BUTTON = new BooleanSetting("revanced_hide_visit_store_button", TRUE);
public static final BooleanSetting HIDE_STORE_BUTTON = new BooleanSetting("revanced_hide_store_button", TRUE);
public static final BooleanSetting HIDE_SUBSCRIBE_BUTTON_IN_CHANNEL_PAGE = new BooleanSetting("revanced_hide_subscribe_button_in_channel_page", FALSE);
// Player
public static final BooleanSetting COPY_VIDEO_URL = new BooleanSetting("revanced_copy_video_url", FALSE);
@@ -210,13 +214,14 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_ASK_SECTION = new BooleanSetting("revanced_hide_ask_section", FALSE);
public static final BooleanSetting HIDE_ATTRIBUTES_SECTION = new BooleanSetting("revanced_hide_attributes_section", FALSE);
public static final BooleanSetting HIDE_CHAPTERS_SECTION = new BooleanSetting("revanced_hide_chapters_section", TRUE);
public static final BooleanSetting HIDE_FEATURED_SECTION = new BooleanSetting("revanced_hide_featured_section", TRUE);
public static final BooleanSetting HIDE_HOW_THIS_WAS_MADE_SECTION = new BooleanSetting("revanced_hide_how_this_was_made_section", FALSE);
public static final BooleanSetting HIDE_HYPE_POINTS = new BooleanSetting("revanced_hide_hype_points", FALSE);
public static final BooleanSetting HIDE_INFO_CARDS_SECTION = new BooleanSetting("revanced_hide_info_cards_section", TRUE);
public static final BooleanSetting HIDE_FEATURED_LINKS_SECTION = new BooleanSetting("revanced_hide_featured_links_section", FALSE, parentNot(HIDE_INFO_CARDS_SECTION));
public static final BooleanSetting HIDE_FEATURED_VIDEOS_SECTION = new BooleanSetting("revanced_hide_featured_videos_section", FALSE, parentNot(HIDE_INFO_CARDS_SECTION));
public static final BooleanSetting HIDE_SUBSCRIBE_BUTTON = new BooleanSetting("revanced_hide_subscribe_button", FALSE, parentNot(HIDE_INFO_CARDS_SECTION));
public static final BooleanSetting HIDE_KEY_CONCEPTS_SECTION = new BooleanSetting("revanced_hide_key_concepts_section", FALSE);
public static final BooleanSetting HIDE_PODCAST_SECTION = new BooleanSetting("revanced_hide_podcast_section", TRUE);
public static final BooleanSetting HIDE_DESCRIPTION_SUBSCRIBE_BUTTON = new BooleanSetting("revanced_hide_description_subscribe_button", TRUE);
public static final BooleanSetting HIDE_TRANSCRIPT_SECTION = new BooleanSetting("revanced_hide_transcript_section", TRUE);
// Action buttons
@@ -228,11 +233,11 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_HYPE_BUTTON = new BooleanSetting("revanced_hide_hype_button", FALSE);
public static final BooleanSetting HIDE_LIKE_DISLIKE_BUTTON = new BooleanSetting("revanced_hide_like_dislike_button", FALSE);
public static final BooleanSetting HIDE_PROMOTE_BUTTON = new BooleanSetting("revanced_hide_promote_button", FALSE);
public static final BooleanSetting HIDE_REMIX_BUTTON = new BooleanSetting("revanced_hide_remix_button", TRUE);
public static final BooleanSetting HIDE_REMIX_BUTTON = new BooleanSetting("revanced_hide_remix_button", FALSE);
public static final BooleanSetting HIDE_REPORT_BUTTON = new BooleanSetting("revanced_hide_report_button", FALSE);
public static final BooleanSetting HIDE_SAVE_BUTTON = new BooleanSetting("revanced_hide_save_button", FALSE);
public static final BooleanSetting HIDE_SHARE_BUTTON = new BooleanSetting("revanced_hide_share_button", FALSE);
public static final BooleanSetting HIDE_SHOP_BUTTON = new BooleanSetting("revanced_hide_shop_button", FALSE);
public static final BooleanSetting HIDE_SHOP_BUTTON = new BooleanSetting("revanced_hide_shop_button", TRUE);
public static final BooleanSetting HIDE_STOP_ADS_BUTTON = new BooleanSetting("revanced_hide_stop_ads_button", TRUE);
public static final BooleanSetting HIDE_THANKS_BUTTON = new BooleanSetting("revanced_hide_thanks_button", TRUE);
@@ -292,6 +297,7 @@ public class Settings extends BaseSettings {
public static final BooleanSetting DISABLE_RESUMING_SHORTS_PLAYER = new BooleanSetting("revanced_disable_resuming_shorts_player", FALSE);
public static final BooleanSetting DISABLE_SHORTS_BACKGROUND_PLAYBACK = new BooleanSetting("revanced_shorts_disable_background_playback", FALSE);
public static final EnumSetting<ShortsPlayerType> SHORTS_PLAYER_TYPE = new EnumSetting<>("revanced_shorts_player_type", ShortsPlayerType.SHORTS_PLAYER);
public static final BooleanSetting HIDE_SHORTS_AUTO_DUBBED_LABEL = new BooleanSetting("revanced_hide_shorts_auto_dubbed_label", FALSE);
public static final BooleanSetting HIDE_SHORTS_CHANNEL_BAR = new BooleanSetting("revanced_hide_shorts_channel_bar", FALSE);
public static final BooleanSetting HIDE_SHORTS_COMMENTS_BUTTON = new BooleanSetting("revanced_hide_shorts_comments_button", FALSE);
public static final BooleanSetting HIDE_SHORTS_DISLIKE_BUTTON = new BooleanSetting("revanced_hide_shorts_dislike_button", FALSE);
@@ -306,11 +312,12 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_SHORTS_JOIN_BUTTON = new BooleanSetting("revanced_hide_shorts_join_button", TRUE);
public static final BooleanSetting HIDE_SHORTS_LIKE_BUTTON = new BooleanSetting("revanced_hide_shorts_like_button", FALSE);
public static final BooleanSetting HIDE_SHORTS_LIKE_FOUNTAIN = new BooleanSetting("revanced_hide_shorts_like_fountain", TRUE);
public static final BooleanSetting HIDE_SHORTS_LIVE_PREVIEW = new BooleanSetting("revanced_hide_shorts_live_preview", FALSE);
public static final BooleanSetting HIDE_SHORTS_LOCATION_LABEL = new BooleanSetting("revanced_hide_shorts_location_label", FALSE);
public static final BooleanSetting HIDE_SHORTS_NAVIGATION_BAR = new BooleanSetting("revanced_hide_shorts_navigation_bar", FALSE, true);
public static final BooleanSetting HIDE_SHORTS_PAUSED_OVERLAY_BUTTONS = new BooleanSetting("revanced_hide_shorts_paused_overlay_buttons", FALSE);
public static final BooleanSetting HIDE_SHORTS_PREVIEW_COMMENT = new BooleanSetting("revanced_hide_shorts_preview_comment", TRUE);
public static final BooleanSetting HIDE_SHORTS_REMIX_BUTTON = new BooleanSetting("revanced_hide_shorts_remix_button", TRUE);
public static final BooleanSetting HIDE_SHORTS_REMIX_BUTTON = new BooleanSetting("revanced_hide_shorts_remix_button", FALSE);
public static final BooleanSetting HIDE_SHORTS_SAVE_SOUND_BUTTON = new BooleanSetting("revanced_hide_shorts_save_sound_button", TRUE);
public static final BooleanSetting HIDE_SHORTS_SEARCH = new BooleanSetting("revanced_hide_shorts_search", FALSE);
public static final BooleanSetting HIDE_SHORTS_SEARCH_SUGGESTIONS = new BooleanSetting("revanced_hide_shorts_search_suggestions", TRUE);

View File

@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
org.gradle.parallel = true
android.useAndroidX = true
kotlin.code.style = official
version = 5.47.0-dev.8
version = 5.47.0-dev.12

View File

@@ -188,6 +188,10 @@ public final class app/revanced/patches/crunchyroll/ads/HideAdsPatchKt {
public static final fun getHideAdsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/disneyplus/ads/SkipAdsPatchKt {
public static final fun getSkipAdsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/duolingo/ad/DisableAdsPatchKt {
public static final fun getDisableAdsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}

View File

@@ -0,0 +1,19 @@
package app.revanced.patches.disneyplus.ads
import app.revanced.patcher.fingerprint
internal val insertionGetPointsFingerprint = fingerprint {
returns("Ljava/util/List")
custom { method, _ ->
method.name == "getPoints" &&
method.definingClass == "Lcom/dss/sdk/internal/media/Insertion;"
}
}
internal val insertionGetRangesFingerprint = fingerprint {
returns("Ljava/util/List")
custom { method, _ ->
method.name == "getRanges" &&
method.definingClass == "Lcom/dss/sdk/internal/media/Insertion;"
}
}

View File

@@ -0,0 +1,25 @@
package app.revanced.patches.disneyplus.ads
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
@Suppress("unused")
val skipAdsPatch = bytecodePatch(
name = "Skip ads",
description = "Automatically skips ads.",
) {
compatibleWith("com.disney.disneyplus")
execute {
arrayOf(insertionGetPointsFingerprint, insertionGetRangesFingerprint).forEach {
it.method.addInstructions(
0,
"""
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
return-object v0
""",
)
}
}
}

View File

@@ -145,13 +145,14 @@ val hideLayoutComponentsPatch = bytecodePatch(
SwitchPreference("revanced_hide_ask_section"),
SwitchPreference("revanced_hide_attributes_section"),
SwitchPreference("revanced_hide_chapters_section"),
SwitchPreference("revanced_hide_featured_section"),
SwitchPreference("revanced_hide_featured_links_section"),
SwitchPreference("revanced_hide_featured_videos_section"),
SwitchPreference("revanced_hide_info_cards_section"),
SwitchPreference("revanced_hide_how_this_was_made_section"),
SwitchPreference("revanced_hide_hype_points"),
SwitchPreference("revanced_hide_key_concepts_section"),
SwitchPreference("revanced_hide_podcast_section"),
SwitchPreference("revanced_hide_description_subscribe_button"),
SwitchPreference("revanced_hide_subscribe_button"),
SwitchPreference("revanced_hide_transcript_section"),
),
),
@@ -214,19 +215,21 @@ val hideLayoutComponentsPatch = bytecodePatch(
PreferenceScreenPreference(
key = "revanced_channel_screen",
preferences = setOf(
SwitchPreference("revanced_hide_community_button"),
SwitchPreference("revanced_hide_for_you_shelf"),
SwitchPreference("revanced_hide_join_button"),
SwitchPreference("revanced_hide_links_preview"),
SwitchPreference("revanced_hide_members_shelf"),
SwitchPreference("revanced_hide_visit_community_button"),
SwitchPreference("revanced_hide_visit_store_button"),
SwitchPreference("revanced_hide_store_button"),
SwitchPreference("revanced_hide_subscribe_button_in_channel_page"),
),
),
SwitchPreference("revanced_hide_album_cards"),
SwitchPreference("revanced_hide_artist_cards"),
SwitchPreference("revanced_hide_chips_shelf"),
SwitchPreference("revanced_hide_community_posts"),
SwitchPreference("revanced_hide_compact_banner"),
SwitchPreference("revanced_hide_crowdfunding_box"),
SwitchPreference("revanced_hide_chips_shelf"),
SwitchPreference("revanced_hide_expandable_card"),
SwitchPreference("revanced_hide_floating_microphone_button"),
SwitchPreference(
@@ -242,9 +245,10 @@ val hideLayoutComponentsPatch = bytecodePatch(
SwitchPreference("revanced_hide_show_more_button"),
SwitchPreference("revanced_hide_surveys"),
SwitchPreference("revanced_hide_ticket_shelf"),
SwitchPreference("revanced_hide_upload_time"),
SwitchPreference("revanced_hide_video_recommendation_labels"),
SwitchPreference("revanced_hide_view_count"),
SwitchPreference("revanced_hide_upload_time"),
SwitchPreference("revanced_hide_visual_spacer"),
SwitchPreference("revanced_hide_doodles"),
)

View File

@@ -101,6 +101,7 @@ private val hideShortsComponentsResourcePatch = resourcePatch {
SwitchPreference("revanced_hide_shorts_effect_button"),
SwitchPreference("revanced_hide_shorts_green_screen_button"),
SwitchPreference("revanced_hide_shorts_hashtag_button"),
SwitchPreference("revanced_hide_shorts_live_preview"),
SwitchPreference("revanced_hide_shorts_new_posts_button"),
SwitchPreference("revanced_hide_shorts_shop_button"),
SwitchPreference("revanced_hide_shorts_tagged_products"),
@@ -109,6 +110,7 @@ private val hideShortsComponentsResourcePatch = resourcePatch {
SwitchPreference("revanced_hide_shorts_stickers"),
// Bottom of the screen.
SwitchPreference("revanced_hide_shorts_auto_dubbed_label"),
SwitchPreference("revanced_hide_shorts_location_label"),
SwitchPreference("revanced_hide_shorts_channel_bar"),
SwitchPreference("revanced_hide_shorts_info_panel"),

View File

@@ -286,6 +286,9 @@ However, enabling this will also log some user data such as your IP address."</s
<string name="revanced_hide_video_recommendation_labels_title">Hide video recommendation labels</string>
<string name="revanced_hide_video_recommendation_labels_summary_on">\'People also watched\' and \'You might also like\' labels in search results are hidden</string>
<string name="revanced_hide_video_recommendation_labels_summary_off">\'People also watched\' and \'You might also like\' labels in search results are shown</string>
<string name="revanced_hide_visual_spacer_title">Hide visual spacer</string>
<string name="revanced_hide_visual_spacer_summary_on">Visual spacer is hidden</string>
<string name="revanced_hide_visual_spacer_summary_off">Visual spacer is shown</string>
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<string name="revanced_hide_doodles_title">Hide YouTube Doodles</string>
<string name="revanced_hide_doodles_summary_on">YouTube Doodles animation on the logo is hidden</string>
@@ -346,18 +349,21 @@ If a Doodle is currently showing in your region and this hide setting is on, the
<string name="revanced_hide_podcast_section_title">Hide \'Explore the podcast\'</string>
<string name="revanced_hide_podcast_section_summary_on">Explore the podcast section is hidden</string>
<string name="revanced_hide_podcast_section_summary_off">Explore the podcast section is shown</string>
<string name="revanced_hide_featured_section_title">Hide Featured content</string>
<string name="revanced_hide_featured_section_summary_on">Featured content section is hidden</string>
<string name="revanced_hide_featured_section_summary_off">Featured content section is shown</string>
<string name="revanced_hide_featured_links_section_title">Hide Featured links</string>
<string name="revanced_hide_featured_links_section_summary_on">Featured links section is hidden</string>
<string name="revanced_hide_featured_links_section_summary_off">Featured links section is shown</string>
<string name="revanced_hide_featured_videos_section_title">Hide Featured videos</string>
<string name="revanced_hide_featured_videos_section_summary_on">Featured videos section is hidden</string>
<string name="revanced_hide_featured_videos_section_summary_off">Featured videos section is shown</string>
<string name="revanced_hide_info_cards_section_title">Hide Info cards</string>
<string name="revanced_hide_info_cards_section_summary_on">Info cards section is hidden</string>
<string name="revanced_hide_info_cards_section_summary_off">Info cards section is shown</string>
<string name="revanced_hide_key_concepts_section_title">Hide \'Key concepts\'</string>
<string name="revanced_hide_key_concepts_section_summary_on">Key concepts section is hidden</string>
<string name="revanced_hide_key_concepts_section_summary_off">Key concepts section is shown</string>
<string name="revanced_hide_description_subscribe_button_title">Hide Subscribe button</string>
<string name="revanced_hide_description_subscribe_button_summary_on">Subscribe button is hidden</string>
<string name="revanced_hide_description_subscribe_button_summary_off">Subscribe button is shown</string>
<string name="revanced_hide_subscribe_button_title">Hide Subscribe button</string>
<string name="revanced_hide_subscribe_button_summary_on">Subscribe button is hidden</string>
<string name="revanced_hide_subscribe_button_summary_off">Subscribe button is shown</string>
<string name="revanced_hide_transcript_section_title">Hide Transcript</string>
<string name="revanced_hide_transcript_section_summary_on">Transcript section is hidden</string>
<string name="revanced_hide_transcript_section_summary_off">Transcript section is shown</string>
@@ -381,24 +387,32 @@ If a Doodle is currently showing in your region and this hide setting is on, the
<string name="revanced_channel_screen_title">Channel page</string>
<string name="revanced_channel_screen_summary">Hide or show channel page components</string>
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_community_button_title">Hide Community button</string>
<string name="revanced_hide_community_button_summary_on">Community button is hidden</string>
<string name="revanced_hide_community_button_summary_off">Community button is shown</string>
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_for_you_shelf_title">Hide \'For You\' shelf</string>
<string name="revanced_hide_for_you_shelf_summary_on">For You shelf is hidden</string>
<string name="revanced_hide_for_you_shelf_summary_off">For You shelf is shown</string>
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_join_button_title">Hide Join button</string>
<string name="revanced_hide_join_button_summary_on">Join button is hidden</string>
<string name="revanced_hide_join_button_summary_off">Join button is shown</string>
<string name="revanced_hide_links_preview_title">Hide links preview</string>
<string name="revanced_hide_links_preview_summary_on">Links preview is hidden</string>
<string name="revanced_hide_links_preview_summary_off">Links preview is shown</string>
<string name="revanced_hide_members_shelf_title">Hide members shelf</string>
<string name="revanced_hide_members_shelf_summary_on">Members shelf is hidden</string>
<string name="revanced_hide_members_shelf_summary_off">Members shelf is shown</string>
<!-- 'Visit Community' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_visit_community_button_title">Hide \'Visit Community\' button</string>
<string name="revanced_hide_visit_community_button_summary_on">Visit Community button is hidden</string>
<string name="revanced_hide_visit_community_button_summary_off">Visit Community button is shown</string>
<!-- 'Visit store' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_visit_store_button_title">Hide \'Visit store\' button</string>
<string name="revanced_hide_visit_store_button_summary_on">Visit store button is hidden</string>
<string name="revanced_hide_visit_store_button_summary_off">Visit store button is shown</string>
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_store_button_title">Hide Store button</string>
<string name="revanced_hide_store_button_summary_on">Store button is hidden</string>
<string name="revanced_hide_store_button_summary_off">Store button is shown</string>
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_subscribe_button_in_channel_page_title">Hide Subscribe button</string>
<string name="revanced_hide_subscribe_button_in_channel_page_summary_on">Subscribe button is hidden</string>
<string name="revanced_hide_subscribe_button_in_channel_page_summary_off">Subscribe button is shown</string>
<string name="revanced_comments_screen_title">Comments</string>
<string name="revanced_comments_screen_summary">Hide or show comments section components</string>
@@ -541,11 +555,11 @@ This feature is only available for older devices"</string>
<string name="revanced_share_copy_url_success">URL copied to clipboard</string>
<string name="revanced_share_copy_url_timestamp_success">URL with timestamp copied</string>
<string name="revanced_copy_video_url_title">Show copy video URL button</string>
<string name="revanced_copy_video_url_summary_on">Button is shown. Tap to copy video URL. Tap and hold to copy with timestamp</string>
<string name="revanced_copy_video_url_summary_off">Button is not shown</string>
<string name="revanced_copy_video_url_summary_on">Copy video URL button is shown. Tap to copy video URL. Tap and hold to copy with timestamp</string>
<string name="revanced_copy_video_url_summary_off">Copy video URL button is not shown</string>
<string name="revanced_copy_video_url_timestamp_title">Show copy timestamp URL button</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Button is shown. Tap to copy video URL with timestamp. Tap and hold to copy without timestamp</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Button is not shown</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Copy timestamp URL button is shown. Tap to copy video URL with timestamp. Tap and hold to copy without timestamp</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Copy timestamp URL button is not shown</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
<string name="revanced_remove_viewer_discretion_dialog_title">Remove viewer discretion dialog</string>
@@ -554,7 +568,7 @@ This feature is only available for older devices"</string>
<string name="revanced_remove_viewer_discretion_dialog_user_dialog_message">This does not bypass the age restriction. It just accepts it automatically.</string>
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
<string name="revanced_disable_signin_to_tv_popup_title">Disable Sign in to TV popup</string>
<string name="revanced_disable_signin_to_tv_popup_title">Disable \'Sign in to TV\' popup</string>
<string name="revanced_disable_signin_to_tv_popup_summary_on">Sign in to TV popup is disabled</string>
<string name="revanced_disable_signin_to_tv_popup_summary_off">Sign in to TV popup is enabled</string>
</patch>
@@ -686,7 +700,7 @@ Adjust volume by swiping vertically on the right side of the screen"</string>
<string name="revanced_hide_download_button_summary_on">Download button is hidden</string>
<string name="revanced_hide_download_button_summary_off">Download button is shown</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
This button only shows on videos uploaded by the logged-in user. -->
<string name="revanced_hide_hype_button_title">Hide Hype</string>
<string name="revanced_hide_hype_button_summary_on">Hype button is hidden</string>
<string name="revanced_hide_hype_button_summary_off">Hype button is shown</string>
@@ -887,13 +901,16 @@ To show the Audio track menu, change \'Spoof video streams\' to \'Android No SDK
<string name="revanced_hide_shorts_history_title">Hide Shorts in watch history</string>
<string name="revanced_hide_shorts_history_summary_on">Hidden in watch history</string>
<string name="revanced_hide_shorts_history_summary_off">Shown in watch history</string>
<string name="revanced_hide_shorts_super_thanks_button_title">Hide Buy Super Thanks button</string>
<string name="revanced_hide_shorts_auto_dubbed_label_title">Hide \'Auto-dubbed\' label</string>
<string name="revanced_hide_shorts_auto_dubbed_label_summary_on">Auto-dubbed label is hidden</string>
<string name="revanced_hide_shorts_auto_dubbed_label_summary_off">Auto-dubbed label is shown</string>
<string name="revanced_hide_shorts_super_thanks_button_title">Hide \'Buy Super Thanks\' button</string>
<string name="revanced_hide_shorts_super_thanks_button_summary_on">Buy Super Thanks button is hidden</string>
<string name="revanced_hide_shorts_super_thanks_button_summary_off">Buy Super Thanks button is shown</string>
<string name="revanced_hide_shorts_effect_button_title">Hide Effect button</string>
<string name="revanced_hide_shorts_effect_button_summary_on">Effect button is hidden</string>
<string name="revanced_hide_shorts_effect_button_summary_off">Effect button is shown</string>
<string name="revanced_hide_shorts_green_screen_button_title">Hide Green screen button</string>
<string name="revanced_hide_shorts_green_screen_button_title">Hide \'Green screen\' button</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Green screen button is hidden</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Green screen button is shown</string>
<string name="revanced_hide_shorts_hashtag_button_title">Hide Hashtag button</string>
@@ -903,10 +920,13 @@ To show the Audio track menu, change \'Spoof video streams\' to \'Android No SDK
<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_live_preview_title">Hide live preview</string>
<string name="revanced_hide_shorts_live_preview_summary_on">Live preview is hidden</string>
<string name="revanced_hide_shorts_live_preview_summary_off">Live preview is 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_new_posts_button_title">Hide New posts button</string>
<string name="revanced_hide_shorts_new_posts_button_title">Hide \'New posts\' button</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">New posts button is hidden</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">New posts button is shown</string>
<string name="revanced_hide_shorts_paused_overlay_buttons_title">Hide paused overlay buttons</string>
@@ -915,7 +935,7 @@ To show the Audio track menu, change \'Spoof video streams\' to \'Android No SDK
<string name="revanced_hide_shorts_preview_comment_title">Hide preview comment</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Preview comment is hidden</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Preview comment is shown</string>
<string name="revanced_hide_shorts_save_sound_button_title">Hide Save music button</string>
<string name="revanced_hide_shorts_save_sound_button_title">Hide \'Save music\' button</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Save music button is hidden</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Save music button is shown</string>
<string name="revanced_hide_shorts_search_suggestions_title">Hide search suggestions</string>
@@ -936,10 +956,10 @@ To show the Audio track menu, change \'Spoof video streams\' to \'Android No SDK
<string name="revanced_hide_shorts_upcoming_button_title">Hide Upcoming button</string>
<string name="revanced_hide_shorts_upcoming_button_summary_on">Upcoming button is hidden</string>
<string name="revanced_hide_shorts_upcoming_button_summary_off">Upcoming button is shown</string>
<string name="revanced_hide_shorts_use_sound_button_title">Hide Use this sound button</string>
<string name="revanced_hide_shorts_use_sound_button_title">Hide \'Use this sound\' button</string>
<string name="revanced_hide_shorts_use_sound_button_summary_on">Use this sound button is hidden</string>
<string name="revanced_hide_shorts_use_sound_button_summary_off">Use this sound button is shown</string>
<string name="revanced_hide_shorts_use_template_button_title">Hide Use this template button</string>
<string name="revanced_hide_shorts_use_template_button_title">Hide \'Use this template\' button</string>
<string name="revanced_hide_shorts_use_template_button_summary_on">Use this template button is hidden</string>
<string name="revanced_hide_shorts_use_template_button_summary_off">Use this template button is shown</string>
<string name="revanced_hide_shorts_like_fountain_title">Hide Like button fountain animation</string>
@@ -1600,13 +1620,13 @@ Enabling this can unlock higher video qualities"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Show speed dialog button</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Button is shown. Tap and hold to reset playback speed to default</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Button is not shown</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Speed dialog button is shown. Tap and hold to reset playback speed to default</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Speed dialog button is not shown</string>
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
<string name="revanced_video_quality_dialog_button_title">Show video quality button</string>
<string name="revanced_video_quality_dialog_button_summary_on">Button is shown. Tap and hold to reset quality to default</string>
<string name="revanced_video_quality_dialog_button_summary_off">Button is not shown</string>
<string name="revanced_video_quality_dialog_button_summary_on">Video quality button is shown. Tap and hold to reset quality to default</string>
<string name="revanced_video_quality_dialog_button_summary_off">Video quality button is not shown</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
<string name="revanced_custom_speed_menu_title">Custom playback speed menu</string>