diff --git a/CHANGELOG.md b/CHANGELOG.md index a5e02ec1d..1c294e2c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,59 @@ +# [5.1.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.1.0-dev.2...v5.1.0-dev.3) (2024-11-22) + + +### Features + +* **YouTube - Miniplayer:** Add option to disable miniplayer ([#3961](https://github.com/ReVanced/revanced-patches/issues/3961)) ([e565cdb](https://github.com/ReVanced/revanced-patches/commit/e565cdb583aacfc0052d12c430f56fd9abd5bf00)) + +# [5.1.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.1.0-dev.1...v5.1.0-dev.2) (2024-11-21) + + +### Bug Fixes + +* **YouTube - SponsorBlock:** Fix create new segment crash on tablet custom roms ([#3946](https://github.com/ReVanced/revanced-patches/issues/3946)) ([a0da377](https://github.com/ReVanced/revanced-patches/commit/a0da377ba8f90ba39e905ed9730b3e819633bd50)) + +# [5.1.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.0.3-dev.5...v5.1.0-dev.1) (2024-11-20) + + +### Features + +* **YouTube:** Support version `19.45.38` ([#3938](https://github.com/ReVanced/revanced-patches/issues/3938)) ([7c4e3fe](https://github.com/ReVanced/revanced-patches/commit/7c4e3fe97e8cbbb8cf16a2fb95f64223ca2bd7ef)) + +## [5.0.3-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.0.3-dev.4...v5.0.3-dev.5) (2024-11-18) + + +### Bug Fixes + +* **YouTube - Hide Shorts components:** Do not hide Shorts action buttons on app first launch ([#3933](https://github.com/ReVanced/revanced-patches/issues/3933)) ([0d78815](https://github.com/ReVanced/revanced-patches/commit/0d78815e33bf2ae216e519f067fb773df0f2084e)) + +## [5.0.3-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.0.3-dev.3...v5.0.3-dev.4) (2024-11-18) + + +### Bug Fixes + +* **YouTube - Spoof app version:** Adjust legacy spoof targets ([#3934](https://github.com/ReVanced/revanced-patches/issues/3934)) ([f5794c1](https://github.com/ReVanced/revanced-patches/commit/f5794c1f896c331d76fdfc299e31a2773f2209ca)) + +## [5.0.3-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.0.3-dev.2...v5.0.3-dev.3) (2024-11-15) + + +### Bug Fixes + +* **YouTube - Playback speed:** Add 'Auto' speed. Always override speed if default is set to 1.0x ([#3914](https://github.com/ReVanced/revanced-patches/issues/3914)) ([497739e](https://github.com/ReVanced/revanced-patches/commit/497739e8ce6933c1f1ea46edffc102e56b985623)) + +## [5.0.3-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.0.3-dev.1...v5.0.3-dev.2) (2024-11-15) + + +### Bug Fixes + +* **YouTube - Spoof app version:** Remove broken spoof targets when patching 19.25+ ([#3915](https://github.com/ReVanced/revanced-patches/issues/3915)) ([9e18eca](https://github.com/ReVanced/revanced-patches/commit/9e18ecab1877dd33a3ad0fe216e6b91a8daaf1f8)) + +## [5.0.3-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.0.2...v5.0.3-dev.1) (2024-11-13) + + +### Bug Fixes + +* **YouTube - Change header:** Apply header changes to A/B layout ([#3907](https://github.com/ReVanced/revanced-patches/issues/3907)) ([6ccf114](https://github.com/ReVanced/revanced-patches/commit/6ccf11426ec9e9cd9c8e89a2443f0d0645cc78b1)) + ## [5.0.2](https://github.com/ReVanced/revanced-patches/compare/v5.0.1...v5.0.2) (2024-11-12) diff --git a/extensions/shared/src/main/java/app/revanced/extension/shared/checks/PatchInfo.java b/extensions/shared/src/main/java/app/revanced/extension/shared/checks/PatchInfo.java index 62144d753..cceb34f77 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/shared/checks/PatchInfo.java +++ b/extensions/shared/src/main/java/app/revanced/extension/shared/checks/PatchInfo.java @@ -1,7 +1,11 @@ package app.revanced.extension.shared.checks; -// Fields are set by the patch. Do not modify. -// Fields are not final, because the compiler is inlining them. +/** + * Fields are set by the patch. Do not modify. + * Fields are not final, because the compiler is inlining them. + * + * @noinspection CanBeFinal + */ final class PatchInfo { static long PATCH_TIME = 0L; diff --git a/extensions/shared/src/main/java/app/revanced/extension/tudortmund/lockscreen/ShowOnLockscreenPatch.java b/extensions/shared/src/main/java/app/revanced/extension/tudortmund/lockscreen/ShowOnLockscreenPatch.java index f2868cf4e..5ffa8ead6 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/tudortmund/lockscreen/ShowOnLockscreenPatch.java +++ b/extensions/shared/src/main/java/app/revanced/extension/tudortmund/lockscreen/ShowOnLockscreenPatch.java @@ -11,9 +11,6 @@ import static android.view.WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD; import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED; public class ShowOnLockscreenPatch { - /** - * @noinspection deprecation - */ public static Window getWindow(AppCompatActivity activity, float brightness) { Window window = activity.getWindow(); diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/MiniplayerPatch.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/MiniplayerPatch.java index 33bdf26b2..068aa4d2e 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/MiniplayerPatch.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/MiniplayerPatch.java @@ -24,9 +24,20 @@ public final class MiniplayerPatch { * Mini player type. Null fields indicates to use the original un-patched value. */ public enum MiniplayerType { + /** + * Disabled. When swiped down the miniplayer is immediately closed. + * Only available with 19.43+ + */ + DISABLED(false, null), /** Unmodified type, and same as un-patched. */ ORIGINAL(null, null), + /** + * Exactly the same as MINIMAL, and only here for migration of user settings. + * Eventually this should be deleted. + */ + @Deprecated PHONE(false, null), + MINIMAL(false, null), TABLET(true, null), MODERN_1(null, 1), MODERN_2(null, 2), @@ -164,6 +175,18 @@ public final class MiniplayerPatch { OPACITY_LEVEL = (opacity * 255) / 100; } + /** + * Injection point. + * + * Enables a handler that immediately closes the miniplayer when the video is minimized, + * effectively disabling the miniplayer. + */ + public static boolean getMiniplayerOnCloseHandler(boolean original) { + return CURRENT_TYPE == ORIGINAL + ? original + : CURRENT_TYPE == DISABLED; + } + /** * Injection point. */ diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java index bf10416d1..a78b941bf 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java @@ -31,7 +31,7 @@ public final class LayoutComponentsFilter extends Filter { "cell_description_body" ); private static final ByteArrayFilterGroup mixPlaylists = new ByteArrayFilterGroup( - Settings.HIDE_MIX_PLAYLISTS, + null, "&list=" ); @@ -344,6 +344,10 @@ public final class LayoutComponentsFilter extends Filter { */ public static boolean filterMixPlaylists(final Object conversionContext, @Nullable final byte[] bytes) { try { + if (!Settings.HIDE_MIX_PLAYLISTS.get()) { + return false; + } + if (bytes == null) { Logger.printDebug(() -> "bytes is null"); return false; diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/components/ShortsFilter.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/components/ShortsFilter.java index ee7b78952..1588ad70f 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/components/ShortsFilter.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/components/ShortsFilter.java @@ -22,12 +22,12 @@ import app.revanced.extension.youtube.shared.PlayerType; @SuppressWarnings("unused") public final class ShortsFilter extends Filter { private static final boolean HIDE_SHORTS_NAVIGATION_BAR = Settings.HIDE_SHORTS_NAVIGATION_BAR.get(); - private final static String REEL_CHANNEL_BAR_PATH = "reel_channel_bar.eml"; + private static final String REEL_CHANNEL_BAR_PATH = "reel_channel_bar.eml"; /** * For paid promotion label and subscribe button that appears in the channel bar. */ - private final static String REEL_METAPANEL_PATH = "reel_metapanel.eml"; + private static final String REEL_METAPANEL_PATH = "reel_metapanel.eml"; /** * Tags that appears when opening the Shorts player. @@ -52,7 +52,7 @@ public final class ShortsFilter extends Filter { private final StringFilterGroup suggestedAction; private final ByteArrayFilterGroupList suggestedActionsGroupList = new ByteArrayFilterGroupList(); - private final StringFilterGroup actionBar; + private final StringFilterGroup actionButton; private final ByteArrayFilterGroupList videoActionButtonGroupList = new ByteArrayFilterGroupList(); public ShortsFilter() { @@ -156,9 +156,9 @@ public final class ShortsFilter extends Filter { "reel_player_disclosure.eml" ); - actionBar = new StringFilterGroup( + actionButton = new StringFilterGroup( null, - "shorts_action_bar" + "shorts_video_action_button.eml" ); suggestedAction = new StringFilterGroup( @@ -167,7 +167,7 @@ public final class ShortsFilter extends Filter { ); addPathCallbacks( - shortsCompactFeedVideoPath, suggestedAction, actionBar, joinButton, subscribeButton, + shortsCompactFeedVideoPath, suggestedAction, actionButton, joinButton, subscribeButton, paidPromotionButton, pausedOverlayButtons, channelBar, fullVideoLinkLabel, videoTitle, reelSoundMetadata, soundButton, infoPanel, stickers, likeFountain ); @@ -287,7 +287,7 @@ public final class ShortsFilter extends Filter { } // Video action buttons (like, dislike, comment, share, remix) have the same path. - if (matchedGroup == actionBar) { + if (matchedGroup == actionButton) { if (videoActionButtonGroupList.check(protobufBufferArray).isFiltered()) { return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex); } diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java index d015c192a..7e754407d 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java @@ -1,5 +1,6 @@ package app.revanced.extension.youtube.patches.playback.speed; +import static app.revanced.extension.shared.StringRef.sf; import static app.revanced.extension.shared.StringRef.str; import android.preference.ListPreference; @@ -10,15 +11,18 @@ import android.view.ViewParent; import androidx.annotation.NonNull; -import app.revanced.extension.youtube.patches.components.PlaybackSpeedMenuFilterPatch; -import app.revanced.extension.youtube.settings.Settings; +import java.util.Arrays; + import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.Utils; - -import java.util.Arrays; +import app.revanced.extension.youtube.patches.components.PlaybackSpeedMenuFilterPatch; +import app.revanced.extension.youtube.settings.Settings; @SuppressWarnings("unused") public class CustomPlaybackSpeedPatch { + + private static final float PLAYBACK_SPEED_AUTO = Settings.PLAYBACK_SPEED_DEFAULT.defaultValue; + /** * Maximum playback speed, exclusive value. Custom speeds must be less than this value. * @@ -26,7 +30,7 @@ public class CustomPlaybackSpeedPatch { * and the UI selector starts flickering and acting weird. * Over 10x and the speeds show up out of order in the UI selector. */ - public static final float MAXIMUM_PLAYBACK_SPEED = 8; + public static final float PLAYBACK_SPEED_MAXIMUM = 8; /** * Custom playback speeds. @@ -69,8 +73,8 @@ public class CustomPlaybackSpeedPatch { throw new IllegalArgumentException(); } - if (speedFloat >= MAXIMUM_PLAYBACK_SPEED) { - resetCustomSpeeds(str("revanced_custom_playback_speeds_invalid", MAXIMUM_PLAYBACK_SPEED)); + if (speedFloat >= PLAYBACK_SPEED_MAXIMUM) { + resetCustomSpeeds(str("revanced_custom_playback_speeds_invalid", PLAYBACK_SPEED_MAXIMUM)); loadCustomSpeeds(); return; } @@ -98,10 +102,15 @@ public class CustomPlaybackSpeedPatch { @SuppressWarnings("deprecation") public static void initializeListPreference(ListPreference preference) { if (preferenceListEntries == null) { - preferenceListEntries = new String[customPlaybackSpeeds.length]; - preferenceListEntryValues = new String[customPlaybackSpeeds.length]; + final int numberOfEntries = customPlaybackSpeeds.length + 1; + preferenceListEntries = new String[numberOfEntries]; + preferenceListEntryValues = new String[numberOfEntries]; - int i = 0; + // Auto speed (same behavior as unpatched). + preferenceListEntries[0] = sf("revanced_custom_playback_speeds_auto").toString(); + preferenceListEntryValues[0] = String.valueOf(PLAYBACK_SPEED_AUTO); + + int i = 1; for (float speed : customPlaybackSpeeds) { String speedString = String.valueOf(speed); preferenceListEntries[i] = speedString + "x"; diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java index 87237ae6f..3c504df5d 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java @@ -33,7 +33,7 @@ public final class RememberPlaybackSpeedPatch { // With the 0.05x menu, if the speed is set by integrations to higher than 2.0x // then the menu will allow increasing without bounds but the max speed is // still capped to under 8.0x. - playbackSpeed = Math.min(playbackSpeed, CustomPlaybackSpeedPatch.MAXIMUM_PLAYBACK_SPEED - 0.05f); + playbackSpeed = Math.min(playbackSpeed, CustomPlaybackSpeedPatch.PLAYBACK_SPEED_MAXIMUM - 0.05f); // Prevent toast spamming if using the 0.05x adjustments. // Show exactly one toast after the user stops interacting with the speed menu. diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeApi.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeApi.java index a933f0828..0ccb87d32 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeApi.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeApi.java @@ -147,6 +147,7 @@ public class ReturnYouTubeDislikeApi { */ private static void randomlyWaitIfLocallyDebugging() { final boolean DEBUG_RANDOMLY_DELAY_NETWORK_CALLS = false; // set true to debug UI + //noinspection ConstantValue if (DEBUG_RANDOMLY_DELAY_NETWORK_CALLS) { final long amountOfTimeToWaste = (long) (Math.random() * (API_GET_VOTES_TCP_TIMEOUT_MILLISECONDS + API_GET_VOTES_HTTP_TIMEOUT_MILLISECONDS)); @@ -187,6 +188,7 @@ public class ReturnYouTubeDislikeApi { */ private static boolean checkIfRateLimitWasHit(int httpResponseCode) { final boolean DEBUG_RATE_LIMIT = false; // set to true, to verify rate limit works + //noinspection ConstantValue if (DEBUG_RATE_LIMIT) { final double RANDOM_RATE_LIMIT_PERCENTAGE = 0.2; // 20% chance of a triggering a rate limit if (Math.random() < RANDOM_RATE_LIMIT_PERCENTAGE) { diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java index dc0d15d18..9b7232368 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java @@ -9,6 +9,7 @@ import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerH import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerType; import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerType.*; import static app.revanced.extension.youtube.patches.SeekbarThumbnailsPatch.SeekbarThumbnailsHighQualityAvailability; +import static app.revanced.extension.youtube.patches.VersionCheckPatch.IS_19_17_OR_GREATER; import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.*; import app.revanced.extension.shared.Logger; @@ -23,7 +24,6 @@ import app.revanced.extension.youtube.patches.spoof.SpoofAppVersionPatch; import app.revanced.extension.youtube.patches.spoof.SpoofVideoStreamsPatch; import app.revanced.extension.youtube.sponsorblock.SponsorBlockSettings; -@SuppressWarnings("deprecation") public class Settings extends BaseSettings { // Video public static final BooleanSetting RESTORE_OLD_VIDEO_QUALITY_MENU = new BooleanSetting("revanced_restore_old_video_quality_menu", TRUE); @@ -33,7 +33,7 @@ public class Settings extends BaseSettings { // Speed public static final BooleanSetting REMEMBER_PLAYBACK_SPEED_LAST_SELECTED = new BooleanSetting("revanced_remember_playback_speed_last_selected", FALSE); public static final BooleanSetting CUSTOM_SPEED_MENU = new BooleanSetting("revanced_custom_speed_menu", TRUE); - public static final FloatSetting PLAYBACK_SPEED_DEFAULT = new FloatSetting("revanced_playback_speed_default", 1.0f); + public static final FloatSetting PLAYBACK_SPEED_DEFAULT = new FloatSetting("revanced_playback_speed_default", -2.0f); public static final StringSetting CUSTOM_PLAYBACK_SPEEDS = new StringSetting("revanced_custom_playback_speeds", "0.25\n0.5\n0.75\n0.9\n0.95\n1.0\n1.05\n1.1\n1.25\n1.5\n1.75\n2.0\n3.0\n4.0\n5.0", true); @@ -128,8 +128,7 @@ public class Settings extends BaseSettings { public static final BooleanSetting HIDE_AUTOPLAY_BUTTON = new BooleanSetting("revanced_hide_autoplay_button", TRUE, true); public static final BooleanSetting HIDE_CAST_BUTTON = new BooleanSetting("revanced_hide_cast_button", TRUE, true); public static final BooleanSetting HIDE_PLAYER_PREVIOUS_NEXT_BUTTONS = new BooleanSetting("revanced_hide_player_previous_next_buttons", FALSE, true); - @Deprecated - public static final BooleanSetting HIDE_PLAYER_BUTTONS = new BooleanSetting("revanced_hide_player_buttons", FALSE, true); + private static final BooleanSetting DEPRECATED_HIDE_PLAYER_BUTTONS = new BooleanSetting("revanced_hide_player_buttons", FALSE, true); public static final BooleanSetting COPY_VIDEO_URL = new BooleanSetting("revanced_copy_video_url", FALSE); public static final BooleanSetting COPY_VIDEO_URL_TIMESTAMP = new BooleanSetting("revanced_copy_video_url_timestamp", TRUE); public static final BooleanSetting PLAYBACK_SPEED_DIALOG_BUTTON = new BooleanSetting("revanced_playback_speed_dialog_button", FALSE); @@ -192,14 +191,13 @@ public class Settings extends BaseSettings { public static final BooleanSetting HIDE_PLAYER_FLYOUT_SLEEP_TIMER = new BooleanSetting("revanced_hide_player_flyout_sleep_timer", FALSE); public static final BooleanSetting HIDE_PLAYER_FLYOUT_STABLE_VOLUME = new BooleanSetting("revanced_hide_player_flyout_stable_volume", FALSE); public static final BooleanSetting HIDE_PLAYER_FLYOUT_WATCH_IN_VR = new BooleanSetting("revanced_hide_player_flyout_watch_in_vr", TRUE); - @Deprecated private static final BooleanSetting DEPRECATED_HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER = new BooleanSetting("revanced_hide_video_quality_menu_footer", FALSE); public static final BooleanSetting HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER = new BooleanSetting("revanced_hide_player_flyout_video_quality_footer", FALSE); // General layout public static final EnumSetting CHANGE_START_PAGE = new EnumSetting<>("revanced_change_start_page", StartPage.ORIGINAL, true); public static final BooleanSetting SPOOF_APP_VERSION = new BooleanSetting("revanced_spoof_app_version", FALSE, true, "revanced_spoof_app_version_user_dialog_message"); - public static final StringSetting SPOOF_APP_VERSION_TARGET = new StringSetting("revanced_spoof_app_version_target", "17.41.37", true, parent(SPOOF_APP_VERSION)); + public static final StringSetting SPOOF_APP_VERSION_TARGET = new StringSetting("revanced_spoof_app_version_target", IS_19_17_OR_GREATER ? "18.38.44" : "17.33.42", true, parent(SPOOF_APP_VERSION)); public static final BooleanSetting TABLET_LAYOUT = new BooleanSetting("revanced_tablet_layout", FALSE, true, "revanced_tablet_layout_user_dialog_message"); public static final BooleanSetting WIDE_SEARCHBAR = new BooleanSetting("revanced_wide_searchbar", FALSE, true); public static final BooleanSetting BYPASS_IMAGE_REGION_RESTRICTIONS = new BooleanSetting("revanced_bypass_image_region_restrictions", FALSE, true); @@ -235,7 +233,7 @@ public class Settings extends BaseSettings { public static final BooleanSetting HIDE_SHORTS_UPCOMING_BUTTON = new BooleanSetting("revanced_hide_shorts_upcoming_button", TRUE); public static final BooleanSetting HIDE_SHORTS_GREEN_SCREEN_BUTTON = new BooleanSetting("revanced_hide_shorts_green_screen_button", TRUE); public static final BooleanSetting HIDE_SHORTS_HASHTAG_BUTTON = new BooleanSetting("revanced_hide_shorts_hashtag_button", TRUE); - public static final BooleanSetting HIDE_SHORTS_SEARCH_SUGGESTIONS = new BooleanSetting("revanced_hide_shorts_search_suggestions", FALSE); + public static final BooleanSetting HIDE_SHORTS_SEARCH_SUGGESTIONS = new BooleanSetting("revanced_hide_shorts_search_suggestions", TRUE); public static final BooleanSetting HIDE_SHORTS_STICKERS = new BooleanSetting("revanced_hide_shorts_stickers", TRUE); public static final BooleanSetting HIDE_SHORTS_SUPER_THANKS_BUTTON = new BooleanSetting("revanced_hide_shorts_super_thanks_button", TRUE); public static final BooleanSetting HIDE_SHORTS_LIKE_FOUNTAIN = new BooleanSetting("revanced_hide_shorts_like_fountain", TRUE); @@ -274,7 +272,7 @@ public class Settings extends BaseSettings { public static final BooleanSetting SPOOF_DEVICE_DIMENSIONS = new BooleanSetting("revanced_spoof_device_dimensions", FALSE, true, "revanced_spoof_device_dimensions_user_dialog_message"); public static final BooleanSetting BYPASS_URL_REDIRECTS = new BooleanSetting("revanced_bypass_url_redirects", TRUE); - public static final BooleanSetting ANNOUNCEMENTS = new BooleanSetting("revanced_announcements", TRUE); + public static final BooleanSetting ANNOUNCEMENTS = new BooleanSetting("revanced_announcements", TRUE, false, false); public static final BooleanSetting SPOOF_VIDEO_STREAMS = new BooleanSetting("revanced_spoof_video_streams", TRUE, true,"revanced_spoof_video_streams_user_dialog_message"); public static final BooleanSetting SPOOF_VIDEO_STREAMS_IOS_FORCE_AVC = new BooleanSetting("revanced_spoof_video_streams_ios_force_avc", FALSE, true, "revanced_spoof_video_streams_ios_force_avc_user_dialog_message", new SpoofVideoStreamsPatch.ForceiOSAVCAvailability()); @@ -377,16 +375,21 @@ public class Settings extends BaseSettings { migrateOldSettingToNew(DEPRECATED_SB_UUID_OLD_MIGRATION_SETTING, SB_PRIVATE_USER_ID); - // Old spoof versions that no longer work reliably. - if (SpoofAppVersionPatch.isSpoofingToLessThan("17.33.00")) { - Logger.printInfo(() -> "Resetting spoof app version target"); - Settings.SPOOF_APP_VERSION_TARGET.resetToDefault(); - } - - migrateOldSettingToNew(HIDE_PLAYER_BUTTONS, HIDE_PLAYER_PREVIOUS_NEXT_BUTTONS); + migrateOldSettingToNew(DEPRECATED_HIDE_PLAYER_BUTTONS, HIDE_PLAYER_PREVIOUS_NEXT_BUTTONS); migrateOldSettingToNew(DEPRECATED_HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER, HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER); + // Old spoof versions that no longer work reliably. + if (SpoofAppVersionPatch.isSpoofingToLessThan(SPOOF_APP_VERSION_TARGET.defaultValue)) { + Logger.printInfo(() -> "Resetting spoof app version target"); + SPOOF_APP_VERSION_TARGET.resetToDefault(); + } + + // Migrate renamed enum type. + if (MINIPLAYER_TYPE.get() == PHONE) { + MINIPLAYER_TYPE.save(MINIMAL); + } + // endregion } } diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/shared/PlayerType.kt b/extensions/shared/src/main/java/app/revanced/extension/youtube/shared/PlayerType.kt index dc3fd8ca2..05edee353 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/shared/PlayerType.kt +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/shared/PlayerType.kt @@ -49,7 +49,7 @@ enum class PlayerType { companion object { - private val nameToPlayerType = values().associateBy { it.name } + private val nameToPlayerType = PlayerType.entries.associateBy { it.name } @JvmStatic fun setFromString(enumName: String) { diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/shared/VideoState.kt b/extensions/shared/src/main/java/app/revanced/extension/youtube/shared/VideoState.kt index e01cb0249..d1506aa14 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/shared/VideoState.kt +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/shared/VideoState.kt @@ -22,7 +22,7 @@ enum class VideoState { companion object { - private val nameToVideoState = values().associateBy { it.name } + private val nameToVideoState = VideoState.entries.associateBy { it.name } @JvmStatic fun setFromString(enumName: String) { diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockUtils.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockUtils.java index d3f851f6e..a8b62e7e6 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockUtils.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockUtils.java @@ -382,7 +382,6 @@ public class SponsorBlockUtils { return statsNumberFormatter.format(viewCount); } - @SuppressWarnings("ConstantConditions") private static long parseSegmentTime(@NonNull String time) { Matcher matcher = manualEditTimePattern.matcher(time); if (!matcher.matches()) { diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRequester.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRequester.java index 7cb9122d9..0f0a93afc 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRequester.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRequester.java @@ -113,6 +113,7 @@ public class SBRequester { // Could benefit from: // 1) collection of YouTube videos with test segment times (verify client skip timing matches the video, verify seekbar draws correctly) // 2) unit tests (verify everything else) + //noinspection ConstantValue if (false) { segments.clear(); // Test auto-hide skip button: diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/CreateSegmentButtonController.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/CreateSegmentButtonController.java index 4ec6c35b7..e19d3273c 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/CreateSegmentButtonController.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/CreateSegmentButtonController.java @@ -1,7 +1,5 @@ package app.revanced.extension.youtube.sponsorblock.ui; -import static app.revanced.extension.shared.Utils.getResourceIdentifier; - import android.view.View; import android.widget.ImageView; diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/NewSegmentLayout.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/NewSegmentLayout.java index 38e1f113c..9499d98ea 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/NewSegmentLayout.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/NewSegmentLayout.java @@ -107,12 +107,13 @@ public final class NewSegmentLayout extends FrameLayout { */ private void initializeButton(final Context context, final String resourceIdentifierName, final ButtonOnClickHandlerFunction handler, final String debugMessage) { - final ImageButton button = findViewById(getResourceIdentifier(context, resourceIdentifierName, "id")); + ImageButton button = findViewById(getResourceIdentifier(context, resourceIdentifierName, "id")); - // Add ripple effect button.setBackgroundResource(rippleEffectId); - RippleDrawable rippleDrawable = (RippleDrawable) button.getBackground(); - rippleDrawable.setColor(rippleColorStateList); + RippleDrawable rippleDrawable = new RippleDrawable( + rippleColorStateList, null, null + ); + button.setBackground(rippleDrawable); button.setOnClickListener((v) -> { handler.apply(); @@ -121,7 +122,7 @@ public final class NewSegmentLayout extends FrameLayout { } @FunctionalInterface - public interface ButtonOnClickHandlerFunction { + private interface ButtonOnClickHandlerFunction { void apply(); } -} +} \ No newline at end of file diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/VotingButtonController.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/VotingButtonController.java index bad5f2484..8609dd004 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/VotingButtonController.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/VotingButtonController.java @@ -1,7 +1,5 @@ package app.revanced.extension.youtube.sponsorblock.ui; -import static app.revanced.extension.shared.Utils.getResourceIdentifier; - import android.view.View; import android.widget.ImageView; diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/views/SwipeControlsOverlayLayout.kt b/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/views/SwipeControlsOverlayLayout.kt index 9972c5233..fa30d5994 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/views/SwipeControlsOverlayLayout.kt +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/views/SwipeControlsOverlayLayout.kt @@ -7,8 +7,6 @@ import android.os.Handler import android.os.Looper import android.util.TypedValue import android.view.HapticFeedbackConstants -import android.view.View -import android.view.ViewGroup import android.widget.RelativeLayout import android.widget.TextView import app.revanced.extension.shared.StringRef.str @@ -59,8 +57,8 @@ class SwipeControlsOverlayLayout( val compoundIconPadding = 4.applyDimension(context, TypedValue.COMPLEX_UNIT_DIP) feedbackTextView = TextView(context).apply { layoutParams = LayoutParams( - ViewGroup.LayoutParams.WRAP_CONTENT, - ViewGroup.LayoutParams.WRAP_CONTENT, + LayoutParams.WRAP_CONTENT, + LayoutParams.WRAP_CONTENT, ).apply { addRule(CENTER_IN_PARENT, TRUE) setPadding( @@ -91,7 +89,7 @@ class SwipeControlsOverlayLayout( private val feedbackHideHandler = Handler(Looper.getMainLooper()) private val feedbackHideCallback = Runnable { - feedbackTextView.visibility = View.GONE + feedbackTextView.visibility = GONE } /** diff --git a/gradle.properties b/gradle.properties index 57c8ca692..03cbb680f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M org.gradle.parallel = true android.useAndroidX = true kotlin.code.style = official -version = 5.0.2 +version = 5.1.0-dev.3 diff --git a/patches/api/patches.api b/patches/api/patches.api index 1bed18e28..1da26f5b2 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -503,6 +503,10 @@ public final class app/revanced/patches/reddit/customclients/sync/syncforreddit/ public static final fun getUseUserEndpointPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } +public final class app/revanced/patches/reddit/customclients/sync/syncforreddit/fix/video/FixVideoDownloadsPatchKt { + public static final fun getFixVideoDownloadsPatch ()Lapp/revanced/patcher/patch/BytecodePatch; +} + public final class app/revanced/patches/reddit/customclients/syncforreddit/fix/video/FixVideoDownloadsPatchKt { public static final fun getFixVideoDownloadsPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } diff --git a/patches/src/main/kotlin/app/revanced/patches/facebook/ads/mainfeed/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/facebook/ads/mainfeed/Fingerprints.kt index 7c732378f..e84a448ba 100644 --- a/patches/src/main/kotlin/app/revanced/patches/facebook/ads/mainfeed/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/facebook/ads/mainfeed/Fingerprints.kt @@ -1,3 +1,5 @@ +package app.revanced.patches.facebook.ads.mainfeed + import app.revanced.patcher.fingerprint import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.Opcode diff --git a/patches/src/main/kotlin/app/revanced/patches/facebook/ads/mainfeed/HideSponsoredStoriesPatch.kt b/patches/src/main/kotlin/app/revanced/patches/facebook/ads/mainfeed/HideSponsoredStoriesPatch.kt index e8a406587..a5a596d3e 100644 --- a/patches/src/main/kotlin/app/revanced/patches/facebook/ads/mainfeed/HideSponsoredStoriesPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/facebook/ads/mainfeed/HideSponsoredStoriesPatch.kt @@ -4,14 +4,11 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable -import baseModelMapperFingerprint import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.builder.MutableMethodImplementation import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction31i import com.android.tools.smali.dexlib2.immutable.ImmutableMethod import com.android.tools.smali.dexlib2.immutable.ImmutableMethodParameter -import getSponsoredDataModelTemplateFingerprint -import getStoryVisibilityFingerprint @Suppress("unused") val hideSponsoredStoriesPatch = bytecodePatch( diff --git a/patches/src/main/kotlin/app/revanced/patches/googlenews/customtabs/EnableCustomTabsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/googlenews/customtabs/EnableCustomTabsPatch.kt index 0e84ec6df..ee7997a54 100644 --- a/patches/src/main/kotlin/app/revanced/patches/googlenews/customtabs/EnableCustomTabsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/googlenews/customtabs/EnableCustomTabsPatch.kt @@ -4,7 +4,6 @@ import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.patch.bytecodePatch import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction -import com.sun.org.apache.bcel.internal.generic.InstructionConst.getInstruction @Suppress("unused") val enableCustomTabsPatch = bytecodePatch( diff --git a/patches/src/main/kotlin/app/revanced/patches/googlephotos/misc/preferences/RestoreHiddenBackUpWhileChargingTogglePatch.kt b/patches/src/main/kotlin/app/revanced/patches/googlephotos/misc/preferences/RestoreHiddenBackUpWhileChargingTogglePatch.kt index 1d8717115..04fe29715 100644 --- a/patches/src/main/kotlin/app/revanced/patches/googlephotos/misc/preferences/RestoreHiddenBackUpWhileChargingTogglePatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/googlephotos/misc/preferences/RestoreHiddenBackUpWhileChargingTogglePatch.kt @@ -4,7 +4,6 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.bytecodePatch import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction -import com.sun.org.apache.bcel.internal.generic.InstructionConst.getInstruction @Suppress("unused") val restoreHiddenBackUpWhileChargingTogglePatch = bytecodePatch( diff --git a/patches/src/main/kotlin/app/revanced/patches/googlerecorder/restrictions/RemoveDeviceRestrictions.kt b/patches/src/main/kotlin/app/revanced/patches/googlerecorder/restrictions/RemoveDeviceRestrictions.kt index 2cf32adef..bd6921bfb 100644 --- a/patches/src/main/kotlin/app/revanced/patches/googlerecorder/restrictions/RemoveDeviceRestrictions.kt +++ b/patches/src/main/kotlin/app/revanced/patches/googlerecorder/restrictions/RemoveDeviceRestrictions.kt @@ -5,7 +5,6 @@ import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.extensions.InstructionExtensions.removeInstructions import app.revanced.patcher.patch.bytecodePatch import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction -import com.sun.org.apache.bcel.internal.generic.InstructionConst.getInstruction @Suppress("unused") val removeDeviceRestrictionsPatch = bytecodePatch( diff --git a/patches/src/main/kotlin/app/revanced/patches/messenger/inputfield/DisableSwitchingEmojiToStickerPatch.kt b/patches/src/main/kotlin/app/revanced/patches/messenger/inputfield/DisableSwitchingEmojiToStickerPatch.kt index 716b40e1d..19f5c1251 100644 --- a/patches/src/main/kotlin/app/revanced/patches/messenger/inputfield/DisableSwitchingEmojiToStickerPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/messenger/inputfield/DisableSwitchingEmojiToStickerPatch.kt @@ -4,7 +4,6 @@ import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.patch.bytecodePatch import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction -import com.sun.org.apache.bcel.internal.generic.InstructionConst.getInstruction @Suppress("unused") val disableSwitchingEmojiToStickerPatch = bytecodePatch( diff --git a/patches/src/main/kotlin/app/revanced/patches/music/layout/premium/HideGetPremiumPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/layout/premium/HideGetPremiumPatch.kt index 892dac76a..23965cea4 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/layout/premium/HideGetPremiumPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/layout/premium/HideGetPremiumPatch.kt @@ -7,7 +7,6 @@ import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.patch.bytecodePatch import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction -@Suppress("unused") val hideGetPremiumPatch = bytecodePatch( name = "Hide 'Get Music Premium' label", description = "Hides the \"Get Music Premium\" label from the account menu and settings.", diff --git a/patches/src/main/kotlin/app/revanced/patches/music/misc/backgroundplayback/BackgroundPlaybackPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/misc/backgroundplayback/BackgroundPlaybackPatch.kt index 9561d9ff8..90ddf6644 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/misc/backgroundplayback/BackgroundPlaybackPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/misc/backgroundplayback/BackgroundPlaybackPatch.kt @@ -4,7 +4,6 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.bytecodePatch -@Suppress("unused") val backgroundPlaybackPatch = bytecodePatch( name = "Remove background playback restrictions", description = "Removes restrictions on background playback, including playing kids videos in the background.", diff --git a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/fix/video/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/syncforreddit/fix/video/Fingerprints.kt similarity index 84% rename from patches/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/fix/video/Fingerprints.kt rename to patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/syncforreddit/fix/video/Fingerprints.kt index 3123563ee..9ddeaf9cf 100644 --- a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/fix/video/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/syncforreddit/fix/video/Fingerprints.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.reddit.customclients.syncforreddit.fix.video +package app.revanced.patches.reddit.customclients.sync.syncforreddit.fix.video import app.revanced.patcher.fingerprint import com.android.tools.smali.dexlib2.Opcode diff --git a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/syncforreddit/fix/video/FixVideoDownloadsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/syncforreddit/fix/video/FixVideoDownloadsPatch.kt new file mode 100644 index 000000000..64c33f308 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/syncforreddit/fix/video/FixVideoDownloadsPatch.kt @@ -0,0 +1,56 @@ +package app.revanced.patches.reddit.customclients.sync.syncforreddit.fix.video + +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patches.reddit.customclients.sync.syncforreddit.extension.sharedExtensionPatch +import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction35c + +private const val EXTENSION_CLASS_DESCRIPTOR = + "Lapp/revanced/extension/syncforreddit/FixRedditVideoDownloadPatch;" +private const val GET_LINKS_METHOD = "getLinks([B)[Ljava/lang/String;" + +@Suppress("unused") +val fixVideoDownloadsPatch = bytecodePatch( + name = "Fix video downloads", + description = "Fixes a bug in Sync's MPD parser resulting in only the audio-track being saved.", +) { + dependsOn(sharedExtensionPatch) + + compatibleWith( + "com.laurencedawson.reddit_sync", + "com.laurencedawson.reddit_sync.pro", + "com.laurencedawson.reddit_sync.dev", + ) + + execute { + val scanResult = parseRedditVideoNetworkResponseFingerprint.patternMatch!! + val newInstanceIndex = scanResult.startIndex + val invokeDirectIndex = scanResult.endIndex - 1 + + val buildResponseInstruction = + parseRedditVideoNetworkResponseFingerprint.method.getInstruction(invokeDirectIndex) + + parseRedditVideoNetworkResponseFingerprint.method.addInstructions( + newInstanceIndex + 1, + """ + # Get byte array from response. + iget-object v2, p1, Lcom/android/volley/NetworkResponse;->data:[B + + # Parse the videoUrl and audioUrl from the byte array. + invoke-static { v2 }, $EXTENSION_CLASS_DESCRIPTOR->$GET_LINKS_METHOD + move-result-object v2 + + # Get videoUrl (Index 0). + const/4 v5, 0x0 + aget-object v${buildResponseInstruction.registerE}, v2, v5 + + # Get audioUrl (Index 1). + const/4 v6, 0x1 + aget-object v${buildResponseInstruction.registerF}, v2, v6 + + # Register E and F are used to build the response. + """, + ) + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/fix/video/FixVideoDownloadsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/fix/video/FixVideoDownloadsPatch.kt index 9990af83f..28ad4a0db 100644 --- a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/fix/video/FixVideoDownloadsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/fix/video/FixVideoDownloadsPatch.kt @@ -1,56 +1,18 @@ package app.revanced.patches.reddit.customclients.syncforreddit.fix.video -import app.revanced.patcher.extensions.InstructionExtensions.addInstructions -import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.bytecodePatch -import app.revanced.patches.reddit.customclients.sync.syncforreddit.extension.sharedExtensionPatch -import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction35c - -private const val EXTENSION_CLASS_DESCRIPTOR = - "Lapp/revanced/extension/syncforreddit/FixRedditVideoDownloadPatch;" -private const val GET_LINKS_METHOD = "getLinks([B)[Ljava/lang/String;" +@Deprecated( + message = "Patch was move to a different package", + ReplaceWith("app.revanced.patches.reddit.customclients.sync.syncforreddit.fix.video.fixVideoDownloadsPatch") +) @Suppress("unused") -val fixVideoDownloadsPatch = bytecodePatch( - name = "Fix video downloads", - description = "Fixes a bug in Sync's MPD parser resulting in only the audio-track being saved.", -) { - dependsOn(sharedExtensionPatch) +val fixVideoDownloadsPatch = bytecodePatch { + dependsOn(app.revanced.patches.reddit.customclients.sync.syncforreddit.fix.video.fixVideoDownloadsPatch) compatibleWith( "com.laurencedawson.reddit_sync", "com.laurencedawson.reddit_sync.pro", "com.laurencedawson.reddit_sync.dev", ) - - execute { - val scanResult = parseRedditVideoNetworkResponseFingerprint.patternMatch!! - val newInstanceIndex = scanResult.startIndex - val invokeDirectIndex = scanResult.endIndex - 1 - - val buildResponseInstruction = - parseRedditVideoNetworkResponseFingerprint.method.getInstruction(invokeDirectIndex) - - parseRedditVideoNetworkResponseFingerprint.method.addInstructions( - newInstanceIndex + 1, - """ - # Get byte array from response. - iget-object v2, p1, Lcom/android/volley/NetworkResponse;->data:[B - - # Parse the videoUrl and audioUrl from the byte array. - invoke-static { v2 }, $EXTENSION_CLASS_DESCRIPTOR->$GET_LINKS_METHOD - move-result-object v2 - - # Get videoUrl (Index 0). - const/4 v5, 0x0 - aget-object v${buildResponseInstruction.registerE}, v2, v5 - - # Get audioUrl (Index 1). - const/4 v6, 0x1 - aget-object v${buildResponseInstruction.registerF}, v2, v6 - - # Register E and F are used to build the response. - """, - ) - } -} +} \ No newline at end of file diff --git a/patches/src/main/kotlin/app/revanced/patches/songpal/badge/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/songpal/badge/Fingerprints.kt index 5d7498c5f..c52174f2c 100644 --- a/patches/src/main/kotlin/app/revanced/patches/songpal/badge/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/songpal/badge/Fingerprints.kt @@ -21,7 +21,7 @@ internal val createTabsFingerprint = fingerprint { if (reference.definingClass != ACTIVITY_TAB_DESCRIPTOR) return@any false if (reference.returnType != "[${ACTIVITY_TAB_DESCRIPTOR}") return@any false true - } ?: false + } == true } } @@ -42,7 +42,7 @@ internal val showNotificationFingerprint = fingerprint { } } true - } ?: false + } == true } } diff --git a/patches/src/main/kotlin/app/revanced/patches/twitch/ad/audio/AudioAdsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitch/ad/audio/AudioAdsPatch.kt index 4b57bddbd..f35397f72 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitch/ad/audio/AudioAdsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitch/ad/audio/AudioAdsPatch.kt @@ -11,7 +11,6 @@ import app.revanced.patches.twitch.misc.extension.sharedExtensionPatch import app.revanced.patches.twitch.misc.settings.PreferenceScreen import app.revanced.patches.twitch.misc.settings.settingsPatch -@Suppress("unused") val audioAdsPatch = bytecodePatch( name = "Block audio ads", description = "Blocks audio ads in streams and VODs.", diff --git a/patches/src/main/kotlin/app/revanced/patches/twitch/ad/embedded/EmbeddedAdsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitch/ad/embedded/EmbeddedAdsPatch.kt index 973ccefe0..45a688081 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitch/ad/embedded/EmbeddedAdsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitch/ad/embedded/EmbeddedAdsPatch.kt @@ -9,7 +9,6 @@ import app.revanced.patches.twitch.misc.extension.sharedExtensionPatch import app.revanced.patches.twitch.misc.settings.PreferenceScreen import app.revanced.patches.twitch.misc.settings.settingsPatch -@Suppress("unused") val embeddedAdsPatch = bytecodePatch( name = "Block embedded ads", description = "Blocks embedded stream ads using services like Luminous or PurpleAdBlocker.", diff --git a/patches/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/ShowDeletedMessagesPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/ShowDeletedMessagesPatch.kt index f607d1b05..4fcc870f7 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/ShowDeletedMessagesPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/ShowDeletedMessagesPatch.kt @@ -12,7 +12,6 @@ import app.revanced.patches.twitch.misc.extension.sharedExtensionPatch import app.revanced.patches.twitch.misc.settings.PreferenceScreen import app.revanced.patches.twitch.misc.settings.settingsPatch -@Suppress("unused") val showDeletedMessagesPatch = bytecodePatch( name = "Show deleted messages", description = "Shows deleted chat messages behind a clickable spoiler.", diff --git a/patches/src/main/kotlin/app/revanced/patches/twitch/chat/autoclaim/AutoClaimChannelPointsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitch/chat/autoclaim/AutoClaimChannelPointsPatch.kt index fd5b81011..15f3dc842 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitch/chat/autoclaim/AutoClaimChannelPointsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitch/chat/autoclaim/AutoClaimChannelPointsPatch.kt @@ -11,7 +11,6 @@ import app.revanced.patches.shared.misc.settings.preference.SwitchPreference import app.revanced.patches.twitch.misc.settings.PreferenceScreen import app.revanced.patches.twitch.misc.settings.settingsPatch -@Suppress("unused") val autoClaimChannelPointsPatch = bytecodePatch( name = "Auto claim channel points", description = "Automatically claim Channel Points.", diff --git a/patches/src/main/kotlin/app/revanced/patches/twitch/debug/DebugModePatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitch/debug/DebugModePatch.kt index d5cbd81aa..8b59dd954 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitch/debug/DebugModePatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitch/debug/DebugModePatch.kt @@ -9,7 +9,6 @@ import app.revanced.patches.twitch.misc.extension.sharedExtensionPatch import app.revanced.patches.twitch.misc.settings.PreferenceScreen import app.revanced.patches.twitch.misc.settings.settingsPatch -@Suppress("unused") val debugModePatch = bytecodePatch( name = "Debug mode", description = "Enables Twitch's internal debugging mode.", diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/ad/general/HideAdsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/ad/general/HideAdsPatch.kt index 3bd82fb26..3a061d7ba 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/ad/general/HideAdsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/ad/general/HideAdsPatch.kt @@ -75,6 +75,7 @@ val hideAdsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/ad/getpremium/HideGetPremiumPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/ad/getpremium/HideGetPremiumPatch.kt index b4f044228..000d697b0 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/ad/getpremium/HideGetPremiumPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/ad/getpremium/HideGetPremiumPatch.kt @@ -31,6 +31,7 @@ val hideGetPremiumPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/ad/video/VideoAdsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/ad/video/VideoAdsPatch.kt index b073814bf..878bc9a49 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/ad/video/VideoAdsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/ad/video/VideoAdsPatch.kt @@ -11,7 +11,6 @@ import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.misc.settings.settingsPatch -@Suppress("unused") val videoAdsPatch = bytecodePatch( name = "Video ads", description = "Adds an option to remove ads in the video player.", @@ -30,6 +29,7 @@ val videoAdsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlPatch.kt index f18264e93..9bb977e30 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlPatch.kt @@ -59,6 +59,7 @@ val copyVideoUrlPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/dialog/RemoveViewerDiscretionDialogPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/dialog/RemoveViewerDiscretionDialogPatch.kt index cf000474f..d48783191 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/dialog/RemoveViewerDiscretionDialogPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/dialog/RemoveViewerDiscretionDialogPatch.kt @@ -11,7 +11,6 @@ import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.misc.settings.settingsPatch import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction -@Suppress("unused") val removeViewerDiscretionDialogPatch = bytecodePatch( name = "Remove viewer discretion dialog", description = "Adds an option to remove the dialog that appears when opening a video that has been age-restricted " + @@ -31,6 +30,7 @@ val removeViewerDiscretionDialogPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/DownloadsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/DownloadsPatch.kt index 702270683..8fa2dc77f 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/DownloadsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/DownloadsPatch.kt @@ -74,6 +74,7 @@ val downloadsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/DisablePreciseSeekingGesturePatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/DisablePreciseSeekingGesturePatch.kt index a8ec77ebf..0a85ba3b0 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/DisablePreciseSeekingGesturePatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/DisablePreciseSeekingGesturePatch.kt @@ -11,7 +11,6 @@ import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.misc.settings.settingsPatch -@Suppress("unused") val disablePreciseSeekingGesturePatch = bytecodePatch( name = "Disable precise seeking gesture", description = "Adds an option to disable precise seeking when swiping up on the seekbar.", @@ -30,6 +29,7 @@ val disablePreciseSeekingGesturePatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSeekbarTappingPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSeekbarTappingPatch.kt index afc2eddae..1e0afe342 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSeekbarTappingPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSeekbarTappingPatch.kt @@ -14,7 +14,6 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction35c import com.android.tools.smali.dexlib2.iface.reference.MethodReference -@Suppress("unused") val enableSeekbarTappingPatch = bytecodePatch( name = "Seekbar tapping", description = "Adds an option to enable tap-to-seek on the seekbar of the video player.", @@ -33,6 +32,7 @@ val enableSeekbarTappingPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSlideToSeekPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSlideToSeekPatch.kt index 12d7451d6..7becb4995 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSlideToSeekPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSlideToSeekPatch.kt @@ -17,12 +17,10 @@ import app.revanced.util.getReference import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction import com.android.tools.smali.dexlib2.iface.reference.MethodReference -import com.sun.org.apache.bcel.internal.generic.InstructionConst.getInstruction internal const val EXTENSION_METHOD_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/SlideToSeekPatch;->isSlideToSeekDisabled(Z)Z" -@Suppress("unused") val enableSlideToSeekPatch = bytecodePatch( name = "Enable slide to seek", description = "Adds an option to enable slide to seek " + @@ -44,6 +42,7 @@ val enableSlideToSeekPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/SeekbarThumbnailsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/SeekbarThumbnailsPatch.kt index a9ad7563b..eff45fd4b 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/SeekbarThumbnailsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/SeekbarThumbnailsPatch.kt @@ -16,7 +16,6 @@ import app.revanced.patches.youtube.misc.settings.PreferenceScreen private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/SeekbarThumbnailsPatch;" -@Suppress("unused") val seekbarThumbnailsPatch = bytecodePatch( name = "Seekbar thumbnails", description = "Adds an option to use high quality fullscreen seekbar thumbnails. " + @@ -36,6 +35,7 @@ val seekbarThumbnailsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ) ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsPatch.kt index 6b6668420..494d8f262 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsPatch.kt @@ -71,6 +71,7 @@ val swipeControlsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/AutoCaptionsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/AutoCaptionsPatch.kt index 4dfa092f0..16d357716 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/AutoCaptionsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/AutoCaptionsPatch.kt @@ -10,7 +10,6 @@ import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.misc.settings.settingsPatch import app.revanced.patches.youtube.shared.subtitleButtonControllerFingerprint -@Suppress("unused") val autoCaptionsPatch = bytecodePatch( name = "Disable auto captions", description = "Adds an option to disable captions from being automatically enabled.", @@ -29,6 +28,7 @@ val autoCaptionsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt index db37550c8..ea60215cc 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt @@ -41,7 +41,17 @@ val customBrandingPatch = resourcePatch( ) { dependsOn(versionCheckPatch) - compatibleWith("com.google.android.youtube") + compatibleWith( + "com.google.android.youtube"( + "18.38.44", + "18.49.37", + "19.16.39", + "19.25.37", + "19.34.42", + "19.43.41", + "19.45.38", + ), + ) val appName by stringOption( key = "appName", diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt index e45680789..c6750bb56 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt @@ -3,9 +3,12 @@ package app.revanced.patches.youtube.layout.branding.header import app.revanced.patcher.patch.PatchException import app.revanced.patcher.patch.resourcePatch import app.revanced.patcher.patch.stringOption +import app.revanced.patches.youtube.misc.playservice.is_19_25_or_greater +import app.revanced.patches.youtube.misc.playservice.versionCheckPatch import app.revanced.util.ResourceGroup import app.revanced.util.Utils.trimIndentMultiline import app.revanced.util.copyResources +import app.revanced.util.findElementByAttributeValueOrThrow import java.io.File private const val HEADER_FILE_NAME = "yt_wordmark_header" @@ -34,7 +37,19 @@ val changeHeaderPatch = resourcePatch( description = "Applies a custom header in the top left corner within the app. Defaults to the ReVanced header.", use = false, ) { - compatibleWith("com.google.android.youtube") + dependsOn(versionCheckPatch) + + compatibleWith( + "com.google.android.youtube"( + "18.38.44", + "18.49.37", + "19.16.39", + "19.25.37", + "19.34.42", + "19.43.41", + "19.45.38", + ) + ) val header by stringOption( key = "header", @@ -79,7 +94,7 @@ val changeHeaderPatch = resourcePatch( /** * A function that overwrites both header variants in the target resource directories. */ - val overwriteFromTo: (String, String) -> Unit = { from: String, to: String -> + fun overwriteFromTo(from: String, to: String) { targetResourceDirectories.forEach { directory -> variants.forEach { variant -> val fromPath = directory.resolve("${from}_$variant.png") @@ -91,23 +106,28 @@ val changeHeaderPatch = resourcePatch( } // Functions to overwrite the header to the different variants. - val toPremium = { overwriteFromTo(PREMIUM_HEADER_FILE_NAME, HEADER_FILE_NAME) } - val toHeader = { overwriteFromTo(HEADER_FILE_NAME, PREMIUM_HEADER_FILE_NAME) } - val toReVanced = { + fun toPremium() { overwriteFromTo(PREMIUM_HEADER_FILE_NAME, HEADER_FILE_NAME) } + fun toHeader() { overwriteFromTo(HEADER_FILE_NAME, PREMIUM_HEADER_FILE_NAME) } + fun toReVanced() { // Copy the ReVanced header to the resource directories. targetResourceFiles.forEach { copyResources("change-header/revanced", it) } // Overwrite the premium with the custom header as well. toHeader() } - val toReVancedBorderless = { + fun toReVancedBorderless() { // Copy the ReVanced borderless header to the resource directories. - targetResourceFiles.forEach { copyResources("change-header/revanced-borderless", it) } + targetResourceFiles.forEach { + copyResources( + "change-header/revanced-borderless", + it + ) + } // Overwrite the premium with the custom header as well. toHeader() } - val toCustom = { + fun toCustom() { val sourceFolders = File(header!!).listFiles { file -> file.isDirectory } ?: throw PatchException("The provided path is not a directory: $header") @@ -136,11 +156,42 @@ val changeHeaderPatch = resourcePatch( } when (header) { - HEADER_OPTION -> toHeader - PREMIUM_HEADER_OPTION -> toPremium - REVANCED_HEADER_OPTION -> toReVanced - REVANCED_BORDERLESS_HEADER_OPTION -> toReVancedBorderless - else -> toCustom - }() + HEADER_OPTION -> toHeader() + PREMIUM_HEADER_OPTION -> toPremium() + REVANCED_HEADER_OPTION -> toReVanced() + REVANCED_BORDERLESS_HEADER_OPTION -> toReVancedBorderless() + else -> toCustom() + } + + // Fix 19.25+ A/B layout with different header icons: + // yt_ringo2_wordmark_header, yt_ringo2_premium_wordmark_header + // + // These images are webp and not png, so overwriting them is not so simple. + // Instead change styles.xml to use the old drawable resources. + if (is_19_25_or_greater) { + document("res/values/styles.xml").use { document -> + arrayOf( + "CairoLightThemeRingo2Updates" to variants[0], + "CairoDarkThemeRingo2Updates" to variants[1] + ).forEach { (styleName, theme) -> + val style = document.childNodes.findElementByAttributeValueOrThrow( + "name", + styleName, + ) + + val drawable = "@drawable/${HEADER_FILE_NAME}_${theme}" + + arrayOf( + "ytWordmarkHeader", + "ytPremiumWordmarkHeader" + ).forEach { itemName -> + style.childNodes.findElementByAttributeValueOrThrow( + "name", + itemName, + ).textContent = drawable + } + } + } + } } } diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch.kt index 5508e9e23..abb0ecec3 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch.kt @@ -10,7 +10,6 @@ import app.revanced.patches.youtube.misc.litho.filter.addLithoFilter import app.revanced.patches.youtube.misc.litho.filter.lithoFilterPatch import app.revanced.patches.youtube.misc.settings.PreferenceScreen -@Suppress("unused") val hideButtonsPatch = resourcePatch( name = "Hide video action buttons", description = "Adds options to hide action buttons (such as the Download button) under videos.", @@ -29,6 +28,7 @@ val hideButtonsPatch = resourcePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/NavigationButtonsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/NavigationButtonsPatch.kt index e25eb0f55..cc49eb05a 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/NavigationButtonsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/NavigationButtonsPatch.kt @@ -19,7 +19,6 @@ import app.revanced.util.indexOfFirstInstructionOrThrow import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction import com.android.tools.smali.dexlib2.iface.reference.MethodReference -import com.sun.org.apache.bcel.internal.generic.InstructionConst.getInstruction internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/NavigationButtonsPatch;" @@ -43,6 +42,7 @@ val navigationButtonsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/overlay/HidePlayerOverlayButtonsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/overlay/HidePlayerOverlayButtonsPatch.kt index 63c4af749..6fed17b09 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/overlay/HidePlayerOverlayButtonsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/overlay/HidePlayerOverlayButtonsPatch.kt @@ -60,6 +60,7 @@ val hidePlayerOverlayButtonsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatch.kt index 56a97f241..3a21a5080 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatch.kt @@ -62,6 +62,7 @@ val hideEndscreenCardsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/fullscreenambientmode/DisableFullscreenAmbientModePatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/fullscreenambientmode/DisableFullscreenAmbientModePatch.kt index 7c7de97a2..12fdc7500 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/fullscreenambientmode/DisableFullscreenAmbientModePatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/fullscreenambientmode/DisableFullscreenAmbientModePatch.kt @@ -17,7 +17,6 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/DisableFullscreenAmbientModePatch;" -@Suppress("unused") val disableFullscreenAmbientModePatch = bytecodePatch( name = "Disable fullscreen ambient mode", description = "Adds an option to disable the ambient mode when in fullscreen.", @@ -36,6 +35,7 @@ val disableFullscreenAmbientModePatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt index 39cbc4808..5f59fca55 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt @@ -107,7 +107,6 @@ private const val CUSTOM_FILTER_CLASS_NAME = private const val KEYWORD_FILTER_CLASS_NAME = "Lapp/revanced/extension/youtube/patches/components/KeywordContentFilter;" -@Suppress("unused") val hideLayoutComponentsPatch = bytecodePatch( name = "Hide layout components", description = "Adds options to hide general layout components.", @@ -129,6 +128,7 @@ val hideLayoutComponentsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/HideInfoCardsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/HideInfoCardsPatch.kt index 29eb8de6b..8ce56962e 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/HideInfoCardsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/HideInfoCardsPatch.kt @@ -63,6 +63,7 @@ val hideInfoCardsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/player/flyoutmenupanel/HidePlayerFlyoutMenuPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/player/flyoutmenupanel/HidePlayerFlyoutMenuPatch.kt index dc9662d1f..674eabc14 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/player/flyoutmenupanel/HidePlayerFlyoutMenuPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/player/flyoutmenupanel/HidePlayerFlyoutMenuPatch.kt @@ -11,7 +11,6 @@ import app.revanced.patches.youtube.misc.playertype.playerTypeHookPatch import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.misc.settings.settingsPatch -@Suppress("unused") val hidePlayerFlyoutMenuPatch = bytecodePatch( name = "Hide player flyout menu items", description = "Adds options to hide menu items that appear when pressing the gear icon in the video player.", @@ -31,6 +30,7 @@ val hidePlayerFlyoutMenuPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/rollingnumber/DisableRollingNumberAnimationPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/rollingnumber/DisableRollingNumberAnimationPatch.kt index bf1aba4fd..3260b3e01 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/rollingnumber/DisableRollingNumberAnimationPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/rollingnumber/DisableRollingNumberAnimationPatch.kt @@ -17,7 +17,6 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/DisableRollingNumberAnimationsPatch;" -@Suppress("unused") val disableRollingNumberAnimationPatch = bytecodePatch( name = "Disable rolling number animations", description = "Adds an option to disable rolling number animations of video view count, user likes, and upload time.", @@ -36,6 +35,7 @@ val disableRollingNumberAnimationPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/seekbar/HideSeekbarPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/seekbar/HideSeekbarPatch.kt index 34c231020..b37fc8de9 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/seekbar/HideSeekbarPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/seekbar/HideSeekbarPatch.kt @@ -12,7 +12,6 @@ import app.revanced.patches.youtube.misc.settings.settingsPatch import app.revanced.patches.youtube.shared.seekbarFingerprint import app.revanced.patches.youtube.shared.seekbarOnDrawFingerprint -@Suppress("unused") val hideSeekbarPatch = bytecodePatch( name = "Hide seekbar", description = "Adds an option to hide the seekbar.", @@ -32,6 +31,7 @@ val hideSeekbarPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt index 816e65d3b..d28b0e7d4 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt @@ -29,7 +29,6 @@ import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction import com.android.tools.smali.dexlib2.iface.reference.MethodReference -import com.sun.org.apache.bcel.internal.generic.InstructionConst.getInstruction internal var reelMultipleItemShelfId = -1L private set @@ -189,6 +188,7 @@ val hideShortsComponentsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/DisableSuggestedVideoEndScreenPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/DisableSuggestedVideoEndScreenPatch.kt index 17a83f98a..06d529632 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/DisableSuggestedVideoEndScreenPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/DisableSuggestedVideoEndScreenPatch.kt @@ -60,6 +60,7 @@ val disableSuggestedVideoEndScreenPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/time/HideTimestampPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/time/HideTimestampPatch.kt index acb5f9f19..a68339cbd 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/time/HideTimestampPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/time/HideTimestampPatch.kt @@ -9,7 +9,6 @@ import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.misc.settings.settingsPatch -@Suppress("unused") val hideTimestampPatch = bytecodePatch( name = "Hide timestamp", description = "Adds an option to hide the timestamp in the bottom left of the video player.", @@ -28,6 +27,7 @@ val hideTimestampPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/miniplayer/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/miniplayer/Fingerprints.kt index 125f043a3..5a2f47239 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/miniplayer/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/miniplayer/Fingerprints.kt @@ -43,6 +43,7 @@ internal const val MINIPLAYER_DRAG_DROP_FEATURE_KEY = 45628752L internal const val MINIPLAYER_HORIZONTAL_DRAG_FEATURE_KEY = 45658112L internal const val MINIPLAYER_ROUNDED_CORNERS_FEATURE_KEY = 45652224L internal const val MINIPLAYER_INITIAL_SIZE_FEATURE_KEY = 45640023L +internal const val MINIPLAYER_DISABLED_FEATURE_KEY = 45657015L internal val miniplayerModernConstructorFingerprint = fingerprint { accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR) @@ -50,6 +51,12 @@ internal val miniplayerModernConstructorFingerprint = fingerprint { literal { 45623000L } } +internal val miniplayerOnCloseHandlerFingerprint = fingerprint { + accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) + returns("Z") + literal { MINIPLAYER_DISABLED_FEATURE_KEY } +} + /** * Matches using the class found in [miniplayerModernViewParentFingerprint]. */ diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/miniplayer/MiniplayerPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/miniplayer/MiniplayerPatch.kt index cc2b9de91..cd5610096 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/miniplayer/MiniplayerPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/miniplayer/MiniplayerPatch.kt @@ -147,8 +147,7 @@ val miniplayerPatch = bytecodePatch( compatibleWith( "com.google.android.youtube"( - "18.38.44", - "18.49.37", + // 18.49.37 // Could be supported, but no reason when 19.16 exists and has modern types. // 19.14.43 // Incomplete code for modern miniplayers. // 19.15.36 // Different code for handling subtitle texts and not worth supporting. "19.16.39", // First with modern miniplayers. @@ -170,6 +169,7 @@ val miniplayerPatch = bytecodePatch( // 19.33.35 "19.34.42", "19.43.41", + "19.45.38", ), ) @@ -178,58 +178,60 @@ val miniplayerPatch = bytecodePatch( val preferences = mutableSetOf() - if (!is_19_16_or_greater) { - preferences += ListPreference( - "revanced_miniplayer_type", - summaryKey = null, - entriesKey = "revanced_miniplayer_type_legacy_entries", - entryValuesKey = "revanced_miniplayer_type_legacy_entry_values", - ) - } else { - preferences += ListPreference( - "revanced_miniplayer_type", - summaryKey = null, - ) - - if (is_19_25_or_greater) { - if (!is_19_29_or_greater) { - preferences += SwitchPreference("revanced_miniplayer_double_tap_action") - } - preferences += SwitchPreference("revanced_miniplayer_drag_and_drop") - } + preferences += if (is_19_43_or_greater) { - preferences += SwitchPreference("revanced_miniplayer_horizontal_drag") - } - - if (is_19_36_or_greater) { - preferences += SwitchPreference("revanced_miniplayer_rounded_corners") - } - - preferences += SwitchPreference("revanced_miniplayer_hide_subtext") - - preferences += if (is_19_26_or_greater) { - SwitchPreference("revanced_miniplayer_hide_expand_close") + ListPreference( + "revanced_miniplayer_type", + summaryKey = null, + ) } else { - SwitchPreference( - key = "revanced_miniplayer_hide_expand_close", - titleKey = "revanced_miniplayer_hide_expand_close_legacy_title", - summaryOnKey = "revanced_miniplayer_hide_expand_close_legacy_summary_on", - summaryOffKey = "revanced_miniplayer_hide_expand_close_legacy_summary_off", + ListPreference( + "revanced_miniplayer_type", + summaryKey = null, + entriesKey = "revanced_miniplayer_type_legacy_entries", + entryValuesKey = "revanced_miniplayer_type_legacy_entry_values", ) } - if (!is_19_26_or_greater) { - preferences += SwitchPreference("revanced_miniplayer_hide_rewind_forward") + if (is_19_25_or_greater) { + if (!is_19_29_or_greater) { + preferences += SwitchPreference("revanced_miniplayer_double_tap_action") } - - if (is_19_26_or_greater) { - preferences += TextPreference("revanced_miniplayer_width_dip", inputType = InputType.NUMBER) - } - - preferences += TextPreference("revanced_miniplayer_opacity", inputType = InputType.NUMBER) + preferences += SwitchPreference("revanced_miniplayer_drag_and_drop") } + if (is_19_43_or_greater) { + preferences += SwitchPreference("revanced_miniplayer_horizontal_drag") + } + + if (is_19_36_or_greater) { + preferences += SwitchPreference("revanced_miniplayer_rounded_corners") + } + + preferences += SwitchPreference("revanced_miniplayer_hide_subtext") + + preferences += if (is_19_26_or_greater) { + SwitchPreference("revanced_miniplayer_hide_expand_close") + } else { + SwitchPreference( + key = "revanced_miniplayer_hide_expand_close", + titleKey = "revanced_miniplayer_hide_expand_close_legacy_title", + summaryOnKey = "revanced_miniplayer_hide_expand_close_legacy_summary_on", + summaryOffKey = "revanced_miniplayer_hide_expand_close_legacy_summary_off", + ) + } + + if (!is_19_26_or_greater) { + preferences += SwitchPreference("revanced_miniplayer_hide_rewind_forward") + } + + if (is_19_26_or_greater) { + preferences += TextPreference("revanced_miniplayer_width_dip", inputType = InputType.NUMBER) + } + + preferences += TextPreference("revanced_miniplayer_opacity", inputType = InputType.NUMBER) + PreferenceScreen.PLAYER.addPreferences( PreferenceScreenPreference( key = "revanced_miniplayer_screen", @@ -349,11 +351,6 @@ val miniplayerPatch = bytecodePatch( it.method.insertLegacyTabletMiniplayerOverride(it.patternMatch!!.endIndex) } - if (!is_19_16_or_greater) { - // Return here, as patch below is only for the current versions of the app. - return@execute - } - // endregion // region Enable modern miniplayer. @@ -379,13 +376,6 @@ val miniplayerPatch = bytecodePatch( ) } - if (is_19_43_or_greater) { - miniplayerModernConstructorFingerprint.insertLiteralValueBooleanOverride( - MINIPLAYER_HORIZONTAL_DRAG_FEATURE_KEY, - "setHorizontalDrag", - ) - } - if (is_19_25_or_greater) { miniplayerModernConstructorFingerprint.insertLiteralValueBooleanOverride( MINIPLAYER_MODERN_FEATURE_LEGACY_KEY, @@ -442,6 +432,18 @@ val miniplayerPatch = bytecodePatch( ) } + if (is_19_43_or_greater) { + miniplayerOnCloseHandlerFingerprint.insertLiteralValueBooleanOverride( + MINIPLAYER_DISABLED_FEATURE_KEY, + "getMiniplayerOnCloseHandler" + ) + + miniplayerModernConstructorFingerprint.insertLiteralValueBooleanOverride( + MINIPLAYER_HORIZONTAL_DRAG_FEATURE_KEY, + "setHorizontalDrag", + ) + } + // endregion // region Fix 19.16 using mixed up drawables for tablet modern. diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/panels/popup/PlayerPopupPanelsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/panels/popup/PlayerPopupPanelsPatch.kt index a245dc8a9..b26ce1937 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/panels/popup/PlayerPopupPanelsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/panels/popup/PlayerPopupPanelsPatch.kt @@ -9,7 +9,6 @@ import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.misc.settings.settingsPatch -@Suppress("unused") val playerPopupPanelsPatch = bytecodePatch( name = "Disable player popup panels", description = "Adds an option to disable panels (such as live chat) from opening automatically.", @@ -28,6 +27,7 @@ val playerPopupPanelsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/player/background/PlayerControlsBackgroundPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/player/background/PlayerControlsBackgroundPatch.kt index d039837f0..78a9936ce 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/player/background/PlayerControlsBackgroundPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/player/background/PlayerControlsBackgroundPatch.kt @@ -18,6 +18,7 @@ val playerControlsBackgroundPatch = resourcePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/CustomPlayerOverlayOpacityPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/CustomPlayerOverlayOpacityPatch.kt index 91d39cd1f..c8b48e82a 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/CustomPlayerOverlayOpacityPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/CustomPlayerOverlayOpacityPatch.kt @@ -58,6 +58,7 @@ val customPlayerOverlayOpacityPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt index 51c8ccc24..05bcb7065 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt @@ -31,7 +31,6 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction import com.android.tools.smali.dexlib2.iface.reference.FieldReference import com.android.tools.smali.dexlib2.iface.reference.MethodReference import com.android.tools.smali.dexlib2.iface.reference.TypeReference -import com.sun.org.apache.bcel.internal.generic.InstructionConst.getInstruction private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/ReturnYouTubeDislikePatch;" @@ -39,7 +38,6 @@ private const val EXTENSION_CLASS_DESCRIPTOR = private const val FILTER_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/components/ReturnYouTubeDislikeFilterPatch;" -@Suppress("unused") val returnYouTubeDislikePatch = bytecodePatch( name = "Return YouTube Dislike", description = "Adds an option to show the dislike count of videos with Return YouTube Dislike.", @@ -61,6 +59,7 @@ val returnYouTubeDislikePatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/WideSearchbarPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/WideSearchbarPatch.kt index 233d611cf..9a44779e6 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/WideSearchbarPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/WideSearchbarPatch.kt @@ -17,7 +17,6 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/WideSearchbarPatch;" -@Suppress("unused") val wideSearchbarPatch = bytecodePatch( name = "Wide searchbar", description = "Adds an option to replace the search icon with a wide search bar. This will hide the YouTube logo when active.", @@ -36,6 +35,7 @@ val wideSearchbarPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/shortsautoplay/ShortsAutoplayPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/shortsautoplay/ShortsAutoplayPatch.kt index 04088be7e..72c81db4c 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/shortsautoplay/ShortsAutoplayPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/shortsautoplay/ShortsAutoplayPatch.kt @@ -19,7 +19,6 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/ShortsAutoplayPatch;" -@Suppress("unused") val shortsAutoplayPatch = bytecodePatch( name = "Shorts autoplay", description = "Adds options to automatically play the next Short.", @@ -38,6 +37,7 @@ val shortsAutoplayPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockPatch.kt index 18c440d4e..e959788af 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockPatch.kt @@ -117,6 +117,7 @@ val sponsorBlockPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt index 60f84dd72..5b96809bd 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt @@ -8,6 +8,8 @@ import app.revanced.patches.all.misc.resources.addResourcesPatch import app.revanced.patches.shared.misc.settings.preference.ListPreference import app.revanced.patches.shared.misc.settings.preference.SwitchPreference import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch +import app.revanced.patches.youtube.misc.playservice.is_19_17_or_greater +import app.revanced.patches.youtube.misc.playservice.versionCheckPatch import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.misc.settings.settingsPatch import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction @@ -15,16 +17,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/spoof/SpoofAppVersionPatch;" -@Suppress("unused") val spoofAppVersionPatch = bytecodePatch( name = "Spoof app version", description = "Adds an option to trick YouTube into thinking you are running an older version of the app. " + - "This can be used to restore old UI elements and features.", + "This can be used to restore old UI elements and features. " + + "Patching 19.16.39 or lower includes additional older spoofing targets.", ) { dependsOn( sharedExtensionPatch, settingsPatch, addResourcesPatch, + versionCheckPatch ) compatibleWith( @@ -35,6 +38,7 @@ val spoofAppVersionPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) @@ -43,10 +47,19 @@ val spoofAppVersionPatch = bytecodePatch( PreferenceScreen.GENERAL_LAYOUT.addPreferences( SwitchPreference("revanced_spoof_app_version"), - ListPreference( - key = "revanced_spoof_app_version_target", - summaryKey = null, - ), + if (is_19_17_or_greater) { + ListPreference( + key = "revanced_spoof_app_version_target", + summaryKey = null, + ) + } else { + ListPreference( + key = "revanced_spoof_app_version_target", + summaryKey = null, + entriesKey = "revanced_spoof_app_version_target_legacy_entries", + entryValuesKey = "revanced_spoof_app_version_target_legacy_entry_values" + ) + } ) val insertIndex = spoofAppVersionFingerprint.patternMatch!!.startIndex + 1 diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/startpage/ChangeStartPagePatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/startpage/ChangeStartPagePatch.kt index 26c2633ae..0dabd8568 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/startpage/ChangeStartPagePatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/startpage/ChangeStartPagePatch.kt @@ -17,7 +17,6 @@ import com.android.tools.smali.dexlib2.iface.reference.StringReference private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/ChangeStartPagePatch;" -@Suppress("unused") val changeStartPagePatch = bytecodePatch( name = "Change start page", description = "Adds an option to set which page the app opens in instead of the homepage.", @@ -36,6 +35,7 @@ val changeStartPagePatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/DisableResumingShortsOnStartupPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/DisableResumingShortsOnStartupPatch.kt index 2f48ee67e..819d9c50d 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/DisableResumingShortsOnStartupPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/DisableResumingShortsOnStartupPatch.kt @@ -19,7 +19,6 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/DisableResumingStartupShortsPlayerPatch;" -@Suppress("unused") val disableResumingShortsOnStartupPatch = bytecodePatch( name = "Disable resuming Shorts on startup", description = "Adds an option to disable the Shorts player from resuming on app startup when Shorts were last being watched.", @@ -38,6 +37,7 @@ val disableResumingShortsOnStartupPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/tablet/EnableTabletLayoutPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/tablet/EnableTabletLayoutPatch.kt index 181f5b920..0ec65b780 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/tablet/EnableTabletLayoutPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/tablet/EnableTabletLayoutPatch.kt @@ -14,7 +14,6 @@ import app.revanced.patches.youtube.misc.settings.settingsPatch const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/TabletLayoutPatch;" -@Suppress("unused") val enableTabletLayoutPatch = bytecodePatch( name = "Enable tablet layout", description = "Adds an option to enable tablet layout.", @@ -33,6 +32,7 @@ val enableTabletLayoutPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemePatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemePatch.kt index 194c4dbba..e5113071f 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemePatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemePatch.kt @@ -28,7 +28,6 @@ private const val EXTENSION_CLASS_DESCRIPTOR = internal const val GRADIENT_LOADING_SCREEN_AB_CONSTANT = 45412406L -@Suppress("unused") val themePatch = bytecodePatch( name = "Theme", description = "Adds options for theming and applies a custom background theme (dark background theme defaults to amoled black).", @@ -201,6 +200,7 @@ val themePatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/AlternativeThumbnailsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/AlternativeThumbnailsPatch.kt index 39df4a630..6c455d279 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/AlternativeThumbnailsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/AlternativeThumbnailsPatch.kt @@ -19,7 +19,6 @@ import app.revanced.patches.youtube.misc.settings.settingsPatch private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/AlternativeThumbnailsPatch;" -@Suppress("unused") val alternativeThumbnailsPatch = bytecodePatch( name = "Alternative thumbnails", description = "Adds options to replace video thumbnails using the DeArrow API or image captures from the video.", @@ -40,6 +39,7 @@ val alternativeThumbnailsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/BypassImageRegionRestrictionsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/BypassImageRegionRestrictionsPatch.kt index f8400ed25..5443d9333 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/BypassImageRegionRestrictionsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/BypassImageRegionRestrictionsPatch.kt @@ -13,7 +13,6 @@ import app.revanced.patches.youtube.misc.settings.settingsPatch private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/BypassImageRegionRestrictionsPatch;" -@Suppress("unused") val bypassImageRegionRestrictionsPatch = bytecodePatch( name = "Bypass image region restrictions", description = "Adds an option to use a different host for user avatar and channel images " + @@ -34,6 +33,7 @@ val bypassImageRegionRestrictionsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/announcements/AnnouncementsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/announcements/AnnouncementsPatch.kt index 5afa220b0..33ad5d472 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/announcements/AnnouncementsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/announcements/AnnouncementsPatch.kt @@ -12,7 +12,6 @@ import app.revanced.patches.youtube.shared.mainActivityOnCreateFingerprint private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/announcements/AnnouncementsPatch;" -@Suppress("unused") val announcementsPatch = bytecodePatch( name = "Announcements", description = "Adds an option to show announcements from ReVanced on app startup.", @@ -30,6 +29,7 @@ val announcementsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/AutoRepeatPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/AutoRepeatPatch.kt index e2c24ed5c..098cf6cb2 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/AutoRepeatPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/AutoRepeatPatch.kt @@ -11,10 +11,8 @@ import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.shared.autoRepeatFingerprint import app.revanced.patches.youtube.shared.autoRepeatParentFingerprint -import org.stringtemplate.v4.compiler.Bytecode.instructions // TODO: Rename this patch to AlwaysRepeatPatch (as well as strings and references in the extension). -@Suppress("unused") val autoRepeatPatch = bytecodePatch( name = "Always repeat", description = "Adds an option to always repeat videos when they end.", @@ -32,6 +30,7 @@ val autoRepeatPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/backgroundplayback/BackgroundPlaybackPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/backgroundplayback/BackgroundPlaybackPatch.kt index 36f7cfddd..a5cbd62a6 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/backgroundplayback/BackgroundPlaybackPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/backgroundplayback/BackgroundPlaybackPatch.kt @@ -54,6 +54,7 @@ val backgroundPlaybackPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/debugging/EnableDebuggingPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/debugging/EnableDebuggingPatch.kt index a5f8331e1..1c921e3fa 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/debugging/EnableDebuggingPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/debugging/EnableDebuggingPatch.kt @@ -17,7 +17,6 @@ import com.android.tools.smali.dexlib2.Opcode private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/EnableDebuggingPatch;" -@Suppress("unused") val enableDebuggingPatch = bytecodePatch( name = "Enable debugging", description = "Adds options for debugging.", @@ -36,6 +35,7 @@ val enableDebuggingPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/dimensions/spoof/SpoofDeviceDimensionsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/dimensions/spoof/SpoofDeviceDimensionsPatch.kt index 66718480c..3a5580345 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/dimensions/spoof/SpoofDeviceDimensionsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/dimensions/spoof/SpoofDeviceDimensionsPatch.kt @@ -12,7 +12,6 @@ import app.revanced.patches.youtube.misc.settings.settingsPatch private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/spoof/SpoofDeviceDimensionsPatch;" -@Suppress("unused") val spoofDeviceDimensionsPatch = bytecodePatch( name = "Spoof device dimensions", description = "Adds an option to spoof the device dimensions which can unlock higher video qualities.", @@ -31,6 +30,7 @@ val spoofDeviceDimensionsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/dns/CheckWatchHistoryDomainNameResolutionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/dns/CheckWatchHistoryDomainNameResolutionPatch.kt index e84893ebb..1502783f6 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/dns/CheckWatchHistoryDomainNameResolutionPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/dns/CheckWatchHistoryDomainNameResolutionPatch.kt @@ -9,7 +9,6 @@ import app.revanced.patches.youtube.shared.mainActivityOnCreateFingerprint private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/CheckWatchHistoryDomainNameResolutionPatch;" -@Suppress("unused") val checkWatchHistoryDomainNameResolutionPatch = bytecodePatch( name = "Check watch history domain name resolution", description = "Checks if the device DNS server is preventing user watch history from being saved.", @@ -24,6 +23,7 @@ val checkWatchHistoryDomainNameResolutionPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/SpoofVideoStreamsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/SpoofVideoStreamsPatch.kt index 25b35c447..4cb6fb93a 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/SpoofVideoStreamsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/SpoofVideoStreamsPatch.kt @@ -43,6 +43,7 @@ val spoofVideoStreamsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/gms/GmsCoreSupportPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/gms/GmsCoreSupportPatch.kt index 3e808b1d2..496dd77e6 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/gms/GmsCoreSupportPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/gms/GmsCoreSupportPatch.kt @@ -41,6 +41,7 @@ val gmsCoreSupportPatch = gmsCoreSupportPatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) } diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/links/BypassURLRedirectsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/links/BypassURLRedirectsPatch.kt index d2c06292c..4e87613a4 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/links/BypassURLRedirectsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/links/BypassURLRedirectsPatch.kt @@ -17,7 +17,6 @@ import com.android.tools.smali.dexlib2.iface.Method import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction import com.android.tools.smali.dexlib2.iface.reference.MethodReference -@Suppress("unused") val bypassURLRedirectsPatch = bytecodePatch( name = "Bypass URL redirects", description = "Adds an option to bypass URL redirects and open the original URL directly.", @@ -37,6 +36,7 @@ val bypassURLRedirectsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/links/OpenLinksExternallyPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/links/OpenLinksExternallyPatch.kt index c2d24915f..76e2455ee 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/links/OpenLinksExternallyPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/links/OpenLinksExternallyPatch.kt @@ -10,7 +10,6 @@ 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.reference.StringReference -@Suppress("unused") val openLinksExternallyPatch = bytecodePatch( name = "Open links externally", description = "Adds an option to always open links in your browser instead of in the in-app-browser.", @@ -48,6 +47,7 @@ val openLinksExternallyPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/RemoveTrackingQueryParameterPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/RemoveTrackingQueryParameterPatch.kt index 7a6d519e4..cdac6f89d 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/RemoveTrackingQueryParameterPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/RemoveTrackingQueryParameterPatch.kt @@ -18,7 +18,6 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/RemoveTrackingQueryParameterPatch;" -@Suppress("unused") val removeTrackingQueryParameterPatch = bytecodePatch( name = "Remove tracking query parameter", description = "Adds an option to remove the tracking info from links you share.", @@ -37,6 +36,7 @@ val removeTrackingQueryParameterPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/zoomhaptics/ZoomHapticsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/zoomhaptics/ZoomHapticsPatch.kt index 77ec07f13..db658e320 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/zoomhaptics/ZoomHapticsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/zoomhaptics/ZoomHapticsPatch.kt @@ -10,7 +10,6 @@ import app.revanced.patches.shared.misc.settings.preference.SwitchPreference import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.misc.settings.settingsPatch -@Suppress("unused") val zoomHapticsPatch = bytecodePatch( name = "Disable zoom haptics", description = "Adds an option to disable haptics when zooming.", @@ -28,6 +27,7 @@ val zoomHapticsPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch.kt index 2a9a91245..b990d74af 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch.kt @@ -111,7 +111,7 @@ val playerResponseMethodHookPatch = bytecodePatch { } } -sealed class Hook private constructor(private val methodDescriptor: String) { +sealed class Hook(private val methodDescriptor: String) { class VideoId(methodDescriptor: String) : Hook(methodDescriptor) class ProtoBufferParameter(methodDescriptor: String) : Hook(methodDescriptor) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/RememberVideoQualityPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/RememberVideoQualityPatch.kt index 8a2dfe4cc..3e81a0d90 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/RememberVideoQualityPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/RememberVideoQualityPatch.kt @@ -18,12 +18,10 @@ import app.revanced.patches.youtube.video.information.videoInformationPatch 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 -import com.sun.org.apache.bcel.internal.generic.InstructionConst.getInstruction private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/playback/quality/RememberVideoQualityPatch;" -@Suppress("unused") val rememberVideoQualityPatch = bytecodePatch( name = "Remember video quality", description = "Adds an option to remember the last video quality selected.", @@ -43,6 +41,7 @@ val rememberVideoQualityPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/PlaybackSpeedPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/PlaybackSpeedPatch.kt index 42caa99ad..880081c51 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/PlaybackSpeedPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/PlaybackSpeedPatch.kt @@ -9,7 +9,7 @@ import app.revanced.patches.youtube.video.speed.remember.rememberPlaybackSpeedPa val playbackSpeedPatch = bytecodePatch( name = "Playback speed", description = "Adds options to customize available playback speeds, remember the last playback speed selected " + - "and show a speed dialog button to the video player.", + "and show a speed dialog button in the video player.", ) { dependsOn( playbackSpeedButtonPatch, @@ -25,6 +25,7 @@ val playbackSpeedPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) } diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch.kt index 3c51559ea..75fcf392a 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch.kt @@ -61,10 +61,10 @@ internal val rememberPlaybackSpeedPatch = bytecodePatch { invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->getPlaybackSpeedOverride()F move-result v0 - # Check if the playback speed is not 1.0x. - const/high16 v1, 1.0f + # Check if the playback speed is not auto (-2.0f) + const/4 v1, 0x0 cmpg-float v1, v0, v1 - if-eqz v1, :do_not_override + if-lez v1, :do_not_override # Get the instance of the class which has the container class field below. iget-object v1, p0, $onItemClickListenerClassFieldReference diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/video/videoqualitymenu/RestoreOldVideoQualityMenuPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/video/videoqualitymenu/RestoreOldVideoQualityMenuPatch.kt index 886db27df..0358d13dd 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/video/videoqualitymenu/RestoreOldVideoQualityMenuPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/video/videoqualitymenu/RestoreOldVideoQualityMenuPatch.kt @@ -80,6 +80,7 @@ val restoreOldVideoQualityMenuPatch = bytecodePatch( "19.25.37", "19.34.42", "19.43.41", + "19.45.38", ), ) diff --git a/patches/src/main/resources/addresources/values-af-rZA/strings.xml b/patches/src/main/resources/addresources/values-af-rZA/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-af-rZA/strings.xml +++ b/patches/src/main/resources/addresources/values-af-rZA/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-am-rET/strings.xml b/patches/src/main/resources/addresources/values-am-rET/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-am-rET/strings.xml +++ b/patches/src/main/resources/addresources/values-am-rET/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-ar-rSA/strings.xml b/patches/src/main/resources/addresources/values-ar-rSA/strings.xml index 535c59f76..d4030aa89 100644 --- a/patches/src/main/resources/addresources/values-ar-rSA/strings.xml +++ b/patches/src/main/resources/addresources/values-ar-rSA/strings.xml @@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t الهدف من تغيير إصدار التطبيق + 18.38.44 - استعادة أيقونات مشغل Shorts القديمة - 18.33.40 - استعادة RYD على Shorts بوضع التخفي - 18.20.39 - استعادة سرعة الفيديو الواسعة & قائمة الجودة - 18.09.39 - استعادة علامة تبويب المكتبة - 17.41.37 - استعادة رف قائمة التشغيل القديم + 18.33.40 - استعادة RYD على Shorts بوضع التخفي + 18.20.39 - استعادة قائمة سرعة الفيديو العريضة & الجودة + 18.09.39 - استعادة علامة تبويب المكتبة + 17.33.42 - استعادة رف قائمة التشغيل القديم تعيين صفحة البداية @@ -1009,8 +1010,9 @@ This is because Crowdin requires temporarily flattening this file and removing t المشغل المصغر تغيير نمط المشغل المصغر داخل التطبيق نوع المشغل المصغر + معطّل الأصلي - الجوّال + الحد الأدنى الجهاز اللوحي حديث 1 حديث 2 @@ -1145,7 +1147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t تم تمكين الاهتزاز - جودة تلقائية + + تلقائي تذكر تغييرات جودة الفيديو تنطبق تغييرات الجودة على جميع مقاطع الفيديو تنطبق تغييرات الجودة على الفيديو الحالي فقط @@ -1168,6 +1171,7 @@ This is because Crowdin requires temporarily flattening this file and removing t إضافة أو تغيير سرعة التشغيل المخصصة يجب أن تكون السرعة المخصصة أقل من %s. باستخدام القيم الافتراضية. سرعة تشغيل مخصصة غير صالحة. استخدام القيم الافتراضية. + تلقائي تذكر التغيرات في سرعة التشغيل diff --git a/patches/src/main/resources/addresources/values-as-rIN/strings.xml b/patches/src/main/resources/addresources/values-as-rIN/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-as-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-as-rIN/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-az-rAZ/strings.xml b/patches/src/main/resources/addresources/values-az-rAZ/strings.xml index 5748acbea..3314bc7c3 100644 --- a/patches/src/main/resources/addresources/values-az-rAZ/strings.xml +++ b/patches/src/main/resources/addresources/values-az-rAZ/strings.xml @@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Saxta tətbiq versiyası hədəfi + 18.38.44 - Köhnə Shorts oynadıcı işarələrin bərpa et - 18.33.40 - Shorts gizli rejimində RYD-ni bərpa et - 18.20.39 - Geniş video sürəti & keyfiyyət menyusunu bərpa et - 18.09.39 - Kitabxana panelini bərpa et - 17.41.37 - Köhnə pleylist bölməsin bərpa et + 18.33.40 - Shorts gizli rejimində RYD-ni bərpa et + 18.20.39 - Geniş video sürəti & keyfiyyət menyusunu bərpa et + 18.09.39 - Kitabxana panelini bərpa et + 17.33.42 - Köhnə pleylist bölməsin bərpa et Başlanğıc səhifəsini tənzimlə @@ -1009,8 +1010,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Kiçik oynadıcı Tətbiqdə kiçildilən oynadıcı üslubunu dəyişdir Kiçik oynadıcı növü + Qeyri-aktivdir Orijinal - Telefon Planşet Müasir 1 Müasir 2 @@ -1145,7 +1146,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Toxunuş əks-əlaqəsi aktivdir - Avtomatik keyfiyyət + + Avtomatik Video keyfiyyəti dəyişikliklərini xatırla Keyfiyyət dəyişiklikləri bütün videolara tətbiq edilir Keyfiyyət dəyişiklikləri yalnız cari videoya tətbiq edilir @@ -1168,6 +1170,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Fərdi oynatma sürətlərini əlavə et və ya dəyiş Fərdi sürətlər %s-dən az olmalıdır. Standart dəyərlər istifadəsi. Etibarsız oynatma sürətləri. Standartlar istifadədədir. + Avtomatik Oynatma sürəti dəyişikliklərin xatırla diff --git a/patches/src/main/resources/addresources/values-be-rBY/strings.xml b/patches/src/main/resources/addresources/values-be-rBY/strings.xml index 325ededb0..d8abff278 100644 --- a/patches/src/main/resources/addresources/values-be-rBY/strings.xml +++ b/patches/src/main/resources/addresources/values-be-rBY/strings.xml @@ -882,10 +882,10 @@ This is because Crowdin requires temporarily flattening this file and removing t This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch --> Падробка мэтавай версіі праграмы - 18.33.40 - Аднаўленне RYD на Shorts у рэжыме інкогніта - 18.20.39 - Аднавіць хуткасць шырокага відэа & якаснае меню - 18.09.39 - Аднаўленне ўкладкі бібліятэкі - 17.41.37 - Аднаўленне старой паліцы плэйлістоў + 18.33.40 - Аднаўленне RYD на Shorts у рэжыме інкогніта + 18.20.39 - Аднавіць хуткасць шырокага відэа & якаснае меню + 18.09.39 - Аднаўленне ўкладкі бібліятэкі + 17.33.42 - Аднаўленне старой паліцы плэйлістоў Усталяваць стартавую старонку @@ -914,8 +914,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Міні-плэер Змяніце стыль мінімізаванага плэера ў праграме Тып мініплэера + Інваліды Арыгінал - Тэлефон Планшэт Сучасны 1 Сучасны 2 @@ -1029,7 +1029,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Тактыльныя сігналы ўключаны - Аўтаматычнае якасць + + Аўто Запомніце змены якасці відэа Змены якасці распаўсюджваюцца на ўсе відэа Змены якасці прымяняюцца толькі да бягучага відэа @@ -1048,6 +1049,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Карыстальніцкія хуткасці прайгравання Карыстальніцкія хуткасці павінны быць менш за %s. Выкарыстанне значэнняў па змаўчанні. Няправільныя карыстальніцкія хуткасці прайгравання. Выкарыстанне значэнняў па змаўчанні. + Аўто Запомніце змены хуткасці прайгравання diff --git a/patches/src/main/resources/addresources/values-bg-rBG/strings.xml b/patches/src/main/resources/addresources/values-bg-rBG/strings.xml index 2be1d543c..958ecc14a 100644 --- a/patches/src/main/resources/addresources/values-bg-rBG/strings.xml +++ b/patches/src/main/resources/addresources/values-bg-rBG/strings.xml @@ -86,6 +86,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Видео + Възпроизвеждане на Shorts в фонов режим + Фоновото възпроизвеждане на Shorts е деактивирано + Фоновото възпроизвеждане на Shorts е активирано Отстраняване на грешки @@ -326,6 +329,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Скриване на банера за показване на продукти Банерът е скрит Банерът е показан + Скриване на рафта за пазаруване + Рафта за пазаруване е скрит + Рафта за пазаруване се показва Скриване на връзките за пазаруване в описанието на видеоклипа Връзките за пазаруване са скрити Връзките за пазаруване са показани @@ -512,6 +518,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Подсветка около видеото Менюто за подсветка около видеото е скрито Менюто за подсветка около видеото се показва + Меню за постоянна сила на звука Постоянно ниво на звука се показва Постоянно ниво на звука е скрито @@ -540,6 +547,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Менюто за гледане в VR е скрито Менюто за гледане в VR се показва Скриване на футъра на менюто за качество на видеото + Долният колонтитул на менюто за качество на видеото е скрит + Долният колонтитул на менюто за качество на видеото се показва Бутони за Предишно & Следващо видео @@ -633,6 +642,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Бутон \"Зелен екран\" Бутон \"Зелен екран\" е скрит Бутон \"Зелен екран\" се показва + Скриване на бутона за хаштаг + Бутона за хаштаг е скрит + Бутона за хаштаг се показва Скриване на предложенията за търсене Предложенията за търсене са скрити Предложенията за търсене се показват @@ -751,6 +763,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Широката лента за търсене е изключена + Активиране на висококачествени миниатюри + Миниатюри с високо качество в лентата на възпроизвеждане + Миниатюри с средно качество в лентата на възпроизвеждане + Миниатюри с високо качество в лентата на прогреса на цял екран + Миниатюри със средно качество в лентата на прогреса на цял екран + Това също така ще възстанови миниатюри на потоци на живо, които нямат миниатюри на лентата на прогреса.\n\nМиниизображенията на лентата на прогреса ще използват същото качество като текущия видеоклип.\n\nТази функция работи най-добре с качество на видеото 720p или по-ниско и когато използвате много бързо интернет връзка. Стари миниатюри на времевата линия Над лентата за възпроизвеждане се появяват миниатюри Миниатюрите се показват в режим на цял екран @@ -944,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Подлъгване за версията на + 18.38.44 - Възстановете старите икони на Shorts в плейъра - 18.33.40 - Възстановете RYD в режим „инкогнито“ на Shorts - 18.20.39 - Възстановяване на видео скорост & в менюто за качество - 18.09.39 - Възстановяване на таб \"Библиотека\" - 17.41.37 - Връщане на секцията с плейлиста към стария стил + 18.33.40 - Възстановете RYD в режим „инкогнито“ на Shorts + 18.20.39 - Възстановяване на видео скорост & в менюто за качество + 18.09.39 - Възстановяване на таб \"Библиотека\" + 17.33.42 - Връщане на секцията с плейлиста към стария стил Задай начална страница @@ -974,6 +993,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Shorts плейъра при стартиране на приложението се показва + Автоматично пускане Shorts + Shorts ще се пускат автоматично + Shorts ще се повторят + Автоматично пускане на Shorts във фонов режим + Shorts ще се възпроизвеждат автоматично един след друг във фонов режим + Shorts ще се повтори във фонов режим Включи режим за таблет @@ -985,13 +1010,29 @@ This is because Crowdin requires temporarily flattening this file and removing t Минимизиран екран за възпроизвеждане Променете стила на минимизирания екран за възпроизвеждане Минимизиран тип екран за гледане + Деактивирано Оригинал - Телефон Таблет Модерен 1 Модерен 2 Модерен 3 + Активирайте заоблени ъгли + Ъглите са заоблени + Ъглите са нормални + Активирайте двойното докосване и щипване за преоразмеряване + Действието с двойно докосване и щипване за преоразмеряване е активирано\n\n• Докоснете двукратно, за да увеличите размера на миниплейъра\n• Докоснете два пъти отново, за да възстановите оригиналния размер + Двойно докосване и щипване за преоразмеряване е деактивирано + Разрешете плъзгане и местене + Плъзгане и местенето е активирано\n\nМиниплейърът може да се плъзга до всеки ъгъл на екрана + Плъзгането и преместването е деактивирано + Активиране на хоризонтално плъзгане + Жестът за хоризонтално плъзгане е активиран\n\nМиниплейърът може да се плъзга извън екрана наляво или надясно + Жестът за хоризонтално плъзгане е деактивиран + Скриване на бутона за затваряне + Бутонът за затваряне е скрит + Показан е бутон за затваряне Бутони за разширяване и свиване на екрана + Бутоните са скрити\n\nПлъзнете за разгъване или затваряне Бутони за разширяване и свиване на екрана са видими Екранни текстове, етикети Скрити @@ -1001,6 +1042,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Бутони за напред и назад са показани Първоначален размер Първоначален размер на екрана, в пиксели + Размерът на пиксела трябва да бъде между %1$s и %2$s Прозрачност на менютата Стойност на прозрачност между 0-100, където 0 е прозрачно Прозрачността на менюто трябва да бъде между 0-100 @@ -1016,6 +1058,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Показва се оригиналния цвят на лентата за напредък Персонализиран цвят на лентата за напредък Цветове на лентата за напредък + Невалидна стойност за цвят на лентата на прогреса Прескочете забраната за зареждане на изображение @@ -1103,7 +1146,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Вибрациите са активирани - Автоматично качество + + Авто Запомни промените в качеството на видеото Промените в качеството се отнасят за всички видеоклипове Промените в качеството се отнасят само за текущия видеоклип @@ -1119,10 +1163,14 @@ This is because Crowdin requires temporarily flattening this file and removing t Бутонът не е показан + Менюто за потребителска скорост + Менюто за потребителска скорост се показва + Менюто за потребителска скорост не се показва Персонализирани скорости на възпроизвеждане Добавете или променете скоростa на възпроизвеждане Персоналната скорост трябва да е по-малка от %s. Използване на стойности по подразбиране. Невалидни персонализирани скорости на възпроизвеждане. Използване на стойности по подразбиране. + Авто Запомни промените в скоростта на възпроизвеждане diff --git a/patches/src/main/resources/addresources/values-bn-rBD/strings.xml b/patches/src/main/resources/addresources/values-bn-rBD/strings.xml index 4d620b162..11a8533b0 100644 --- a/patches/src/main/resources/addresources/values-bn-rBD/strings.xml +++ b/patches/src/main/resources/addresources/values-bn-rBD/strings.xml @@ -874,10 +874,10 @@ This is because Crowdin requires temporarily flattening this file and removing t This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch --> স্পুফ অ্যাপ সংস্করণ লক্ষ্য - 18.33.40 - ছদ্মবেশি মোডে RYD পুনরুদ্ধার করে - 18.20.39 - প্রশ্বস্ত ভিডিও স্পিড এবং গুণমান মেনু পুনরুদ্ধার করে - 18.09.39 - লাইব্রেরি ট্যাপ পুনরুদ্ধার করে - 17.41.37 - পুরোনো প্লেলিস্ট শেলফ পুনরুদ্ধার করে + 18.33.40 - ছদ্মবেশি মোডে RYD পুনরুদ্ধার করে + 18.20.39 - প্রশ্বস্ত ভিডিও স্পিড এবং গুণমান মেনু পুনরুদ্ধার করে + 18.09.39 - লাইব্রেরি ট্যাপ পুনরুদ্ধার করে + 17.33.42 - পুরোনো প্লেলিস্ট শেলফ পুনরুদ্ধার করে শুরুর পৃষ্ঠা সেট করুন @@ -906,8 +906,8 @@ This is because Crowdin requires temporarily flattening this file and removing t মিনিপ্লেয়ার অ্যাপের মধ্যকার মিনিমাইজড প্লেয়ার এর ধরণ পরিবর্তন করুন মিনিপ্লেয়ার ধরণ + নিষ্ক্রিয় হয়েছে আসল - ফোন ট্যাবলেট মর্ডান ১ মর্ডান ২ @@ -1017,7 +1017,8 @@ This is because Crowdin requires temporarily flattening this file and removing t কম্পন সক্রিয় করা হয়েছে - স্বয়ংক্রিয় গুণমান + + স্বতস্ফূর্তভাবে ভিডিও গুণমান পরিবর্তন মনে রাখুন গুণমান পরিবর্তন সব ভিডিওতে প্রয়োগ করা হয়েছে গুণমান পরিবর্তন বর্তমান ভিডিওতে প্রয়োগ করা হয়েছে @@ -1036,6 +1037,7 @@ This is because Crowdin requires temporarily flattening this file and removing t নিজস্ব প্লেব্যাক স্পিড নিজস্ব স্পিড অবশ্যই %sগুণ থেকে কম হতে হবে। মূল ভ্যালু ব্যবহৃত হচ্ছে। ভুল নিজস্ব প্লেব্যাক স্পিড। মূল ভ্যালু ব্যবহৃত হচ্ছে। + স্বতস্ফূর্তভাবে প্লেব্যাকের স্পিড পরিবর্তন মনে রাখুন diff --git a/patches/src/main/resources/addresources/values-bs-rBA/strings.xml b/patches/src/main/resources/addresources/values-bs-rBA/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-bs-rBA/strings.xml +++ b/patches/src/main/resources/addresources/values-bs-rBA/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-ca-rES/strings.xml b/patches/src/main/resources/addresources/values-ca-rES/strings.xml index cf8bc436e..c040804fd 100644 --- a/patches/src/main/resources/addresources/values-ca-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-ca-rES/strings.xml @@ -183,6 +183,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + Desactivat @@ -216,6 +217,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml b/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml index 339f7e5e3..6a0847948 100644 --- a/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml +++ b/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml @@ -963,11 +963,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Cíl pro spontánní verzi aplikace + 18.38.44 - Obnovuje staré ikony Shorts přehrávače - 18.33.40 - Obnovení RYD v krátkém anonymním režimu - 18.20.39 - Obnovení široké rychlosti videa & kvalitní menu - 18.09.39 - Obnovení záložky knihovny - 17.41.37 - Obnovit starou skladbu + 18.33.40 - Obnovení RYD v krátkém anonymním režimu + 18.20.39 - Obnovení široké rychlosti videa & kvalitní menu + 18.09.39 - Obnovení záložky knihovny + 17.33.42 - Obnovit starou skladbu Nastavit úvodní stránku @@ -1010,8 +1011,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Minipřehrávač Změnit styl přehrávače minimalizovaného nastavení Typ minipřehrávače + Vypnuto Původní - Telefon + Minimální Tablet Moderní 1 Moderní 2 @@ -1146,7 +1148,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Hmatové úlohy jsou povoleny - Automatická kvalita + + Automaticky Zapamatovat změny kvality videa Změny kvality platí pro všechna videa Změny kvality se vztahují pouze na aktuální video @@ -1169,6 +1172,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Přidat nebo změnit vlastní rychlosti přehrávání Vlastní rychlosti musí být menší než %s. Použití výchozích hodnot. Neplatné vlastní rychlosti přehrávání. Použití výchozích hodnot. + Automaticky Zapamatovat změny rychlosti přehrávání diff --git a/patches/src/main/resources/addresources/values-da-rDK/strings.xml b/patches/src/main/resources/addresources/values-da-rDK/strings.xml index 77adc4bb9..8e4469097 100644 --- a/patches/src/main/resources/addresources/values-da-rDK/strings.xml +++ b/patches/src/main/resources/addresources/values-da-rDK/strings.xml @@ -952,11 +952,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Spoof app version mål + 18.38.44 - Gendan gamle Shorts player ikoner - 18.33.40 - Gendan RYD på Shorts inkognitotilstand - 18.20.39 - Gendan bred video hastighed & kvalitet menu - 18.09.39 - Genopret biblioteks fane - 17.41.37 - Gendan gammel spilleliste hylde + 18.33.40 - Gendan RYD på Shorts inkognitotilstand + 18.20.39 - Gendan bred video hastighed & kvalitet menu + 18.09.39 - Genopret biblioteks fane + 17.33.42 - Gendan gammel spilleliste hylde Indstil startside @@ -992,8 +993,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Miniplayer Ændre stilen for den i app minimeret afspiller Type af miniplayer + Deaktiveret Oprindelig - Telefon + Minimal Tablet Moderne 1 Moderne 2 @@ -1128,7 +1130,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Haptics er aktiveret - Automatisk kvalitet + + Automatisk Husk ændringer i videokvalitet Kvalitetsændringer gælder for alle videoer Kvalitetsændringer gælder kun for den aktuelle video @@ -1151,6 +1154,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Tilføj eller ændr den brugerdefinerede afspilningshastighed Brugerdefinerede hastigheder skal være mindre end %s. Bruger standardværdier. Ugyldig brugerdefineret afspilningshastighed. Brug af standardværdier. + Automatisk Husk ændringer i afspilningshastighed diff --git a/patches/src/main/resources/addresources/values-de-rDE/strings.xml b/patches/src/main/resources/addresources/values-de-rDE/strings.xml index 152a6ff44..a1afb8b23 100644 --- a/patches/src/main/resources/addresources/values-de-rDE/strings.xml +++ b/patches/src/main/resources/addresources/values-de-rDE/strings.xml @@ -963,11 +963,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Spoof-App-Versionsziel + 18.38.44 - Alte Shorts Spielersymbole wiederherstellen - 18.33.40 - RYD auf Shorts Inkognito-Modus wiederherstellen - 18.20.39 - Wiederherstellen der breiten Videogeschwindigkeit & Qualitätsmenü - 18.09.39 - Bibliotheks-Tab wiederherstellen - 17.41.37 - Alte Wiedergabeliste wiederherstellen + 18.33.40 - RYD auf Shorts Inkognito-Modus wiederherstellen + 18.20.39 - Wiederherstellen der breiten Videogeschwindigkeit & Qualitätsmenü + 18.09.39 - Bibliotheks-Tab wiederherstellen + 17.33.42 - Alte Wiedergabeliste wiederherstellen Startseite festlegen @@ -1010,8 +1011,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Miniplayer Ändere den Stil des in App minimierten Players Minispielertyp + Deaktiviert Original - Telefon + Minimal Tablets Modern 1 Modern 2 @@ -1146,7 +1148,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Haptik ist aktiviert - Automatische Qualität + + Auto Änderungen der Videoqualität merken Qualitätsänderungen gelten für alle Videos Qualitätsänderungen gelten nur für das aktuelle Video @@ -1169,6 +1172,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Hinzufügen oder Ändern der benutzerdefinierten Wiedergabegeschwindigkeit Benutzerdefinierte Geschwindigkeiten müssen kleiner als %ssein. Standardwerte werden verwendet. Ungültige benutzerdefinierte Wiedergabegeschwindigkeiten. Standardwerte verwenden. + Auto Änderungen der Wiedergabegeschwindigkeit merken diff --git a/patches/src/main/resources/addresources/values-el-rGR/strings.xml b/patches/src/main/resources/addresources/values-el-rGR/strings.xml index 9efe9c8f8..5e59528ab 100644 --- a/patches/src/main/resources/addresources/values-el-rGR/strings.xml +++ b/patches/src/main/resources/addresources/values-el-rGR/strings.xml @@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Έκδοση τροποποίησης της εφαρμογής + 18.38.44 - Επαναφορά των παλαιών κουμπιών της οθόνης αναπαραγωγής των Shorts - 18.33.40 - Επαναφορά λειτουργικότητας του RYD στα Shorts σε λειτουργία ανώνυμης περιήγησης - 18.20.39 - Επαναφορά ευρέος μενού ταχύτητας & ποιότητας βίντεο - 18.09.39 - Επαναφορά της καρτέλας βιβλιοθήκης - 17.41.37 - Επαναφορά ενότητας λίστας αναπαραγωγής παλιού στυλ + 18.33.40 - Επαναφορά λειτουργικότητας του RYD στα Shorts σε λειτουργία ανώνυμης περιήγησης + 18.20.39 - Επαναφορά ευρύτερου μενού ταχύτητας & ποιότητας βίντεο + 18.09.39 - Επαναφορά της καρτέλας βιβλιοθήκης + 17.33.42 - Επαναφορά ενότητας λίστας αναπαραγωγής παλιού στυλ Ορισμός αρχικής σελίδας @@ -1009,8 +1010,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Ελαχιστοποιημένη οθόνη αναπαραγωγής Αλλάξτε το στυλ της ελαχιστοποιημένης οθόνης αναπαραγωγής Τύπος ελαχιστοποιημένης οθόνης αναπαραγωγής + Ανενεργό Αρχικός - Τηλεφώνου + Ελάχιστα Ταμπλετ Μοντέρνος 1 Μοντέρνος 2 @@ -1145,7 +1147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Η απόκριση δόνησης είναι ενεργοποιημένη - Αυτόματη ποιότητα + + Αυτόματη Απομνημόνευση αλλαγών ποιότητας βίντεο Οι αλλαγές ποιότητας θα ισχύουν για όλα τα βίντεο Οι αλλαγές ποιότητας θα ισχύουν μόνο για το τρέχον βίντεο @@ -1168,6 +1171,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Προσθέστε ή αλλάξτε τις προσαρμοσμένες ταχύτητες αναπαραγωγής Οι ταχύτητες πρέπει να είναι μικρότερες από %sx. Επαναφορά... Μη έγκυρες ταχύτητες αναπαραγωγής. Επαναφορά... + Αυτόματη Απομνημόνευση αλλαγών ταχύτητας αναπαραγωγής diff --git a/patches/src/main/resources/addresources/values-es-rES/strings.xml b/patches/src/main/resources/addresources/values-es-rES/strings.xml index 859c298e4..ba7b715b7 100644 --- a/patches/src/main/resources/addresources/values-es-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-es-rES/strings.xml @@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Destino de versión de la aplicación Spoof + 18.38.44 - Restaurar iconos antiguos del reproductor de Shorts - 18.33.40 - Restaurar RYD en Shorts de modo incógnito - 18.20.39 - Restaurar la velocidad de vídeo ancha & menú de calidad - 18.09.39 - Restaurar pestaña de biblioteca - 17.41.37 - Restaurar el estante viejo de lista de reproducción + 18.33.40 - Restaurar RYD en Shorts de modo incógnito + 18.20.39 - Restaurar la velocidad de vídeo ancha & menú de calidad + 18.09.39 - Restaurar pestaña de biblioteca + 17.33.42 - Restaurar el estante viejo de lista de reproducción Establecer página de inicio @@ -1009,8 +1010,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Minireproductor Cambiar el estilo del reproductor minimizado de la aplicación Tipo de minreproductor + Desactivado Original - Teléfono + Mínimo Tablet Moderna 1 Moderna 2 @@ -1083,7 +1085,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Toast no se muestra si DeFlecha no está disponible DeArrow API endpoint La URL del final de la caché en miniatura de DeArrow - Todavía captura de vídeo + Capturas estáticas de vídeo Las capturas se toman desde el principio/medio/final de cada vídeo. Estas imágenes están incorporadas en YouTube y no se utiliza ninguna API externa Usar capturas aún rápidas Usar captura de calidad media todavía. Las miniaturas se cargarán más rápido, pero streams en vivo, no liberados o vídeos muy antiguos pueden mostrar miniaturas en blanco @@ -1145,7 +1147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Haptics están habilitados - Calidad automática + + Auto Recordar cambios de calidad de vídeo Los cambios de calidad se aplican a todos los vídeos Los cambios de calidad sólo se aplican al vídeo actual @@ -1168,6 +1171,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Añadir o cambiar las velocidades de reproducción personalizadas Velocidades personalizadas deben ser inferiores a %s. Utilizando valores predeterminados. Velocidades de reproducción personalizadas no válidas. Utilizando valores predeterminados. + Auto Recordar cambios de velocidad de reproducción diff --git a/patches/src/main/resources/addresources/values-et-rEE/strings.xml b/patches/src/main/resources/addresources/values-et-rEE/strings.xml index ac44e27b8..5406a426f 100644 --- a/patches/src/main/resources/addresources/values-et-rEE/strings.xml +++ b/patches/src/main/resources/addresources/values-et-rEE/strings.xml @@ -177,6 +177,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + Väljas @@ -210,6 +211,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-eu-rES/strings.xml b/patches/src/main/resources/addresources/values-eu-rES/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-eu-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-eu-rES/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-fa-rIR/strings.xml b/patches/src/main/resources/addresources/values-fa-rIR/strings.xml index 2af7a3447..2bb17bfb2 100644 --- a/patches/src/main/resources/addresources/values-fa-rIR/strings.xml +++ b/patches/src/main/resources/addresources/values-fa-rIR/strings.xml @@ -176,6 +176,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + غیرفعال شده @@ -209,6 +210,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-fi-rFI/strings.xml b/patches/src/main/resources/addresources/values-fi-rFI/strings.xml index 10d68b786..3ab5cace5 100644 --- a/patches/src/main/resources/addresources/values-fi-rFI/strings.xml +++ b/patches/src/main/resources/addresources/values-fi-rFI/strings.xml @@ -964,11 +964,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Naamioitava kohdeversio + 18.38.44 - Vanhojen Shorts-pelaajan kuvakkeiden palauttaminen - 18.33.40 - Palauita RYD Shorts-videoissa incognito-tilassa - 18.20.39 - Palauta laaja videonopeus- ja laatuvalikko - 18.09.39 - Palauta kirjasto-välilehti - 17.41.37 - Palauta vanha soittolistahylly + 18.33.40 - Palauita RYD Shorts-videoissa incognito-tilassa + 18.20.39 - Palauta laaja videonopeus- ja laatuvalikko + 18.09.39 - Palauta kirjasto-välilehti + 17.33.42 - Palauta vanha soittolistahylly Aseta aloitussivu @@ -1011,8 +1012,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Minisoitin Muuta sovelluksen tyyliä pienennetyssä soittimessa Minisoittimen tyyppi + Pois käytöstä Alkuperäinen - Puhelin + Minimaali Tabletti Moderni 1 Moderni 2 @@ -1147,7 +1149,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Tärinä on käytössä - Automaattinen laatu + + Automaattinen Muista videolaadun muutokset Laatumuutokset koskevat kaikkia videoita Laatumuutokset koskevat vain nykyistä videota @@ -1170,6 +1173,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Lisää tai muuta mukautettuja soiton nopeuksia Mukautettujen nopeuksien on oltava alle %s. Käytetään oletusarvoja. Virheelliset mukautetut toistonopeudet. Käytetään oletusarvoja. + Automaattinen Muista toistonopeuden muutokset diff --git a/patches/src/main/resources/addresources/values-fil-rPH/strings.xml b/patches/src/main/resources/addresources/values-fil-rPH/strings.xml index ca69060fa..f1eb4bc4c 100644 --- a/patches/src/main/resources/addresources/values-fil-rPH/strings.xml +++ b/patches/src/main/resources/addresources/values-fil-rPH/strings.xml @@ -877,10 +877,10 @@ This is because Crowdin requires temporarily flattening this file and removing t This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch --> Target na bersyon ng Spoof app - 18.33.40 - Ibalik ang RYD sa incognito mode ng Shorts - 18.20.39 - Ibalik ang malawak na bilis ng video & kalidad na menu - 18.09.39 - Ibalik ang tab ng library - 17.41.37 - Ibalik ang lumang istante ng playlist + 18.33.40 - Ibalik ang RYD sa incognito mode ng Shorts + 18.20.39 - Ibalik ang malawak na bilis ng video & kalidad na menu + 18.09.39 - Ibalik ang tab ng library + 17.33.42 - Ibalik ang lumang istante ng playlist Itakda ang panimulang pahina @@ -907,8 +907,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Baguhin ang istilo ng in app minimized na player Uri ng miniplayer + Hindi Orihinal - Telepono Tableta Moderno 1 Moderno 2 @@ -1017,7 +1017,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Pinagana ang Haptics - Awtomatikong kalidad + Tandaan ang mga pagbabago sa kalidad ng video Nalalapat ang mga pagbabago sa kalidad sa lahat ng video Nalalapat lang ang mga pagbabago sa kalidad sa kasalukuyang video diff --git a/patches/src/main/resources/addresources/values-fr-rFR/strings.xml b/patches/src/main/resources/addresources/values-fr-rFR/strings.xml index ce62062b6..921b726f7 100644 --- a/patches/src/main/resources/addresources/values-fr-rFR/strings.xml +++ b/patches/src/main/resources/addresources/values-fr-rFR/strings.xml @@ -40,7 +40,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Patché depuis un appareil différent Non installé depuis ReVanced Manager Patché il y a plus de 10 minutes - Patché il y as %s jours + Patché il y a %s jours La date de compilation de l\'APK est corrompue @@ -963,11 +963,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Falsifier la cible de version de l\'application + 18.38.44 - Restaurer les anciennes icônes des joueurs Shorts - 18.33.40 - Restaurer RYD en mode incognito Shorts - 18.20.39 - Restaurer une grande vitesse vidéo & menu qualité - 18.09.39 - Restaurer l\'onglet bibliothèque - 17.41.37 - Restaurer l\'ancienne tablette de la liste de lecture + 18.33.40 - Restaurer RYD en mode incognito Shorts + 18.20.39 - Restaurer une grande vitesse vidéo & menu qualité + 18.09.39 - Restaurer l\'onglet bibliothèque + 17.33.42 - Restaurer l\'ancienne tablette de la liste de lecture Définir la page de démarrage @@ -1010,8 +1011,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Lecteur réduit Changer le style du lecteur réduit dans l\'application Type de Miniplayer + Désactivé Original - Téléphone + Minimal Tablette Moderne 1 Moderne 2 @@ -1146,7 +1148,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Haptics sont activés - Qualité automatique + + Automatique Mémoriser les changements de qualité vidéo Les changements de qualité s\'appliquent à toutes les vidéos Les changements de qualité ne s\'appliquent qu\'à la vidéo actuelle @@ -1169,6 +1172,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Ajouter ou modifier les vitesses de lecture personnalisées Les vitesses personnalisées doivent être inférieures à %s. Utiliser les valeurs par défaut. Vitesses de lecture personnalisées invalides. Utilisation des valeurs par défaut. + Automatique Se souvenir des changements de vitesse de lecture diff --git a/patches/src/main/resources/addresources/values-ga-rIE/strings.xml b/patches/src/main/resources/addresources/values-ga-rIE/strings.xml index 437b6339c..d4b588afc 100644 --- a/patches/src/main/resources/addresources/values-ga-rIE/strings.xml +++ b/patches/src/main/resources/addresources/values-ga-rIE/strings.xml @@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Sprioc leagan aip spoof + 18.38.44 - Athchóirigh sean-deilbhíní imreoir Shorts - 18.33.40 - Athchóirigh RYD ar mhodh incognito Shorts - 18.20.39 - Athchóirigh luas leathan físe & roghchlár cáilíochta - 18.09.39 - Athchóirigh cluaisín leabharlainne - 17.41.37 - Athchóirigh sean-seilf seinmliostaí + 18.33.40 - Athchóirigh RYD ar mhodh incognito Shorts + 18.20.39 - Athchóirigh luas leathan físe & roghchlár cáilíochta + 18.09.39 - Athchóirigh cluaisín leabharlainne + 17.33.42 - Athchóirigh sean-seilf seinmliostaí Socraigh leathanach tosaigh @@ -1009,8 +1010,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Miniplayer Athraigh stíl an imreora íoslaghdaithe san aip Cineál Miniplayer + Díchumasaithe Bunaidh - Fón Táibléad Nua-aimseartha 1 Nua-Aimseartha 2 @@ -1145,7 +1146,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Tá Haptics cumasaithe - Cáilíocht uathoibríoch + + Auto Cuimhnigh athruithe ar cháilíocht Baineann athruithe cáilíochta le gach físeán Ní bhaineann athruithe cáilíochta ach leis an bhfíseán reatha @@ -1168,6 +1170,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Cuir leis nó athraigh na luasanna athsheinm saincheaptha Caithfidh luasanna saincheaptha a bheith níos lú ná %s. Úsáid luachanna réamhshocraithe. Luasanna athsheinm saincheaptha neamhí Luachanna réamhshocraithe a úsáid. + Auto Cuimhnigh athruithe ar luas athsheinm diff --git a/patches/src/main/resources/addresources/values-gl-rES/strings.xml b/patches/src/main/resources/addresources/values-gl-rES/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-gl-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-gl-rES/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-gu-rIN/strings.xml b/patches/src/main/resources/addresources/values-gu-rIN/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-gu-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-gu-rIN/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-hi-rIN/strings.xml b/patches/src/main/resources/addresources/values-hi-rIN/strings.xml index 881565b0e..81f100e18 100644 --- a/patches/src/main/resources/addresources/values-hi-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-hi-rIN/strings.xml @@ -183,6 +183,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + निष्क्रिय @@ -217,6 +218,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-hr-rHR/strings.xml b/patches/src/main/resources/addresources/values-hr-rHR/strings.xml index b4db524e7..69c85d0f4 100644 --- a/patches/src/main/resources/addresources/values-hr-rHR/strings.xml +++ b/patches/src/main/resources/addresources/values-hr-rHR/strings.xml @@ -176,6 +176,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + Onemogućeno @@ -209,6 +210,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-hu-rHU/strings.xml b/patches/src/main/resources/addresources/values-hu-rHU/strings.xml index a237b6354..4d568cce0 100644 --- a/patches/src/main/resources/addresources/values-hu-rHU/strings.xml +++ b/patches/src/main/resources/addresources/values-hu-rHU/strings.xml @@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Hamisított alkalmazásverzió célja + 18.38.44 - A régi Shorts lejátszó ikonok visszaállítása - 18.33.40 - RYD visszaállítása Shorts inkognitó módban - 18.20.39 - Széles videósebesség és minőség menü visszaállítása - 18.09.39 - Könyvtár lap visszaállítása - 17.41.37 - Régi lejátszási lista polc visszállítása + 18.33.40 - RYD visszaállítása Shorts inkognitó módban + 18.20.39 - Széles videósebesség és minőség menü visszaállítása + 18.09.39 - Könyvtár lap visszaállítása + 17.33.42 - Régi lejátszási lista polc visszállítása Kezdőlap beállítása @@ -1009,8 +1010,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Minilejátszó Módosítsa az alkalmazáson belüli kisméretű lejátszó stílusát Minilejátszó típus + Kikapcsolva Eredeti - Telefon Tablet Modern 1 Modern 2 @@ -1145,7 +1146,8 @@ This is because Crowdin requires temporarily flattening this file and removing t A haptikus zoom engedélyezve - Automatikus felbontás + + Automatikus Felbontás változtatások mentése Felbontás változtatások alkalmazása az összes videóra Felbontás változtatások alkalmazása a jelenlegi videóra @@ -1168,6 +1170,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Egyéni lejátszási sebesség hozzáadása vagy módosítása Ennek kevesebbnek kell lenniük, mint %s. Alap értékek használata. Érvénytelen sebesség. Az alap értékek használata. + Automatikus Lejátszási sebesség módosításainak megjegyzése diff --git a/patches/src/main/resources/addresources/values-hy-rAM/strings.xml b/patches/src/main/resources/addresources/values-hy-rAM/strings.xml index c399bf883..d910a229b 100644 --- a/patches/src/main/resources/addresources/values-hy-rAM/strings.xml +++ b/patches/src/main/resources/addresources/values-hy-rAM/strings.xml @@ -176,6 +176,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + Անջատված է @@ -209,6 +210,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-in-rID/strings.xml b/patches/src/main/resources/addresources/values-in-rID/strings.xml index f4d0aac6d..a4fc866b6 100644 --- a/patches/src/main/resources/addresources/values-in-rID/strings.xml +++ b/patches/src/main/resources/addresources/values-in-rID/strings.xml @@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Target versi app yang dipalsukan + 18.38.44 - Pulihkan ikon pemutar Shorts lama - 18.33.40 - Pulihkan RYD pada mode penyamaran Shorts - 18.20.39 - Pulihkan menu kecepatan & kualitas video lebar - 18.09.39 - Pulihkan tab pustaka - 17.41.37 - Pulihkan rak daftar putar lama + 18.33.40 - Pulihkan RYD pada mode penyamaran Shorts + 18.20.39 - Pulihkan menu kecepatan & kualitas video lebar + 18.09.39 - Pulihkan tab pustaka + 17.33.42 - Pulihkan rak daftar putar lama Tetapkan halaman awal @@ -1009,8 +1010,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Pemutar Mini Mengubah gaya pemutar aplikasi saat diciuitkan Jenis pemutar mini + Nonaktif Asli - Ponsel Tablet Modern 1 Modern 2 @@ -1145,7 +1146,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Sentuh getar diaktifkan - Kualitas otomatis + + Otomatis Ingat perubahan kualitas video Perubahan kualitas diatur ke semua video Perubahan kualitas hanya diatur di video saat ini @@ -1168,6 +1170,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Tambah atau ubah kecepatan pemutaran khusus Kecepatan khusus harus kurang dari %s. Menggunakan nilai bawaan. Kecepatan pemutaran khusus tidak sah. + Otomatis Ingat perubahan kecepatan pemutaran diff --git a/patches/src/main/resources/addresources/values-is-rIS/strings.xml b/patches/src/main/resources/addresources/values-is-rIS/strings.xml index fafe34bde..7cd72d1fa 100644 --- a/patches/src/main/resources/addresources/values-is-rIS/strings.xml +++ b/patches/src/main/resources/addresources/values-is-rIS/strings.xml @@ -176,6 +176,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + Óvirkt @@ -209,6 +210,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-it-rIT/strings.xml b/patches/src/main/resources/addresources/values-it-rIT/strings.xml index b47282dbf..c2ef16024 100644 --- a/patches/src/main/resources/addresources/values-it-rIT/strings.xml +++ b/patches/src/main/resources/addresources/values-it-rIT/strings.xml @@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Spoof destinazione versione app + 18.38.44 - Ripristinare vecchie icone del giocatore Shorts - 18.33.40 - Ripristina RYD su modalità incognito Shorts - 18.20.39 - Ripristina velocità video larga & menu qualità - 18.09.39 - Ripristina scheda libreria - 17.41.37 - Ripristina vecchi ripiani playlist + 18.33.40 - Ripristina RYD su modalità incognito Shorts + 18.20.39 - Ripristina velocità video larga & menu qualità + 18.09.39 - Ripristina scheda libreria + 17.33.42 - Ripristina vecchi ripiani playlist Imposta pagina iniziale @@ -1009,8 +1010,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Miniplayer Cambia lo stile del miniplayer nell\'app Tipo di Miniplayer + Disattivato Originale - Telefono + Minimo Tablet Moderno 1 Moderno 2 @@ -1145,7 +1147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Haptics sono abilitati - Qualità automatica + + Automatico Ricorda i cambiamenti di qualità video I cambiamenti di qualità si applicano a tutti i video I cambiamenti di qualità si applicano solo al video corrente @@ -1168,6 +1171,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Aggiungi o modifica la velocità di riproduzione personalizzata Le velocità personalizzate devono essere inferiori a %s. Utilizzando i valori predefiniti. Velocità di riproduzione personalizzata non valide. Utilizzando i valori predefiniti. + Automatico Ricorda le modifiche della velocità di riproduzione diff --git a/patches/src/main/resources/addresources/values-iw-rIL/strings.xml b/patches/src/main/resources/addresources/values-iw-rIL/strings.xml index 940f6f81e..993dd15af 100644 --- a/patches/src/main/resources/addresources/values-iw-rIL/strings.xml +++ b/patches/src/main/resources/addresources/values-iw-rIL/strings.xml @@ -245,6 +245,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + הושבת @@ -280,10 +281,13 @@ This is because Crowdin requires temporarily flattening this file and removing t + + אוטומטי + אוטומטי diff --git a/patches/src/main/resources/addresources/values-ja-rJP/strings.xml b/patches/src/main/resources/addresources/values-ja-rJP/strings.xml index c5868782b..afc6cedde 100644 --- a/patches/src/main/resources/addresources/values-ja-rJP/strings.xml +++ b/patches/src/main/resources/addresources/values-ja-rJP/strings.xml @@ -948,10 +948,10 @@ This is because Crowdin requires temporarily flattening this file and removing t This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch --> アプリバージョンのターゲットを偽装する - 18.33.40 - シークレットモード使用時のShortsのRYDを復元 - 18.20.39 - ワイドビデオスピード & クオリティメニューを復元 - 18.09.39 - ライブラリタブを復元 - 17.41.37 - 古いプレイリストシェルフを復元する + 18.33.40 - シークレットモード使用時のShortsのRYDを復元 + 18.20.39 - ワイドビデオスピード & クオリティメニューを復元 + 18.09.39 - ライブラリタブを復元 + 17.33.42 - 古いプレイリストシェルフを復元 開始ページを設定 @@ -990,8 +990,9 @@ This is because Crowdin requires temporarily flattening this file and removing t ミニプレイヤー アプリの最小化プレイヤーのスタイルを変更する ミニプレーヤータイプ + 無効 オリジナル - 携帯 + 最小 タブレット モダン 1 モダン 2 @@ -1124,7 +1125,8 @@ This is because Crowdin requires temporarily flattening this file and removing t 触覚機能は有効です - 自動品質 + + 自動 ビデオ画質の変更を記憶する 品質の変更はすべてのビデオに適用されます 品質の変更は現在のビデオにのみ適用されます @@ -1147,6 +1149,7 @@ This is because Crowdin requires temporarily flattening this file and removing t 再生速度を追加または変更する カスタム速度は %s未満でなければなりません。デフォルト値を使用してください。 無効なカスタム再生速度です。デフォルト値を使用します。 + 自動 再生速度の変更を記憶する diff --git a/patches/src/main/resources/addresources/values-ka-rGE/strings.xml b/patches/src/main/resources/addresources/values-ka-rGE/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-ka-rGE/strings.xml +++ b/patches/src/main/resources/addresources/values-ka-rGE/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml b/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml index db8c83a68..ade67c4e2 100644 --- a/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml +++ b/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml @@ -176,6 +176,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + Сөндірулі @@ -209,6 +210,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-km-rKH/strings.xml b/patches/src/main/resources/addresources/values-km-rKH/strings.xml index df1cbc55d..90c1d950e 100644 --- a/patches/src/main/resources/addresources/values-km-rKH/strings.xml +++ b/patches/src/main/resources/addresources/values-km-rKH/strings.xml @@ -176,6 +176,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + បានផ្ដាច់ @@ -209,6 +210,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-kn-rIN/strings.xml b/patches/src/main/resources/addresources/values-kn-rIN/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-kn-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-kn-rIN/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-ko-rKR/strings.xml b/patches/src/main/resources/addresources/values-ko-rKR/strings.xml index bd649e40a..864f9bf16 100644 --- a/patches/src/main/resources/addresources/values-ko-rKR/strings.xml +++ b/patches/src/main/resources/addresources/values-ko-rKR/strings.xml @@ -963,11 +963,12 @@ This is because Crowdin requires temporarily flattening this file and removing t 변경할 앱 버전 설정 + 18.38.44 - 이전 Shorts 플레이어 아이콘을 복원합니다 - 18.33.40 - 시크릿 모드에서 Shorts RYD를 복원합니다 - 18.20.39 - 넓은 동영상 재생 속도 & 화질 메뉴를 복원합니다 - 16.09.39 - 이전 보관함 탭을 복원합니다 (내 페이지 탭을 비활성화합니다) - 17.41.37 - 이전 재생목록 선반으로 복원합니다 + 18.33.40 - 시크릿 모드에서 Shorts RYD를 복원합니다 + 18.20.39 - 넓은 동영상 재생 속도 & 화질 메뉴를 복원합니다 + 16.09.39 - 이전 보관함 탭을 복원합니다 (내 페이지 탭을 비활성화합니다) + 17.33.42 - 이전 재생목록 선반으로 복원합니다 앱 시작 페이지 변경하기 @@ -1010,8 +1011,8 @@ This is because Crowdin requires temporarily flattening this file and removing t 미니 플레이어 앱 내에서 최소화된 플레이어의 스타일을 변경할 수 있습니다 미니 플레이어 유형 설정 + 비활성화됨 기기 기본값 사용 - 태블릿 최신 스타일 1 최신 스타일 2 @@ -1146,6 +1147,7 @@ This is because Crowdin requires temporarily flattening this file and removing t 진동 피드백을 활성화합니다 + 자동 동영상 화질 저장 활성화하기 동영상 화질 값을 변경할 때마다 저장합니다 @@ -1169,6 +1171,7 @@ This is because Crowdin requires temporarily flattening this file and removing t 사용하고 싶은 동영상 재생 속도 값을 추가 또는 변경할 수 있습니다 재생 속도 값은 %s배속을 초과할 수 없으므로 기본값으로 초기화합니다 잘못된 재생 속도 값이므로 기본값으로 초기화합니다 + 자동 동영상 재생 속도 저장 활성화하기 diff --git a/patches/src/main/resources/addresources/values-ky-rKG/strings.xml b/patches/src/main/resources/addresources/values-ky-rKG/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-ky-rKG/strings.xml +++ b/patches/src/main/resources/addresources/values-ky-rKG/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-lo-rLA/strings.xml b/patches/src/main/resources/addresources/values-lo-rLA/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-lo-rLA/strings.xml +++ b/patches/src/main/resources/addresources/values-lo-rLA/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-lt-rLT/strings.xml b/patches/src/main/resources/addresources/values-lt-rLT/strings.xml index c53ee7edd..5b4ccc00c 100644 --- a/patches/src/main/resources/addresources/values-lt-rLT/strings.xml +++ b/patches/src/main/resources/addresources/values-lt-rLT/strings.xml @@ -180,6 +180,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + Išjungta @@ -213,6 +214,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-lv-rLV/strings.xml b/patches/src/main/resources/addresources/values-lv-rLV/strings.xml index 5689265fa..ae13efb77 100644 --- a/patches/src/main/resources/addresources/values-lv-rLV/strings.xml +++ b/patches/src/main/resources/addresources/values-lv-rLV/strings.xml @@ -177,6 +177,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + Atspējots @@ -210,6 +211,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-mk-rMK/strings.xml b/patches/src/main/resources/addresources/values-mk-rMK/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-mk-rMK/strings.xml +++ b/patches/src/main/resources/addresources/values-mk-rMK/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-ml-rIN/strings.xml b/patches/src/main/resources/addresources/values-ml-rIN/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-ml-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ml-rIN/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-mn-rMN/strings.xml b/patches/src/main/resources/addresources/values-mn-rMN/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-mn-rMN/strings.xml +++ b/patches/src/main/resources/addresources/values-mn-rMN/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-mr-rIN/strings.xml b/patches/src/main/resources/addresources/values-mr-rIN/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-mr-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-mr-rIN/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-ms-rMY/strings.xml b/patches/src/main/resources/addresources/values-ms-rMY/strings.xml index 8994253e8..be8871149 100644 --- a/patches/src/main/resources/addresources/values-ms-rMY/strings.xml +++ b/patches/src/main/resources/addresources/values-ms-rMY/strings.xml @@ -176,6 +176,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + Dimatikan @@ -209,6 +210,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-my-rMM/strings.xml b/patches/src/main/resources/addresources/values-my-rMM/strings.xml index 6892649b0..4a8e8fd2a 100644 --- a/patches/src/main/resources/addresources/values-my-rMM/strings.xml +++ b/patches/src/main/resources/addresources/values-my-rMM/strings.xml @@ -176,6 +176,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + ခွင့်မပြုထားပါ / အသုံးမပြုထားပါ @@ -208,6 +209,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-nb-rNO/strings.xml b/patches/src/main/resources/addresources/values-nb-rNO/strings.xml index dd25c1805..210518136 100644 --- a/patches/src/main/resources/addresources/values-nb-rNO/strings.xml +++ b/patches/src/main/resources/addresources/values-nb-rNO/strings.xml @@ -941,11 +941,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Spoof app-versjonen mål + 18.38.44 - Gjenopprett gamle Shorts-spillerikoner - 18.33.40 - Gjenopprett RYD på Shorts incognito-modus - 18.20.39 - Gjenopprette bred videokastighet & kvalitetsmeny - 18.09.39 - Gjenopprett bibliotek-fane - 17.41.37 - Gjenopprett gammel spilleliste + 18.33.40 - Gjenopprett RYD på Shorts incognito-modus + 18.20.39 - Gjenopprette bred videokastighet & kvalitetsmeny + 18.09.39 - Gjenopprett bibliotek-fane + 17.33.42 - Gjenopprette gammel spilleliste Angi startside @@ -982,8 +983,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Smittespiller Endre stil på appen til den minimerte spilleren Type Minispiller + Deaktivert Opprinnelig - Telefon + Minimalt Nettbrett Moderne 1 Moderne 2 @@ -1115,7 +1117,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Hapetikk er aktivert - Automatisk kvalitet + + Automatisk Husk endringer i videokvalitet Kvalitetsendringer gjelder for alle videoer Kvalitetsendringer gjelder kun for gjeldende video @@ -1138,6 +1141,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Legg til eller endre egendefinert avspillingshastighet Tilpassede hastigheter må være mindre enn %s. Bruker standardverdier. Ugyldige tilpassede avspillingshastigheter. Bruker standardverdier. + Automatisk Husk endringer i avspillingshastighet diff --git a/patches/src/main/resources/addresources/values-ne-rIN/strings.xml b/patches/src/main/resources/addresources/values-ne-rIN/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-ne-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ne-rIN/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-nl-rNL/strings.xml b/patches/src/main/resources/addresources/values-nl-rNL/strings.xml index dba60d2c6..8de864c21 100644 --- a/patches/src/main/resources/addresources/values-nl-rNL/strings.xml +++ b/patches/src/main/resources/addresources/values-nl-rNL/strings.xml @@ -955,10 +955,10 @@ This is because Crowdin requires temporarily flattening this file and removing t This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch --> Spoof app versie doel - 18.33.40 - Herstel RYD op incognito modus - 18.20.39 - Herstel brede videosnelheid & kwaliteitsmenu - 18.09.39 - Tabblad bibliotheek herstellen - 17.41.37 - oude afspeellijst herstellen + 18.33.40 - Herstel RYD op incognito modus + 18.20.39 - Herstel brede videosnelheid & kwaliteitsmenu + 18.09.39 - Tabblad bibliotheek herstellen + 17.33.42 - oude afspeellijst herstellen Startpagina instellen @@ -995,8 +995,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Minispeler De stijl van de in de app geminimaliseerde speler wijzigen Miniplayer type + Uitgeschakeld Origineel - Telefoonnummer Telefoon Moderne 1 Moderne 2 @@ -1131,7 +1131,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Haptics zijn ingeschakeld - Automatische kwaliteit + + Automatisch Videokwaliteitswijzigingen onthouden Kwaliteitswijzigingen zijn van toepassing op alle video\'s Kwaliteitswijzigingen zijn alleen van toepassing op de huidige video @@ -1154,6 +1155,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Voeg toe of verander de aangepaste afspeelsnelheden Aangepaste snelheden moeten kleiner zijn dan %s. Standaard waarden worden gebruikt. Ongeldige aangepaste afspeelsnelheden. Gebruik standaard waarden. + Automatisch Onthoud wijzigingen in afspeelsnelheid diff --git a/patches/src/main/resources/addresources/values-or-rIN/strings.xml b/patches/src/main/resources/addresources/values-or-rIN/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-or-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-or-rIN/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-pa-rIN/strings.xml b/patches/src/main/resources/addresources/values-pa-rIN/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-pa-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-pa-rIN/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-pl-rPL/strings.xml b/patches/src/main/resources/addresources/values-pl-rPL/strings.xml index 999b3002e..6e50d2b44 100644 --- a/patches/src/main/resources/addresources/values-pl-rPL/strings.xml +++ b/patches/src/main/resources/addresources/values-pl-rPL/strings.xml @@ -36,11 +36,11 @@ This is because Crowdin requires temporarily flattening this file and removing t Sprawdzanie nie powiodło się Otwórz oficjalną stronę internetową Ignoruj - <h5>Ta aplikacja nie wydaje się być przez ciebie naprawiana.</h5><br>Ta aplikacja może nie działać poprawnie, <b>może być szkodliwa lub nawet niebezpieczna dla użycia</b>.<br><br>Te sprawdzenia oznaczają, że ta aplikacja jest wstępnie przygotowana lub uzyskana od kogoś innego:<br><br><small>%1$s</small><br>Zdecydowanie zaleca się odinstalować aplikację <b>i zaktualizować ją samodzielnie</b> , aby upewnić się, że używasz zweryfikowanej i bezpiecznej aplikacji.<p><br>Jeśli zignorowane, to ostrzeżenie będzie wyświetlane tylko dwukrotnie. - Ulepszono na innym urządzeniu + <h5>Ta aplikacja nie wydaje się być przez ciebie załatana.</h5><br>Ta aplikacja może nie działać poprawnie, <b>może być szkodliwa lub nawet niebezpieczna dla użycia</b>.<br><br>Te sprawdzenia oznaczają, że ta aplikacja jest wstępnie przygotowana lub uzyskana od kogoś innego:<br><br><small>%1$s</small><br>Zdecydowanie zaleca się odinstalować aplikację <b>i zaktualizować ją samodzielnie</b>, aby upewnić się, że używasz zweryfikowanej i bezpiecznej aplikacji.<p><br>Jeśli zostanie to zignorowane, ostrzeżenie wyskoczy tylko dwukrotnie. + Załatano na innym urządzeniu Nie zainstalowany przez ReVanced Manager - Ponad 10 minut temu - Dostosuj %s dni temu + Załatano ponad 10 minut temu + Załatano %s dni temu Data kompilacji APK jest uszkodzona @@ -52,20 +52,20 @@ This is because Crowdin requires temporarily flattening this file and removing t Zaimportuj Skopiuj Przywrócono domyślne ustawienia ReVanced - Zaimportowano ustawienia %d + Zaimportowano %d ustawień Importowanie nie powiodło się: %s Zaimportuj / Wyeksportuj Zaimportuj / Wyeksportuj ustawienia ReVanced - Używasz wersji <i>%s</i> Łatek ReVanced - Uwaga + Używasz wersji łatek ReVanced <i>%s</i> + Notka Ta wersja jest wersją wstępną i mogą wystąpić nieoczekiwane problemy Oficjalne linki Wesprzyj - MicroG GmsCore nie jest zainstalowany. Zainstaluj go. + MicroG GmsCore nie jest zainstalowany, zainstaluj. Wymagane działanie MicroG GmsCore nie ma uprawnień do działania w tle.\n\nPostępuj zgodnie z przewodnikiem \"Nie zabijaj mojej aplikacji\" dla swojego telefonu i zastosuj instrukcje do aplikacji MicroG.\n\nJest to wymagane do działania aplikacji. Otwórz stronę @@ -78,18 +78,18 @@ This is because Crowdin requires temporarily flattening this file and removing t O aplikacji Reklamy Alternatywne miniaturki - Strona + Strona główna Odtwarzacz Ogólny układ Pasek wyszukiwania Sterowanie gestami Pozostałe - Wideo + Film - Wyłącz odtwarzanie Shorts w tle - Odtwarzanie w tle Shorts jest wyłączone - Odtwarzanie w tle Shorts jest włączone + Wyłącz odtwarzanie Shorts\'ów w tle + Odtwarzanie w tle Shorts\'ów jest wyłączone + Odtwarzanie w tle Shorts\'ów jest włączone Debugowanie @@ -104,29 +104,29 @@ This is because Crowdin requires temporarily flattening this file and removing t Logi do debugowania zawierają ślady stosów Logi do debugowania nie zawierają śladów stosów Komunikaty o błędach ReVanced - Widoczne - Niewidoczne - Wyłączanie komunikatów o błędach ukrywa wszystkie komunikaty o błędach ReVanced.\n\nNie będziesz powiadamiany o żadnych nieoczekiwanych zdarzeniach. + Komunikat będzie widoczny, jeśli wystąpi błąd + Komunikat nie będzie widoczny, jeśli wystąpi błąd + Wyłączanie komunikatów ukrywa wszystkie komunikaty o błędach ReVanced.\n\nNie będziesz powiadamiany o żadnych nieoczekiwanych zdarzeniach. - Wyłącz polubienie/subskrybuj podświetlenie przycisków - Przycisk polubienia i subskrybuj nie pojawi się po wzmiance - Przycisk polubienia i subskrybuj się po wzmiance - Ukryj karty albumu + Podświetlenie przycisków polubienia i subskrypcji + Przycisk polubienia i subskrypcji nie podświetlą się po użyciu + Przycisk polubienia i subskrypcji podświetlą się po użyciu + Karty albumów Karty albumów są ukryte - Karty albumów są wyświetlane - Ukryj program finansowania społecznościowego - Crowdfunding box jest ukryty - Pokazywany jest program Crowdfunding - Ukryj pływający przycisk mikrofonu + Karty albumów są widoczne + Ramki ze zbiórkami + Ramki ze zbiórkami są ukryte + Ramki ze zbiórkami są widoczne + Pływający przycisk mikrofonu Przycisk mikrofonu ukryty - Przycisk mikrofonu pokazany + Przycisk mikrofonu widoczny Znaki wodne kanałów Ukryte Widoczne Poziome półki - Ukryte są półki:\n• Z najnowszymi informacjami\n• Z wideo, które nie zostały dokończone\n• Od odkrywania kanałów\n• Od kupowania\n• Z wideo, które zostały obejrzane - Widoczne + Ukryte są półki:\n• Z najnowszymi informacjami\n• Z filmów, które nie zostały dokończone\n• Od odkrywania kanałów\n• Od kupowania\n• Z filmów, które zostały obejrzane + Pociski są widoczne Przycisk \'Dołącz\' @@ -144,568 +144,570 @@ This is because Crowdin requires temporarily flattening this file and removing t Rekomendacje \'Inni widzowie obejrzeli też ten film\' Ukryte - Widoczne + Rekomendacje są widoczne Przycisk \'Pokaż więcej\' Ukryty Widoczny Reakcje czasowe - Ukryte - Widoczne - Ukryj nagłówek półki wyników wyszukiwania - Nagłówek półki jest ukryty - Nagłówek półki jest pokazany - Ukryj wytyczne kanału + Reakcje czasowe są ukryte + Reakcje czasowe są widoczne + Półki z nagłówkami w wynikach wyszukiwania + Półki z nagłówkiem są ukryte + Półki z nagłówkiem są widoczne + Wytyczne kanału Wytyczne kanału są ukryte - Wytyczne kanału są wyświetlane - Ukryj półkę chipów - Półka czipów jest ukryta - Półka na czipy jest pokazana - Ukryj rozszerzalny chipy pod filmami - Rozwijalne chipy są ukryte - Rozwijalne chipy są wyświetlane - Ukryj posty społeczności + Wytyczne kanału są widoczne + Rozszerzalne półki + Rozszerzalne półki są ukryte + Rozszerzalne półki są widoczne + Produkty i rozdziały pod filmami + Produkty i rozdziały są ukryte + Produkty i rozdziały są widoczne + Posty społeczności Posty społeczności są ukryte - Posty społeczności są wyświetlane - Ukryj kompaktowe banery + Posty społeczności są widoczne + Kompaktowe banery Kompaktowe banery są ukryte - Kompaktowe banery są wyświetlane - Ukryj sekcję filmów - Sekcja filmów jest ukryta - Sekcja filmów jest wyświetlana - Ukryj ankiety - Ankiety RSS są ukryte - Pokazane są ankiety RSS - Ukryj wytyczne społeczności - Wytyczne Wspólnoty są ukryte - Wskazane są wytyczne Wspólnoty - Ukryj wytyczne społeczności subskrybentów - Wytyczne społeczności subskrybentów są ukryte - Wytyczne społeczności subskrybentów są wyświetlane - Ukryj półkę członków kanału - Półka członka kanału jest ukryta - Półka członka kanału jest pokazana - Ukryj skrzynki alarmowe - Skrzynki alarmowe są ukryte - Wyświetlane są skrzynki alarmowe - Ukryj panele informacyjne + Kompaktowe banery są widoczne + Sekcja filmów kinowych + Sekcja filmów kinowych jest ukryta + Sekcja filmów kinowych jest widoczna + Ankiety na stronie głównej + Ankiety na stronie głównej są ukryte + Ankiety na stronie głównej są widoczne + Wytyczne społeczności + Wytyczne społeczności są ukryte + Wytyczne społeczności są widoczne + Wytyczne społeczności subskrybentów + Wytyczne społeczności subskrybentów są widoczne + Wytyczne społeczności subskrybentów są widoczne + Półki ze sponsorami + Półki ze sponsorami są ukryte + Półki ze sponsorami są widoczne + Ramki alarmowe + Ramki alarmowe są ukryte + Ramki alarmowe są widoczne + Panele informacyjne Panele informacyjne są ukryte - Wyświetlane są panele informacyjne - Ukryj panele medyczne + Panele informacyjne są widoczne + Panele medyczne Panele medyczne są ukryte - Pokazywane są panele medyczne - Ukryj pasek kanału + Panele medyczne są widoczne + Pasek kanału Pasek kanału jest ukryty - Pasek kanału jest wyświetlany - Ukryj Playables - Playables są ukryte - Playables są wyświetlane - Ukryj szybkie akcje na pełnym ekranie + Pasek kanału jest widoczny + Pokój gier + Pokój gier jest widoczny + Pokój gier jest ukryty + Szybkie akcje na pełnym ekranie Szybkie akcje są ukryte - Wyświetlane są szybkie akcje - Ukryj powiązane filmy w szybkich akcjach + Szybkie akcje są widoczne + Powiązane filmy w szybkich akcjach Powiązane filmy są ukryte - Powiązane filmy są wyświetlane - Ukryj półkę obrazu w wynikach wyszukiwania - Półka obrazu jest ukryta - Półka obrazu jest wyświetlana - Ukryj najnowsze posty + Powiązane filmy są widoczne + Półka z obrazami w wynikach wyszukiwania + Półka z obrazami jest ukryta + Półka z obrazami jest widoczna + Najnowsze posty Najnowsze posty są ukryte - Najnowsze posty są wyświetlane - Ukryj mieszane listy odtwarzania - Wymieszane listy odtwarzania są ukryte - Wyświetlane są listy odtwarzania - Ukryj karty artystów + Najnowsze posty są widoczne + Playlisty mix + Playlisty mix są ukryte + Playlisty mix są widoczne + Karty artystów Karty wykonawcy są ukryte - Karty artystów są wyświetlane - Ukryj sekcję atrybutów - Sekcje \'Polecane miejsca\', gry i muzyka są ukryte - Wyświetlane są sekcje \'Polecane miejsca\', gry i muzyka - Ukryj sekcję rozdziałów + Karty artystów są widoczne + Sekcja atrybutów + Sekcje wyróżnionych miejsc, gier i muzyki są ukryte + Sekcje wyróżnionych miejsc, gier i muzyki są widoczne + Sekcja rozdziałów Sekcja rozdziałów jest ukryta - Sekcja rozdziałów jest pokazana - Ukryj sekcję \'Przeglądaj podcast\' - Sekcja \'Przeglądaj podcast\' jest ukryta - Sekcja \'Przeglądaj podcast\' jest pokazana - Ukryj sekcję kart informacyjnych + Sekcja rozdziałów jest widoczna + Sekcja eksplorowania podcastów + Sekcje eksplorowania podcastów jest ukryta + Sekcje eksplorowania podcastów jest widoczna + Sekcja kart informacyjnych Sekcja kart informacyjnych jest ukryta - Sekcja kart informacyjnych jest wyświetlana - Ukryj sekcję \'Koncepcje kluczowe\' - Sekcja \"Koncepcje kluczowe\" jest ukryta - Sekcja \"Koncepcje kluczowe\" jest pokazana - Ukryj sekcję transkryptu - Sekcja transkryptu jest ukryta - Sekcja transkryptu jest wyświetlana - Opis wideo - Ukryj lub pokaż elementy opisu wideo + Sekcja kart informacyjnych jest widoczna + Sekcja kluczowych pojęć + Sekcja kluczowych pojęć jest ukryta + Sekcja kluczowych pojęć jest widoczna + Sekcja transkrypcji + Sekcja transkrypcji jest ukryta + Sekcja transkrypcji jest widoczna + Opis filmu + Ukryj lub pokaż elementy opisu filmu Pasek filtra - Ukryj lub pokaż pasek filtrów w kanale, wyszukiwaniu i powiązanych filmach - Ukryj w kanale - Ukryte w kanale - Pokazane w kanale - Ukryj w wyszukiwaniu + Ukryj lub pokazuj pasek z filtrami na stronie głównej, nad wynikami wyszukiwania i powiązanymi filmami + Na stronie głównej + Ukryte na stronie głównej + Widoczne na stronie głównej + W wyszukiwarce Ukryte w wyszukiwaniu - Pokaż w wyszukiwarce - Ukryj w powiązanych filmach + Widoczne w wyszukiwarce + W powiązanych filmach Ukryte w powiązanych filmach - Wyświetlane w powiązanych filmach + Widoczne w powiązanych filmach Komentarze - Ukryj lub pokaż składniki sekcji komentarzy - Ukryj nagłówek \'Komentarze wg użytkowników\' - Nagłówek \'Komentarze użytkowników\' jest ukryty - Wyświetlony jest nagłówek \'Komentarze użytkowników\' - Ukryj sekcję komentarzy + Ukryj lub pokazuj komentarze + Nagłówek sponsora w komentarzach + Nagłówek sponsora do komentarza jest ukryty + Nagłówek sponsora do komentarza jest widoczny + Sekcja komentarzy Sekcja komentarzy jest ukryta - Sekcja komentarzy jest wyświetlana - Ukryj przycisk \'Utwórz Short\' - Przycisk \'Utwórz film Short\' jest ukryty - Przycisk \'Utwórz film Short\' jest wyświetlany - Ukryj podgląd komentarza - Podgląd komentarza jest ukryty - Podgląd komentarza jest wyświetlany - Ukryj przycisk podziękowania - Przycisk podziękowania jest ukryty - Przycisk podziękowania jest pokazany - Ukryj znaczniki czasu i przyciski emoji - Przyciski znacznika czasu i emoji są ukryte - Wyświetlane są przyciski znacznika czasu i emoji + Sekcja komentarzy jest widoczna + Przycisk tworzenia Shorts\'a + Przycisk tworzenia Shorts\'a jest ukryty + Przycisk tworzenia Shorts\'a jest widoczny + Wyróżnione komentarze + Wyróżnione komentarze są ukryte + Wyróżnione komentarze są widoczne + Przycisk do dziękowania + Przycisk dziękowania jest ukryty + Przycisk dziękowania jest widoczny + Czas i przyciski od emotikon + Czas i przyciski od emotikon są ukryte + Czas i przyciski od emotikon są widoczne - Ukryj Doodles YouTube - Pasek wyszukiwania jest ukryty - Pasek wyszukiwania jest wyświetlany - Doodles YouTube pojawia się co roku kilka dni.\n\nJeśli Doodle wyświetla się w Twoim regionie, a to ustawienie ukrycia jest włączone, następnie pasek filtru poniżej paska wyszukiwania będzie również ukryty. + YouTube Doodles + Pasek wyszukiwania z Doodles jest ukryty + Pasek wyszukiwania z Doodles jest widoczny + YouTube Doodles pojawia się co roku na kilka dni.\n\nJeśli Doodle wyświetlą się w Twoim regionie, a to ustawienie jest włączone, to pasek filtrowania poniżej paska wyszukiwania również zostanie ukryty. Własny filtr - Ukryj komponenty za pomocą niestandardowych filtrów - Włącz własny filtr + Ukryj komponenty za pomocą własnego filtra + Własny filtr Filtr niestandardowy jest włączony Filtr niestandardowy jest wyłączony Własny filtr - Lista tekstów tworzących ścieżki komponentu do filtrowania oddzielonych nową linią + Lista ciągów budujących ścieżki komponentu do filtrowania, oddzielonych nową linią Nieprawidłowy niestandardowy filtr: %s - Ukryj zawartość słowa kluczowego - Ukryj wyszukiwanie i kanały wideo za pomocą filtrów słów kluczowych - Ukryj filmy domowe słowami kluczowymi - Filmy w zakładce głównej są filtrowane przez słowa kluczowe - Filmy w zakładce głównej nie są filtrowane przez słowa kluczowe - Ukryj filmy subskrypcji słowami kluczowymi - Filmy w zakładce subskrypcje są filtrowane przez słowa kluczowe - Filmy w zakładce subskrypcje nie są filtrowane przez słowa kluczowe - Ukryj wyniki wyszukiwania za pomocą słów kluczowych - Wyniki wyszukiwania są filtrowane przez słowa kluczowe - Wyniki wyszukiwania nie są filtrowane przez słowa kluczowe - Słowa kluczowe do ukrycia + Ukryj zawartość słowa + Ukryj wyszukiwanie i filmy na stronie głównej za pomocą filtrów słów + Ukryj filmy na stronie głównej słowami + Filmy na stronie głównej są filtrowane przez słowa + Filmy na stronie głównej nie są filtrowane przez słowa + Ukryj filmy na stronie subskrypcji słowami + Filmy w zakładce Subskrypcji są filtrowane przez słowa + Filmy w zakładce Subskrypcji nie są filtrowane przez słowa + Wyniki wyszukiwania za pomocą słów + Wyniki wyszukiwania są filtrowane przez słowa + Wyniki wyszukiwania nie są filtrowane przez słowa + Słowa do ukrycia - Słowa kluczowe i frazy do ukrycia, oddzielone nowymi wierszami\n\nSłowa kluczowe mogą być nazwami kanałów lub dowolnymi tekstami pokazanymi w tytułach wideo\n\nSłowa z wielkimi literami w środku muszą być wpisane z obudową (np. iPhone, TikTok, LeBlanc) - O filtrowaniu słów kluczowych + Słowa i frazy do ukrycia, oddzielone nowymi wierszami\n\nSłowa mogą być nazwami kanałów lub dowolnymi tekstami pokazanymi w tytułach wideo\n\nSłowa z wielkimi literami w środku muszą być wpisane z odpowiednią wielkością liter (np. iPhone, TikTok, LeBlanc) + O filtrowaniu słów + Strona główna/Subskrypcje/Wyniki wyszukiwania są filtrowane, aby ukryć treści pasujące do fraz kluczowych\n\nOgraniczenia\n• Shorts\'y nie mogą zostać ukryte według nazwy kanału\n• Niektóre elementy interfejsu mogą nie zostać ukryte\n• Wyszukiwanie słowa może nie zwrócić wyników Dopasuj całe słowa - Otwarcie słowa kluczowego/frazy podwójnymi cudzysłowami uniemożliwi częściowe dopasowanie tytułów wideo i nazw kanałów<br><br>Na przykład,<br><b>\"ai\"</b> ukryje wideo: <b>How does AI work?</b><br>ale nie ukry: <b>What does fair use mean?</b> + Otoczenie słowa/frazy cudzysłowami zapobiegnie częściowym dopasowaniom tytułów filmów i nazw kanałów<br><br>Na przykład,<br><b>\"ai\"</b> ukryje film: <b>Jak działa AI?</b><br>ale nie ukryje: <b>Co oznacza aikido?</b> - Nie można użyć słowa kluczowego: %s - Dodaj cudzysłowy, aby użyć słowa kluczowego: %s - Słowo kluczowe zawiera sprzeczne deklaracje: %s - Słowo kluczowe jest zbyt krótkie i wymaga cytatów: %s - Słowo kluczowe ukryje wszystkie filmy: %s + Nie można użyć słowa: %s + Dodaj cudzysłowy, aby użyć słowa: %s + Słowo zawiera sprzeczne deklaracje: %s + Słowo jest za krótkie i wymaga cudzysłowu: %s + Słowo ukryje wszystkie filmy: %s - Ukryj reklamy ogólne + Reklamy ogólne Ogólne reklamy są ukryte - Ogólne reklamy są wyświetlane - Ukryj reklamy w trybie pełnoekranowym + Ogólne reklamy są widoczne + Reklamy w trybie pełnoekranowym Reklamy pełnoekranowe są ukryte\n\nTa funkcja jest dostępna tylko dla starszych urządzeń - Pokazywane są reklamy pełnoekranowe - Ukryj przyciski reklam - Przyciskane reklamy są ukryte - Przyciski reklam są wyświetlane - Ukryj etykietę płatnej promocji - Płatna promocja jest ukryta - Wyświetlono płatną etykietę promocyjną - Ukryj samosponsorowane karty - Karty samosponsorowane są ukryte - Pokazywane są karty samosponsorowane - Ukryj baner do wyświetlania produktów + Reklamy pełnoekranowe są widoczne + Reklamy z przyciskami + Reklamy z przyciskami są ukryte + Reklamy z przyciskami są widoczne + Etykiety płatnej promocji + Etykiety płatnej promocji są ukryte + Etykiety płatnej promocji są widoczne + Karty z autopromocją + Karty z autopromocją są ukryte + Karty z autopromocją są widoczne + Baner do wyświetlania produktów Baner jest ukryty Baner jest pokazany - Ukryj półkę na zakupy gracza - Półka Zakupów jest ukryta - Półka Zakupów jest pokazana - Ukryj linki do zakupów w opisie wideo + Półki sklepowe gracza + Półki sklepowe są ukryte + Półki sklepowe są widoczne + Linki do zakupów w opisie filmu Linki do zakupów są ukryte - Odnośniki do zakupów są wyświetlane + Linki do zakupów są widoczne - Ukryj przycisk \'Odwiedź sklep\' na stronach kanału - Ukryty - Widoczny - Ukryj wyniki wyszukiwania - Wyniki wyszukiwania w Internecie są ukryte - Wyniki wyszukiwania w Internecie są wyświetlane - Ukryj banery towaru - Banery towaru są ukryte - Banery handlowe są wyświetlane + Przycisk do sklepu na stronach kanału + Przycisk jest ukryty + Przycisk jest widoczny + Wyniki wyszukiwania stron internetowych + Wyniki wyszukiwania stron są ukryte + Wyniki wyszukiwania stron są widoczne + Banery towarowe + Banery z towarami są ukryte + Banery z towarami są widoczne - Ukryj reklamy w trybie pełnoekranowym tylko ze starszymi urządzeniami + Ukrycie pełnoekranowych reklam działa tylko na starszych urządzeniach - Ukryj promocje YouTube Premium - Promocje YouTube Premium w odtwarzaczu wideo są ukryte - Promocje YouTube Premium w odtwarzaczu wideo są wyświetlane + Promocje YouTube Premium + Promocje YouTube Premium w odtwarzaczu filmów są ukryte + Promocje YouTube Premium w odtwarzaczu filmów są widoczne - Ukryj reklamy wideo - Reklamy wideo są ukryte - Wyświetlane reklamy wideo + Reklamy filmu + Reklamy filmu są ukryte + Reklamy filmu są widoczne Adres URL skopiowany do schowka - Adres URL z znacznikiem czasu skopiowany - Pokaż przycisk kopiowania filmu URL - Przycisk jest wyświetlony. Dotknij, aby skopiować adres URL wideo. Dotknij i przytrzymaj aby skopiować adres wideo ze znacznikiem czasu - Przycisk nie jest wyświetlany - Pokaż przycisk URL kopii znacznika czasu - Przycisk jest wyświetlony. Dotknij, aby skopiować URL wideo ze znacznikiem czasu. Dotknij i przytrzymaj aby skopiować film bez znacznika czasu - Przycisk nie jest wyświetlany + URL ze znacznikiem czasu skopiowany + Przycisk kopiowania URL filmu + Przycisk jest widoczny. Dotknij, aby skopiować adres URL wideo. Dotknij i przytrzymaj aby skopiować adres wideo ze znacznikiem czasu + Przycisk nie jest widoczny + Przycisk do kopiowania URL filmu z czasem + Przycisk jest widoczny. Dotknij, aby skopiować URL filmu ze znacznikiem czasu. Dotknij i przytrzymaj, aby skopiować film bez znacznika czasu + Przycisk nie jest widoczny - Usuń okno dialogowe przeglądarki + Okno dialogowe treści ograniczonej do oglądania Okno dialogowe zostanie usunięte Okno dialogowe zostanie wyświetlone To nie pomija ograniczeń wiekowych i akceptuje je automatycznie. Pobieranie zewnętrzne - Ustawienia dla zewnętrznego pobierania - Pokaż zewnętrzny przycisk pobierania - Przycisk pobierania wyświetlany w odtwarzaczu - Przycisk pobierania nie jest wyświetlany w odtwarzaczu + Ustawienia dla zewnętrznej aplikacji + Przycisk zewnętrznego pobierania + Przycisk pobierania jest widoczny w odtwarzaczu + Przycisk pobierania nie jest widoczny w odtwarzaczu - Zastąp przycisk akcji pobierania - Przycisk pobierania otwiera zewnętrzny plik pobierania + Przycisk akcji pobierania + Przycisk pobierania otwiera zewnętrzną aplikację Przycisk pobierania otwiera natywne pobieranie w aplikacji - Nazwa pakietu do pobrania - Nazwa pakietu zainstalowanej zewnętrznej aplikacji do pobierania pliku, takiej jak NewPipe lub Pieczęć - %s nie jest zainstalowany. Zainstaluj go. + Nazwa pakietu aplikacji od pobierania + Nazwa pakietu zainstalowanej zewnętrznej aplikacji od pobierania, takiej jak NewPipe lub Seal + %s nie jest zainstalowany, zainstaluj. - Wyłącz dokładny gest szukania + Gest precyzyjnego przewijania Gest jest wyłączony Gest jest włączony - Włącz dotknięcie paska nawigacji - Naciśnięcie paska wyszukiwania jest włączone - Stuknięcie paska wyszukiwania jest wyłączone + Stukanie w pasek postępu filmu + Stukanie w pasek postępu jest włączone + Stukanie w pasek postępu jest wyłączone - Włącz gest jasności + Gest jasności Przesunięcie jasności jest włączone Przesunięcie jasności jest wyłączone - Włącz gest głośności + Gest głośności Przesunięcie głośności jest włączone Przesunięcie głośności jest wyłączone - Włącz gest naciśnięcia na przesunięcie - Naciśnij do przesunięcia palcem jest włączone - Przeciągnięcie palcem jest wyłączone - Włącz wibracje - Wibracja Haptic jest włączona - Wibracje Haptic są wyłączone + Gest naciśnięcia na przesunięcie + Gest naciśnięcia na przesunięcie jest włączony + Gest naciśnięcia na przesunięcie jest wyłączony + Wibracje + Wibracje są włączone + Wibracje są wyłączone Zapisz i przywróć jasność Zapisz i przywróć jasność podczas zamykania lub wchodzenia w tryb pełnoekranowy Nie zapisuj i nie przywracaj jasności podczas zamykania lub wchodzenia w tryb pełnoekranowy - Włącz gest automatycznej jasności - Przesuń palcem w dół do najniższej wartości gestu jasności włącza automatyczną jasność + Gest automatycznej jasności + Przesunięcie w dół do najniższej wartości gestu jasności włącza automatyczną jasność Przesunięcie w dół do najniższej wartości nie włącza automatycznej jasności Auto - Limit czasu przesunięcia nakładki - Ilość milisekund widocznych nakładek - Rozmiar tekstu przesunięcia nakładki - Rozmiar tekstu dla nakładki przesuwania - Widoczność w tle przesunięcia - Widoczność tła nakładki przesunięcia - Próg wielkości przesunięcia - Ilość progu dla przesunięcia palcem + Limit czasu widoczności nakładki + Liczba milisekund, przez które nakładka jest widoczna + Rozmiar tekstu nakładki przesuwania + Rozmiar tekstu dla nakładki przy przesunięciu + Widoczność tła przesunięcia + Widoczność tła nakładki przy przesunięciu + Minimalna długość przesunięcia + Wartość wymagana do wykonania gestu przesunięcia - Wyłącz automatyczne podpisy - Automatyczne podpisy są wyłączone - Automatyczne podpisy są włączone + Automatyczne napisy + Automatyczne napisy są wyłączone + Automatyczne napisy są włączone Przyciski akcji Ukryj lub pokaż przyciski pod filmami - Ukryj polubienie i nie lubię - Przyciski polubienia i nielubiania są ukryte - Przyciski polubienia i nielubiania są wyświetlane + Przycisk do łapek w górę i w dół + Przyciski łapki w górę i w dół są ukryte + Przyciski łapki w górę i w dół są widoczne - Ukryj udostępnianie + Przycisk do udostępniania Przycisk udostępniania jest ukryty - Przycisk udostępniania jest pokazany + Przycisk udostępniania jest widoczny - Ukryj raport - Przycisk raportu jest ukryty - Przycisk raportu jest pokazany + Przycisk do zgłaszania + Przycisk zgłaszania jest ukryty + Przycisk zgłaszania jest widoczny - Ukryj remiks + Przycisk do remiksu Przycisk remiksu jest ukryty - Przycisk remiksu jest pokazany + Przycisk remiksu jest widoczny - Ukryj pobieranie + Przycisk do pobierania Przycisk pobierania jest ukryty - Przycisk pobierania jest pokazany + Przycisk pobierania jest widoczny - Ukryj podziękowania - Przycisk podziękowania jest ukryty - Przycisk podziękowania jest pokazany + Przycisk do dziękowania + Przycisk dziękowania jest ukryty + Przycisk dziękowania jest widoczny - Hide Clip - Przycisk klipu jest ukryty - Przycisk klipu jest pokazany + Przycisk do klipu + Przycisk tworzenia klipów jest ukryty + Przycisk tworzenia klipów jest widoczny - Ukryj zapis na liście odtwarzania - Zapisz do przycisku playlisty jest ukryty - Pokaż przycisk Zapisz do playlisty + Przycisk dodania do playlisty + Przycisk dodania do playlisty jest ukryty + Przycisk dodania do playlisty jest widoczny - Navigation buttons + Przyciski nawigacyjne Ukryj lub zmień przyciski na pasku nawigacji - Ukryj stronę główną - Przycisk Home jest ukryty - Przycisk Home jest pokazany + Przycisk do strony głównej + Przycisk strony głównej jest ukryty + Przycisk strony głównej jest widoczny - Ukryj Shorts - Przycisk Shorts jest ukryty - Przycisk Shorts jest widoczny + Przycisk do Shorts\'ów + Przycisk Shorts\'ów jest ukryty + Przycisk Shorts\'ów jest widoczny - Ukryj Utwórz - Przycisk Utwórz jest ukryty - Przycisk Utwórz jest pokazany + Przycisk do przesyłania + Przycisk przesyłania jest ukryty + Przycisk przesyłania jest widoczny - Ukryj subskrypcje + Przycisk do subskrypcji Przycisk subskrypcji jest ukryty - Przycisk subskrypcji jest pokazany + Przycisk subskrypcji jest widoczny - Przełącz tworzenie z powiadomieniami - Przycisk Utwórz jest przełączony za pomocą przycisku Powiadomienia\n\nUwaga: Włączenie tego również wymusza ukrycie reklam wideo - Przycisk Utwórz nie jest przełączony za pomocą przycisku Powiadomienia - Ukryj etykiety przycisków nawigacji + Przełącz przyciski Przesyłania z Powiadomieniami + Przycisk Przesyłania jest przełączony z przyciskiem Powiadomienia\n\nNotka: włączenie tego wymusza ukrycie reklam w filmach + Przycisk Przesyłania nie jest przełączony z przyciskiem Powiadomienia + Etykiety przycisków nawigacji Etykiety są ukryte - Etykiety są wyświetlane + Etykiety są widoczne - Flyout menu - Ukryj lub pokaż elementy menu flyout gracza + Menu ustawień filmu + Ukryj lub pokaż elementy menu ustawień filmu - Ukryj podpisy - Menu podpisów jest ukryte - Menu podpisów jest wyświetlane + Menu do napisów + Menu napisów jest ukryte + Menu napisów jest widoczne - Ukryj dodatkowe ustawienia - Dodatkowe menu ustawień jest ukryte - Dodatkowe menu ustawień jest wyświetlane + Menu do dodatkowych ustawień + Menu dodatkowych ustawień jest ukryte + Menu dodatkowych ustawień jest widoczne - Ukryj zegar uśpienia - Menu timera uśpienia jest ukryte - Wyświetlane jest menu timera + Menu do wyłącznika czasowego + Menu wyłącznika czasowego jest ukryte + Menu wyłącznika czasowego jest widoczne - Ukryj wideo w pętli - Menu wideo w pętli jest ukryte - Menu wideo w pętli jest wyświetlane + Menu do pętli filmu + Menu pętli filmu jest ukryte + Menu pętli filmu jest widoczne - Ukryj tryb Ambient - Menu trybu otoczenia jest ukryte - Wyświetlane jest menu trybu otoczenia - Ukryj stabilną głośność - Widoczne jest stabilne menu głośności - Stabilne menu głośności jest ukryte + Menu do oświetlenia kinowego + Menu oświetlenia kinowego jest ukryte + Menu oświetlenia kinowego jest widoczne + Menu do stabilnej głośności + Menu stabilnej głośności jest widoczne + Menu stabilnej głośności jest ukryte - Ukryj opinię o pomocy & - Menu pomocy & jest ukryte - Pokaż menu opinii & + Menu do pomocy i opinii + Menu pomocy i opinii jest ukryte + Menu pomocy i opinii jest widoczne - Ukryj prędkość odtwarzania + Menu do prędkości odtwarzania Menu prędkości odtwarzania jest ukryte - Menu prędkości odtwarzania jest wyświetlane + Menu prędkości odtwarzania jest widoczne - Ukryj więcej informacji - Menu więcej informacji jest ukryte - Wyświetlane jest więcej informacji + Menu do większej ilości informacji + Menu większej ilości informacji jest ukryte + Menu większej ilości informacji jest widoczne - Ukryj ekran blokady - Menu ekranu blokady jest ukryte - Wyświetlane jest menu ekranu blokady + Menu do blokady ekranu + Menu blokady ekranu jest ukryte + Menu blokady ekranu jest widoczne - Ukryj ścieżkę audio - Menu ścieżki audio jest ukryte - Menu ścieżki audio jest wyświetlane + Menu do ścieżki dźwiękowej + Menu ścieżki dźwiękowej jest ukryte + Menu ścieżki dźwiękowej jest widoczne - Ukryj wachtę w VR - Obejrzyj menu VR jest ukryte - Obejrzyj w menu VR - Ukryj stopkę menu jakości wideo - Stopka menu jakości wideo jest ukryta - Stopka menu jakości wideo jest pokazana + Menu do oglądania w VR + Menu oglądania w VR jest ukryte + Menu oglądania w VR jest widoczne + Opis menu jakości filmu + Opis menu jakości filmu jest ukryty + Opis menu jakości filmu jest widoczny - Ukryj poprzednie przyciski & następnego filmu + Przyciski do poprzedniego i następnego filmu Przyciski są ukryte - Przyciski są wyświetlane - Ukryj przycisk Cofania - Przycisk Przesyłaj jest ukryty - Przycisk Przesyłaj jest widoczny + Przyciski są widoczne + Przycisk do powielania + Przycisk powielania jest ukryty + Przycisk powielania jest widoczny - Przycisk ukrycia podpisów - Przycisk podpisów jest ukryty - Przycisk podpisów jest pokazany - Ukryj przycisk automatycznego odtwarzania + Przycisk do napisów + Przycisk napisów jest ukryty + Przycisk napisów jest widoczny + Przycisk automatycznego odtwarzania Przycisk automatycznego odtwarzania jest ukryty - Przycisk automatycznego odtwarzania jest wyświetlany + Przycisk automatycznego odtwarzania jest widoczny - Ukryj karty ekranu końcowego + Karty ekranu końcowego Karty ekranu końcowego są ukryte - Karty ekranu końcowego są wyświetlane + Karty ekranu końcowego są widoczne - Wyłącz tryb otoczenia na pełnym ekranie - Tryb otoczenia wyłączony - Tryb Ambient włączony + Oświetlenie kinowe na pełnym ekranie + Oświetlenie kinowe wyłączone + Oświetlenie kinowe włączone - Ukryj karty informacyjne + Karty informacyjne Karty informacyjne są ukryte - Karty informacyjne są wyświetlane + Karty informacyjne są widoczne - Wyłącz animacje liczb kroczących - Numery rolowania nie są animowane - Numery toczenia są animowane + Animacje liczb + Liczby nie są animowane + Liczby są animowane - Ukryj pasek nawigacji w odtwarzaczu wideo - Pasek wyszukiwania odtwarzacza wideo jest ukryty - Pasek przeszukiwania odtwarzacza wideo jest wyświetlany - Ukryj pasek przeszukiwania w miniaturach wideo - Pasek miniatur jest ukryty - Pasek miniatur jest wyświetlany + Pasek postępu filmu w odtwarzaczu + Pasek postępu w odtwarzaczu jest ukryty + Pasek postępu w odtwarzaczu jest widoczny + Paski postępu filmów w miniaturkach + Pasek postępu jest ukryty + Pasek postępu jest widoczny - Odtwarzacz Shorts + Odtwarzacz Shortsów + Ukryj lub pokazuj przyciski w odtwarzaczu Shorts\'ów - Ukryj Shorts w kanale głównym - Shorts w kanale głównym są ukryte - Shorts w kanale głównym są wyświetlane + Shorts\'y na stronie głównej + Shorts\'y na stronie głównej są ukryte + Shorts\'y na stronie głównej są widoczne - Ukryj Shorts w kanale subskrypcji - Shorts w kanale subskrypcji są ukryte - Shorts w kanale subskrypcji są wyświetlane - Ukryj Shorts w wynikach wyszukiwania - Shorts w wynikach wyszukiwania są ukryte - Shorts w wynikach wyszukiwania są wyświetlane + Shorts\'y na stronie subskrypcji + Shorts\'y na stronie subskrypcji są ukryte + Shorts\'y na stronie subskrypcji są widoczne + Shorts\'y w wynikach wyszukiwania + Shorts\'y w wynikach wyszukiwania są ukryte + Shorts\'y w wynikach wyszukiwania są widoczne - Ukryj przycisk dołączenia - Przycisk dołączenia jest ukryty - Przycisk dołączenia jest pokazany + Przycisk od sponsorowania + Przycisk od sponsorowania jest ukryty + Przycisk od sponsorowania jest widoczny - Ukryj przycisk subskrypcji - Przycisk subskrypcji jest ukryty - Przycisk subskrypcji jest pokazany - Ukryj wstrzymane przyciski nakładki + Przycisk od subskrybowania + Przycisk od subskrybowania jest ukryty + Przycisk od subskrybowania jest widoczny + Wstrzymane przyciski nakładki Zatrzymane przyciski nakładki są ukryte Wyświetlane są wstrzymane przyciski nakładki - Ukryj przycisk sklepu - Przycisk Sklep jest ukryty - Przycisk sklepu jest pokazany - Ukryj przycisk super podziękowania - Przycisk Super dziękuję jest ukryty - Przycisk Super dziękuję jest pokazany - Ukryj oznakowane produkty - Produkty oznaczone tagiem są ukryte - Produkty oznaczone tagiem są wyświetlane - Ukryj etykietę lokalizacji + Przycisk sklepu + Przycisk sklepu jest ukryty + Przycisk sklepu jest widoczny + Przycisk od superpodziękowania + Przycisk od superpodziękowania jest ukryty + Przycisk od superpodziękowania jest widoczny + Oznaczone produkty + Oznaczone produkty są ukryte + Oznaczone produkty są widoczne + Etykieta lokalizacji Etykieta lokalizacji jest ukryta - Etykieta lokalizacji jest wyświetlana - Ukryj przycisk zapisu muzyki - Przycisk zapisu muzyki jest ukryty - Przycisk zapisu muzyki jest pokazany - Ukryj przycisk użyj szablonu - Przycisk \"Użyj szablonu\" jest ukryty - Przycisk szablonu jest pokazany + Etykieta lokalizacji jest widoczna + Przycisk od zapisywania muzyki + Przycisk od zapisywania muzyki jest ukryty + Przycisk od zapisywania muzyki jest widoczny + Przycisk szablonu + Przycisk szablonu jest ukryty + Przycisk szablonu jest widoczny Ukryj nadchodzący przycisk Przychodzący przycisk jest ukryty Przychodzący przycisk jest pokazany - Ukryj zielony przycisk ekranu - Przycisk zielonego ekranu jest ukryty - Przycisk zielonego ekranu jest pokazany - Ukryj przycisk hasztaga - Przycisk Hashtag jest ukryty - Przycisk Hashtag jest pokazany - Ukryj sugestie wyszukiwania + Przycisk od greenscreena + Przycisk od greenscreena jest ukryty + Przycisk od greenscreena jest widoczny + Przycisk hashtagu + Przycisk Hashtagu jest ukryty + Przycisk Hashtagu jest widoczny + Sugestie wyszukiwania Sugestie wyszukiwania są ukryte - Sugestie wyszukiwania są wyświetlane - Ukryj naklejki + Sugestie wyszukiwania są widoczne + Naklejki Naklejki są ukryte - Naklejki są wyświetlane + Naklejki są widoczne Ukryj jak Fontanna - Animacja tworzenia przycisków polubienia jest ukryta - Pokazana jest animacja przycisku założycielskiego - Ukryj przycisk polubień - Przycisk polubienia jest ukryty - Przycisk polubienia jest pokazany - Ukryj przycisk odlubiania - Przycisk nielubiania jest ukryty - Przycisk nielubiania jest wyświetlany - Ukryj przycisk komentarzy + Animacja przycisku polubienia jest ukryta + Animacja przycisku polubienia jest widoczna + Przycisk łapki w górę + Przycisk łapki w górę jest ukryty + Przycisk łapki w górę jest widoczny + Przycisk łapki w dół + Przycisk łapki w dół jest ukryty + Przycisk łapki w dół jest widoczny + Przycisk komentarzy Przycisk komentarzy jest ukryty - Przycisk komentarzy jest wyświetlany + Przycisk komentarzy jest widoczny - Ukryj przycisk remiksowania + Przycisk remiksu Przycisk remiksu jest ukryty - Przycisk remiksu jest pokazany + Przycisk remiksu jest widoczny - Ukryj przycisk udostępniania + Przycisk udostępniania Przycisk udostępniania jest ukryty - Przycisk udostępniania jest pokazany - Ukryj panel informacji + Przycisk udostępniania jest widoczny + Panel z informacjami Panel informacji jest ukryty - Panel informacji jest wyświetlany - Ukryj pasek kanału + Panel informacji jest widoczny + Pasek kanału Pasek kanału jest ukryty - Pasek kanału jest wyświetlany - Ukryj tytuł wideo + Pasek kanału jest widoczny + Ukryj tytuł filmu Tytuł jest ukryty - Tytuł jest wyświetlany + Tytuł jest widoczny Ukryj etykietę metadanych dźwięku Etykieta metadanych jest ukryta - Etykieta metadanych jest wyświetlana - Ukryj pełną etykietę łącza wideo - Etykieta łącza wideo jest ukryta - Etykieta linku wideo jest wyświetlana - Ukryj przycisk dźwięku + Etykieta metadanych jest widoczna + Etykiety z linkami do całych filmów + Etykieta linku do filmu jest ukryta + Etykieta linku do filmu jest widoczna + Przycisk dźwięku Przycisk dźwięku jest ukryty - Przycisk dźwięku jest wyświetlany - Ukryj pasek nawigacji + Przycisk dźwięku jest widoczny + Pasek nawigacji Pasek nawigacji jest ukryty - Pasek nawigacji jest wyświetlany + Pasek nawigacji jest widoczny - Wyłącz sugerowany ekran końcowy wideo - Sugerowane filmy zostaną wyłączone - Sugerowane filmy będą wyświetlane + Sugestie na ekranie końcowym + Sugerowane filmy będą ukryte + Sugerowane filmy będą widoczne - Ukryj znacznik czasu wideo + Znacznik czasu filmu Znacznik czasu jest ukryty - Znacznik czasu jest wyświetlany + Znacznik czasu jest widoczny - Ukryj wyskakujące panele - Panel wyskakujących okienek graczy jest ukryty - Wyskakujące panele graczy są wyświetlane + Wyskakujące panele + Wyskakujące panele odtwarzacza są ukryte + Wyskakujące panele odtwarzacza są widoczne Przezroczystość nakładki odtwarzacza @@ -715,88 +717,89 @@ This is because Crowdin requires temporarily flattening this file and removing t Łapki w dół są tymczasowo niedostępne (API nie reaguje) - Brak polubień (status %d) - Łapki w dół nie są dostępne (limit API użytkownika) - Brak polubień (%s) + Łapki w dół niedostępne (status %d) + Łapki w dół niedostępne (osiągnięto limit żądań API) + Łapki w dół niedostępne (%s) - Odśwież wideo, aby głosować używając zwróć YouTube Dislike - Nie polubiono - Nie pokazano polubień - Pokaż nielubienie na Shorts - Nie lubi wyświetlane na Shorts - Brak polubień wyświetlanych na Shorts\n\nOgraniczenie: brak polubień w trybie incognito - Nie lubię ukryć na Shorts - Nie lubi jako procent - Nie lubi wyświetlane jako procent - Nie lubi wyświetlane jako liczba + Odśwież film, aby zagłosować za pomocą Return YouTube Dislike + Łapki w dół są widoczne + Łapki w dół są ukryte + Pokaż łapki w dół na Shorts\'ach + Łapki w dół widoczne na Shorts\'ach + Łapki w dół wyświetlane na Shorts\n\nOgraniczenie: łapki w dół mogą się nie wyświetlać w trybie incognito + Łapki w dół ukryte na Shorts\'ach + Łapki w dół jako procent + Łapki w dół wyświetlane jako procent + Łapki w dół wyświetlane jako liczba - Przycisk kompaktowy jak - Przycisk polubienia stylizowany dla minimalnej szerokości - Przycisk polubienia stylizowany dla najlepszego wyglądu - Pokaż toast jeśli API nie jest dostępne - Toast jest wyświetlany, jeśli Zwrot YouTube nie jest dostępny - Toast nie jest wyświetlany, jeśli Zwrot YouTube nie jest dostępny + Kompaktowy przycisk polubienia + Przycisk łapki stylizowany dla minimalnej szerokości + Przycisk łapki stylizowany dla najlepszego wyglądu + Pokaż komunikat o niedostępności API + Komunikat jest wyświetlany, jeśli Return YouTube Dislike nie jest dostępny + Komunikat nie jest wyświetlany, jeśli Return YouTube Dislike nie jest dostępny O programie - Dane są dostarczane przez API Zwrotu YouTube Dislike API. Dotknij tutaj, aby dowiedzieć się więcej + Dane są dostarczane przez API Return YouTube Dislike. Dotknij tutaj, aby dowiedzieć się więcej - Zwróć statystyki API tego urządzenia YouTubeDislike - Czas reakcji API, średnia - Czas odpowiedzi API, minimum - Czas reakcji API, maksymalny - Czas odpowiedzi API, ostatni film - Nie polubiono tymczasowo niedostępne - limit czasu API klienta w efekcie - API pobiera głosy, liczba połączeń + Statystyki ReturnYouTubeDislike tego urządzenia + Średni czas odpowiedzi API + Minimalny czas odpowiedzi API + Maksymalny czas odpowiedzi API + Czas odpowiedzi API z ostatniego filmu + Łapki w dół tymczasowo niedostępne - wprowadzono limit żądań klienta API + Liczba połączeń do API podczas pobierania łapek Nie wykonano połączeń sieciowych - %d połączenia sieciowe wykonane - API pobiera głosy, liczba czasów - Upłynął limit czasu połączenia sieciowego - %d połączenia sieciowe przekroczyły limit czasu - Limity prędkości klienta API - Nie napotkano limitów cenowych klienta + %d wykonanych połączeń sieciowych + Liczba przekroczeń czasu API podczas pobierania łapek + Brak połączeń sieciowych zakończonych upływem czasu + %d połączeń sieciowych zakończonych upływem czasu + Limity żądań klienta API + Nie napotkano limitów żądań klienta + Limit żądania klient przekroczony %d razy %d milisekund - Włącz szeroki pasek wyszukiwania + Szeroki pasek wyszukiwania Szeroki pasek wyszukiwania jest włączony Szeroki pasek wyszukiwania jest wyłączony - Włącz miniaturki wysokiej jakości - Miniatury paska wyszukiwania są wysokiej jakości - Miniatury paska wyszukiwania są średniej jakości - Miniatury paska paska paska pełnoekranowego są wysokiej jakości - Miniaturki paska paska paska pełnoekranowego są średniej jakości - Spowoduje to również przywrócenie miniatur na zwierzętach, które nie mają miniatur paska wyszukiwania.\n\nMiniaturki paska wyszukiwania będą miały taką samą jakość jak bieżący film.\n\nTa funkcja działa najlepiej z jakością wideo 720p lub niższą oraz przy użyciu bardzo szybkiego połączenia internetowego. - Przywróć stare miniatury paska nawigacji - Miniatury paska wyszukiwania pojawią się nad paskiem wyszukiwania - Miniaturki paska wyszukiwania pojawią się na pełnym ekranie + Miniaturki wysokiej jakości + Podgląd filmu w wysokiej jakości + Podgląd filmu w średniej jakości + Pełnoekranowy podgląd filmu w wysokiej jakości + Pełnoekranowy podgląd filmu w średniej jakości + Spowoduje to również przywrócenie miniatur na transmisjach na żywo, które nie mają podglądu filmu.\n\nPodglądy filmów będą miały taką samą jakość jak bieżący film.\n\nTa funkcja działa najlepiej przy jakości 720p lub niższej oraz przy bardzo szybkim połączeniu internetowym. + Stare miniatury paska nawigacji + Podgląd filmu pojawi pojawią się nad paskiem postępu + Podgląd filmu pojawi się na pełnym ekranie Włącz SponsorBlock\'a - SponsorBlock jest systemem crowd-sourcing do pominięcia irytujących części filmów YouTube + SponsorBlock to system oparty na społeczności, który umożliwia pomijanie irytujących części filmów na YouTube Wygląd - Pokaż przycisk głosowania - Przycisk głosowania segmentu jest pokazany - Przycisk głosowania segmentu nie jest pokazany + Przycisk głosowania + Przycisk głosowania jest wyświetlany + Przycisk głosowania nie jest wyświetlany - Użyj kompaktowego przycisku Pomiń - Pomiń przycisk stylizowany dla minimalnej szerokości - Pomiń przycisk stylizowany dla najlepszego wyglądu - Automatycznie ukryj przycisk Pomiń - Pomiń przycisk ukrywa się po kilku sekundach - Pomiń przycisk wyświetlany dla całego segmentu - Pokaż toast podczas automatycznego pominięcia - Toast jest wyświetlany, gdy segment zostanie automatycznie pominięty. Dotknij tutaj, aby zobaczyć przykład - Toast nie jest wyświetlany. Dotknij tutaj, aby zobaczyć przykład - Pokaż długość wideo bez segmentów - Długość wideo minus wszystkie segmenty, wyświetlane w nawiasach obok pełnej długości wideo + Styl przycisku od pomijania + Przycisk od pomijania stylizowany dla minimalnej szerokości + Przycisk od pomijania stylizowany dla najlepszego wyglądu + Automatycznie ukryj przycisk od pomijania + Przycisk od pomijania ukrywa się po kilku sekundach + Przycisk od pomijania wyświetlany dla całego segmentu + Pokaż komunikat podczas automatycznego pominięcia + Komunikat jest wyświetlany, gdy segment zostanie automatycznie pominięty. Dotknij tutaj, aby zobaczyć przykład + Komunikat nie jest wyświetlany. Dotknij tutaj, aby zobaczyć przykład + Długość filmu bez segmentów + Długość filmu pomniejszona o wszystkie segmenty, wyświetlana w nawiasie obok pełnej długości wideo Pełna długość wideo wyświetlana Tworzenie nowych segmentów - Pokaż przycisk Utwórz nowy segment - Pokaż przycisk tworzenia nowego segmentu - Utwórz nowy przycisk segmentu nie jest wyświetlany - Dostosuj nowy krok segmentu - Ilość milisekund przycisków dostosowania czasu podczas tworzenia nowych segmentów + Przycisk tworzenia nowych segmentów + Przycisk tworzenia jest widoczny + Przycisk tworzenia nie jest widoczny + Dokładność tworzenia nowego segmentu + Ilość milisekund, o którą przeskakuje czas podczas używania przycisków od tworzenia segmentów Wartość musi być liczbą dodatnią Wyświetl wytyczne Wytyczne zawierają zasady i wskazówki dotyczące tworzenia nowych segmentów @@ -804,92 +807,92 @@ This is because Crowdin requires temporarily flattening this file and removing t Przeczytaj wytyczne SponsorBlock przed tworzeniem nowych segmentów Przeczytano Pokaż mi - Główne - Pokaż toast jeśli API nie jest dostępne - Toast jest wyświetlany, jeśli SponsorBlock nie jest dostępny - Toast nie jest wyświetlany, jeśli SponsorBlock nie jest dostępny - Włącz śledzenie licznika pominięć - Pozwala tablicy wyników SponsorBlock\'a wiedzieć, ile czasu zostało zapisane. Wiadomość jest wysyłana do tablicy wyników za każdym razem, gdy segment zostanie pominięty - Pomiń licznik śledzenia nie jest włączony + Ogólne + Komunikat o niedostępności API + Komunikat jest wyświetlany, jeśli SponsorBlock nie jest dostępny + Komunikat nie jest wyświetlany, jeśli SponsorBlock nie jest dostępny + Śledzenie licznika pominięć + Pozwala tabeli wyników SponsorBlock\'a wiedzieć, ile czasu zostało zaoszczędzone. Wiadomość jest wysyłana do tabeli wyników za każdym razem, gdy segment zostanie pominięty + Śledzenie licznika pominięć nie jest włączone Minimalna długość segmentu Segmenty krótsze niż ta wartość (w sekundach) nie będą wyświetlane lub pominięte Nieprawidłowy czas trwania Twój prywatny identyfikator użytkownika Ta informacja jest poufna i działa jak hasło. Użytkownik, który ma do niej dostęp, może zgłaszać treści jako ty - ID użytkownika prywatnego musi mieć co najmniej 30 znaków + Identyfikator użytkownika prywatnego musi mieć co najmniej 30 znaków Zmień link API - Adres SponsorBlock używa do wykonywania połączeń na serwerze + Adres, który jest używany przez SponsorBlock do wykonywania połączeń z serwerem Zresetuj adres API Adres API jest nieprawidłowy Adres API został zmieniony Importuj/Eksportuj ustawienia Kopiuj - Twoja konfiguracja JSON SponsorBlock, którą można importować/eksportować do platformy ReVanced i innych platform SponsorBlock - Twoja konfiguracja JSON SponsorBlock, którą można importować/eksportować do ReVanced i innych platform SponsorBlock. Obejmuje to Twój identyfikator użytkownika prywatnego. Upewnij się, że udostępniasz go mądrze + Twoja konfiguracja SponsorBlock w formacie JSON, którą można importować/eksportować do ReVanced i innych platform SponsorBlocka + Twoja konfiguracja SponsorBlock w formacie JSON, którą można importować/eksportować do ReVanced i innych platform SponsorBlocka. Obejmuje to Twój identyfikator użytkownika prywatnego. Dziel się nim mądrze. Ustawienia zaimportowane pomyślnie Nie udało się zaimportować: %s Nie udało się wyeksportować: %s - Twoje ustawienia zawierają prywatnego użytkownika SponsorBlock.\n\nTwój identyfikator użytkownika jest jak hasło i nigdy nie powinien być udostępniany.\n + Twoje ustawienia zawierają prywatny identyfikator użytkownika SponsorBlock.\n\nTwój identyfikator użytkownika jest jak hasło i nie powinno być nigdy udostępniane.\n Nie pokazuj ponownie Zmień zachowanie segmentu Treści sponsorowane - Płatna promocja, płatne rekomendacje i reklamy bezpośrednie. Nieprzeznaczone do autopromocji lub bezpłatnych wypisów dla przyczyn/twórców/stron internetowych/produktów, które lubią - Nieopłacona/Własna promocja - Podobnie jak w przypadku \"Sponsor\", z wyjątkiem niespłaconej lub samopromocji. Zawiera sekcje dotyczące towaru, darowizny lub informacje o kogo współpracowali - Przypomnienia o interakcji (Subskrypcja) - Krótkie przypomnienie do polubienia, subskrybowania lub śledzenia ich treści w środku treści. Jeśli jest długa lub dotyczy czegoś konkretnego, to powinien być w trakcie samopromocji - Podświetl + Płatna promocja, płatne rekomendacje oraz bezpośrednie reklamy. Nie do autopromocji ani darmowych wyrazów uznania dla kwestii/twórców/stron/produktów, które im się podobają + Nieopłacona/Autopromocja + Podobnie jak w przypadku treści sponsporowanych, z wyjątkiem nieopłaconej lub autopromocji. Zawiera treści dotyczące towaru, darowizny lub informacji z kim współpracowali + Przypomnienie o interakcji + Krótkie przypomnienie o łapce w górę, subskrypcji lub obserwowaniu. Jeśli trwa długo lub dotyczy czegoś konkretnego, powinno być oznaczone jako autopromocja + Najważniejsze Część filmu, której szuka większość osób Przerywnik/Animowane intro - Interwał bez aktualnej zawartości. Może to być pauza, ramka statyczna lub animacja powtarzana. Nie zawiera przejść zawierających informacje + Fragment bez aktualnej zawartości. Może to być pauza, statyczna klatka lub powtarzająca się animacja. Nie dotyczy przejść zawierających informacje Ekran końcowy/Napisy - Kredyty lub kiedy pojawi się endcard YouTube. Nie dla wniosków z informacją - Podgląd/Podejrzeć/Podejdź/Podejdź/Podejdź/Podejdź/Podejdź/Podejdź/Podejdź/Podejdź/Hook - Zbiór klipów pokazujących to, co się pojawia lub co stało się w filmie lub innych filmach serii, jeżeli wszystkie informacje są powtarzane w innym miejscu + Napisy końcowe lub gdy pojawia się ekran końcowy. Nie dotyczy zakończeń zawierających informacje + Zapowiedź/Podsumowanie/Haczyk + Zbiór klipów pokazujących to, co pojawi się lub co pojawiło się w tym filmie, oraz innych fiilmach z tej serii, w którym wszystkie informacje są gdzieś powielane Nietematyczny Wypełniacz/Żart - Sceny styczne dodawane tylko dla wypełniacza lub humoru, które nie są wymagane do zrozumienia głównej treści wideo. Nie obejmuje segmentów zawierających szczegóły kontekstu lub tła + Sceny nietematyczne dodawane tylko dla wypełniacza lub humoru, które nie są wymagane do zrozumienia głównej treści wideo. Nie obejmuje segmentów zawierających szczegóły kontekstu lub tła Muzyka: Sekcja bez muzyki - Tylko do użytku w filmach muzycznych. Sekcje muzyki bez muzyki, które nie są już objęte inną kategorią + Tylko do użytku w teledyskach. Sekcje teledysków, które nie są uwzględnione w innej kategorii Pomiń - Podświetl + Najważniejsze informacje Pomiń sponsora Pomiń promocję - Pomiń interakcję - Pomiń do podświetlenia + Pomiń przypomnienie o interakcji + Pomiń do najważniejszych informacji Pomiń wprowadzenie - Pomiń intermisję - Pomiń intermisję + Pomiń przerywnik + Pomiń przerywnik Skip outro Pomiń podgląd Pomiń podgląd - Pomiń ponowne podsumowanie + Pomiń podsumowanie Pomiń wypełniacz - Pomiń niemuzykę + Pomiń fragment bez muzyki Pomiń segment Pominięto treści sponsorowane - Pominięto własną promocję + Pominięto autopromocję Pominięto irytujące przypomnienie - Pominięto do podświetlenia + Pominięto do najważniejszych informacji Pominięto wstęp - Pominięta intermisja - Pominięta intermisja + Pominięto przerywnik + Pominięto przerywnik Pominięto zakończenie Pominięto podgląd Pominięto podgląd - Pominięto ponowne zamknięcie + Pominięto podsumowanie Pominięto wypełniacz - Pominięto sekcję bez muzyki + Pominięto fragment bez muzyki Pominięto niezgłoszony segment Pominięto wiele segmentów Pomiń automatycznie Pomiń automatycznie raz Pokaż przycisk pominięcia - Pokaż w pasku wyszukiwania + Pokaż w pasku postępu filmu Wyłącz Nie można przesłać segmentu: %s - SponsorBlock jest tymczasowo wyłączony + SponsorBlock jest tymczasowo niedostępny Nie można przesłać segmentu (status: %1$d %2$s) - Nie można przesłać segmentu.\nRate Limited (zbyt wiele od tego samego użytkownika lub IP) + Nie można przesłać segmentu.\nOsiągnięto limit (za dużo prób od użytkownika/IP) Nie można przesłać segmentu: %s Nie można przesłać segmentu.\nJuż istnieje Pomyślnie przesłano segment @@ -897,7 +900,7 @@ This is because Crowdin requires temporarily flattening this file and removing t SponsorBlock jest niedostępny (API nie reaguje) SponsorBlock tymczasowo niedostępny (status %d) SponsorBlock tymczasowo niedostępny - Nie można zagłosować na segment (upłynął limit czasu API) + Nie można zagłosować na segment (limit czasu) Nie można zagłosować na segment (status: %1$d %2$s) Nie można zagłosować na segment: %s Głos za @@ -905,7 +908,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Zmień kategorię Brak segmentów do zagłosowania Wybierz kategorię segmentu - Kategoria jest wyłączona w ustawieniach. Włącz kategorię do wysyłania. + Kategoria jest wyłączona w ustawieniach. Włącz kategorię do wysłania. Nowy segment SponsorBlock\'a Ustawić %s jako początek lub koniec nowego segmentu? początek @@ -916,14 +919,14 @@ This is because Crowdin requires temporarily flattening this file and removing t Czy te czasy są poprawne? Segment jest od\n\n%1$s\ndo\n%2$s\n\n(%3$s)\n\nGotowy do wysłania? Początek musi być przed końcem - Najpierw zaznacz dwie lokalizacje na pasku czasu - Podgląd segmentu i sprawdzenie jego płynnego pominięcia + Zaznacz dwa miejsca na pasku czasu + Zobacz i dopilnuj, aby segment pomijał się płynnie. Edytuj ręcznie czas segmentu Czy chcesz edytować czas rozpoczęcia lub zakończenia segmentu? Podano nieprawidłowy format czasu Statystyki - Statystyki tymczasowo niedostępne (API jest wyłączone) + Statystyki tymczasowo niedostępne (API nie reaguje) Wczytywanie... SponsorBlock jest wyłączony Twoja nazwa użytkownika: <b>%s</b> @@ -931,189 +934,194 @@ This is because Crowdin requires temporarily flattening this file and removing t Nie można zmienić nazwy użytkownika: Status: %1$d %2$s Nazwa użytkownika została zmieniona Twoja reputacja to <b>%.2f</b> - Stworzyłeś segmenty <b>%s</b> + Stworzyłeś <b>%s</b> segmentów Dotknij tutaj, aby zobaczyć swoje segmenty Tablica wyników SponsorBlock - Zapisałeś ludzi z segmentów <b>%s</b> + Uchroniłeś ludzi przed <b>%s</b> segmentami Dotknij tutaj, aby zobaczyć globalne statystyki i najlepszych współtwórców - To jest <b>%s</b> ich życia.<br>Dotknij tutaj, aby zobaczyć tablicę wyników. - Pominięłeś segmenty <b>%s</b> + To <b>%s</b> ich życia.<br>Dotknij tutaj, aby zobaczyć tabelę wyników + Pominąłeś <b>%s</b> segmentów To jest <b>%s</b> - Zresetować pomijany licznik segmentów? + Czy chcesz zresetować ilość pominiętych segmentów? %1$s godzin %2$s minut %1$s minut %2$s sekund %s sekund Kolor: Zmieniono kolor - Resetowanie kolorów + Zresetowano kolor Nieprawidłowy kod koloru Resetuj kolor Resetuj O programie - Dane są dostarczane przez API SponsorBlock. Dotknij tutaj, aby dowiedzieć się więcej i zobaczyć pobierania dla innych platform + Dane są dostarczane przez API SponsorBlock. Dotknij tutaj, aby dowiedzieć się więcej i pobrać na inne platformy - Wersja Spoof app - Wersja zespoofowana - Wersja nie zespoofowana - Wersja aplikacji będzie zespoofowana do starszej wersji YouTube.\n\nZmieni to wygląd i zachowanie aplikacji, lecz mogą wystąpić niepożądane skutki.\n\nJeśli później wyłączone, zaleca się wyczyszczenie danych aplikacji, aby zapobiec błędom interfejsu. + Oszukiwanie wersji aplikacji + Włączone + Wyłączone + Wersja aplikacji zostanie oszukana do starszej wersji YouTube.\n\nZmieni to wygląd i zachowanie aplikacji, lecz mogą wystąpić nieznane efekty uboczne.\n\nJeśli później zostanie to wyłączone, zaleca się wyczyszczenie danych aplikacji, aby zapobiec błędom interfejsu. - Docelowa zespoofowana wersja aplikacji + Docelowa oszukiwana wersja aplikacji + 18.38.44 - Przywróć stare ikony gracza Shorts - 18.33.40 - Przywróć RYD (Return YouTube Dislike) w trybie incognito - 18.20.39 - Przywracanie szerokiej prędkości wideo & menu jakości - 18.09.39 - Przywróć kartę bibliotek - 17.41.37 - Przywróć starą półkę na liście odtwarzania + 18.33.40 - Przywróć RYD (Return YouTube Dislike) w trybie incognito + 18.20.39 - Przywracanie szerokiej prędkości wideo & menu jakości + 18.09.39 - Przywróć kartę bibliotek + 17.33.42 - Przywróć stary układ playlisty - Ustaw stronę startową - Domyślnie + Strona startowa + Domyślna Przeglądaj kanały - Przeglądaj - Gra + Odkrywanie + Gry Historia Biblioteka Polubione filmy - Żywe + Na żywo Filmy Muzyka Szukaj Sport Subskrypcje - Popularne - Obserwuj później + Na czasie + Do obejrzenia - Wyłącz wznawianie odtwarzacza Shorts - Odtwarzacz Shorts nie będzie wznawiany przy starcie aplikacji - Odtwarzacz Shorts zostanie wznowiony przy starcie aplikacji + Wznawianie odtwarzacza Shorts\'ów + Odtwarzacz Shorts\'ów nie będzie wznawiany przy starcie aplikacji + Odtwarzacz Shorts\'ów zostanie wznowiony przy starcie aplikacji Autoodtwarzanie Shorts Shorts\'y będą odtwarzane automatycznie Shorts\'y będą odtwarzane automatycznie + Automatyczne odtwarzanie w tle Shorts\'ów + Odtwarzanie w tle Shorts\'ów będzie automatycznie odtwarzane + Odtwarzanie w tle Shorts\'ów będzie się powtarzać - Włącz układ tabletu + Układ tabletu Układ tabletu jest włączony Układ tabletu jest wyłączony - Posty społeczności nie pojawiają się w układach tabletów + Posty społeczności nie pojawiają się w układach tabletu - Minigracz + Miniodtwarzacz Zmień styl zminimalizowanego odtwarzacza aplikacji - Typ minigracza + Typ miniodtwarzacza + Nieaktywne Oryginał - Telefon - Tabletka + Minimalny + Tablet Nowoczesny 1 Nowoczesny 2 Nowoczesny 3 - Włącz zaokrąglone narożniki - Narożniki są zaokrąglone - Narożniki są kwadratowe - Włącz dwukrotne dotknięcie i przypnij aby zmienić rozmiar - Akcja dwukrotnego dotknięcia i przypinanie aby zmienić rozmiar jest włączone\n\n• Dwukrotnie stuknij, aby zwiększyć rozmiar minigracza\n• Dwukrotnie stuknij ponownie, aby przywrócić oryginalny rozmiar - Akcja dwukrotnego dotknięcia i przypinanie aby zmienić rozmiar jest wyłączona - Włącz przeciągnij i upuść - Przeciągnij i upuść jest włączone\n\nMiniplayer może być przeciągnięty do dowolnego rogu ekranu - Przeciągnij i upuść jest wyłączona - Włącz gest przeciągania poziomego - Gest przeciągania w poziomie włączony\n\nMiniplayer może być przesunięty z ekranu w lewo lub w prawo - Gest przeciągania w poziomie wyłączony - Ukryj przycisk zamykania - Przycisk zamykający jest ukryty - Przycisk zamykający jest pokazany - Ukryj przyciski rozwijające i zamykające - Przyciski są ukryte\n\nPrzesuń, aby rozwinąć lub zamknąć - Wyświetlane są przyciski rozwijane i zamykane + Zaokrąglone narożniki + Zaokrąglone + Kwadratowe + Podwójne stuknięcie i uszczypnięcie, aby zmienić rozmiar + Włączone\n\n• Dwukrotnie dotknij, aby zwiększyć rozmiar miniodtwarzacza\n• Dwukrotnie dotknij ponownie, aby przywrócić oryginalny rozmiar + Wyłączone + Przeciągnij i upuść + Włączone\n\nMiniodtwarzacz można przeciągnąć do dowolnego rogu ekranu + Wyłączone + Gest przeciągania w poziomie + Włączony\n\nMiniodtwarzacz można przeciągnąć poza ekran w lewo lub prawo + Gest przeciągania w poziomie jest wyłączony + Przycisk zamykania + Przycisk zamykania jest ukryty + Przycisk zamykania jest widoczny + Przyciski rozszerzania i zamykania + Przycisk są ukryte\n\nPrzesuń palcem, aby rozszerzyć lub zamknąć + Widoczne Ukryj napisy - Podteksty są ukryte - Podteksty są wyświetlane - Ukryj przyciski przeskakujące do przodu i do tyłu - Pomiń do przodu i z powrotem są ukryte - Pomiń do przodu i do tyłu są wyświetlane + Napisy są ukryte + Napisy są widoczne + Przyciski przewijania do przodu i do tyłu + Przyciski przewijania do przodu i do tyłu są ukryte + Przyciski przewijania do przodu i do tyłu są widoczne Rozmiar początkowy Początkowy rozmiar ekranu, w pikselach Rozmiar piksela musi być pomiędzy %1$s i %2$s Przezroczystość nakładki - Wartość przezroczystości między 0-100, gdzie 0 jest przezroczysty - Przezroczystość nakładki musi być pomiędzy 0-100 + Wartość przezroczystości, gdzie 0 to pełna przezroczystość + Przezroczystość nakładki musi być od 0 do 100 - Włącz ekran ładowania gradientu - Ekran ładowania będzie miał gradient tła - Ekran ładujący będzie miał stałe tło + Kolorowy ekran ładowania + Ekran ładowania będzie miał kolorowe tło + Ekran ładowania będzie miał stałe tło - Włącz niestandardowy kolor paska paska - Niestandardowy kolor paska nawigacji jest wyświetlany - Oryginalny kolor paska nawigacji jest wyświetlany - Niestandardowy kolor paska podglądu - Kolor paska wyszukiwania - Nieprawidłowa wartość koloru paska wyszukiwania + Niestandardowy kolor paska postępu + Niestandardowy + Oryginalny + Niestandardowy kolor paska postępu + Kolor paska postępu + Nieprawidłowa wartość koloru paska postępu - Pomiń ograniczenia regionu obrazu + Host dla obrazów Używanie hosta obrazu yt4.ggpht.com - Używanie oryginalnego hosta obrazu\n\nWłączenie tego może naprawić brakujące obrazy, które są zablokowane w niektórych regionach + Używanie oryginalnego hostu obrazów\n\nWłączenie tej opcji może naprawić brakujące obrazy, które są blokowane w niektórych regionach. - Zakładka domowa + Strona główna - Zakładka subskrypcji + Strona subskrypcji - Zakładka - Listy odtwarzania, rekomendacje + Na stronie Ty + W playlistach, rekomendacjach Wyniki wyszukiwania - Original thumbnails - Strzałka & Oryginalne miniatury - Strzała & Nadal przechwytywane - Nadal przechwytywane - DeArrow udostępnia miniaturki z crowd-sourcing dla filmów YouTube. Miniaturki te są często bardziej odpowiednie niż te dostarczane przez YouTube\n\nJeśli włączone, adresy URL wideo zostaną wysłane do serwera API i nie zostaną wysłane żadne inne dane. Jeśli film nie ma miniatur DeArrow następnie oryginalne lub nadal są wyświetlane\n\nDotknij tutaj, aby dowiedzieć się więcej o DeStrzałce - Pokaż toast jeśli API nie jest dostępne - Toast jest wyświetlany, jeśli strzałka nie jest dostępna - Toast nie jest wyświetlany, jeśli strzałka nie jest dostępna - DeArrow API endpoint - Adres URL punktu końcowego miniaturki DeArrow + Oryginalne miniaturki + DeArrow i oryginalne miniatury + DeArrow i miniaturki przechwycone z filmu + Miniaturki przechwycone z filmu + DeArrow udostępnia miniaturki pochodzące z crowd-sourcingu dla filmów na YouTube. Miniaturki te są często bardziej trafne niż te dostarczane przez YouTube\n\nJeśli opcja jest włączona, adresy URL filmów będą wysłane do serwera API i nie będą wysłane żadne inne dane. Jeśli film nie ma miniatur od DeArrow to wyświetla się oryginalna lub przechwycona z filmu\n\nDotknij tutaj, aby dowiedzieć się więcej + Komunikat o niedostępności API + Komunikat jest wyświetlany, jeśli DeArrow nie jest dostępny + Komunikat nie jest wyświetlany, jeśli DeArrow nie jest dostępny + Punkt końcowy API DeArrow + Adres URL punktu końcowego do miniaturek DeArrow Przechwytywanie wideo Przechwytywanie jest nadal pobierane od początku/środka/końca każdego filmu. Te obrazy są wbudowane w YouTube i żadne zewnętrzne API nie jest używane - Używaj szybkiego przechwytywania - Używanie średnich jakości wciąż przechwytywanych miniatur będzie ładowane szybciej, ale strumienie na żywo, nieuwolnione lub bardzo stare filmy mogą pokazywać puste miniatury - Używanie wysokiej jakości przechwytywania - Czas na pobranie nagrań wideo - Początek wideo - Średnie wideo - Koniec wideo + Szybkie przechwytywanie miniaturek z filmu + Używasz przechwytywania średniej jakości. Miniaturki będą ładować się szybciej, lecz mogą pozostać puste w przypadku transmisji na żywo, niewydanych i bardzo starych filmów. + Używasz wysokiej jakości przechwytywania + Czas, z którego ma być przechwycona miniaturka z filmu + Początek filmu + Środek filmu + Koniec filmu - Strzała tymczasowo niedostępna (kod statusu: %s) - Strzałka tymczasowo niedostępna + DeArrow tymczasowo niedostępny (kod statusu: %s) + DeArrow tymczasowo niedostępny - Pokaż zaawansowane ogłoszenia - Ogłoszenia są wyświetlane przy starcie - Ogłoszenia nie są wyświetlane przy starcie - Pokaż ogłoszenia przy starcie + Pokaż ogłoszenia ReVanced + Włączone + Wyłączone + Ogłoszenia przy starcie Nie udało się połączyć z dostawcą ogłoszeń Odrzuć Ostrzeżenie - Twoja historia zegarka nie jest zapisywana.<br><br>Najprawdopodobniej jest to spowodowane przez blokowanie reklam DNS lub serwer proxy sieciowego.<br><br>Aby to naprawić, biała lista <b>s.youtube.com</b> lub wyłącz wszystkie bloki DNS i proxy. + Twoja historia oglądania nie jest zapisywana.<br><br>Najprawdopodobniej jest to spowodowane blokadą reklam DNS lub serwer proxy.<br><br>Aby to naprawić, dodaj do białej listy<b>s.youtube.com</b> lub wyłącz wszystkie blokady DNS i proxy. Nie pokazuj ponownie - Włącz automatyczne powtarzanie - Automatyczne powtarzanie jest włączone - Automatyczne powtarzanie jest wyłączone + Automatyczne powtarzanie + Włączone + Wyłączone - Zespoofuj wymiar urządzenia - Zespoofuj wymiar urządzenia - Wymiary urządzenia nie są zespoofowane\n\nWłączenie tej opcji umożliwia ustawienie wyższej jakości wideo niż zwykle - Włączenie tego może spowodować zacinanie się odtwarzanego filmu, pogorszenie żywotności baterii i nieznane działania niepożądane. + Oszukaj rozdzielczość urządzenia + Włączone\n\nMogą zostać odblokowane wyższe jakości filmów, ale możesz doświadczyć zacinania się odtwarzanego filmu, pogorszenia żywotności baterii oraz nieznanych efektów ubocznych + Wyłączone\n\nWłączenie tej opcji umożliwia ustawienie wyższej jakości filmu niż zwykle + Włączenie tego może spowodować zacinanie się odtwarzanego filmu, pogorszenie żywotności baterii i nieznane efekty uboczne. Ustawienia GmsCore @@ -1125,99 +1133,101 @@ This is because Crowdin requires temporarily flattening this file and removing t Przekierowanie URL nie jest omijane - Otwórz linki w przeglądarce - Otwieranie linków zewnętrznych - Otwieranie linków w aplikacji + Otwieranie linków + Przez przeglądarke + Przez aplikacje - Usuń parametr zapytania + Parametr zapytania śledzenia Parametr zapytania śledzenia jest usuwany z linków - Parametr zapytania nie został usunięty z linków + Parametr zapytania śledzenia nie jest usuwany z linków - Wyłącz szczęście powiększenia + Haptyka przy zoomowaniu Haptyka jest wyłączona Haptyka jest włączona - Jakość automatyczna - Zapamiętaj zmiany jakości wideo + + Auto + Zapamiętaj zmiany jakości filmu Zmiany jakości dotyczą wszystkich filmów Zmiany jakości dotyczą tylko bieżącego filmu Domyślna jakość wideo w sieci Wi-Fi Domyślna jakość wideo w sieci komórkowej - mobilny - wifi + Dane mobilne + Wi-Fi Zmieniono domyślną jakość %1$s na: %2$s - Pokaż przycisk szybkiego dialogu. - Widoczny - Przycisk nie jest wyświetlany + Przycisk prędkości + Przycisk jest widoczny + Przycisk nie jest widoczny Własne menu prędkości odtwarzania - Pokaż niestandardowe menu prędkości - Niestandardowe menu prędkości nie jest wyświetlane + Niestandardowe menu prędkości jest widoczne + Niestandardowe menu prędkości nie jest widoczne Niestandardowe prędkości odtwarzania Dodaj lub zmień niestandardowe prędkości odtwarzania - Prędkość niestandardowa musi być mniejsza niż %s. Używając wartości domyślnych. - Nieprawidłowa niestandardowa prędkość odtwarzania. Używanie wartości domyślnych. + Prędkość niestandardowa musi być mniejsza niż %s. Użyto domyślnych. + Nieprawidłowe prędkości odtwarzania. Użyto domyślnych. + Auto - Zapamiętaj zmiany prędkości odtwarzania + Zapamiętuj zmiany prędkości odtwarzania Zmiany prędkości odtwarzania dotyczą wszystkich filmów - Prędkość odtwarzania zmienia się tylko dla bieżącego filmu + Zmiany prędkości odtwarzania dotyczą tylko bieżącego filmu Domyślna prędkość odtwarzania Zmieniono domyślną prędkość na: %s - Przywróć stare menu jakości wideo - Wyświetlane jest stare menu jakości wideo + Stare menu jakości filmu + Stare menu jakości wideo jest wyświelane Stare menu jakości wideo nie jest wyświetlane - Włącz slajd, aby wyszukać - Przesuń, aby przeszukiwać jest włączony - Przesuń, aby przeszukiwać nie jest włączony + Przesuwanie do przewijania + Włączone + Wyłączone - Słuchanie strumieni wideo - Słuchaj strumienia wideo klienta, aby zapobiec problemom z odtwarzaniem - Słuchanie strumieni wideo - Strumienie wideo są spoofowane - Strumienie wideo nie jest spoofed\n\nOdtwarzanie wideo może nie działać - Wyłączenie tego ustawienia może spowodować problemy z odtwarzaniem wideo. + Oszukaj strumienie filmu + Oszukuje strumienie filmu klienta, aby zapobiec problemom z odtwarzaniem + Oszukaj strumienie filmu + Włączone + Wyłączone\n\nOdtwarzanie filmu może nie działać poprawnie + Wyłączenie tej opcji może spowodować problemy z odtwarzaniem filmów. Domyślny klient - Siła AVC (H.264) + Wymuś AVC (H.264) Kodek wideo to AVC (H.264) - Kodek wideo to VP9 lub AV1 - Twoje urządzenie nie posiada dekodowania VP9, a to ustawienie jest zawsze włączone, gdy spoofing klienta jest włączony - Włączenie tego może poprawić żywotność baterii i naprawić stłuczenie odtwarzania.\n\nAVC ma maksymalną rozdzielczość 1080p, a odtwarzanie wideo wykorzysta więcej danych internetowych niż VP9 lub AV1. - iOS spoofing działania niepożądane - • Filmy lub płatne filmy mogą nie odtwarzać\n• Livestreams zaczynają się od początku\n• Filmy mogą zakończyć się 1 sekundą na początku\n• Brak kodeka opus audio - Działania niepożądane związane z systemem Android VR + Kodek wideo to VP9 / AV1 + Twoje urządzenie nie posiada sprzętowego dekodowania VP9, a ta opcja jest zawsze włączona, gdy spoofing klienta jest aktywny + Włączenie tej opcji może poprawić żywotność baterii i wyeliminować zacinanie się odtwarzania.\n\nAVC ma maksymalną rozdzielczość 1080p, a odtwarzanie wideo zużywa więcej danych internetowych niż VP9 czy AV1. + Efekty uboczne spoofingu iOS + • Filmy kinowe lub płatne filmy mogą się nie odtwarzać\n• Transmisje na żywo rozpoczynają się od początku\n• Filmy mogą zakończyć się o sekundę wcześniej\n• Kodek opus jest niedostępny + Efekty uboczne spoofingu Android VR • Brakuje menu ścieżki dźwiękowej\n• Stabilna głośność nie jest dostępna - Blokuj reklamy audio - Reklamy audio są zablokowane - Reklamy audio są odblokowane + Reklamy dźwiękowe + Reklamy dźwiękowe są zablokowane + Reklamy dźwiękowe są odblokowane - %s jest niedostępny. Reklamy mogą wyskakiwać. Spróbuj przełączyć się na inną usługę w ustawieniach. - Serwer %s zwrócił błąd. Reklamy mogą wyświetlić. Spróbuj przełączyć się na inną usługę blokowania reklam w ustawieniach. - Blokuj osadzone reklamy wideo + %s jest niedostępny. Reklamy mogą się pojawić. Spróbuj przełączyć się na inną usługę w ustawieniach. + Serwer %s zwrócił błąd. Reklamy mogą się pojawić. Spróbuj przełączyć na inną usługę blokowania reklam w ustawieniach. + Osadzone reklamy w filmie Nieaktywne - Proxy świetlne + Proxy Luminous Proxy PurpleAdBlock - Blokuj reklamy wideo - Reklamy wideo są zablokowane - Reklamy wideo są odblokowane + Reklamy w filmie + Reklamy w filmie są zablokowane + Reklamy w filmie są odblokowane wiadomość usunięta @@ -1227,18 +1237,18 @@ This is because Crowdin requires temporarily flattening this file and removing t Pokaż usunięte wiadomości jako przekreślony tekst - Automatycznie włącz punkty kanału - Punkty kanału są automatycznie odejmowane + Automatycznie odbieranie punktów kanału + Punkty kanału są automatycznie odebrane Punkty kanału nie są automatycznie odebrane - Włącz tryb debugowania Twitch - Tryb debugowania Twitch jest włączony (nie zalecane) - Tryb debugowania Twitch jest wyłączony + Tryb debugowania + Tryb debugowania jest włączony (niezalecane) + Tryb debugowania jest wyłączony - Ulepszone ustawienia + Ustawienia ReVanced Reklamy Ustawienia blokowania reklam Czat @@ -1247,11 +1257,11 @@ This is because Crowdin requires temporarily flattening this file and removing t Różne ustawienia Ustawienia ogólne Inne ustawienia - Reklamy klientów - Reklamy surestream po stronie serwera + Reklamy po stronie klienta + Reklamy po stronie serwera Logi do debugowania - Włączone - Wyłączone + Logi do debugowania są włączone + Logi do debugowania są wyłączone diff --git a/patches/src/main/resources/addresources/values-pt-rBR/strings.xml b/patches/src/main/resources/addresources/values-pt-rBR/strings.xml index aefe04fa6..5bd0ca7fd 100644 --- a/patches/src/main/resources/addresources/values-pt-rBR/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rBR/strings.xml @@ -437,8 +437,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Botões de ação Ocultar ou mostrar botões sob vídeos Ocultar Gostei e Não gostei - Botões de gostei e não gostei estão ocultos - Botões de gostei e não gostei não estão ocultos + Os botões Gostei e Não gostei estão ocultos + Os botões Gostei e Não gostei são mostrados Ocultar Compartilhar Botão compartilhar está oculto @@ -552,7 +552,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Rodapé do menu de qualidade de vídeo não está ocultos - Ocultar botões anterior & próxima vídeo + Ocultar botões anterior & próximo vídeo Os botões estão ocultos Os botões serão exibidos Ocultar botão de transmitir @@ -589,10 +589,10 @@ This is because Crowdin requires temporarily flattening this file and removing t Ocultar barra de busca no reprodutor de vídeo Barra de busca no reprodutor de vídeo está oculto - Barra de busca no reprodutor de vídeo não está oculto - Ocultar barra de busca nas miniaturas do vídeo - Barra de busca nas miniaturas estão oculta - Barra de busca nas miniaturas não estão oculta + Barra de busca no reprodutor de vídeo é mostrada + Ocultar barra de busca nas miniaturas de vídeo + A barra de busca nas miniaturas está oculta + Barra de busca nas miniaturas é mostrada Reprodutor do Shorts @@ -637,6 +637,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Ocultar botão Usar template O botão Usar template está oculto O botão Usar template será exibido + Ocultar botão \"próximo\" + O botão \"próximo\" está oculto + O botão \"próximo\" é mostrado + Ocultar botão de tela verde + O botão de tela verde está oculto + O botão de tela verde será exibido + Ocultar botão hashtag + O botão hashtag está oculto + Botão hashtag é mostrado Ocultar sugestões de busca Sugestões de pesquisa estão ocultas Sugestões de pesquisa são mostradas @@ -651,7 +660,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Botão gostei não está oculto Ocultar botão não gostei Botão não gostei está oculto - Botão não gostei não está oculto + Botão não gostei é mostrado Ocultar botão comentários Botão comentários está oculto Botão comentários não está oculto @@ -712,27 +721,27 @@ This is because Crowdin requires temporarily flattening this file and removing t Não gostei indisponível (limite de API atingido) Não gostei indisponível (%s) - Recarregue o vídeo para votar usando Voltar o Youtube Dislike + Recarregue o vídeo para votar usando o Return YouTube Dislike Não gostei está oculto Não gostei não está oculto Mostrar não gostei no Shorts Mostrar não gostei no Shorts Mostrar não gostei no Shorts\n\nNão gostei pode não aparecer no modo anonimo - Não mostrar não gostei no Shorts + Não gostei oculto nos Shorts Não gostei com porcentagem - Mostrar não gostei com porcentagem - Mostrar não gostei com número + Não gostei mostrado com porcentagem + Não gostei mostrado com número Botão gostei compacto Botão gostei estilizado para largura mínima Botão gostei estilizado para melhor aparência Exibir uma notificação flutuante se a API não estiver disponível - Notificação flutuante será exibida se o Return YouTube Dislike não está disponível - Notificação flutuante não será exibida se o Return YouTube Dislike não está disponível + Notificação flutuante vai ser exibida se o Return YouTube Dislike não estiver disponível + Notificação flutuante não vai ser exibida se o Return YouTube Dislike não estiver disponível Sobre - Os dados são fornecidos pela API Return Dislike do YouTube. Toque aqui para saber mais + Os dados são fornecidos pela API do Return Dislike YouTube. Toque aqui para saber mais - Estatísticas da API do RetnYouTubeDislike deste dispositivo + Estatísticas da API do Return YouTube Dislike deste dispositivo Tempo de resposta da API, média Tempo de resposta da API, mínimo Tempo de resposta da API, máximo @@ -755,9 +764,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Barra de busca ampla está desativada + Ativar miniaturas de alta qualidade + As miniaturas na barra de busca são de qualidade alta + As miniaturas na barra de busca são de qualidade média + As miniaturas da barra de busca em tela cheia são de alta qualidade + As miniaturas da barra de busca em tela cheia são de qualidade média + Isso também vai restaurar miniaturas em transmissões ao vivo que não têm miniaturas da barra de busca.\n\nAs miniaturas da barra de busca vão usar a mesma qualidade do vídeo atual.\\n\nEste recurso funciona melhor com qualidade de vídeo de 720p ou inferior e quando usar uma conexão de internet muito rápida. Restaurar as miniaturas antigas da barra de busca - As miniaturas aparecerão acima da barra de busca - As miniaturas na barra de busca aparecerão em tela cheia + As miniaturas vão aparecer acima da barra de busca + As miniaturas na barra de busca vão aparecer em tela cheia Ativar SponsorBlock @@ -948,21 +963,30 @@ This is because Crowdin requires temporarily flattening this file and removing t Versão de spoofing alvo + 18.38.44 - Restaurar ícones antigos do player dos Shorts - 18.33.40 - Restaurar RYD no modo Shorts ocultos - 18.20.39 - Restaurar a velocidade de vídeo ampla & menu de qualidade - 18.09.39 - Restaurar aba biblioteca - 17.41.37 - Restaurar prateleira de lista de reprodução antiga + 18.33.40 - Restaurar RYD no modo de navegação anônima nos Shorts + 18.20.39 - Restaurar a velocidade de vídeo ampla & menu de qualidade + 18.09.39 - Restaurar aba biblioteca + 17.33.42 - Restaurar prateleira de lista de reprodução antiga Definir página inicial Padrão + Explorar canais Explorar + Jogos Histórico + Biblioteca Videos curtidos + Ao Vivo + Filmes + Música Procurar + Esportes Inscrições Em alta + Assistir mais tarde Desativar continuar a reproduzir Shorts @@ -970,6 +994,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Shorts irá continuar reproduzindo ao iniciar o aplicativo + Reprodução automática nos Shorts + Os Shorts vão ser reproduzidos automaticamente + Os Shorts vão repetir + Reprodução automática nos Shorts em segundo plano + A reprodução em segundo plano dos Shorts vai ser reproduzidas automaticamente + A reprodução em segundo plano dos Shorts vai ser reproduzidas automaticamente Ativar layout de tablet @@ -981,18 +1011,39 @@ This is because Crowdin requires temporarily flattening this file and removing t Miniplayer Alterar o estilo do player minimizado no aplicativo Tipo de miniplayer + Desativado Original - Smartphone Tablet Moderno 1 Moderno 2 Moderno 3 + Ativar cantos arredondados + Os cantos são arredondados + Os cantos são quadrados + Ativar toque duplo e pinçar para redimensionar + Toque duplo e pinça para redimensionar está ativado\n\n• Toque duplo para aumentar o tamanho do miniplayer\n• Toque duas vezes de novo para restaurar o tamanho original + Toque duplo e pinçar para redimensionar está desativado + Ativar arrastar e soltar + Arrastar e soltar é habilitado\n\nMiniplayer pode ser arrastado para qualquer canto da tela + Arrastar e soltar está desativado + Ativar o gesto de arrastar horizontal + Gesto de arrastar horizontal habilitado\n\nO miniplayer pode ser arrastado para fora da tela para a esquerda ou direita + Gesto de arrastar horizontal desativado + Ocultar botão fechar + O botão fechar está oculto + Botão fechar é mostrado + Ocultar botões de expansão e fechar + Os botões são ocultos\n\nDeslize para expandir ou fechar + Os botões de expansão e fechar são mostrados Ocultar subtextos Subtextos estão ocultos Subtextos são exibidos Ocultar botões pular para frente e para trás Pular para frente e para trás estão escondidos Pular para frente e para trás são mostrados + Tamanho inicial + Tamanho inicial na tela, em pixels + O tamanho do pixel deve estar entre %1$s e %2$s Opacidade de sobreposição Valor de opacidade entre 0-100, onde 0 é transparente Opacidade da sobreposição de miniplayer deve estar entre 0-100 @@ -1004,10 +1055,10 @@ This is because Crowdin requires temporarily flattening this file and removing t Ativar cor personalizada da barra de busca - Mostrar cor personalizada da barra de busca - Mostrar cor original da barra de busca + Cor personalizada da barra de busca é mostrada + Cor original da barra de busca é mostrada Cor personalizada da barra de busca - Cor da barra de busca + A cor da barra de busca Valor de cor da barra de busca inválido @@ -1096,7 +1147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Zoom tátil está desativado - Qualidade automática + + Automático Lembrar mudanças na qualidade do vídeo Mudança na qualidade se aplicam a todos os vídeos Mudança na qualidade só se aplicam ao vídeo atual @@ -1107,14 +1159,19 @@ This is because Crowdin requires temporarily flattening this file and removing t Qualidade padrão %1$s alterada para: %2$s - Mostrar botão de diálogo de velocidade + Mostrar botão de velocidade Botão não esta oculto Botão não está visível + Menu de velocidade de reprodução personalizado + O menu de velocidade personalizado é mostrado + O menu de velocidade personalizado não é mostrado Velocidade de reprodução personalizada + Adicionar ou mudar as velocidades de reprodução personalizadas Velocidades personalizadas devem ser menores que %s. Usando valores padrão. Velocidade personalizada de reprodução inválida. Usando valores padrão. + Automático Lembrar mudança na velocidade de reprodução @@ -1160,7 +1217,7 @@ This is because Crowdin requires temporarily flattening this file and removing t %s não está disponível. Anúncios podem ser exibidos. Tente alternar para outro serviço de bloqueio de anúncios nas configurações. - O servidor %s retornou um erro. Os anúncios podem ser exibidos. Tente alternar para outro serviço de bloqueio de anúncios nas configurações. + O servidor %s retornou um erro. Os anúncios podem ser mostrados. Tente alternar para outro serviço de bloqueio de anúncios nas configurações. Bloquear anúncios de vídeo incorporados Desativado Luminous proxy diff --git a/patches/src/main/resources/addresources/values-pt-rPT/strings.xml b/patches/src/main/resources/addresources/values-pt-rPT/strings.xml index fb873af7e..6ccff28ab 100644 --- a/patches/src/main/resources/addresources/values-pt-rPT/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rPT/strings.xml @@ -963,10 +963,10 @@ This is because Crowdin requires temporarily flattening this file and removing t This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch --> Destaque de versão do app - 18.33.40 - Restaurar RYD em Modo Curto Incógnito - 18.20.39 - Restaurar menu de qualidade de vídeo & - 18.09.39 - Restaurar aba da biblioteca - 17.41.37 - Restaurar a pategoria de playlist antiga + 18.33.40 - Restaurar RYD em Modo Curto Incógnito + 18.20.39 - Restaurar menu de qualidade de vídeo & + 18.09.39 - Restaurar aba da biblioteca + 17.33.42 - Restaurar a pategoria de playlist antiga Definir página inicial @@ -1009,8 +1009,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Minijogador Alterar o estilo do player minimizado no aplicativo Tipo de minijogador + Desativado Original - Smartphone + Mínimo Tábua Moderno 1 Moderno 2 @@ -1145,7 +1146,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Hábitos estão ativados - Qualidade automática + + Automático Lembrar mudanças na qualidade do vídeo Alterações de qualidade se aplicam a todos os vídeos As alterações de qualidade só se aplicam ao vídeo atual @@ -1168,6 +1170,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Adicionar ou alterar as velocidades de reprodução personalizadas Velocidades personalizadas devem ser menores que %s. Usando valores padrão. Velocidade personalizada de reprodução inválida. Usando valores padrão. + Automático Lembrar velocidade de reprodução diff --git a/patches/src/main/resources/addresources/values-ro-rRO/strings.xml b/patches/src/main/resources/addresources/values-ro-rRO/strings.xml index d8986d776..d15c6c6b2 100644 --- a/patches/src/main/resources/addresources/values-ro-rRO/strings.xml +++ b/patches/src/main/resources/addresources/values-ro-rRO/strings.xml @@ -962,10 +962,10 @@ This is because Crowdin requires temporarily flattening this file and removing t This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch --> Spoof app version target - 18.33.40 - Restaurează RYD în modul incognito Shorts - 18.20.39 - Restaurare viteză video mare & meniu calitate - 18.09.39 - Restaurare tab librărie - 17.41.37 - Restaurați vechiul raft al listei de redare + 18.33.40 - Restaurează RYD în modul incognito Shorts + 18.20.39 - Restaurare viteză video mare & meniu calitate + 18.09.39 - Restaurare tab librărie + 17.33.42 - Restaurați raftul vechii liste de redare Setaţi pagina de start @@ -1002,8 +1002,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Minijucător Schimbă stilul aplicaţiei minimizat jucătorul Tip minijucător + Dezactivat Originală - Telefon + Minimă Tabletă Modern 1 Modern 2 @@ -1138,7 +1139,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Haptic-urile sunt activate - Calitate automată + + Automat Memorează modificările calității video Modificările de calitate se aplică tuturor videoclipurilor Modificările de calitate se aplică numai video-ului curent @@ -1161,6 +1163,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Adaugă sau modifică vitezele de redare personalizate Vitezele personalizate trebuie să fie mai mici decât %s. Utilizarea valorilor implicite. Viteze de redare personalizate invalide. Utilizarea valorilor implicite. + Automat Memorează schimbările vitezei de redare diff --git a/patches/src/main/resources/addresources/values-ru-rRU/strings.xml b/patches/src/main/resources/addresources/values-ru-rRU/strings.xml index 30e4eafb6..f43de3589 100644 --- a/patches/src/main/resources/addresources/values-ru-rRU/strings.xml +++ b/patches/src/main/resources/addresources/values-ru-rRU/strings.xml @@ -963,11 +963,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Подмена версии приложения на + 18.38.44 - Восстановление старых иконок плеера Shorts - 18.33.40 - Восстановление Return Youtube Dislike в режиме инкогнито Shorts - 18.20.39 - Восстановление расширенного меню скорости и качества видео - 18.09.39 - Восстановление вкладки \"Библиотека\" - 17.41.37 - Восстановление старой секции плейлистов + 18.33.40 - Восстановление Return Youtube Dislike в режиме инкогнито Shorts + 18.20.39 - Восстановление расширенного меню скорости и качества видео + 18.09.39 - Восстановление вкладки \"Библиотека\" + 17.33.42 - Восстановление старой секции плейлистов Начальная страница @@ -1010,8 +1011,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Мини-плеер Стиль свернутого мини-плеера Тип мини-плеера + Отключено Оригинал - Телефон + Минимальный Планшет Современный 1 Современный 2 @@ -1146,7 +1148,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Виброотклик при масштабировании включен - Автоматическое качество + + Автоматически Запоминание изменений качества Изменения качества воспроизведения применяются ко всем видео Изменения качества воспроизведения применяются только к текущему видео @@ -1169,6 +1172,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Добавить или изменить пользовательские скорости воспроизведения Пользовательские скорости должны быть меньше, чем %s. Использование значений по умолчанию. Недопустимая пользовательская скорость воспроизведения. Использование значений по умолчанию. + Автоматически Запоминание изменений скорости diff --git a/patches/src/main/resources/addresources/values-si-rLK/strings.xml b/patches/src/main/resources/addresources/values-si-rLK/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-si-rLK/strings.xml +++ b/patches/src/main/resources/addresources/values-si-rLK/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-sk-rSK/strings.xml b/patches/src/main/resources/addresources/values-sk-rSK/strings.xml index b15d02beb..d8c313876 100644 --- a/patches/src/main/resources/addresources/values-sk-rSK/strings.xml +++ b/patches/src/main/resources/addresources/values-sk-rSK/strings.xml @@ -886,10 +886,10 @@ This is because Crowdin requires temporarily flattening this file and removing t This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch --> Falošná cieľová verzia aplikácie - 18.33.40 - Obnovenie režimu inkognito RYD na Shorts - 18.20.39 - Obnovenie rýchlosti širokouhlého videa & kvalitné menu - 18.09.39 - Záložka Obnoviť knižnicu - 17.41.37 - Obnovte starú poličku so zoznamom skladieb + 18.33.40 - Obnovenie režimu inkognito RYD na Shorts + 18.20.39 - Obnovenie rýchlosti širokouhlého videa & kvalitné menu + 18.09.39 - Záložka Obnoviť knižnicu + 17.33.42 - Obnovte starú poličku so zoznamom skladieb Nastaviť úvodnú stránku @@ -918,8 +918,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Miniprehrávač Zmeňte štýl minimalizovaného prehrávača v aplikácii Typ miniprehrávača + Vypnuté Originál - Telefón Moderné 1 Moderné 2 Moderné 3 @@ -1029,7 +1029,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Haptika je povolená - Automatická kvalita + Pamätajte na zmeny kvality videa Zmeny kvality sa vzťahujú na všetky videá Zmeny kvality sa vzťahujú iba na aktuálne video diff --git a/patches/src/main/resources/addresources/values-sl-rSI/strings.xml b/patches/src/main/resources/addresources/values-sl-rSI/strings.xml index f93876fc2..6c606abce 100644 --- a/patches/src/main/resources/addresources/values-sl-rSI/strings.xml +++ b/patches/src/main/resources/addresources/values-sl-rSI/strings.xml @@ -189,6 +189,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + Onemogočeno @@ -223,6 +224,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-sq-rAL/strings.xml b/patches/src/main/resources/addresources/values-sq-rAL/strings.xml index ab5aab1d0..3244541fb 100644 --- a/patches/src/main/resources/addresources/values-sq-rAL/strings.xml +++ b/patches/src/main/resources/addresources/values-sq-rAL/strings.xml @@ -176,6 +176,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + E ç\'aktivizuar @@ -209,6 +210,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-sr-rCS/strings.xml b/patches/src/main/resources/addresources/values-sr-rCS/strings.xml index bc27ef0f9..b5cf9ac65 100644 --- a/patches/src/main/resources/addresources/values-sr-rCS/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rCS/strings.xml @@ -500,17 +500,17 @@ This is because Crowdin requires temporarily flattening this file and removing t Padajući meni Sakrijte ili prikažite predmete u padajućem meniju plejera - Sakrij dugme „Titl” + Sakrij meni „Titl” Meni „Titl” je skriven Meni „Titl” je prikazan - Sakrij dugme „Dodatna podešavanja” + Sakrij meni „Dodatna podešavanja” Meni „Dodatna podešavanja” je skriven Meni „Dodatna podešavanja” je prikazan - Sakrij tajmer za spavanje - Meni tajmera za spavanje je skriven - Meni tajmera za spavanje je prikazan + Sakrij meni „Tajmer za spavanje” + Meni „Tajmer za spavanje” je skriven + Meni „Tajmer za spavanje” je prikazan Sakrij dugme „Ponavljaj video” Dugme „Ponavljaj video” je skriveno @@ -527,7 +527,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Dugme „Pomoć i povratne informacije” je skriveno Dugme „Pomoć i povratne informacije” je prikazano - Sakrij dugme „Brzina reprodukcije” + Sakrij meni „Brzina reprodukcije” Meni „Brzina reprodukcije” je skriven Meni „Brzina reprodukcije” je prikazan - Sakrij dugme „Audio snimak” + Sakrij meni „Audio snimak” Meni „Audio snimak” je skriven Meni „Audio snimak” je prikazan @@ -963,11 +963,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Ciljna verzija aplikacije za lažiranje + 18.38.44 - Vraća stare ikonice Shorts plejera - 18.33.40 - Vraća Return YouTube Dislike u Shorts videima u režimu bez arhiviranja - 18.20.39 - Vraća širok meni za brzinu i kvalitet videa - 18.09.39 - Vraća karticu zbirke - 17.41.37 - Vraća staru policu plejliste + 18.33.40 - Vraća Return YouTube Dislike u Shorts videima u režimu bez arhiviranja + 18.20.39 - Vraća širok meni za brzinu i kvalitet videa + 18.09.39 - Vraća karticu zbirke + 17.33.42 - Vraća staru policu plejliste Podešavanje početne stranice @@ -1010,8 +1011,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Mini-plejer Promenite stil minimiziranog plejera u aplikaciji Tip mini-plejera + Onemogućeno Originalni - Telefon Tablet Moderan 1 Moderan 2 @@ -1146,7 +1147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Vibracija pri uveličavanju je omogućena - Automatski kvalitet + + Automatski Zapamti promene kvaliteta videa Promene kvaliteta se primenjuju na sve videe Promene kvaliteta se primenjuju samo na trenutni video @@ -1169,6 +1171,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Dodajte ili promenite prilagođene brzine reprodukcije Prilagođene brzine reprodukcije moraju biti manje od %s. Korišćenje podrazumevanih vrednosti. Nevažeće prilagođene brzine reprodukcije. Korišćenje podrazumevanih vrednosti. + Automatski Zapamti promene brzine reprodukcije diff --git a/patches/src/main/resources/addresources/values-sr-rSP/strings.xml b/patches/src/main/resources/addresources/values-sr-rSP/strings.xml index b5a5f16cc..76e5761ea 100644 --- a/patches/src/main/resources/addresources/values-sr-rSP/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rSP/strings.xml @@ -500,17 +500,17 @@ This is because Crowdin requires temporarily flattening this file and removing t Падајући мени Сакријте или прикажите предмете у падајућем менију плејера - Сакриј дугме „Титл” + Сакриј мени „Титл” Мени „Титл” је скривен Мени „Титл” је приказан - Сакриј дугме „Додатна подешавања” + Сакриј мени „Додатна подешавања” Мени „Додатна подешавања” је скривен Мени „Додатна подешавања” је приказан - Сакриј тајмер за спавање - Мени тајмера за спавање је скривен - Мени тајмера за спавање је приказан + Сакриј мени „Тајмер за спавање” + Мени „Тајмер за спавање” је скривен + Мени „Тајмер за спавање” је приказан Сакриј дугме „Понављај видео” Дугме „Понављај видео” је скривено @@ -527,7 +527,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Дугме „Помоћ и повратне информације” је скривено Дугме „Помоћ и повратне информације” је приказано - Сакриј дугме „Брзина репродукције” + Сакриј мени „Брзина репродукције” Мени „Брзина репродукције” је скривен Мени „Брзина репродукције” је приказан - Сакриј дугме „Аудио снимак” + Сакриј мени „Аудио снимак” Мени „Аудио снимак” је скривен Мени „Аудио снимак” је приказан @@ -963,11 +963,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Циљна верзија апликације за лажирање + 18.38.44 - Враћа старе иконице Shorts плејера - 18.33.40 - Враћа Return YouTube Dislike у Shorts видеима у режиму без архивирања - 18.20.39 - Враћа широк мени за брзину и квалитет видеа - 18.09.39 - Враћа картицу збирке - 17.41.37 - Враћа стару полицу плејлисте + 18.33.40 - Враћа Return YouTube Dislike у Shorts видеима у режиму без архивирања + 18.20.39 - Враћа широк мени за брзину и квалитет видеа + 18.09.39 - Враћа картицу збирке + 17.33.42 - Враћа стару полицу плејлисте Подешавање почетне странице @@ -1010,8 +1011,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Мини-плејер Промените стил минимизираног плејера у апликацији Тип мини-плејера + Онемогућено Оригинални - Телефон Таблет Модеран 1 Модеран 2 @@ -1146,7 +1147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Вибрација при увеличавању је омогућена - Аутоматски квалитет + + Аутоматски Запамти промене квалитета видеа Промене квалитета се примењују на све видее Промене квалитета се примењују само на тренутни видео @@ -1169,6 +1171,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Додајте или промените прилагођене брзине репродукције Прилагођене брзине репродукције морају бити мање од %s. Коришћење подразумеваних вредности. Неважеће прилагођене брзине репродукције. Коришћење подразумеваних вредности. + Аутоматски Запамти промене брзине репродукције diff --git a/patches/src/main/resources/addresources/values-sv-rSE/strings.xml b/patches/src/main/resources/addresources/values-sv-rSE/strings.xml index b7e6e0c30..da93711a6 100644 --- a/patches/src/main/resources/addresources/values-sv-rSE/strings.xml +++ b/patches/src/main/resources/addresources/values-sv-rSE/strings.xml @@ -964,10 +964,10 @@ This is because Crowdin requires temporarily flattening this file and removing t This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch --> Spoof app-versionsmål - 18.33.40 - Återställ RYD på Shorts inkognitoläge - 18.20.39 - Återställ videons hastighet & kvalitetsmeny - 18.09.39 - Återställ biblioteksfliken - 17.41.37 - Återställ gamla spellisthyllor + 18.33.40 - Återställ RYD på Shorts inkognitoläge + 18.20.39 - Återställ videons hastighet & kvalitetsmeny + 18.09.39 - Återställ biblioteksfliken + 17.33.42 - Återställ gamla spellisthyllor Ställ in startsida @@ -1010,8 +1010,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Minispelare Ändra stilen på appen minimerad spelare Miniplayer typ + Inaktiverad Ursprunglig - Telefon + Minimal Surfplatta Modern 1 Modern 2 @@ -1146,7 +1147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Haptikerna är aktiverade - Automatisk kvalitet + + Automatiskt Kom ihåg förändringar i videokvaliteten Kvalitetsändringar gäller för alla videor Kvalitetsförändringar gäller endast för den aktuella videon @@ -1169,6 +1171,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Lägg till eller ändra de anpassade uppspelningshastigheterna Anpassade hastigheter måste vara mindre än %s. Använda standardvärden. Ogiltig anpassad uppspelningshastighet. Använda standardvärden. + Automatiskt Kom ihåg ändringar i uppspelningshastighet diff --git a/patches/src/main/resources/addresources/values-sw-rKE/strings.xml b/patches/src/main/resources/addresources/values-sw-rKE/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-sw-rKE/strings.xml +++ b/patches/src/main/resources/addresources/values-sw-rKE/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-ta-rIN/strings.xml b/patches/src/main/resources/addresources/values-ta-rIN/strings.xml index aa5e83d08..f92b7f625 100644 --- a/patches/src/main/resources/addresources/values-ta-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ta-rIN/strings.xml @@ -189,6 +189,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + முடக்கப்பட்டது @@ -222,6 +223,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-te-rIN/strings.xml b/patches/src/main/resources/addresources/values-te-rIN/strings.xml index 0099c7335..e80f63ca3 100644 --- a/patches/src/main/resources/addresources/values-te-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-te-rIN/strings.xml @@ -176,6 +176,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + రద్దు చేయబడింది @@ -209,6 +210,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-th-rTH/strings.xml b/patches/src/main/resources/addresources/values-th-rTH/strings.xml index 0baa27a65..4d2239505 100644 --- a/patches/src/main/resources/addresources/values-th-rTH/strings.xml +++ b/patches/src/main/resources/addresources/values-th-rTH/strings.xml @@ -248,6 +248,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + ปิดการใช้งานอยู่ @@ -280,6 +281,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-tr-rTR/strings.xml b/patches/src/main/resources/addresources/values-tr-rTR/strings.xml index 985e47ac4..e5ae5e6b5 100644 --- a/patches/src/main/resources/addresources/values-tr-rTR/strings.xml +++ b/patches/src/main/resources/addresources/values-tr-rTR/strings.xml @@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Taklit edilecek uygulama sürümü + 18.38.44 - Eski Shorts oynatıcı simgelerini geri getir - 18.33.40 - Gizli modda Shorts için RYD\'yi onar - 18.20.39 - Geniş video hızı & kalite menüsünü geri getir - 18.08.39 - Kitaplık sekmesini geri getir - 17.41.37 - Eski oynatma listesi rafını geri getir + 18.33.40 - Gizli modda Shorts için RYD\'yi onar + 18.20.39 - Geniş video hızı & kalite menüsünü geri getir + 18.08.39 - Kitaplık sekmesini geri getir + 17.33.42 - Eski oynatma listesi rafını geri getir Başlangıç sayfasını seç @@ -1009,8 +1010,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Mini oynatıcı Uygulama içi küçültülmüş oynatıcının tarzını değiştir Mini oynatıcı tipi + Devre dışı Orijinal - Telefon Tablet Modern 1 Modern 2 @@ -1145,7 +1146,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Titreşim etkin - Otomatik kalite + + Oto Video kalitesi değişikliklerini hatırla Kalite değişiklikleri tüm videolara uygulanacak Kalite değişiklikleri yalnızca mevcut videoya uygulanacak @@ -1168,6 +1170,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Özel oynatma hızları ekle veya değiştir Özel hızlar %s\'dan az olmalıdır. Varsayılanlar kullanılıyor. Geçersiz özel oynatma hızları. Varsayılanlar seçildi. + Oto Oynatma hızı değişikliklerini hatırla diff --git a/patches/src/main/resources/addresources/values-uk-rUA/strings.xml b/patches/src/main/resources/addresources/values-uk-rUA/strings.xml index 1fe0690e3..353f99450 100644 --- a/patches/src/main/resources/addresources/values-uk-rUA/strings.xml +++ b/patches/src/main/resources/addresources/values-uk-rUA/strings.xml @@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Підробити версію програми на + 18.38.44 - Відновлення старих іконок плеєра Shorts - 18.33.40 - Відновлення RYD в анонімному режимі Shorts - 18.20.39 - Відновлення розширеного меню швидкості та якості відео - 18.09.39 - Відновлення вкладки Бібліотека - 17.41.37 - Відновлення старого інтерфейсу плейлиста + 18.33.40 - Відновлення RYD в анонімному режимі Shorts + 18.20.39 - Відновлення розширеного меню швидкості та якості відео + 18.09.39 - Відновлення вкладки Бібліотека + 17.33.42 - Відновлення старого інтерфейсу списку відтворення Початкова сторінка @@ -1009,8 +1010,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Мініплеєр Змінити стиль згорнутого мініплеєра Тип мініплеєра + Вимкнуто Оригінальний - Телефонний + Мінімальні Планшетний Новітній 1 Новітній 2 @@ -1145,7 +1147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Вібрації при масштабуванні ввімкнуто - Автоматична якість + + Авто Запам\'ятовувати зміни якості відео Зміни якості застосовуються до всіх відео Зміни якості застосовуються лише до поточного відео @@ -1168,6 +1171,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Додавання або зміна користувацьких швидкостей відтворення Користувацькі швидкості повинні бути менше ніж %s Використовуються значення за замовчуванням. Неправильні користувацькі швидкості відтворення. Використовуються значення за замовчуванням. + Авто Запам\'ятовувати зміни швидкості diff --git a/patches/src/main/resources/addresources/values-ur-rIN/strings.xml b/patches/src/main/resources/addresources/values-ur-rIN/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-ur-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ur-rIN/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml b/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml index 2e43d7197..7f1e4ae3e 100644 --- a/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml +++ b/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml @@ -176,6 +176,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + O\'chirilgan @@ -209,6 +210,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values-vi-rVN/strings.xml b/patches/src/main/resources/addresources/values-vi-rVN/strings.xml index 2743388eb..4bcbad725 100644 --- a/patches/src/main/resources/addresources/values-vi-rVN/strings.xml +++ b/patches/src/main/resources/addresources/values-vi-rVN/strings.xml @@ -86,6 +86,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Video + Tắt phát nền cho Shorts + Chạy nền cho Shorts được tắt + Chạy nền cho Shorts được bật Gỡ lỗi @@ -267,6 +270,10 @@ This is because Crowdin requires temporarily flattening this file and removing t Mốc thời gian và các nút biểu tượng cảm xúc được ẩn Mốc thời gian và các nút biểu tượng cảm xúc được hiện + Ẩn YouTube Doodles + Thanh tìm kiếm Doodles được ẩn + Thanh tìm kiếm Doodles được hiện + YouTube Doodles xuất hiện vài ngày mỗi năm.\n\nNếu YouTube Doodle đang hiển thị ở khu vực của bạn đồng thời tuỳ chọn ẩn này cũng đang bật, thì thanh bộ lọc ở thanh tìm kiếm cũng sẽ bị ẩn. Bộ lọc tùy chỉnh Ẩn các thành phần dùng bộ lọc tùy chỉnh Bật bộ lọc tùy chỉnh @@ -322,6 +329,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Ẩn biểu ngữ để xem sản phẩm Biểu ngữ được ẩn Biểu ngữ được hiện + Ẩn kệ cửa hàng + Kệ cửa hàng được ẩn + Kệ cửa hàng được hiện Ẩn các liên kết mua hàng trong mô tả video Các liên kết mua hàng được ẩn Các liên kết mua hàng được hiện @@ -497,6 +507,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Trình đơn cài đặt bổ sung được ẩn Trình đơn cài đặt bổ sung được hiện + Ẩn Hẹn giờ ngủ + Trình đơn Hẹn giờ ngủ được ẩn + Trình đơn Hẹn giờ ngủ được hiện Ẩn lặp video Trình đơn lặp video được ẩn @@ -505,6 +518,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Ẩn chế độ môi trường Trình đơn chế độ môi trường được ẩn Trình đơn chế độ môi trường được hiện + Ẩn Âm lượng ổn định + Trình đơn Âm lượng ổn định được hiện + Trình đơn Âm lượng ổn định được ẩn Ẩn Trợ giúp & Phản hồi Trình đơn trợ giúp & phản hồi được ẩn @@ -530,7 +546,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Ẩn Xem trong thực tế ảo Trình đơn xem trong thực tế ảo được ẩn Trình đơn xem trong thực tế ảo được hiện - Ẩn ghi chú cuối mục chất lượng video + Ẩn trình đơn chất lượng video dưới + Trình đơn chất lượng video bên dưới được ẩn + Trình đơn chất lượng video bên dưới được hiện Ẩn các nút video trước đó & tiếp theo @@ -576,6 +594,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Thanh tiến trình hình thu nhỏ được hiện + Trình phát Shorts + Ẩn hoặc hiển thị các thành phần trong trình phát Shorts Ẩn Shorts trong bảng tin trang chính Shorts trong bảng tin trang chính được ẩn @@ -611,6 +631,20 @@ This is because Crowdin requires temporarily flattening this file and removing t Nhãn vị trí được ẩn Nhãn vị trí được hiện Ẩn nút lưu nhạc + Nút lưu nhạc được ẩn + Nút lưu nhạc được hiện + Ẩn nút sử dụng mẫu + Nút sử dụng mẫu được ẩn + Nút sử dụng mẫu được hiện + Ẩn nút sắp tới + Nút sắp tới được ẩn + Nút sắp tới được hiện + Ẩn nút phông xanh + Nút phông xanh được ẩn + Nút phông xanh được hiện + Ẩn nút hashtag + Nút hashtag được ẩn + Nút hashtag được hiện Ẩn đề xuất tìm kiếm Đề xuất tìm kiếm được ẩn Đề xuất tìm kiếm được hiện @@ -729,6 +763,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Thanh tìm kiếm rộng được tắt + Bật hình thu nhỏ chất lượng cao + Hình thu nhỏ khi tua có chất lượng cao + Hình thu nhỏ khi tua có chất lượng trung bình + Hình thu nhỏ khi tua toàn màn hình có chất lượng cao + Hình thu nhỏ khi tua toàn màn hình có chất lượng trung bình + Việc này cũng khôi phục hình thu nhỏ trên phát trực tiếp do không có hình thu nhỏ khi tua.\n\nHình thu nhỏ khi tua cũng sẽ dùng cùng chất lượng với video hiện tại.\n\nTính năng này hoạt động tốt nhất với video có chất lượng 720p hoặc thấp hơn và khi dùng kết nối mạng nhanh. Khôi phục thanh tiến trình hình thu nhỏ kiểu cũ Thanh tiến trình hình thu nhỏ sẽ xuất hiện phía trên thanh tiến trình Thanh tiến trình hình thu nhỏ sẽ xuất hiện khi toàn màn hình @@ -922,21 +962,30 @@ This is because Crowdin requires temporarily flattening this file and removing t Phiên bản giả mạo mục tiêu + 18.38.44 - Khôi phục biểu tượng trình phát Shorts cũ - 18.33.40 - Khôi phục RYD trong Shorts chế độ ẩn danh - 18.20.39 - Khôi phục trình đơn tốc độ & chất lượng cho video rộng - 18.09.39 - Khôi phục thẻ thư viện - 17.41.37 - Khôi phục kệ danh sách phát cũ + 18.33.40 - Khôi phục RYD trong Shorts chế độ ẩn danh + 18.20.39 - Khôi phục trình đơn tốc độ & chất lượng cho video rộng + 18.09.39 - Khôi phục thẻ thư viện + 17.33.42 - Khôi phục kệ danh sách phát cũ Đặt trang bắt đầu Mặc định + Duyệt kênh Khám phá + Trò chơi Lịch sử + Thư viện Video đã thích + Trực tiếp + Phim + Âm nhạc Tìm kiếm + Thể thao Đăng ký Xu hướng + Xem sau Tắt tiếp tục trình phát Shorts @@ -944,6 +993,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Trinh phát Shorts sẽ tiếp tục khi ứng dụng khởi chạy + Tự động phát Shorts + Shorts sẽ phát tự động + Shorts sẽ phát lặp lại + Tự động phát nền cho Shorts + Phát nền cho Shorts được phát tự động + Phát nền cho Shorts được phát lặp lại Bật bố cục máy tính bảng @@ -955,19 +1010,39 @@ This is because Crowdin requires temporarily flattening this file and removing t Trình phát thu nhỏ Thay đổi kiểu trình phát thu nhỏ trong ứng dụng Loại trình phát thu nhỏ + Đã tắt Nguyên bản - Điện thoại Máy tính bảng Hiện đại 1 Hiện đại 2 Hiện đại 3 + Bật góc bo tròn + Góc được bo tròn + Góc vuông + Bật nhấp đôi và chụm để thay đổi kích thước + Chạm đôi và chụm để thay đổi kích thước được bật.\n\n• Chạm đôi để tăng kích thước trình phát nhỏ\n• Chạm đôi lại lần nữa để khôi phục kích thước gốc + Chạm đôi và chụm để thay đổi kích thước được tắt + Bật kéo và thả + Kéo và thả được bật\n\nTrình phát nhỏ có thể kéo đến bất kỳ góc nào của màn hình + Kéo và thả được tắt + Bật cử chỉ kéo ngang + Cử chỉ kéo ngang được bật\n\nTrình phát nhỏ có thể được kéo ra ngoài màn hình bên trái hoặc phải + Cử chỉ kéo ngang được tắt + Ẩn nút đóng + Nút đóng được ẩn + Nút đóng được hiện Ẩn các nút mở rộng và đóng + Các nút được ẩn\n\nVuốt để mở rộng hoặc đóng + Các nút mở rộng và đóng được hiện Ẩn văn bản phụ Văn bản phụ được ẩn Văn bản phụ được hiện Ẩn các nút bỏ quả đến tiếp và trước đó Các nút bỏ quả đến tiếp và trước đó được ẩn Các nút bỏ quả đến tiếp và trước đó được hiện + Kích thước ban đầu + Kích thước ban đầu trên màn hình, bằng pixel + Pixel phải nằm giữa %1$s và %2$s Độ mờ lớp phủ Giá trị độ mờ của lớp phủ trình phát trong khoảng từ 0 đến 100, trong đó 0 là trong suốt Độ phủ mờ trình phát thu nhỏ phải nằm giữa 0-100 @@ -983,6 +1058,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Màu gốc thanh tiến trình được hiện Màu tùy chỉnh thanh tiến trình Màu của thanh tiến trình + Giá trị màu thanh tiến trình không hợp lệ Vượt qua hạn chế khu vực cho hình ảnh @@ -1070,7 +1146,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Phản hồi xúc giác được bật - Chất lượng tự động + + Tự động Nhớ các thay đổi chất lượng video Thay đổi chất lượng áp dụng cho tất cả video Thay đổi chất lượng chỉ áp dụng cho video hiện tại @@ -1086,9 +1163,14 @@ This is because Crowdin requires temporarily flattening this file and removing t Nút không được hiện + Trình đơn tốc độ phát tùy chỉnh + Trình đơn tốc độ phát tùy chỉnh được hiện + Trình đơn tốc độ phát tùy chỉnh không được hiện Tốc độ phát tùy chỉnh + Thêm hoặc thay đổi tốc độ phát tùy chỉnh Tốc độ phát tuỳ chỉnh phải nhỏ hơn %s. Dùng giá trị mặc định. Tốc độ phát không hợp lệ. Dùng giá trị mặc định. + Tự động Nhớ các thay đổi tốc độ phát diff --git a/patches/src/main/resources/addresources/values-zh-rCN/strings.xml b/patches/src/main/resources/addresources/values-zh-rCN/strings.xml index 68fc744cf..c30918ec2 100644 --- a/patches/src/main/resources/addresources/values-zh-rCN/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rCN/strings.xml @@ -955,10 +955,10 @@ This is because Crowdin requires temporarily flattening this file and removing t This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch --> 伪装应用程序版本为 - 18.33.40 - 在隐身模式下恢复 RYD - 18.20.39 - 还原宽视频速度 & 画质菜单 - 18.09.39 - 还原库标签 - 17.41.37 - 还原旧的播放列表 + 18.33.40 - 在隐身模式下恢复 RYD + 18.20.39 - 还原宽视频速度 & 画质菜单 + 18.09.39 - 还原库标签 + 17.33.42 - 还原旧播放列表书架 设置起始页 @@ -993,8 +993,8 @@ This is because Crowdin requires temporarily flattening this file and removing t 小播放器 更改应用最小化播放器中的样式 最小播放器类型 + 已禁用 原始文件 - 电话 平板电脑 现代1 现代2 @@ -1128,7 +1128,8 @@ This is because Crowdin requires temporarily flattening this file and removing t 振动功能已启用 - 自动 + + 自动操作 记住视频质量变化 质量变化适用于所有视频 质量变化仅适用于当前视频 @@ -1151,6 +1152,7 @@ This is because Crowdin requires temporarily flattening this file and removing t 添加或更改自定义播放速度 自定义速度必须小于 %s。使用默认值。 无效的自定义播放速度。使用默认值。 + 自动操作 记住播放速度变化 diff --git a/patches/src/main/resources/addresources/values-zh-rTW/strings.xml b/patches/src/main/resources/addresources/values-zh-rTW/strings.xml index 4c0dad7c2..9a6af83e2 100644 --- a/patches/src/main/resources/addresources/values-zh-rTW/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rTW/strings.xml @@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t 欺騙應用程式版本目標 + 18.38.44 - 在還原舊版 Shorts 播放棄圖標 - 18.33.40 - 在 Shorts 無痕模式中還原 RYD - 18.20.39 - 還原寬影片速度 & 畫質選單 - 18.09.39 - 還原庫標籤 - 17.41.37 - 還原舊版播放清單匣 + 18.33.40 - 在 Shorts 無痕模式中還原 RYD + 18.20.39 - 還原寬影片速度 & 畫質選單 + 18.09.39 - 還原庫標籤 + 17.33.42 - 還原舊版播放清單匣 設定起始頁面 @@ -1009,8 +1010,8 @@ This is because Crowdin requires temporarily flattening this file and removing t 迷你播放器 更改應用程式內縮小播放器的樣式 迷你播放器類型 + 已停用 原始 - 手機 平板 現代樣式 1 現代樣式 2 @@ -1146,6 +1147,7 @@ This is because Crowdin requires temporarily flattening this file and removing t 已啟用震動 + 自動 記住影片畫質 變更畫質套用到所有影片 @@ -1169,6 +1171,7 @@ This is because Crowdin requires temporarily flattening this file and removing t 新增或更改自訂播放速度 自訂速度必須小於 %s。已重設為預設值。 無效的自訂播放速度。已重設為預設值。 + 自動 記住播放速度 diff --git a/patches/src/main/resources/addresources/values-zu-rZA/strings.xml b/patches/src/main/resources/addresources/values-zu-rZA/strings.xml index 6892649b0..4fc7a8aab 100644 --- a/patches/src/main/resources/addresources/values-zu-rZA/strings.xml +++ b/patches/src/main/resources/addresources/values-zu-rZA/strings.xml @@ -208,6 +208,7 @@ This is because Crowdin requires temporarily flattening this file and removing t + diff --git a/patches/src/main/resources/addresources/values/arrays.xml b/patches/src/main/resources/addresources/values/arrays.xml index 7c3207d72..7dbc76b2c 100644 --- a/patches/src/main/resources/addresources/values/arrays.xml +++ b/patches/src/main/resources/addresources/values/arrays.xml @@ -15,19 +15,26 @@ @string/revanced_spoof_app_version_target_entry_1 - @string/revanced_spoof_app_version_target_entry_2 - @string/revanced_spoof_app_version_target_entry_3 - @string/revanced_spoof_app_version_target_entry_4 + 18.38.44 + + + @string/revanced_spoof_app_version_target_legacy_entry_1 + @string/revanced_spoof_app_version_target_legacy_entry_2 + @string/revanced_spoof_app_version_target_legacy_entry_3 + @string/revanced_spoof_app_version_target_legacy_entry_4 + + 18.33.40 18.20.39 18.09.39 - 17.41.37 + 17.33.42 + @string/revanced_miniplayer_type_entry_0 @string/revanced_miniplayer_type_entry_1 @string/revanced_miniplayer_type_entry_2 @string/revanced_miniplayer_type_entry_3 @@ -37,8 +44,9 @@ + DISABLED ORIGINAL - PHONE + MINIMAL TABLET MODERN_1 MODERN_2 @@ -48,11 +56,18 @@ @string/revanced_miniplayer_type_entry_1 @string/revanced_miniplayer_type_entry_2 @string/revanced_miniplayer_type_entry_3 + @string/revanced_miniplayer_type_entry_4 + @string/revanced_miniplayer_type_entry_5 + @string/revanced_miniplayer_type_entry_6 + ORIGINAL - PHONE + MINIMAL TABLET + MODERN_1 + MODERN_2 + MODERN_3 diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index d6950433b..86fb2405c 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -973,11 +973,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Spoof app version target + 18.38.44 - Restore old Shorts player icons - 18.33.40 - Restore RYD on Shorts incognito mode - 18.20.39 - Restore wide video speed & quality menu - 18.09.39 - Restore library tab - 17.41.37 - Restore old playlist shelf + 18.33.40 - Restore RYD on Shorts incognito mode + 18.20.39 - Restore wide video speed & quality menu + 18.09.39 - Restore library tab + 17.33.42 - Restore old playlist shelf Set start page @@ -1020,8 +1021,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Miniplayer Change the style of the in app minimized player Miniplayer type + Disabled Original - Phone + Minimal Tablet Modern 1 Modern 2 @@ -1157,7 +1159,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Haptics are enabled - Automatic quality + + Auto 2160p 1440p 1080p @@ -1188,6 +1191,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Add or change the custom playback speeds Custom speeds must be less than %s. Using default values. Invalid custom playback speeds. Using default values. + Auto Remember playback speed changes