Compare commits

...

13 Commits

Author SHA1 Message Date
semantic-release-bot
51237c177a chore: Release v5.34.1-dev.1 [skip ci]
## [5.34.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.34.0...v5.34.1-dev.1) (2025-08-21)

### Bug Fixes

* **Spotify - Unlock Premium:** Make compatible with latest versions again by fixing fingerprint ([#5684](https://github.com/ReVanced/revanced-patches/issues/5684)) ([23496c7](23496c7c36))
2025-08-21 19:20:39 +00:00
Nuckyz
23496c7c36 fix(Spotify - Unlock Premium): Make compatible with latest versions again by fixing fingerprint (#5684) 2025-08-21 15:17:29 -04:00
semantic-release-bot
e6823d8924 chore: Release v5.34.0 [skip ci]
# [5.34.0](https://github.com/ReVanced/revanced-patches/compare/v5.33.0...v5.34.0) (2025-08-19)

### Bug Fixes

* **Backdrops:** Remove broken patch that is no longer supported ([#5627](https://github.com/ReVanced/revanced-patches/issues/5627)) ([c3e571e](c3e571e765))
* **pixiv - Hide ads:** Constrain patch to last working app target ([b702dce](b702dceda0))
* **Twitch:** Constrain patches to last working app targets ([#5373](https://github.com/ReVanced/revanced-patches/issues/5373)) ([d7eb6e8](d7eb6e87a5))
* **YouTube - Hide layout components:** Do not hide community posts on channel profiles ([#5634](https://github.com/ReVanced/revanced-patches/issues/5634)) ([61824ad](61824ade23))
* **YouTube - Player Controls:** Fix chapter title overlapping the bottom buttons ([#5673](https://github.com/ReVanced/revanced-patches/issues/5673)) ([150bee2](150bee2833))
* **YouTube - SponsorBlock:** Do not hide voting or create button when the video ends ([25470ba](25470baeee))
* **YouTube - Video playback:** Disable HDR video does not disable Dolby Vision HDR ([#5661](https://github.com/ReVanced/revanced-patches/issues/5661)) ([4aaa7ca](4aaa7ca895))
* **YouTube - Video quality:** Fix additional incorrect quality resolutions used by YouTube ([6bd9e49](6bd9e49c7a))
* **YouTube - Video quality:** Show FHD+ icon for 1080p 60fps enhanced bitrate ([e579c56](e579c56921))
* **YouTube:** Use correct fade out animation when tapping to dismiss the video overlay ([#5670](https://github.com/ReVanced/revanced-patches/issues/5670)) ([01a04c3](01a04c338c))

### Features

* **Instagram:** Support latest app version ([#5611](https://github.com/ReVanced/revanced-patches/issues/5611)) ([562e005](562e005772))
* **NU.nl:** Support latest app version ([#5643](https://github.com/ReVanced/revanced-patches/issues/5643)) ([1bb8c53](1bb8c53ed3))
* **YouTube - Hide player flyout menu items:** Add option to hide quality flyout menu ([809e013](809e013c4e))
* **YouTube - Hide video action buttons:** Add "Hide Hype button" setting ([fe66bae](fe66baedb7))
* **YouTube - Hide video action buttons:** Add "Hide Promote button" setting ([40ac8e1](40ac8e1142))
* **YouTube - Playback speed:** Show current playback speed on player speed dialog button ([#5607](https://github.com/ReVanced/revanced-patches/issues/5607)) ([30176a3](30176a3318))
* **YouTube:** Add `Disable sign in to TV popup` patch ([#5639](https://github.com/ReVanced/revanced-patches/issues/5639)) ([56fbd8c](56fbd8cce0))
2025-08-19 15:12:22 +00:00
LisoUseInAIKyrios
43597dab21 chore: Merge branch dev to main (#5617) 2025-08-19 11:08:46 -04:00
semantic-release-bot
c0824db142 chore: Release v5.34.0-dev.13 [skip ci]
# [5.34.0-dev.13](https://github.com/ReVanced/revanced-patches/compare/v5.34.0-dev.12...v5.34.0-dev.13) (2025-08-19)

### Bug Fixes

* **YouTube - Player Controls:** Fix chapter title overlapping the bottom buttons ([#5673](https://github.com/ReVanced/revanced-patches/issues/5673)) ([150bee2](150bee2833))
2025-08-19 14:55:36 +00:00
github-actions[bot]
1b7f84b7fa chore: Sync translations (#5677) 2025-08-19 10:52:35 -04:00
semantic-release-bot
6d87c848d6 chore: Release v5.34.0-dev.13 [skip ci]
# [5.34.0-dev.13](https://github.com/ReVanced/revanced-patches/compare/v5.34.0-dev.12...v5.34.0-dev.13) (2025-08-18)

### Bug Fixes

* **YouTube - Player Controls:** Fix chapter title overlapping the bottom buttons ([#5673](https://github.com/ReVanced/revanced-patches/issues/5673)) ([150bee2](150bee2833))
2025-08-18 22:29:41 +00:00
MarcaD
150bee2833 fix(YouTube - Player Controls): Fix chapter title overlapping the bottom buttons (#5673)
Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com>
2025-08-18 18:27:14 -04:00
semantic-release-bot
c3ee6eca44 chore: Release v5.34.0-dev.12 [skip ci]
# [5.34.0-dev.12](https://github.com/ReVanced/revanced-patches/compare/v5.34.0-dev.11...v5.34.0-dev.12) (2025-08-18)

### Bug Fixes

* **YouTube:** Use correct fade out animation when tapping to dismiss the video overlay ([#5670](https://github.com/ReVanced/revanced-patches/issues/5670)) ([01a04c3](01a04c338c))
2025-08-18 00:17:30 +00:00
LisoUseInAIKyrios
01a04c338c fix(YouTube): Use correct fade out animation when tapping to dismiss the video overlay (#5670) 2025-08-17 20:14:44 -04:00
github-actions[bot]
3130225d9d chore: Sync translations (#5671) 2025-08-17 20:13:55 -04:00
LisoUseInAIKyrios
16b27fb872 chore: Fix typo 2025-08-17 11:17:54 -04:00
LisoUseInAIKyrios
bedabd3fa3 refactor: Show SB buttons with other overlay buttons when the video has ended 2025-08-16 16:24:24 -04:00
66 changed files with 579 additions and 322 deletions

View File

@@ -1,3 +1,58 @@
## [5.34.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.34.0...v5.34.1-dev.1) (2025-08-21)
### Bug Fixes
* **Spotify - Unlock Premium:** Make compatible with latest versions again by fixing fingerprint ([#5684](https://github.com/ReVanced/revanced-patches/issues/5684)) ([30dcff1](https://github.com/ReVanced/revanced-patches/commit/30dcff13a56883efc499b71faadb403877cd1c67))
# [5.34.0](https://github.com/ReVanced/revanced-patches/compare/v5.33.0...v5.34.0) (2025-08-19)
### Bug Fixes
* **Backdrops:** Remove broken patch that is no longer supported ([#5627](https://github.com/ReVanced/revanced-patches/issues/5627)) ([ebb8332](https://github.com/ReVanced/revanced-patches/commit/ebb83320838aa99dd4417d45a50333dd42c1218a))
* **pixiv - Hide ads:** Constrain patch to last working app target ([d8ea56c](https://github.com/ReVanced/revanced-patches/commit/d8ea56ca4be47df1c43f96ec41b91c800f1d9daf))
* **Twitch:** Constrain patches to last working app targets ([#5373](https://github.com/ReVanced/revanced-patches/issues/5373)) ([29a4748](https://github.com/ReVanced/revanced-patches/commit/29a47481c4efa209a3a53df60613b59a73adbe07))
* **YouTube - Hide layout components:** Do not hide community posts on channel profiles ([#5634](https://github.com/ReVanced/revanced-patches/issues/5634)) ([9e3d5a2](https://github.com/ReVanced/revanced-patches/commit/9e3d5a2b36106479470f3f69920518b57e8c4dca))
* **YouTube - Player Controls:** Fix chapter title overlapping the bottom buttons ([#5673](https://github.com/ReVanced/revanced-patches/issues/5673)) ([09ccee7](https://github.com/ReVanced/revanced-patches/commit/09ccee71384df338bbf8acc1097f619a372c4868))
* **YouTube - SponsorBlock:** Do not hide voting or create button when the video ends ([6aba4e2](https://github.com/ReVanced/revanced-patches/commit/6aba4e284de9bb94b49eea8be2baf2870eecbbcf))
* **YouTube - Video playback:** Disable HDR video does not disable Dolby Vision HDR ([#5661](https://github.com/ReVanced/revanced-patches/issues/5661)) ([6dab988](https://github.com/ReVanced/revanced-patches/commit/6dab98810645b96bd0387ba7d607e5d8ffb1b5bb))
* **YouTube - Video quality:** Fix additional incorrect quality resolutions used by YouTube ([a2a1fbe](https://github.com/ReVanced/revanced-patches/commit/a2a1fbe2959be8334c54cfc3426c24a960c55c8f))
* **YouTube - Video quality:** Show FHD+ icon for 1080p 60fps enhanced bitrate ([76bed37](https://github.com/ReVanced/revanced-patches/commit/76bed3734093713af24ef065d5ffc5b1cd83f29a))
* **YouTube:** Use correct fade out animation when tapping to dismiss the video overlay ([#5670](https://github.com/ReVanced/revanced-patches/issues/5670)) ([cce6737](https://github.com/ReVanced/revanced-patches/commit/cce6737f627fc7621bbde50a5653b6af14c6f31a))
### Features
* **Instagram:** Support latest app version ([#5611](https://github.com/ReVanced/revanced-patches/issues/5611)) ([26fe690](https://github.com/ReVanced/revanced-patches/commit/26fe690dfbefe6c412c5f81f208a3b1d2fbd7a0a))
* **NU.nl:** Support latest app version ([#5643](https://github.com/ReVanced/revanced-patches/issues/5643)) ([7338e4a](https://github.com/ReVanced/revanced-patches/commit/7338e4a5a99f913256120d0d58fede3aa4ee8922))
* **YouTube - Hide player flyout menu items:** Add option to hide quality flyout menu ([eb55068](https://github.com/ReVanced/revanced-patches/commit/eb5506856a2eaf2a8585e598868ddba3e1429159))
* **YouTube - Hide video action buttons:** Add "Hide Hype button" setting ([f13f377](https://github.com/ReVanced/revanced-patches/commit/f13f3770e7c4fd5bff8f3e224fb1b1ead50a3c18))
* **YouTube - Hide video action buttons:** Add "Hide Promote button" setting ([1959396](https://github.com/ReVanced/revanced-patches/commit/1959396a53f4c07b94acddc5c0ee6cdf7ade7c7b))
* **YouTube - Playback speed:** Show current playback speed on player speed dialog button ([#5607](https://github.com/ReVanced/revanced-patches/issues/5607)) ([279436a](https://github.com/ReVanced/revanced-patches/commit/279436a3657b50f98bb4cc64dc88dc14e422f204))
* **YouTube:** Add `Disable sign in to TV popup` patch ([#5639](https://github.com/ReVanced/revanced-patches/issues/5639)) ([d0e5bd0](https://github.com/ReVanced/revanced-patches/commit/d0e5bd0479a8910b081c483ed2a6ab4d7134e3c3))
# [5.34.0-dev.13](https://github.com/ReVanced/revanced-patches/compare/v5.34.0-dev.12...v5.34.0-dev.13) (2025-08-19)
### Bug Fixes
* **YouTube - Player Controls:** Fix chapter title overlapping the bottom buttons ([#5673](https://github.com/ReVanced/revanced-patches/issues/5673)) ([09ccee7](https://github.com/ReVanced/revanced-patches/commit/09ccee71384df338bbf8acc1097f619a372c4868))
# [5.34.0-dev.13](https://github.com/ReVanced/revanced-patches/compare/v5.34.0-dev.12...v5.34.0-dev.13) (2025-08-18)
### Bug Fixes
* **YouTube - Player Controls:** Fix chapter title overlapping the bottom buttons ([#5673](https://github.com/ReVanced/revanced-patches/issues/5673)) ([09ccee7](https://github.com/ReVanced/revanced-patches/commit/09ccee71384df338bbf8acc1097f619a372c4868))
# [5.34.0-dev.12](https://github.com/ReVanced/revanced-patches/compare/v5.34.0-dev.11...v5.34.0-dev.12) (2025-08-18)
### Bug Fixes
* **YouTube:** Use correct fade out animation when tapping to dismiss the video overlay ([#5670](https://github.com/ReVanced/revanced-patches/issues/5670)) ([cce6737](https://github.com/ReVanced/revanced-patches/commit/cce6737f627fc7621bbde50a5653b6af14c6f31a))
# [5.34.0-dev.11](https://github.com/ReVanced/revanced-patches/compare/v5.34.0-dev.10...v5.34.0-dev.11) (2025-08-16)

View File

@@ -57,11 +57,4 @@ public class PlayerControlsPatch {
private static void fullscreenButtonVisibilityChanged(boolean isVisible) {
// Code added during patching.
}
/**
* Injection point.
*/
public static String getPlayerTopControlsLayoutResourceName(String original) {
return "default";
}
}

View File

@@ -0,0 +1,18 @@
package app.revanced.extension.youtube.patches;
import androidx.annotation.Nullable;
import app.revanced.extension.youtube.shared.PlayerControlsVisibility;
@SuppressWarnings("unused")
public class PlayerControlsVisibilityHookPatch {
/**
* Injection point.
*/
public static void setPlayerControlsVisibility(@Nullable Enum<?> youTubePlayerControlsVisibility) {
if (youTubePlayerControlsVisibility == null) return;
PlayerControlsVisibility.setFromString(youTubePlayerControlsVisibility.name());
}
}

View File

@@ -9,7 +9,7 @@ public class SpoofAppVersionPatch {
private static final String SPOOF_APP_VERSION_TARGET = Settings.SPOOF_APP_VERSION_TARGET.get();
/**
* Injection point
* injection point.
*/
public static String getYouTubeVersionOverride(String version) {
if (SPOOF_APP_VERSION_ENABLED) return SPOOF_APP_VERSION_TARGET;

View File

@@ -126,7 +126,7 @@ public final class SeekbarColorPatch {
}
/**
* Injection point
* injection point.
*/
public static boolean useLotteLaunchSplashScreen(boolean original) {
// This method is only used for development purposes to force the old style launch screen.

View File

@@ -0,0 +1,48 @@
package app.revanced.extension.youtube.shared
import app.revanced.extension.shared.Logger
import app.revanced.extension.youtube.Event
/**
* PlayerControls visibility state.
*/
enum class PlayerControlsVisibility {
PLAYER_CONTROLS_VISIBILITY_UNKNOWN,
PLAYER_CONTROLS_VISIBILITY_WILL_HIDE,
PLAYER_CONTROLS_VISIBILITY_HIDDEN,
PLAYER_CONTROLS_VISIBILITY_WILL_SHOW,
PLAYER_CONTROLS_VISIBILITY_SHOWN;
companion object {
private val nameToPlayerControlsVisibility = PlayerControlsVisibility.entries.associateBy { it.name }
@JvmStatic
fun setFromString(enumName: String) {
val newType = nameToPlayerControlsVisibility[enumName]
if (newType == null) {
Logger.printException { "Unknown PlayerControlsVisibility encountered: $enumName" }
} else {
current = newType
}
}
@JvmStatic
var current
get() = currentPlayerControlsVisibility
private set(type) {
if (currentPlayerControlsVisibility != type) {
Logger.printDebug { "Changed to: $type" }
currentPlayerControlsVisibility = type
onChange(type)
}
}
@Volatile // Read/write from different threads.
private var currentPlayerControlsVisibility = PLAYER_CONTROLS_VISIBILITY_UNKNOWN
@JvmStatic
val onChange = Event<PlayerControlsVisibility>()
}
}

View File

@@ -13,7 +13,6 @@ import android.graphics.Rect;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.RoundRectShape;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Range;
import android.view.Gravity;
import android.view.ViewGroup;
@@ -877,7 +876,7 @@ public class SegmentPlaybackController {
}
/**
* Injection point
* injection point.
*/
@SuppressWarnings("unused")
public static void setSponsorBarRect(Object self) {
@@ -909,7 +908,7 @@ public class SegmentPlaybackController {
}
/**
* Injection point
* injection point.
*/
@SuppressWarnings("unused")
public static void setSponsorBarThickness(int thickness) {

View File

@@ -5,10 +5,10 @@ import android.view.View;
import androidx.annotation.Nullable;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.youtube.patches.VideoInformation;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.youtube.videoplayer.PlayerControlButton;
@SuppressWarnings("unused")
public class CreateSegmentButton {
@Nullable
private static PlayerControlButton instance;
@@ -18,7 +18,7 @@ public class CreateSegmentButton {
}
/**
* injection point
* injection point.
*/
public static void initialize(View controlsView) {
try {
@@ -26,7 +26,6 @@ public class CreateSegmentButton {
controlsView,
"revanced_sb_create_segment_button",
null,
null,
CreateSegmentButton::shouldBeShown,
v -> SponsorBlockViewController.toggleNewSegmentLayoutVisibility(),
null
@@ -37,21 +36,27 @@ public class CreateSegmentButton {
}
/**
* Injection point
* injection point.
*/
public static void setVisibilityNegatedImmediate() {
if (instance != null) instance.setVisibilityNegatedImmediate();
}
/**
* injection point.
*/
public static void setVisibilityImmediate(boolean visible) {
if (instance != null) instance.setVisibilityImmediate(visible);
}
/**
* Injection point
* injection point.
*/
public static void setVisibility(boolean visible, boolean animated) {
if (instance != null) instance.setVisibility(visible, animated);
}
private static boolean shouldBeShown() {
return Settings.SB_ENABLED.get() && Settings.SB_CREATE_NEW_SEGMENT.get()
&& !VideoInformation.isAtEndOfVideo();
return Settings.SB_ENABLED.get() && Settings.SB_CREATE_NEW_SEGMENT.get();
}
}

View File

@@ -5,12 +5,12 @@ import android.view.View;
import androidx.annotation.Nullable;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.youtube.patches.VideoInformation;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.youtube.sponsorblock.SegmentPlaybackController;
import app.revanced.extension.youtube.sponsorblock.SponsorBlockUtils;
import app.revanced.extension.youtube.videoplayer.PlayerControlButton;
@SuppressWarnings("unused")
public class VotingButton {
@Nullable
private static PlayerControlButton instance;
@@ -20,7 +20,7 @@ public class VotingButton {
}
/**
* injection point
* injection point.
*/
public static void initialize(View controlsView) {
try {
@@ -28,7 +28,6 @@ public class VotingButton {
controlsView,
"revanced_sb_voting_button",
null,
null,
VotingButton::shouldBeShown,
v -> SponsorBlockUtils.onVotingClicked(v.getContext()),
null
@@ -39,14 +38,21 @@ public class VotingButton {
}
/**
* Injection point
* injection point.
*/
public static void setVisibilityNegatedImmediate() {
if (instance != null) instance.setVisibilityNegatedImmediate();
}
/**
* injection point.
*/
public static void setVisibilityImmediate(boolean visible) {
if (instance != null) instance.setVisibilityImmediate(visible);
}
/**
* Injection point
* injection point.
*/
public static void setVisibility(boolean visible, boolean animated) {
if (instance != null) instance.setVisibility(visible, animated);
@@ -54,6 +60,6 @@ public class VotingButton {
private static boolean shouldBeShown() {
return Settings.SB_ENABLED.get() && Settings.SB_VOTING_BUTTON.get()
&& SegmentPlaybackController.videoHasSegments() && !VideoInformation.isAtEndOfVideo();
&& SegmentPlaybackController.videoHasSegments();
}
}

View File

@@ -21,7 +21,6 @@ public class CopyVideoUrlButton {
instance = new PlayerControlButton(
controlsView,
"revanced_copy_video_url_button",
"revanced_copy_video_url_button_placeholder",
null,
Settings.COPY_VIDEO_URL::get,
view -> CopyVideoUrlPatch.copyUrl(false),
@@ -35,15 +34,22 @@ public class CopyVideoUrlButton {
}
}
/**`
* injection point.
*/
public static void setVisibilityNegatedImmediate() {
if (instance != null) instance.setVisibilityNegatedImmediate();
}
/**
* injection point
* injection point.
*/
public static void setVisibilityImmediate(boolean visible) {
if (instance != null) instance.setVisibilityImmediate(visible);
}
/**
* injection point
* injection point.
*/
public static void setVisibility(boolean visible, boolean animated) {
if (instance != null) instance.setVisibility(visible, animated);

View File

@@ -21,7 +21,6 @@ public class CopyVideoUrlTimestampButton {
instance = new PlayerControlButton(
controlsView,
"revanced_copy_video_url_timestamp_button",
"revanced_copy_video_url_timestamp_button_placeholder",
null,
Settings.COPY_VIDEO_URL_TIMESTAMP::get,
view -> CopyVideoUrlPatch.copyUrl(true),
@@ -36,14 +35,21 @@ public class CopyVideoUrlTimestampButton {
}
/**
* injection point
* injection point.
*/
public static void setVisibilityNegatedImmediate() {
if (instance != null) instance.setVisibilityNegatedImmediate();
}
/**
* injection point.
*/
public static void setVisibilityImmediate(boolean visible) {
if (instance != null) instance.setVisibilityImmediate(visible);
}
/**
* injection point
* injection point.
*/
public static void setVisibility(boolean visible, boolean animated) {
if (instance != null) instance.setVisibility(visible, animated);

View File

@@ -22,7 +22,6 @@ public class ExternalDownloadButton {
instance = new PlayerControlButton(
controlsView,
"revanced_external_download_button",
"revanced_external_download_button_placeholder",
null,
Settings.EXTERNAL_DOWNLOADER::get,
ExternalDownloadButton::onDownloadClick,
@@ -34,14 +33,21 @@ public class ExternalDownloadButton {
}
/**
* injection point
* injection point.
*/
public static void setVisibilityNegatedImmediate() {
if (instance != null) instance.setVisibilityNegatedImmediate();
}
/**
* injection point.
*/
public static void setVisibilityImmediate(boolean visible) {
if (instance != null) instance.setVisibilityImmediate(visible);
}
/**
* Injection point
* injection point.
*/
public static void setVisibility(boolean visible, boolean animated) {
if (instance != null) instance.setVisibility(visible, animated);

View File

@@ -33,7 +33,6 @@ public class PlaybackSpeedDialogButton {
controlsView,
"revanced_playback_speed_dialog_button_container",
"revanced_playback_speed_dialog_button",
"revanced_playback_speed_dialog_button_placeholder",
"revanced_playback_speed_dialog_button_text",
Settings.PLAYBACK_SPEED_DIALOG_BUTTON::get,
view -> {
@@ -69,6 +68,13 @@ public class PlaybackSpeedDialogButton {
}
}
/**
* injection point.
*/
public static void setVisibilityNegatedImmediate() {
if (instance != null) instance.setVisibilityNegatedImmediate();
}
/**
* Injection point.
*/

View File

@@ -1,7 +1,7 @@
package app.revanced.extension.youtube.videoplayer;
import android.view.View;
import android.view.animation.Animation;
import android.view.ViewPropertyAnimator;
import android.widget.ImageView;
import android.widget.TextView;
@@ -11,6 +11,7 @@ import java.lang.ref.WeakReference;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.youtube.shared.PlayerControlsVisibility;
import app.revanced.extension.youtube.shared.PlayerType;
import kotlin.Unit;
@@ -23,55 +24,29 @@ public class PlayerControlButton {
boolean buttonEnabled();
}
private static final int fadeInDuration;
private static final int fadeOutDuration;
private static final Animation fadeInAnimation;
private static final Animation fadeOutAnimation;
private static final Animation fadeOutImmediate;
static {
fadeInDuration = Utils.getResourceInteger("fade_duration_fast");
fadeOutDuration = Utils.getResourceInteger("fade_duration_scheduled");
fadeInAnimation = Utils.getResourceAnimation("fade_in");
fadeInAnimation.setDuration(fadeInDuration);
fadeOutAnimation = Utils.getResourceAnimation("fade_out");
fadeOutAnimation.setDuration(fadeOutDuration);
// Animation for the fast fade out after tapping the overlay.
// Currently not used but should be.
fadeOutImmediate = Utils.getResourceAnimation("abc_fade_out");
fadeOutImmediate.setDuration(Utils.getResourceInteger("fade_duration_fast"));
}
private static final int fadeInDuration = Utils.getResourceInteger("fade_duration_fast");
private static final int fadeOutDuration = Utils.getResourceInteger("fade_duration_scheduled");
private final WeakReference<View> containerRef;
private final WeakReference<View> buttonRef;
/**
* Empty view with the same layout size as the button. Used to fill empty space while the
* fade out animation runs. Without this the chapter titles overlapping the button when fading out.
*/
private final WeakReference<View> placeHolderRef;
private final WeakReference<TextView> textOverlayRef;
private final PlayerControlButtonStatus enabledStatus;
private boolean isVisible;
private long lastTimeSetVisible;
public PlayerControlButton(View controlsViewGroup,
String buttonId,
@Nullable String placeholderId,
@Nullable String textOverlayId,
PlayerControlButtonStatus enabledStatus,
View.OnClickListener onClickListener,
@Nullable View.OnLongClickListener longClickListener) {
this(controlsViewGroup, buttonId, buttonId, placeholderId, textOverlayId,
this(controlsViewGroup, buttonId, buttonId, textOverlayId,
enabledStatus, onClickListener, longClickListener);
}
public PlayerControlButton(View controlsViewGroup,
String viewToHide,
String buttonId,
@Nullable String placeholderId,
@Nullable String textOverlayId,
PlayerControlButtonStatus enabledStatus,
View.OnClickListener onClickListener,
@@ -87,13 +62,6 @@ public class PlayerControlButton {
}
buttonRef = new WeakReference<>(button);
View tempPlaceholder = null;
if (placeholderId != null) {
tempPlaceholder = Utils.getChildViewByResourceName(controlsViewGroup, placeholderId);
tempPlaceholder.setVisibility(View.GONE);
}
placeHolderRef = new WeakReference<>(tempPlaceholder);
TextView tempTextOverlay = null;
if (textOverlayId != null) {
tempTextOverlay = Utils.getChildViewByResourceName(controlsViewGroup, textOverlayId);
@@ -114,13 +82,55 @@ public class PlayerControlButton {
});
}
public void setVisibilityNegatedImmediate() {
try {
Utils.verifyOnMainThread();
if (PlayerControlsVisibility.getCurrent() != PlayerControlsVisibility.PLAYER_CONTROLS_VISIBILITY_HIDDEN) {
return;
}
final boolean buttonEnabled = enabledStatus.buttonEnabled();
if (!buttonEnabled) {
return;
}
View container = containerRef.get();
if (container == null) {
return;
}
isVisible = false;
ViewPropertyAnimator animate = container.animate();
animate.cancel();
// If the overlay is tapped to display then immediately tapped to dismiss
// before the fade in animation finishes, then the fade out animation is
// the time between when the fade in started and now.
final long animationDuration = Math.min(fadeInDuration,
System.currentTimeMillis() - lastTimeSetVisible);
if (animationDuration <= 0) {
// Should never happen, but handle just in case.
container.setVisibility(View.GONE);
return;
}
animate.alpha(0)
.setDuration(animationDuration)
.withEndAction(() -> container.setVisibility(View.GONE))
.start();
} catch (Exception ex) {
Logger.printException(() -> "setVisibilityNegatedImmediate failure", ex);
}
}
public void setVisibilityImmediate(boolean visible) {
if (visible) {
// Fix button flickering, by pushing this call to the back of
// the main thread and letting other layout code run first.
Utils.runOnMainThread(() -> private_setVisibility(true, false));
Utils.runOnMainThread(() -> privateSetVisibility(true, false));
} else {
private_setVisibility(false, false);
privateSetVisibility(false, false);
}
}
@@ -128,47 +138,53 @@ public class PlayerControlButton {
// Ignore this call, otherwise with full screen thumbnails the buttons are visible while seeking.
if (visible && !animated) return;
private_setVisibility(visible, animated);
privateSetVisibility(visible, animated);
}
private void private_setVisibility(boolean visible, boolean animated) {
private void privateSetVisibility(boolean visible, boolean animated) {
try {
Utils.verifyOnMainThread();
if (isVisible == visible) return;
isVisible = visible;
if (visible) {
lastTimeSetVisible = System.currentTimeMillis();
}
View container = containerRef.get();
if (container == null) return;
if (container == null) {
return;
}
View placeholder = placeHolderRef.get();
final boolean buttonEnabled = enabledStatus.buttonEnabled();
if (visible && buttonEnabled) {
container.clearAnimation();
if (animated) {
container.startAnimation(fadeInAnimation);
}
if (visible && enabledStatus.buttonEnabled()) {
ViewPropertyAnimator animate = container.animate();
animate.cancel();
container.setVisibility(View.VISIBLE);
if (placeholder != null) {
placeholder.setVisibility(View.GONE);
}
} else {
if (container.getVisibility() == View.VISIBLE) {
container.clearAnimation();
if (animated) {
container.startAnimation(fadeOutAnimation);
}
container.setVisibility(View.GONE);
if (animated) {
container.setAlpha(0);
animate.alpha(1)
.setDuration(fadeInDuration)
.start();
} else {
container.setAlpha(1);
}
} else if (container.getVisibility() == View.VISIBLE) {
ViewPropertyAnimator animate = container.animate();
animate.cancel();
if (placeholder != null) {
placeholder.setVisibility(buttonEnabled
? View.VISIBLE
: View.GONE);
if (animated) {
animate.alpha(0)
.setDuration(fadeOutDuration)
.withEndAction(() -> container.setVisibility(View.GONE))
.start();
} else {
container.setVisibility(View.GONE);
}
}
} catch (Exception ex) {
Logger.printException(() -> "private_setVisibility failure", ex);
Logger.printException(() -> "privateSetVisibility failure", ex);
}
}
@@ -176,42 +192,36 @@ public class PlayerControlButton {
* Synchronizes the button state after the player state changes.
*/
private void playerTypeChanged(PlayerType newType) {
Utils.verifyOnMainThread();
if (newType != PlayerType.WATCH_WHILE_MINIMIZED && !newType.isMaximizedOrFullscreen()) {
return;
}
View container = containerRef.get();
if (container == null) return;
if (container == null) {
return;
}
container.clearAnimation();
View placeholder = placeHolderRef.get();
container.animate().cancel();
if (enabledStatus.buttonEnabled()) {
if (isVisible) {
container.setVisibility(View.VISIBLE);
if (placeholder != null) placeholder.setVisibility(View.GONE);
} else {
container.setVisibility(View.GONE);
if (placeholder != null) placeholder.setVisibility(View.VISIBLE);
}
if (isVisible && enabledStatus.buttonEnabled()) {
container.setVisibility(View.VISIBLE);
container.setAlpha(1);
} else {
container.setVisibility(View.GONE);
if (placeholder != null) placeholder.setVisibility(View.GONE);
}
}
public void hide() {
Utils.verifyOnMainThread();
if (!isVisible) return;
if (!isVisible) {
return;
}
isVisible = false;
View view = containerRef.get();
if (view == null) return;
view.setVisibility(View.GONE);
View placeHolder = placeHolderRef.get();
if (placeHolder != null) view.setVisibility(View.GONE);
isVisible = false;
}
/**
@@ -219,6 +229,8 @@ public class PlayerControlButton {
* @param resourceId Drawable identifier, or zero to hide the icon.
*/
public void setIcon(int resourceId) {
Utils.verifyOnMainThread();
View button = buttonRef.get();
if (button instanceof ImageView imageButton) {
imageButton.setImageResource(resourceId);
@@ -230,6 +242,8 @@ public class PlayerControlButton {
* @param text The text to set on the overlay, or null to clear the text.
*/
public void setTextOverlay(CharSequence text) {
Utils.verifyOnMainThread();
TextView textOverlay = textOverlayRef.get();
if (textOverlay != null) {
textOverlay.setText(text);

View File

@@ -69,7 +69,6 @@ public class VideoQualityDialogButton {
controlsView,
"revanced_video_quality_dialog_button_container",
"revanced_video_quality_dialog_button",
"revanced_video_quality_dialog_button_placeholder",
"revanced_video_quality_dialog_button_text",
Settings.VIDEO_QUALITY_DIALOG_BUTTON::get,
view -> {
@@ -116,6 +115,13 @@ public class VideoQualityDialogButton {
}
}
/**
* injection point.
*/
public static void setVisibilityNegatedImmediate() {
if (instance != null) instance.setVisibilityNegatedImmediate();
}
/**
* Injection point.
*/

View File

@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
org.gradle.parallel = true
android.useAndroidX = true
kotlin.code.style = official
version = 5.34.0-dev.11
version = 5.34.1-dev.1

View File

@@ -1536,6 +1536,10 @@ public final class app/revanced/patches/youtube/misc/navigation/NavigationBarHoo
public static final fun setHookNavigationButtonCreated (Lkotlin/jvm/functions/Function1;)V
}
public final class app/revanced/patches/youtube/misc/playercontrols/PlayerControlsOverlayVisibilityPatchKt {
public static final fun getPlayerControlsOverlayVisibilityPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/youtube/misc/playercontrols/PlayerControlsPatchKt {
public static final fun getAddBottomControl ()Lkotlin/jvm/functions/Function1;
public static final fun getPlayerControlsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;

View File

@@ -49,8 +49,8 @@ internal val contextMenuViewModelConstructorFingerprint = fingerprint {
/**
* Used to find the interface name of a context menu item.
*/
internal val removeAdsContextMenuItemClassFingerprint = fingerprint {
strings("remove_ads_item", "ui_navigate")
internal val removeItemFromPlaylistContextMenuItemClassFingerprint = fingerprint {
strings("spotify:playlist:", "REMOVE_TRACK")
}
internal const val CONTEXT_MENU_ITEM_CLASS_DESCRIPTOR_PLACEHOLDER = "Lapp/revanced/ContextMenuItemPlaceholder;"

View File

@@ -2,14 +2,63 @@ package app.revanced.patches.youtube.misc.playercontrols
import app.revanced.patcher.fingerprint
import app.revanced.util.containsLiteralInstruction
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstruction
import app.revanced.util.indexOfFirstInstructionReversed
import app.revanced.util.literal
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.Method
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
internal fun indexOfFocusableInTouchModeInstruction(method: Method) =
method.indexOfFirstInstruction {
getReference<MethodReference>()?.name == "setFocusableInTouchMode"
}
internal fun indexOfTranslationInstruction(method: Method) =
method.indexOfFirstInstructionReversed {
getReference<MethodReference>()?.name == "setTranslationY"
}
internal val playerControlsVisibilityEntityModelFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC)
returns("L")
parameters()
opcodes(
Opcode.IGET,
Opcode.INVOKE_STATIC
)
custom { method, _ ->
method.name == "getPlayerControlsVisibility"
}
}
internal val youtubeControlsOverlayFingerprint = fingerprint {
accessFlags(AccessFlags.PRIVATE, AccessFlags.FINAL)
returns("V")
parameters()
custom { method, _ ->
indexOfFocusableInTouchModeInstruction(method) >= 0 &&
method.containsLiteralInstruction(inset_overlay_view_layout_id) &&
method.containsLiteralInstruction(scrim_overlay_id)
}
}
internal val motionEventFingerprint = fingerprint {
returns("V")
parameters("Landroid/view/MotionEvent;")
custom { method, _ ->
indexOfTranslationInstruction(method) >= 0
}
}
internal val playerTopControlsInflateFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("V")
parameters()
literal { controlsLayoutStub }
literal { controls_layout_stub_id }
}
internal val playerControlsExtensionHookListenersExistFingerprint = fingerprint {
@@ -35,7 +84,7 @@ internal val playerControlsExtensionHookFingerprint = fingerprint {
internal val playerBottomControlsInflateFingerprint = fingerprint {
returns("Ljava/lang/Object;")
parameters()
literal { bottomUiContainerResourceId }
literal { bottom_ui_container_stub_id }
}
internal val overlayViewInflateFingerprint = fingerprint {
@@ -43,8 +92,8 @@ internal val overlayViewInflateFingerprint = fingerprint {
returns("V")
parameters("Landroid/view/View;")
custom { methodDef, _ ->
methodDef.containsLiteralInstruction(fullscreenButton) &&
methodDef.containsLiteralInstruction(heatseekerViewstub)
methodDef.containsLiteralInstruction(fullscreen_button_id) &&
methodDef.containsLiteralInstruction(heatseeker_viewstub_id)
}
}

View File

@@ -0,0 +1,42 @@
package app.revanced.patches.youtube.misc.playercontrols
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.util.indexOfFirstInstructionOrThrow
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
private const val EXTENSION_PLAYER_CONTROLS_VISIBILITY_HOOK_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/patches/PlayerControlsVisibilityHookPatch;"
val PlayerControlsOverlayVisibilityPatch = bytecodePatch {
dependsOn(sharedExtensionPatch)
execute {
playerControlsVisibilityEntityModelFingerprint.let {
it.method.apply {
val startIndex = it.patternMatch!!.startIndex
val iGetReference = getInstruction<ReferenceInstruction>(startIndex).reference
val staticReference = getInstruction<ReferenceInstruction>(startIndex + 1).reference
it.classDef.methods.find { method -> method.name == "<init>" }?.apply {
val targetIndex = indexOfFirstInstructionOrThrow(Opcode.IPUT_OBJECT)
val targetRegister = getInstruction<TwoRegisterInstruction>(targetIndex).registerA
addInstructions(
targetIndex + 1,
"""
iget v$targetRegister, v$targetRegister, $iGetReference
invoke-static { v$targetRegister }, $staticReference
move-result-object v$targetRegister
invoke-static { v$targetRegister }, $EXTENSION_PLAYER_CONTROLS_VISIBILITY_HOOK_CLASS_DESCRIPTOR->setPlayerControlsVisibility(Ljava/lang/Enum;)V
"""
)
}
}
}
}
}

View File

@@ -1,7 +1,6 @@
package app.revanced.patches.youtube.misc.playercontrols
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.PatchException
import app.revanced.patcher.patch.bytecodePatch
@@ -40,13 +39,17 @@ internal lateinit var addTopControl: (String) -> Unit
lateinit var addBottomControl: (String) -> Unit
private set
internal var bottomUiContainerResourceId = -1L
internal var bottom_ui_container_stub_id = -1L
private set
internal var controlsLayoutStub = -1L
internal var controls_layout_stub_id = -1L
private set
internal var heatseekerViewstub = -1L
internal var heatseeker_viewstub_id = -1L
private set
internal var fullscreenButton = -1L
internal var fullscreen_button_id = -1L
private set
internal var inset_overlay_view_layout_id = -1L
private set
internal var scrim_overlay_id = -1L
private set
val playerControlsResourcePatch = resourcePatch {
@@ -65,10 +68,12 @@ val playerControlsResourcePatch = resourcePatch {
execute {
val targetResourceName = "youtube_controls_bottom_ui_container.xml"
bottomUiContainerResourceId = resourceMappings["id", "bottom_ui_container_stub"]
controlsLayoutStub = resourceMappings["id", "controls_layout_stub"]
heatseekerViewstub = resourceMappings["id", "heatseeker_viewstub"]
fullscreenButton = resourceMappings["id", "fullscreen_button"]
bottom_ui_container_stub_id = resourceMappings["id", "bottom_ui_container_stub"]
controls_layout_stub_id = resourceMappings["id", "controls_layout_stub"]
heatseeker_viewstub_id = resourceMappings["id", "heatseeker_viewstub"]
fullscreen_button_id = resourceMappings["id", "fullscreen_button"]
inset_overlay_view_layout_id = resourceMappings["id", "inset_overlay_view_layout"]
scrim_overlay_id = resourceMappings["id", "scrim_overlay"]
bottomTargetDocument = document("res/layout/$targetResourceName")
@@ -198,6 +203,13 @@ fun injectVisibilityCheckCall(descriptor: String) {
visibilityImmediateInsertIndex++,
"invoke-static { p0 }, $descriptor->setVisibilityImmediate(Z)V",
)
// Patch works without this hook, but it is needed to use the correct fade out animation
// duration when tapping the overlay to dismiss.
visibilityNegatedImmediateMethod.addInstruction(
visibilityNegatedImmediateInsertIndex++,
"invoke-static { }, $descriptor->setVisibilityNegatedImmediate()V",
)
}
internal const val EXTENSION_CLASS_DESCRIPTOR =
@@ -220,12 +232,16 @@ private lateinit var visibilityImmediateCallbacksExistMethod : MutableMethod
private lateinit var visibilityImmediateMethod: MutableMethod
private var visibilityImmediateInsertIndex: Int = 0
private lateinit var visibilityNegatedImmediateMethod: MutableMethod
private var visibilityNegatedImmediateInsertIndex: Int = 0
val playerControlsPatch = bytecodePatch(
description = "Manages the code for the player controls of the YouTube player.",
) {
dependsOn(
playerControlsResourcePatch,
sharedExtensionPatch,
PlayerControlsOverlayVisibilityPatch
)
execute {
@@ -258,7 +274,7 @@ val playerControlsPatch = bytecodePatch(
// Hook the fullscreen close button. Used to fix visibility
// when seeking and other situations.
overlayViewInflateFingerprint.method.apply {
val resourceIndex = indexOfFirstLiteralInstructionReversedOrThrow(fullscreenButton)
val resourceIndex = indexOfFirstLiteralInstructionReversedOrThrow(fullscreen_button_id)
val index = indexOfFirstInstructionOrThrow(resourceIndex) {
opcode == Opcode.CHECK_CAST &&
@@ -277,6 +293,11 @@ val playerControlsPatch = bytecodePatch(
visibilityImmediateCallbacksExistMethod = playerControlsExtensionHookListenersExistFingerprint.method
visibilityImmediateMethod = playerControlsExtensionHookFingerprint.method
motionEventFingerprint.match(youtubeControlsOverlayFingerprint.originalClassDef).method.apply {
visibilityNegatedImmediateMethod = this
visibilityNegatedImmediateInsertIndex = indexOfTranslationInstruction(this) + 1
}
// A/B test for a slightly different bottom overlay controls,
// that uses layout file youtube_video_exploder_controls_bottom_ui_container.xml
// The change to support this is simple and only requires adding buttons to both layout files,
@@ -299,12 +320,9 @@ val playerControlsPatch = bytecodePatch(
val index = indexOfFirstInstructionOrThrow(Opcode.MOVE_RESULT_OBJECT)
val register = getInstruction<OneRegisterInstruction>(index).registerA
addInstructions(
addInstruction(
index + 1,
"""
invoke-static { v$register }, $EXTENSION_CLASS_DESCRIPTOR->getPlayerTopControlsLayoutResourceName(Ljava/lang/String;)Ljava/lang/String;
move-result-object v$register
""",
"const-string v$register, \"default\""
)
}
}

View File

@@ -582,7 +582,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_download_button_summary_off">يتم عرض زر التنزيل</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">إخفاء زر Hype</string>
<string name="revanced_hide_hype_button_title">إخفاء الضجة</string>
<string name="revanced_hide_hype_button_summary_on">زر الضجة مخفي</string>
<string name="revanced_hide_hype_button_summary_off">يظهر زر الحماس</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,13 @@ Ekranın sağ tərəfində düzünə sürüşdürərək səs səviyyəsini tənz
<string name="revanced_hide_download_button_summary_off">Yükləmə düyməsi göstərilir</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Coşqu Gizlət</string>
<string name="revanced_hide_hype_button_summary_on">Coşqu düyməsi gizlidir</string>
<string name="revanced_hide_hype_button_summary_off">Coşqu düyməsi görünür</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">Sponsor-u Gizlət</string>
<string name="revanced_hide_promote_button_summary_on">Sponsor düyməsi gizlidir</string>
<string name="revanced_hide_promote_button_summary_off"> Sponsor düyməsi görünür</string>
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_thanks_button_title">\"Təşəkkürlər\"i gizlət</string>
<string name="revanced_hide_thanks_button_summary_on">Təşəkkür düyməsi gizlidir</string>

View File

@@ -582,7 +582,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_download_button_summary_off">Паказана кнопка загрузкі</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Схаваць кнопку Hype</string>
<string name="revanced_hide_hype_button_title">Схаваць хайп</string>
<string name="revanced_hide_hype_button_summary_on">Кнопка Hype схаваная</string>
<string name="revanced_hide_hype_button_summary_off">Кнопка хайпу паказана</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_download_button_summary_off">Бутона за изтегляне се показва</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Скриване на бутона за хайп</string>
<string name="revanced_hide_hype_button_title">Скрий хайпа</string>
<string name="revanced_hide_hype_button_summary_on">Бутонът за хайп е скрит</string>
<string name="revanced_hide_hype_button_summary_off">Бутонът за хайп е показан</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -578,7 +578,7 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_hide_download_button_summary_off">ডাউনলোড বোতাম দেখানো হয়েছে</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">হাইপ বোতাম লুকান</string>
<string name="revanced_hide_hype_button_title">হাইপ লুকান</string>
<string name="revanced_hide_hype_button_summary_on">হাইপ বোতাম লুকানো আছে</string>
<string name="revanced_hide_hype_button_summary_off">হাইপ বাটন দেখানো হয়েছে</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Hlasitost se upravuje svislým přejetím po pravé straně obrazovky"</string>
<string name="revanced_hide_download_button_summary_off">Tlačítko Stáhnout je zobrazeno</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Skrýt tlačítko Hype</string>
<string name="revanced_hide_hype_button_title">Skrýt Hype</string>
<string name="revanced_hide_hype_button_summary_on">Tlačítko Hype je skryto</string>
<string name="revanced_hide_hype_button_summary_off">Tlačítko Hype je zobrazeno</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Juster lydstyrken ved at swipe lodret i højre side af skærmen"</string>
<string name="revanced_hide_download_button_summary_off">Download-knappen vises</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Skjul Hype-knap</string>
<string name="revanced_hide_hype_button_title">Skjul Hype</string>
<string name="revanced_hide_hype_button_summary_on">Hype-knappen er skjult</string>
<string name="revanced_hide_hype_button_summary_off">Hype-knappen vises</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -150,9 +150,9 @@ Sie werden nicht über unerwartete Ereignisse informiert."</string>
<string name="revanced_hide_chips_shelf_title">Chips ausblenden</string>
<string name="revanced_hide_chips_shelf_summary_on">Chips sind ausgeblendet</string>
<string name="revanced_hide_chips_shelf_summary_off">Chips werden angezeigt</string>
<string name="revanced_hide_community_posts_title">Community-Beiträge ausblenden</string>
<string name="revanced_hide_community_posts_summary_on">Community-Beiträge sind ausgeblendet</string>
<string name="revanced_hide_community_posts_summary_off">Gemeinschaftsbeiträge werden angezeigt</string>
<string name="revanced_hide_community_posts_title">Communitybeiträge ausblenden</string>
<string name="revanced_hide_community_posts_summary_on">Communitybeiträge sind ausgeblendet</string>
<string name="revanced_hide_community_posts_summary_off">Communitybeiträge werden angezeigt</string>
<string name="revanced_hide_compact_banner_title">Kompakte Banner ausblenden</string>
<string name="revanced_hide_compact_banner_summary_on">Kompakte Banner sind ausgeblendet</string>
<string name="revanced_hide_compact_banner_summary_off">Kompakte Banner werden angezeigt</string>
@@ -218,7 +218,7 @@ Wenn ein Doodle zurzeit in Ihrer Region angezeigt wird und diese Einstellung zum
<string name="revanced_hide_channel_bar_title">Senderleiste ausblenden</string>
<string name="revanced_hide_channel_bar_summary_on">Kanalleiste ist ausgeblendet</string>
<string name="revanced_hide_channel_bar_summary_off">Kanalleiste wird angezeigt</string>
<string name="revanced_hide_channel_watermark_title">Wasserzeichen ausblenden</string>
<string name="revanced_hide_channel_watermark_title">Kanal-Wasserzeichen ausblenden</string>
<string name="revanced_hide_channel_watermark_summary_on">Wasserzeichen ist ausgeblendet</string>
<string name="revanced_hide_channel_watermark_summary_off">Wasserzeichen wird angezeigt</string>
<string name="revanced_hide_emergency_box_title">Notfall-Boxen ausblenden</string>
@@ -303,9 +303,9 @@ Wenn ein Doodle zurzeit in Ihrer Region angezeigt wird und diese Einstellung zum
<string name="revanced_hide_members_shelf_summary_on">Mitglieder-Regal ist ausgeblendet</string>
<string name="revanced_hide_members_shelf_summary_off">Mitglieder-Regal wird angezeigt</string>
<!-- 'Visit Community' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_visit_community_button_title">Schaltfläche \'Community besuchen\' ausblenden</string>
<string name="revanced_hide_visit_community_button_summary_on">Schaltfläche \'Community besuchen\' ist ausgeblendet</string>
<string name="revanced_hide_visit_community_button_summary_off">Schaltfläche \"Community besuchen\" ist angezeigt</string>
<string name="revanced_hide_visit_community_button_title">Schaltfläche \'Zur Community\' ausblenden</string>
<string name="revanced_hide_visit_community_button_summary_on">Schaltfläche \'Zur Community\' ist ausgeblendet</string>
<string name="revanced_hide_visit_community_button_summary_off">Schaltfläch \"Zur Community\" wird angezeigt</string>
<!-- 'Visit store' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_visit_store_button_title">Den \'Store besuchen\'-Button auf Kanalseiten ausblenden</string>
<string name="revanced_hide_visit_store_button_summary_on">Schaltfläche \"Shop besuchen\" ist ausgeblendet</string>
@@ -577,9 +577,9 @@ Passen Sie die Helligkeit an, indem Sie auf der linken Seite des Bildschirms ver
<string name="revanced_hide_download_button_summary_off">Download-Button wird angezeigt</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Hype-Button ausblenden</string>
<string name="revanced_hide_hype_button_summary_on">Hype-Button ist ausgeblendet</string>
<string name="revanced_hide_hype_button_summary_off">Hype-Button wird angezeigt</string>
<string name="revanced_hide_hype_button_title">Hypen ausblenden</string>
<string name="revanced_hide_hype_button_summary_on">Hypen-Button ist ausgeblendet</string>
<string name="revanced_hide_hype_button_summary_off">Hypen-Button wird angezeigt</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">Werbung ausblenden</string>
<string name="revanced_hide_promote_button_summary_on">Schaltfläche \"Promoten\" ist ausgeblendet</string>

View File

@@ -584,9 +584,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_download_button_summary_off">Εμφανίζεται</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Κουμπί «Χάιπ»</string>
<string name="revanced_hide_hype_button_title">Κουμπί «Hype»</string>
<string name="revanced_hide_hype_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_hype_button_summary_off">Το κουμπί Hype εμφανίζεται</string>
<string name="revanced_hide_hype_button_summary_off">Εμφανίζεται</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">Κουμπί «Προώθηση»</string>
<string name="revanced_hide_promote_button_summary_on">Κρυμμένο</string>

View File

@@ -582,7 +582,7 @@ Ajusta el volumen deslizando verticalmente en el lado derecho de la pantalla"</s
<string name="revanced_hide_download_button_summary_off">Se muestra el botón de descarga</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Ocultar botón de Hype</string>
<string name="revanced_hide_hype_button_title">Ocultar Hype</string>
<string name="revanced_hide_hype_button_summary_on">El botón Hype está oculto</string>
<string name="revanced_hide_hype_button_summary_off">El botón de hype está visible</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Helitugevuse reguleerimiseks pühkige ekraani paremal küljel vertikaalselt"</st
<string name="revanced_hide_download_button_summary_off">Laadi alla nupp on nähtav</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Peida Haip nupp</string>
<string name="revanced_hide_hype_button_title">Peida Hype</string>
<string name="revanced_hide_hype_button_summary_on">Hype nupp on peidetud</string>
<string name="revanced_hide_hype_button_summary_off">Hype\'i nupp on nähtav</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -579,7 +579,13 @@ Säädä äänenvoimakkuutta pyyhkäisemällä pystysuoraan näytön oikealta pu
<string name="revanced_hide_download_button_summary_off">Lataa-painike näytetään</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Piilota Hypetä</string>
<string name="revanced_hide_hype_button_summary_on">Hypetä-painike on piilotettu</string>
<string name="revanced_hide_hype_button_summary_off">Hypetä-painike näytetään</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">Piilota Mainosta</string>
<string name="revanced_hide_promote_button_summary_on">Mainosta-painike on piilotettu</string>
<string name="revanced_hide_promote_button_summary_off">Mainosta-painike näytetään</string>
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_thanks_button_title">Piilota Kiitos</string>
<string name="revanced_hide_thanks_button_summary_on">Kiitos-painike on piilotettu</string>

View File

@@ -582,7 +582,7 @@ Ayusin ang volume sa pamamagitan ng pag-swipe nang patayo sa kanang bahagi ng sc
<string name="revanced_hide_download_button_summary_off">Ang pindutan ng pag-download ay ipinapakita</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Itago ang Hype button</string>
<string name="revanced_hide_hype_button_title">Itago ang Ingay</string>
<string name="revanced_hide_hype_button_summary_on">Nakatago ang hype button</string>
<string name="revanced_hide_hype_button_summary_off">Ipinapakita ang Hype button</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -453,9 +453,9 @@ Cette fonctionnalité est disponible uniquement pour les appareils anciens"</str
<string name="revanced_remove_viewer_discretion_dialog_user_dialog_message">Cette option ne contourne pas la vérification de l\'âge. Elle est juste confirmée automatiquement.</string>
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
<string name="revanced_disable_signin_to_tv_popup_title">Désactiver le pop-up \"Se connecter à la TV\"</string>
<string name="revanced_disable_signin_to_tv_popup_summary_on">Le pop-up \"Se connecter à la TV\" est désactivé</string>
<string name="revanced_disable_signin_to_tv_popup_summary_off">Le pop-up \"Se connecter à la TV\" est activé</string>
<string name="revanced_disable_signin_to_tv_popup_title">Désactiver le pop-up \"Connectez-vous à la TV\"</string>
<string name="revanced_disable_signin_to_tv_popup_summary_on">Le pop-up \"Connectez-vous à la TV\" est désactivé</string>
<string name="revanced_disable_signin_to_tv_popup_summary_off">Le pop-up \"Connectez-vous à la TV\" est activé</string>
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
<string name="revanced_disable_chapter_skip_double_tap_title">Désactiver le double appui pour passer à un chapitre</string>
@@ -582,11 +582,11 @@ Réglez le volume en balayant verticalement sur le côté droit de l'écran"</st
<string name="revanced_hide_download_button_summary_off">Le bouton Télécharger est affiché</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Masquer le bouton Hype</string>
<string name="revanced_hide_hype_button_summary_on">Le bouton Hype est masqué</string>
<string name="revanced_hide_hype_button_summary_off">Le bouton Hype est affiché</string>
<string name="revanced_hide_hype_button_title">Masquer \"Booster\"</string>
<string name="revanced_hide_hype_button_summary_on">Le bouton Booster est masqué</string>
<string name="revanced_hide_hype_button_summary_off">Le bouton Booster est affiché</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">Masquer Promouvoir</string>
<string name="revanced_hide_promote_button_title">Masquer \"Promouvoir\"</string>
<string name="revanced_hide_promote_button_summary_on">Le bouton Promouvoir est masqué</string>
<string name="revanced_hide_promote_button_summary_off">Le bouton Promouvoir est affiché</string>
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Coigeartaigh an toirt trí haisceartán go hingearach ar thaobh deas an scáile
<string name="revanced_hide_download_button_summary_off">Taispeántar cnaipe íoslódáil</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Folaigh Cnaipe Hype</string>
<string name="revanced_hide_hype_button_title">Folaigh Borradh</string>
<string name="revanced_hide_hype_button_summary_on">Tá cnaipe an Hype i bhfolach</string>
<string name="revanced_hide_hype_button_summary_off">Tá an cnaipe Hype ar taispeáint</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ A hangerő a képernyő jobb oldalán függőlegesen húzva állítható be"</st
<string name="revanced_hide_download_button_summary_off">A letöltés gomb látható</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Hype gomb elrejtése</string>
<string name="revanced_hide_hype_button_title">Aktivitás elrejtése</string>
<string name="revanced_hide_hype_button_summary_on">A Hype gomb rejtett</string>
<string name="revanced_hide_hype_button_summary_off">A hype gomb látható</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել
<string name="revanced_hide_download_button_summary_off">Download կոճակը ցուցադրվում է</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Թաքցնել «Hype» կոճակը</string>
<string name="revanced_hide_hype_button_title">Թաքցնել Հայփը</string>
<string name="revanced_hide_hype_button_summary_on">Հայփ կոճակը թաքնված է</string>
<string name="revanced_hide_hype_button_summary_off">Հայփ կոճակը ցուցադրվում է</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,13 +582,13 @@ Menyesuaikan volume dengan mengusap secara vertikal di sisi kanan layar"</string
<string name="revanced_hide_download_button_summary_off">Tombol unduh ditampilkan</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Sembunyikan tombol Hype</string>
<string name="revanced_hide_hype_button_title">Sembunyikan Hype</string>
<string name="revanced_hide_hype_button_summary_on">Tombol Hype disembunyikan</string>
<string name="revanced_hide_hype_button_summary_off">Tombol Hype ditampilkan</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">Sembunyikan Promosi</string>
<string name="revanced_hide_promote_button_summary_on">Tombol Promote disembunyikan</string>
<string name="revanced_hide_promote_button_summary_off">Tombol Promote ditampilkan</string>
<string name="revanced_hide_promote_button_summary_on">Tombol Promosi disembunyikan</string>
<string name="revanced_hide_promote_button_summary_off">Tombol Promosi ditampilkan</string>
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_thanks_button_title">Sembunyikan Terima kasih</string>
<string name="revanced_hide_thanks_button_summary_on">Tombol terima kasih disembunyikan</string>

View File

@@ -582,7 +582,7 @@ Regola il volume scorrendo verticalmente sul lato destro dello schermo"</string>
<string name="revanced_hide_download_button_summary_off">Il pulsante Scarica è visibile</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Nascondi pulsante Hype</string>
<string name="revanced_hide_hype_button_title">Nascondi Hype</string>
<string name="revanced_hide_hype_button_summary_on">Il pulsante Hype è nascosto</string>
<string name="revanced_hide_hype_button_summary_off">Pulsante Hype è mostrato</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_download_button_summary_off">לחצן הורדה מוצג</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">הסתר כפתור הייפ</string>
<string name="revanced_hide_hype_button_title">הסתר הייפ</string>
<string name="revanced_hide_hype_button_summary_on">כפתור הייפ מוסתר</string>
<string name="revanced_hide_hype_button_summary_off">כפתור ההייפ מוצג</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -258,7 +258,7 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_hide_ask_section_title">質問セクションを非表示</string>
<string name="revanced_hide_ask_section_summary_on">質問セクションは表示されません</string>
<string name="revanced_hide_ask_section_summary_off">質問セクションは表示されます</string>
<string name="revanced_hide_attributes_section_title">関連情報を非表示</string>
<string name="revanced_hide_attributes_section_title">付随情報を非表示</string>
<string name="revanced_hide_attributes_section_summary_on">注目の場所 / ゲーム / 音楽 / 言及されている人物セクションは表示されません</string>
<string name="revanced_hide_attributes_section_summary_off">注目の場所 / ゲーム / 音楽 / 言及されている人物セクションは表示されます</string>
<string name="revanced_hide_chapters_section_title">チャプター セクションを非表示</string>
@@ -270,9 +270,9 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_hide_podcast_section_title">「ポッドキャストを検索」を非表示</string>
<string name="revanced_hide_podcast_section_summary_on">「ポッドキャストを検索」セクションは表示されません</string>
<string name="revanced_hide_podcast_section_summary_off">「ポッドキャストを検索」セクションは表示されます</string>
<string name="revanced_hide_info_cards_section_title">チャンネル情報を非表示</string>
<string name="revanced_hide_info_cards_section_summary_on">チャンネル情報セクションは表示されません</string>
<string name="revanced_hide_info_cards_section_summary_off">チャンネル情報セクションは表示されます</string>
<string name="revanced_hide_info_cards_section_title">情報カード セクションを非表示</string>
<string name="revanced_hide_info_cards_section_summary_on">情報カード セクションは表示されません</string>
<string name="revanced_hide_info_cards_section_summary_off">情報カード セクションは表示されます</string>
<string name="revanced_hide_key_concepts_section_title">「主な概念」を非表示</string>
<string name="revanced_hide_key_concepts_section_summary_on">主な概念セクションは表示されません</string>
<string name="revanced_hide_key_concepts_section_summary_off">主な概念セクションが表示されます</string>
@@ -316,7 +316,7 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_hide_visit_store_button_summary_on">「ストアに移動」ボタンは表示されません</string>
<string name="revanced_hide_visit_store_button_summary_off">「ストアに移動」ボタンは表示されます</string>
<string name="revanced_comments_screen_title">コメント</string>
<string name="revanced_comments_screen_summary">コメント セクションの設定</string>
<string name="revanced_comments_screen_summary">コメント セクションのコンポーネントを表示または非表示にします</string>
<string name="revanced_hide_comments_ai_chat_summary_title">AI による「チャットの要約」を非表示</string>
<string name="revanced_hide_comments_ai_chat_summary_summary_on">AI による「チャットの要約」は表示されません</string>
<string name="revanced_hide_comments_ai_chat_summary_summary_off">AI による「チャットの要約」は表示されます</string>
@@ -441,12 +441,12 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
<string name="revanced_share_copy_url_success">URL をクリップボードにコピーしました</string>
<string name="revanced_share_copy_url_timestamp_success">タイムスタンプ付きの URL がコピーされました</string>
<string name="revanced_copy_video_url_title">「動画の URL をコピー」ボタンを表示する</string>
<string name="revanced_copy_video_url_summary_on">ボタンオーバーレイに表示されます。タップすると動画の URL 、長押しするとタイムスタンプ付きの URL それぞれコピーできます</string>
<string name="revanced_copy_video_url_summary_off">ボタンはオーバーレイに表示されません</string>
<string name="revanced_copy_video_url_timestamp_title">「動画のタイムスタンプ付き URL をコピー」ボタンを表示する</string>
<string name="revanced_copy_video_url_timestamp_summary_on">ボタンオーバーレイに表示されます。タップするとタイムスタンプ付きの URL 、長押しするとタイムスタンプなしの URL それぞれコピーできます</string>
<string name="revanced_copy_video_url_timestamp_summary_off">ボタンはオーバーレイに表示されません</string>
<string name="revanced_copy_video_url_title">「動画の URL をコピー」ボタンを表示</string>
<string name="revanced_copy_video_url_summary_on">ボタンがプレーヤー オーバーレイに表示されます。タップすると動画の URL 、長押しするとタイムスタンプ付きの URL それぞれコピーされます</string>
<string name="revanced_copy_video_url_summary_off">ボタンはプレーヤー オーバーレイに表示されません</string>
<string name="revanced_copy_video_url_timestamp_title">「動画のタイムスタンプ付き URL をコピー」ボタンを表示</string>
<string name="revanced_copy_video_url_timestamp_summary_on">ボタンがプレーヤー オーバーレイに表示されます。タップするとタイムスタンプ付きの URL 、長押しするとタイムスタンプなしの URL それぞれコピーされます</string>
<string name="revanced_copy_video_url_timestamp_summary_off">ボタンはプレーヤー オーバーレイに表示されません</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
<string name="revanced_remove_viewer_discretion_dialog_title">「ご自身の責任」ダイアログを削除</string>
@@ -467,11 +467,11 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<patch id="interaction.downloads.downloadsResourcePatch">
<string name="revanced_external_downloader_screen_title">外部ダウンロード</string>
<string name="revanced_external_downloader_screen_summary">外部ダウンローダーの設定</string>
<string name="revanced_external_downloader_title">外部ダウンロード ボタンを表示する</string>
<string name="revanced_external_downloader_summary_on">外部ダウンロード ボタンオーバーレイに表示されます</string>
<string name="revanced_external_downloader_summary_off">外部ダウンロード ボタンはオーバーレイに表示されません</string>
<string name="revanced_external_downloader_title">外部ダウンロード ボタンを表示</string>
<string name="revanced_external_downloader_summary_on">外部ダウンロード ボタンがプレーヤー オーバーレイに表示されます</string>
<string name="revanced_external_downloader_summary_off">外部ダウンロード ボタンはプレーヤー オーバーレイに表示されません</string>
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
<string name="revanced_external_downloader_action_button_title">オフライン ボタンの動作を上書きする</string>
<string name="revanced_external_downloader_action_button_title">オフライン ボタンの動作を上書き</string>
<string name="revanced_external_downloader_action_button_summary_on">オフライン ボタンは外部ダウンローダーを呼び出します</string>
<string name="revanced_external_downloader_action_button_summary_off">オフライン ボタンはアプリ内のダウンローダーを呼び出します</string>
<string name="revanced_external_downloader_name_title">外部ダウンローダーのパッケージ名</string>
@@ -549,13 +549,13 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_disable_auto_captions_title">自動字幕表示を無効化</string>
<string name="revanced_disable_auto_captions_summary_on">動画を開いた際の自動字幕表示は無効です</string>
<string name="revanced_disable_auto_captions_summary_off">動画を開いた際の自動字幕表示は有効で</string>
<string name="revanced_disable_auto_captions_summary_on">自動字幕表示は無効です\n\n動画を開いた際にデフォルトで字幕は表示されません</string>
<string name="revanced_disable_auto_captions_summary_off">自動字幕表示は有効です\n\n動画を開いた際にデフォルトで字幕表示される場合がありま</string>
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">アクション ボタン</string>
<string name="revanced_hide_buttons_screen_summary">プレーヤー画面下のボタンの設定</string>
<string name="revanced_disable_like_subscribe_glow_title">高評価とチャンネル登録のエフェクトを無効にする</string>
<string name="revanced_hide_buttons_screen_summary">プレーヤー画面下のボタンを表示または非表示にします</string>
<string name="revanced_disable_like_subscribe_glow_title">高評価とチャンネル登録のエフェクトを無効</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">高評価ボタンとチャンネル登録ボタンのエフェクトは無効です</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">高評価ボタンとチャンネル登録ボタンのエフェクトは有効です</string>
<string name="revanced_hide_like_dislike_button_title">高評価ボタンと低評価ボタンを非表示</string>
@@ -584,13 +584,13 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_hide_download_button_summary_off">オフライン ボタンは表示されます</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">「盛り上げ」ボタンを非表示</string>
<string name="revanced_hide_hype_button_summary_on">Hype ボタンは表示されません</string>
<string name="revanced_hide_hype_button_title">ハイプボタンを非表示</string>
<string name="revanced_hide_hype_button_summary_on">ハイプボタンは表示されません</string>
<string name="revanced_hide_hype_button_summary_off">ハイプボタンは表示されます</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">プロモーション」を非表示</string>
<string name="revanced_hide_promote_button_summary_on">宣伝ボタンは表示されません</string>
<string name="revanced_hide_promote_button_summary_off">宣伝ボタンは表示されます</string>
<string name="revanced_hide_promote_button_title">プロモート ボタンを非表示</string>
<string name="revanced_hide_promote_button_summary_on">プロモート ボタンは表示されません</string>
<string name="revanced_hide_promote_button_summary_off">プロモート ボタンは表示されます</string>
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_thanks_button_title">Thanks ボタンを非表示</string>
<string name="revanced_hide_thanks_button_summary_on">Thanks ボタンは表示されません</string>
@@ -718,29 +718,29 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_autoplay_button_title">自動再生ボタンを非表示</string>
<string name="revanced_hide_autoplay_button_summary_on">自動再生ボタンはオーバーレイに表示されません</string>
<string name="revanced_hide_autoplay_button_summary_off">自動再生ボタンはオーバーレイに表示されます</string>
<string name="revanced_hide_autoplay_button_summary_on">プレーヤー オーバーレイの自動再生ボタンは表示されません</string>
<string name="revanced_hide_autoplay_button_summary_off">プレーヤー オーバーレイの自動再生ボタンは表示されます</string>
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
<string name="revanced_hide_captions_button_title">字幕ボタンを非表示</string>
<string name="revanced_hide_captions_button_summary_on">字幕ボタンはオーバーレイに表示されません</string>
<string name="revanced_hide_captions_button_summary_off">字幕ボタンはオーバーレイに表示されます</string>
<string name="revanced_hide_captions_button_summary_on">プレーヤー オーバーレイの字幕ボタンは表示されません</string>
<string name="revanced_hide_captions_button_summary_off">プレーヤー オーバーレイの字幕ボタンは表示されます</string>
<string name="revanced_hide_cast_button_title">キャストボタンを非表示</string>
<string name="revanced_hide_cast_button_summary_on">キャストボタンはオーバーレイに表示されません</string>
<string name="revanced_hide_cast_button_summary_off">キャストボタンはオーバーレイに表示されます</string>
<string name="revanced_hide_player_control_buttons_background_title">プレーヤーコントロールの背景を非表示</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">プレーヤーコントロールの背景は表示されません</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">プレーヤーコントロールの背景は表示されます</string>
<string name="revanced_hide_cast_button_summary_on">プレーヤー オーバーレイのキャストボタンは表示されません</string>
<string name="revanced_hide_cast_button_summary_off">プレーヤー オーバーレイのキャストボタンは表示されます</string>
<string name="revanced_hide_player_control_buttons_background_title">プレーヤー コントロールの背景を非表示</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">プレーヤー コントロールの背景は表示されません</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">プレーヤー コントロールの背景は表示されます</string>
<string name="revanced_hide_player_previous_next_buttons_title">前の動画ボタンと次の動画ボタンを非表示</string>
<string name="revanced_hide_player_previous_next_buttons_summary_on">前の動画ボタンと次の動画ボタンは表示されません</string>
<string name="revanced_hide_player_previous_next_buttons_summary_off">前の動画ボタンと次の動画ボタンは表示されます</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">動画の終了画面を非表示</string>
<string name="revanced_hide_endscreen_cards_summary_on">動画の終了画面は表示されません</string>
<string name="revanced_hide_endscreen_cards_summary_off">動画の終了画面は表示されます</string>
<string name="revanced_hide_endscreen_cards_title">終了画面カードを非表示</string>
<string name="revanced_hide_endscreen_cards_summary_on">終了画面カードは表示されません</string>
<string name="revanced_hide_endscreen_cards_summary_off">終了画面カードは表示されます</string>
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
<string name="revanced_disable_fullscreen_ambient_mode_title">全画面表示中のアンビエント モードを無効にする</string>
<string name="revanced_disable_fullscreen_ambient_mode_title">全画面表示中のアンビエント モードを無効</string>
<string name="revanced_disable_fullscreen_ambient_mode_summary_on">全画面表示中のアンビエント モードは無効です</string>
<string name="revanced_disable_fullscreen_ambient_mode_summary_off">全画面表示中のアンビエント モードは有効です</string>
</patch>
@@ -750,9 +750,9 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_hide_info_cards_summary_off">情報カードはプレーヤー画面に表示されます</string>
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
<string name="revanced_disable_rolling_number_animations_title">数字のアニメーションを無効にする</string>
<string name="revanced_disable_rolling_number_animations_summary_on">数字のアニメーションは無効です</string>
<string name="revanced_disable_rolling_number_animations_summary_off">数字のアニメーションは有効です</string>
<string name="revanced_disable_rolling_number_animations_title">数字の回転アニメーションを無効</string>
<string name="revanced_disable_rolling_number_animations_summary_on">数字の回転アニメーションは無効です</string>
<string name="revanced_disable_rolling_number_animations_summary_off">数字の回転アニメーションは有効です</string>
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<string name="revanced_hide_seekbar_title">動画プレーヤーのシークバーを非表示</string>
@@ -878,12 +878,12 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_hide_shorts_navigation_bar_summary_off">ナビゲーション バーは表示されます</string>
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">再生終了時の「関連動画」オーバーレイを非表示</string>
<string name="revanced_end_screen_suggested_video_summary_on">"再生終了に、「関連動画」オーバーレイはプレーヤー画面に表示されませんが、自動再生がオンの場合は次の動画が自動で再生されます
<string name="revanced_end_screen_suggested_video_title">再生終了時の「関連動画」を非表示</string>
<string name="revanced_end_screen_suggested_video_summary_on">"再生終了したときに、「関連動画」はプレーヤー画面に表示されませんが、自動再生がオンの場合は次の動画が自動で再生されます
自動再生の設定は YouTube の設定で変更できます:
設定 → 再生 → 次の動画を自動再生"</string>
<string name="revanced_end_screen_suggested_video_summary_off">再生終了時に、「関連動画」オーバーレイがプレーヤー画面に表示されます</string>
<string name="revanced_end_screen_suggested_video_summary_off">再生終了したときに「関連動画」がプレーヤー画面に表示されます</string>
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
<string name="revanced_hide_related_videos_overlay_title">関連動画オーバーレイを非表示</string>
@@ -897,11 +897,11 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
<string name="revanced_hide_player_popup_panels_title">プレーヤー ポップアップ パネルを非表示</string>
<string name="revanced_hide_player_popup_panels_summary_on">動画を開いた際のプレイリストやチャット欄などのプレーヤー ポップアップ パネルは表示されません</string>
<string name="revanced_hide_player_popup_panels_summary_off">動画を開いた際のプレイリストやチャット欄などのプレーヤー ポップアップ パネルは表示されます</string>
<string name="revanced_hide_player_popup_panels_summary_on">プレーヤー ポップアップ パネルは表示されません\n\nプレイリストやチャット欄などを閉じた状態で動画を開きます</string>
<string name="revanced_hide_player_popup_panels_summary_off">プレーヤー ポップアップ パネルは表示されます\n\nプレイリストやチャット欄などを展開した状態で動画を開きます</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">再生終了時に全画面表示を解除する</string>
<string name="revanced_exit_fullscreen_title">再生終了時に全画面表示を解除</string>
<string name="revanced_exit_fullscreen_entry_1">無効</string>
<string name="revanced_exit_fullscreen_entry_2">縦画面</string>
<string name="revanced_exit_fullscreen_entry_3">横画面</string>
@@ -913,9 +913,9 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_open_videos_fullscreen_portrait_summary_off">通常表示で動画を開きます</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">オーバーレイの透明度</string>
<string name="revanced_player_overlay_opacity_title">プレーヤー オーバーレイの透明度</string>
<string name="revanced_player_overlay_opacity_summary">透明度の範囲は 0-100 で、0 が透明です</string>
<string name="revanced_player_overlay_opacity_invalid_toast">動画プレーヤー: 透明度の範囲は 0-100 です</string>
<string name="revanced_player_overlay_opacity_invalid_toast">プレーヤー: 透明度の範囲は 0-100 です</string>
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
@@ -1282,24 +1282,24 @@ Automotive レイアウト
<string name="revanced_miniplayer_type_entry_5">モダン 2</string>
<string name="revanced_miniplayer_type_entry_6">モダン 3</string>
<string name="revanced_miniplayer_type_entry_7">モダン 4</string>
<string name="revanced_miniplayer_rounded_corners_title">角を丸くする</string>
<string name="revanced_miniplayer_rounded_corners_title">角を有効化</string>
<string name="revanced_miniplayer_rounded_corners_summary_on">ミニプレーヤーの角は丸角です</string>
<string name="revanced_miniplayer_rounded_corners_summary_off">ミニプレーヤーの角は直角です</string>
<string name="revanced_miniplayer_double_tap_action_title">「ダブルタップとピンチでサイズ変更」を有効にする</string>
<string name="revanced_miniplayer_double_tap_action_title">「ダブルタップとピンチでサイズ変更」を有効</string>
<string name="revanced_miniplayer_double_tap_action_summary_on">"「ダブルタップとピンチでサイズ変更」は有効です
• ダブルタップすると、ミニプレーヤーのサイズが大きくなる
• もう一度ダブルタップすると、元のサイズに戻る"</string>
<string name="revanced_miniplayer_double_tap_action_summary_off">「 ダブルタップとピンチでサイズ変更」は無効です</string>
<string name="revanced_miniplayer_drag_and_drop_title">ドラッグ&ドロップを有効にする</string>
<string name="revanced_miniplayer_drag_and_drop_title">ドラッグ&ドロップを有効</string>
<string name="revanced_miniplayer_drag_and_drop_summary_on">"ドラッグ&ドロップは有効です
ミニプレーヤーを画面の四隅に移動できます"</string>
<string name="revanced_miniplayer_drag_and_drop_summary_off">ドラッグ&ドロップは無効です</string>
<string name="revanced_miniplayer_horizontal_drag_title">横方向ドラッグ ジェスチャーを有効にする</string>
<string name="revanced_miniplayer_horizontal_drag_title">横方向ドラッグ ジェスチャーを有効</string>
<string name="revanced_miniplayer_horizontal_drag_summary_on">"横方向ドラッグ ジェスチャーは有効です
ミニプレーヤーを画面の左端または右端までドラッグすると最小化できます"</string>
ミニプレーヤーを画面の左端または右端までドラッグすると最小化されます"</string>
<string name="revanced_miniplayer_horizontal_drag_summary_off">横方向ドラッグ ジェスチャーは無効です</string>
<string name="revanced_miniplayer_hide_overlay_buttons_title">オーバーレイ ボタンを非表示</string>
<string name="revanced_miniplayer_hide_overlay_buttons_summary_on">オーバーレイ ボタンは表示されません</string>
@@ -1479,13 +1479,13 @@ Automotive レイアウト
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">再生速度設定ボタンを表示</string>
<string name="revanced_playback_speed_dialog_button_summary_on">ボタンがオーバーレイに表示されます。長押しすると、再生速度がデフォルトの値にリセットされます</string>
<string name="revanced_playback_speed_dialog_button_summary_off">ボタンはオーバーレイに表示されません</string>
<string name="revanced_playback_speed_dialog_button_summary_on">ボタンがプレーヤー オーバーレイに表示されます。長押しすると、再生速度がデフォルトの値にリセットされます</string>
<string name="revanced_playback_speed_dialog_button_summary_off">ボタンはプレーヤー オーバーレイに表示されません</string>
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
<string name="revanced_video_quality_dialog_button_title">画質設定ボタンを表示</string>
<string name="revanced_video_quality_dialog_button_summary_on">ボタンがオーバーレイに表示されます。長押しすると、画質がデフォルトの値にリセットされます</string>
<string name="revanced_video_quality_dialog_button_summary_off">ボタンはオーバーレイに表示されません</string>
<string name="revanced_video_quality_dialog_button_summary_on">ボタンがプレーヤー オーバーレイに表示されます。長押しすると、画質がデフォルトの値にリセットされます</string>
<string name="revanced_video_quality_dialog_button_summary_off">ボタンはプレーヤー オーバーレイに表示されません</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
<string name="revanced_custom_speed_menu_title">カスタム再生速度メニュー</string>

View File

@@ -580,13 +580,13 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_hide_download_button_summary_off">오프라인 저장 버튼이 표시됩니다</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">하입 버튼 숨기기</string>
<string name="revanced_hide_hype_button_summary_on">하이프 버튼이 숨겨집니다</string>
<string name="revanced_hide_hype_button_summary_off">하이프 버튼이 표시됩니다</string>
<string name="revanced_hide_hype_button_title">Hype 버튼 숨기기</string>
<string name="revanced_hide_hype_button_summary_on">Hype 버튼이 숨겨집니다</string>
<string name="revanced_hide_hype_button_summary_off">Hype 버튼이 표시됩니다</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">홍보 버튼 숨기기</string>
<string name="revanced_hide_promote_button_summary_on">홍보 버튼이 숨겨집니다</string>
<string name="revanced_hide_promote_button_summary_off">홍보 버튼이 표시됩니다</string>
<string name="revanced_hide_promote_button_title">프로모션 버튼 숨기기</string>
<string name="revanced_hide_promote_button_summary_on">프로모션 버튼이 숨겨집니다</string>
<string name="revanced_hide_promote_button_summary_off">프로모션 버튼이 표시됩니다</string>
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_thanks_button_title">Thanks 버튼 숨기기</string>
<string name="revanced_hide_thanks_button_summary_on">Thanks 버튼이 숨겨집니다</string>
@@ -1193,7 +1193,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">레이아웃 폼 팩터 변경하기</string>
<string name="revanced_change_form_factor_entry_1">기 기본값 사용</string>
<string name="revanced_change_form_factor_entry_1">본값</string>
<string name="revanced_change_form_factor_entry_2"></string>
<string name="revanced_change_form_factor_entry_3">태블릿</string>
<string name="revanced_change_form_factor_entry_4">오토모티브</string>
@@ -1221,7 +1221,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">앱 시작 페이지 변경하기</string>
<string name="revanced_change_start_page_entry_default">홈 (기본값)</string>
<string name="revanced_change_start_page_entry_default">기본값</string>
<string name="revanced_change_start_page_entry_all_subscriptions">모든 구독 채널</string>
<string name="revanced_change_start_page_entry_browse">채널 둘러보기</string>
<string name="revanced_change_start_page_entry_courses">학습 프로그램</string>
@@ -1276,7 +1276,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_miniplayer_screen_summary">앱 내에서 최소화된 플레이어의 스타일을 변경할 수 있습니다</string>
<string name="revanced_miniplayer_type_title">미니 플레이어 유형</string>
<string name="revanced_miniplayer_type_entry_0">사용 안함</string>
<string name="revanced_miniplayer_type_entry_1">기 기본값 사용</string>
<string name="revanced_miniplayer_type_entry_1">본값</string>
<string name="revanced_miniplayer_type_entry_2">최소화</string>
<string name="revanced_miniplayer_type_entry_3">태블릿</string>
<string name="revanced_miniplayer_type_entry_4">모던 스타일 1</string>

View File

@@ -582,7 +582,7 @@ Reguliuokite garsumą braukdami vertikaliai dešinėje ekrano pusėje"</string>
<string name="revanced_hide_download_button_summary_off">Atsisiuntimo mygtukas rodomas</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Slėpti „Hype“ mygtuką</string>
<string name="revanced_hide_hype_button_title">Slėpti Ažiotažą</string>
<string name="revanced_hide_hype_button_summary_on">„Hype“ mygtukas paslėptas</string>
<string name="revanced_hide_hype_button_summary_off">Haipo mygtukas rodomas</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Regulējiet skaļumu, velkot vertikāli ekrāna labajā pusē"</string>
<string name="revanced_hide_download_button_summary_off">Lejupielādēt poga ir redzama</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Slēpt Hype pogu</string>
<string name="revanced_hide_hype_button_title">Paslēpt ažiotāžu</string>
<string name="revanced_hide_hype_button_summary_on">Poga \</string>
<string name="revanced_hide_hype_button_summary_off">Hype poga tiek rādīta</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Pas het volume aan door verticaal over de rechterkant van het scherm te vegen"</
<string name="revanced_hide_download_button_summary_off">Downloaden knop wordt weergegeven</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Verberg Hype-knop</string>
<string name="revanced_hide_hype_button_title">Verberg Hype</string>
<string name="revanced_hide_hype_button_summary_on">Hype-knop is verborgen</string>
<string name="revanced_hide_hype_button_summary_off">Hype-knop is zichtbaar</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -578,7 +578,7 @@ Dostosuj głośność, przesuwając pionowo po prawej stronie ekranu"</string>
<string name="revanced_hide_download_button_summary_off">Przycisk pobierania jest widoczny</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Ukryj przycisk Hype</string>
<string name="revanced_hide_hype_button_title">Ukryj Hype</string>
<string name="revanced_hide_hype_button_summary_on">Przycisk Hype jest ukryty</string>
<string name="revanced_hide_hype_button_summary_off">Przycisk Hype jest wyświetlony</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Ajuste o volume deslizando verticalmente no lado direito da tela"</string>
<string name="revanced_hide_download_button_summary_off">O botão download é mostrado</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Ocultar botão Hype</string>
<string name="revanced_hide_hype_button_title">Ocultar Hype</string>
<string name="revanced_hide_hype_button_summary_on">Botão Hype está oculto</string>
<string name="revanced_hide_hype_button_summary_off">O botão Hype é exibido</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Ajuste o volume deslizando verticalmente no lado direito da tela"</string>
<string name="revanced_hide_download_button_summary_off">O botão transferir está visível</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Ocultar botão Hype</string>
<string name="revanced_hide_hype_button_title">Ocultar Hype</string>
<string name="revanced_hide_hype_button_summary_on">O botão Hype está oculto</string>
<string name="revanced_hide_hype_button_summary_off">O botão Hype está exibido</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Reglați volumul glisând vertical pe partea dreaptă a ecranului"</string>
<string name="revanced_hide_download_button_summary_off">Butonul Descărcare este afișat</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Ascunde butonul Hype</string>
<string name="revanced_hide_hype_button_title">Ascunde Freamătul</string>
<string name="revanced_hide_hype_button_summary_on">Butonul de Hype este ascuns</string>
<string name="revanced_hide_hype_button_summary_off">Butonul Hype este afișat</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -453,9 +453,9 @@ Second \"item\" text"</string>
<string name="revanced_remove_viewer_discretion_dialog_user_dialog_message">Данная опция не обходит возрастное ограничение. Она только принимает возрастное ограничение автоматически.</string>
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
<string name="revanced_disable_signin_to_tv_popup_title">Отключить всплывающее окно Вход на ТВ</string>
<string name="revanced_disable_signin_to_tv_popup_summary_on">Всплывающее окно Вход на ТВ отключено</string>
<string name="revanced_disable_signin_to_tv_popup_summary_off">Всплывающее окно Вход на ТВ включено</string>
<string name="revanced_disable_signin_to_tv_popup_title">Отключить всплывающее окно \"Вход на ТВ\"</string>
<string name="revanced_disable_signin_to_tv_popup_summary_on">Всплывающее окно \"Вход на ТВ\" отключено</string>
<string name="revanced_disable_signin_to_tv_popup_summary_off">Всплывающее окно \"Вход на ТВ\" включено</string>
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
<string name="revanced_disable_chapter_skip_double_tap_title">Отключить пропуск главы по двойному касанию</string>
@@ -582,13 +582,13 @@ Second \"item\" text"</string>
<string name="revanced_hide_download_button_summary_off">Кнопка \"Скачать\" под плеером показана</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Скрыть кнопку «Хайп»</string>
<string name="revanced_hide_hype_button_summary_on">Кнопка Hype скрыта</string>
<string name="revanced_hide_hype_button_summary_off">Кнопка хайпа показана</string>
<string name="revanced_hide_hype_button_title">Скрыть кнопку \"Хайп\"</string>
<string name="revanced_hide_hype_button_summary_on">Кнопка \"Хайп\" скрыта</string>
<string name="revanced_hide_hype_button_summary_off">Кнопка \"Хайп\" показана</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">Скрыть кнопку \</string>
<string name="revanced_hide_promote_button_summary_on">Кнопка \"Продвигать\" скрыта</string>
<string name="revanced_hide_promote_button_summary_off">Кнопка \"Продвигать\" показана</string>
<string name="revanced_hide_promote_button_title">Скрыть кнопку \"Рекламировать\"</string>
<string name="revanced_hide_promote_button_summary_on">Кнопка \"Рекламировать\" скрыта</string>
<string name="revanced_hide_promote_button_summary_off">Кнопка \"Рекламировать\" показана</string>
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_thanks_button_title">Скрыть кнопку \"Спасибо\"</string>
<string name="revanced_hide_thanks_button_summary_on">Кнопка \"Спасибо\" под плеером скрыта</string>

View File

@@ -580,7 +580,7 @@ Upravte hlasitosť posúvaním vertikálne na pravej strane obrazovky"</string>
<string name="revanced_hide_download_button_summary_off">Zobrazí sa tlačidlo Stiahnuť</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Skryť tlačidlo Hype</string>
<string name="revanced_hide_hype_button_title">Skryť Hype</string>
<string name="revanced_hide_hype_button_summary_on">Tlačidlo Hype je skryté</string>
<string name="revanced_hide_hype_button_summary_off">Tlačidlo Hype je zobrazené</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Prilagodite glasnost s potegom navpično na desni strani zaslona"</string>
<string name="revanced_hide_download_button_summary_off">Gumb Prenesi je prikazan</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Skrij gumb Hype</string>
<string name="revanced_hide_hype_button_title">Skrij Hype</string>
<string name="revanced_hide_hype_button_summary_on">Gumb Hype je skrit</string>
<string name="revanced_hide_hype_button_summary_off">Gumb Hype je prikazan</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Përshtate shkëlqimin duke rrëshqitur vertikalisht në anën e majtë të ekra
<string name="revanced_hide_download_button_summary_off">Butoni \"Shkarko\" është i dukshëm</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Fshih butonin Hype</string>
<string name="revanced_hide_hype_button_title">Fsheh Zhurmën</string>
<string name="revanced_hide_hype_button_summary_on">Butoni Hype është i fshehur</string>
<string name="revanced_hide_hype_button_summary_off">Butoni Hype është i shfaqur</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -453,9 +453,9 @@ Ova funkcija je dostupna samo za starije uređaje"</string>
<string name="revanced_remove_viewer_discretion_dialog_user_dialog_message">Ovo ne zaobilazi starosno ograničenje. Samo ga automatski prihvata.</string>
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
<string name="revanced_disable_signin_to_tv_popup_title">Onemogući iskačući prozor za prijavu na TV</string>
<string name="revanced_disable_signin_to_tv_popup_summary_on">Iskačući prozor za prijavu na TV je onemogućen</string>
<string name="revanced_disable_signin_to_tv_popup_summary_off">Iskačući prozor za prijavu na TV je omogućen</string>
<string name="revanced_disable_signin_to_tv_popup_title">Onemogući iskačući prozor „Prijava na TV</string>
<string name="revanced_disable_signin_to_tv_popup_summary_on">Iskačući prozor „Prijava na TV je onemogućen</string>
<string name="revanced_disable_signin_to_tv_popup_summary_off">Iskačući prozor „Prijava na TV je omogućen</string>
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
<string name="revanced_disable_chapter_skip_double_tap_title">Onemogući preskakanje poglavlja dvostrukim dodirom</string>
@@ -584,9 +584,9 @@ Podesite jačinu zvuka prevlačenjem vertikalno na desnoj strani ekrana"</string
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Sakrij dugme „Hajp”</string>
<string name="revanced_hide_hype_button_summary_on">Dugme „Hajp” je skriveno</string>
<string name="revanced_hide_hype_button_summary_off">Dugme „Haip” je prikazano</string>
<string name="revanced_hide_hype_button_summary_off">Dugme „Hajp” je prikazano</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">Sakrij Promoviši</string>
<string name="revanced_hide_promote_button_title">Sakrij dugme „Promoviši</string>
<string name="revanced_hide_promote_button_summary_on">Dugme „Promoviši” je skriveno</string>
<string name="revanced_hide_promote_button_summary_off">Dugme „Promoviši” je prikazano</string>
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -453,9 +453,9 @@ Second \"item\" text"</string>
<string name="revanced_remove_viewer_discretion_dialog_user_dialog_message">Ово не заобилази старосно ограничење. Само га аутоматски прихвата.</string>
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
<string name="revanced_disable_signin_to_tv_popup_title">Онемогући искачући прозор за пријављивање на ТВ</string>
<string name="revanced_disable_signin_to_tv_popup_summary_on">Искачући прозор за пријављивање на ТВ је онемогућен</string>
<string name="revanced_disable_signin_to_tv_popup_summary_off">Искачући прозор за пријављивање на ТВ је омогућен</string>
<string name="revanced_disable_signin_to_tv_popup_title">Онемогући искачући прозор „Пријава на ТВ</string>
<string name="revanced_disable_signin_to_tv_popup_summary_on">Искачући прозор „Пријава на ТВ је онемогућен</string>
<string name="revanced_disable_signin_to_tv_popup_summary_off">Искачући прозор „Пријава на ТВ је омогућен</string>
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
<string name="revanced_disable_chapter_skip_double_tap_title">Онемогући прескакање поглавља двоструким додиром</string>
@@ -586,7 +586,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_hype_button_summary_on">Дугме „Хајп” је скривено</string>
<string name="revanced_hide_hype_button_summary_off">Дугме „Хајп” је приказано</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">Сакриј промоцију</string>
<string name="revanced_hide_promote_button_title">Сакриј дугме „Промовиши”</string>
<string name="revanced_hide_promote_button_summary_on">Дугме „Промовиши” је скривено</string>
<string name="revanced_hide_promote_button_summary_off">Дугме „Промовиши” је приказано</string>
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Justera volymen genom att svepa vertikalt till höger på skärmen"</string>
<string name="revanced_hide_download_button_summary_off">Knappen Ladda ned visas</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Dölj knappen Hype</string>
<string name="revanced_hide_hype_button_title">Dölj Hajp</string>
<string name="revanced_hide_hype_button_summary_on">Hype-knappen är dold</string>
<string name="revanced_hide_hype_button_summary_off">Knappen Hype visas</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -580,7 +580,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_download_button_summary_off">ปุ่มดาวน์โหลดถูกแสดง</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">ซ่อนปุ่ม Hype</string>
<string name="revanced_hide_hype_button_title">ซ่อนกระแส</string>
<string name="revanced_hide_hype_button_summary_on">ปุ่ม Hype ถูกซ่อนอยู่</string>
<string name="revanced_hide_hype_button_summary_off">ปุ่ม Hype กำลังแสดง</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -582,7 +582,7 @@ Ekranın sağ tarafında dikey olarak kaydırarak sesi ayarlayın"</string>
<string name="revanced_hide_download_button_summary_off">İndir düğmesi görünür</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Hype düğmesini gizle</string>
<string name="revanced_hide_hype_button_title">Abartıyı Gizle</string>
<string name="revanced_hide_hype_button_summary_on">Coşku düğmesi gizli</string>
<string name="revanced_hide_hype_button_summary_off">Hype düğmesi görünür</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -238,12 +238,12 @@ Nếu cài đặt này được bật và Doodle đang hiển thị tại khu v
<string name="revanced_hide_medical_panels_title">Ẩn bảng thông tin y tế</string>
<string name="revanced_hide_medical_panels_summary_on">Bảng thông tin y tế đã bị ẩn</string>
<string name="revanced_hide_medical_panels_summary_off">Bảng thông tin y tế được hiển thị</string>
<string name="revanced_hide_quick_actions_title">Ẩn tác vụ nhanh</string>
<string name="revanced_hide_quick_actions_summary_on">Các tác vụ nhanh ở chế độ toàn màn hình đã bị ẩn</string>
<string name="revanced_hide_quick_actions_summary_off">Các tác vụ nhanh ở chế độ toàn màn hình được hiển thị</string>
<string name="revanced_hide_quick_actions_title">Ẩn bảng thao tác nhanh</string>
<string name="revanced_hide_quick_actions_summary_on">Bảng thao tác nhanh ở chế độ toàn màn hình đã bị ẩn</string>
<string name="revanced_hide_quick_actions_summary_off">Bảng thao tác nhanh ở chế độ toàn màn hình được hiển thị</string>
<string name="revanced_hide_related_videos_title">Ẩn video liên quan</string>
<string name="revanced_hide_related_videos_summary_on">Video liên quan trong tác vụ nhanh đã bị ẩn</string>
<string name="revanced_hide_related_videos_summary_off">Video liên quan trong tác vụ nhanh được hiển thị</string>
<string name="revanced_hide_related_videos_summary_on">Video liên quan trong bảng thao tác nhanh đã bị ẩn</string>
<string name="revanced_hide_related_videos_summary_off">Video liên quan trong bảng thao tác nhanh được hiển thị</string>
<string name="revanced_hide_subscribers_community_guidelines_title">Ẩn nguyên tắc cộng đồng cho người đăng ký</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_on">Nguyên tắc cộng đồng cho người đăng ký đã bị ẩn</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_off">Nguyên tắc cộng đồng dành cho người đăng ký được hiển thị</string>
@@ -551,7 +551,7 @@ Vui lòng kiểm tra lại tên gói và đảm bảo ứng dụng đã được
<string name="revanced_disable_auto_captions_summary_off">Phụ đề tự động đã bật</string>
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Nút tác vụ</string>
<string name="revanced_hide_buttons_screen_title">Nút thao tác</string>
<string name="revanced_hide_buttons_screen_summary">Ẩn hoặc hiển thị các nút bên dưới video</string>
<string name="revanced_disable_like_subscribe_glow_title">Tắt hiệu ứng phát sáng nút Thích và Đăng ký</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Nút Thích và Đăng ký sẽ không phát sáng khi được tương tác</string>
@@ -582,9 +582,9 @@ Vui lòng kiểm tra lại tên gói và đảm bảo ứng dụng đã được
<string name="revanced_hide_download_button_summary_off">Nút tải xuống được hiển thị</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Ẩn nút Khuấy động</string>
<string name="revanced_hide_hype_button_summary_on">Nút Khuấy động đã bị ẩn</string>
<string name="revanced_hide_hype_button_summary_off">Nút Khuấy động được hiển thị</string>
<string name="revanced_hide_hype_button_title">Ẩn Khuấy động</string>
<string name="revanced_hide_hype_button_summary_on">Nút khuấy động đã bị ẩn</string>
<string name="revanced_hide_hype_button_summary_off">Nút khuấy động được hiển thị</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">Ẩn Quảng bá</string>
<string name="revanced_hide_promote_button_summary_on">Nút Quảng bá đã bị ẩn</string>

View File

@@ -582,7 +582,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_download_button_summary_off">下载按钮已显示</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">隐藏超级留言按钮</string>
<string name="revanced_hide_hype_button_title">隐藏热度</string>
<string name="revanced_hide_hype_button_summary_on">浮夸按钮已隐藏</string>
<string name="revanced_hide_hype_button_summary_off">热度按钮已显示</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -645,7 +645,7 @@ Adjust volume by swiping vertically on the right side of the screen"</string>
<string name="revanced_hide_download_button_summary_off">Download button is shown</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Hide Hype button</string>
<string name="revanced_hide_hype_button_title">Hide Hype</string>
<string name="revanced_hide_hype_button_summary_on">Hype button is hidden</string>
<string name="revanced_hide_hype_button_summary_off">Hype button is shown</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->

View File

@@ -18,14 +18,6 @@
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
<View
android:id="@+id/revanced_copy_video_url_button_placeholder"
android:layout_width="48.0dip"
android:layout_height="60.0dip"
android:visibility="gone"
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
<com.google.android.libraries.youtube.common.ui.TouchImageView
android:id="@+id/revanced_copy_video_url_timestamp_button"
style="@style/YouTubePlayerButton"
@@ -37,12 +29,4 @@
android:src="@drawable/revanced_yt_copy_timestamp"
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
<View
android:id="@+id/revanced_copy_video_url_timestamp_button_placeholder"
android:layout_width="48.0dip"
android:layout_height="60.0dip"
android:visibility="gone"
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
</android.support.constraint.ConstraintLayout>

View File

@@ -18,12 +18,4 @@
android:src="@drawable/revanced_yt_download_button"
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
<View
android:id="@+id/revanced_external_download_button_placeholder"
android:layout_width="48.0dip"
android:layout_height="60.0dip"
android:visibility="gone"
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
</android.support.constraint.ConstraintLayout>

View File

@@ -33,11 +33,5 @@
android:paddingTop="5.5dp"
android:textColor="@android:color/white"
android:textSize="10dp" />
<View
android:id="@+id/revanced_video_quality_dialog_button_placeholder"
android:layout_width="48.0dip"
android:layout_height="60.0dip"
android:visibility="gone" />
</FrameLayout>
</android.support.constraint.ConstraintLayout>

View File

@@ -33,11 +33,5 @@
android:paddingTop="5.5dp"
android:textColor="@android:color/white"
android:textSize="10dp" />
<View
android:id="@+id/revanced_playback_speed_dialog_button_placeholder"
android:layout_width="48.0dip"
android:layout_height="60.0dip"
android:visibility="gone" />
</FrameLayout>
</android.support.constraint.ConstraintLayout>