mirror of
https://github.com/revanced/revanced-patches.git
synced 2025-12-26 10:54:07 +01:00
Compare commits
7 Commits
v5.8.0-dev
...
v5.8.0-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3db5651e5c | ||
|
|
f3c4d6fd64 | ||
|
|
29dbc9ffbf | ||
|
|
fa4aa54f0c | ||
|
|
1d89ada07f | ||
|
|
8c529abad5 | ||
|
|
4ade7c7329 |
2
.github/workflows/pull_strings.yml
vendored
2
.github/workflows/pull_strings.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: dev
|
||||
ref: feat/translations
|
||||
|
||||
- name: Pull strings
|
||||
uses: crowdin/github-action@v2
|
||||
|
||||
13
CHANGELOG.md
13
CHANGELOG.md
@@ -1,3 +1,16 @@
|
||||
# [5.8.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.3...v5.8.0-dev.4) (2024-12-27)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **GmsCore support:** Do not show battery optimization error on Android Automotive devices (Google built-in) ([#4218](https://github.com/ReVanced/revanced-patches/issues/4218)) ([d6e389c](https://github.com/ReVanced/revanced-patches/commit/d6e389cc43bc40724f032b230f70048276349a19))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **Swipe controls:** Add option to enable/disable fullscreen swipe to next video ([#4222](https://github.com/ReVanced/revanced-patches/issues/4222)) ([119092f](https://github.com/ReVanced/revanced-patches/commit/119092fafa4129849246df15fe8076ed3b491b85))
|
||||
* **YouTube:** Add `Exit fullscreen mode` patch ([#4223](https://github.com/ReVanced/revanced-patches/issues/4223)) ([bb5d03b](https://github.com/ReVanced/revanced-patches/commit/bb5d03bd89a3f932c77e4e9de90174c374933688))
|
||||
|
||||
# [5.8.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.2...v5.8.0-dev.3) (2024-12-26)
|
||||
|
||||
|
||||
|
||||
@@ -106,7 +106,11 @@ public class GmsCoreSupport {
|
||||
}
|
||||
|
||||
// Check if GmsCore is whitelisted from battery optimizations.
|
||||
if (batteryOptimizationsEnabled(context)) {
|
||||
if (isAndroidAutomotive(context)) {
|
||||
// Ignore Android Automotive devices (Google built-in),
|
||||
// as there is no way to disable battery optimizations.
|
||||
Logger.printDebug(() -> "Device is Android Automotive");
|
||||
} else if (batteryOptimizationsEnabled(context)) {
|
||||
Logger.printInfo(() -> "GmsCore is not whitelisted from battery optimizations");
|
||||
|
||||
showBatteryOptimizationDialog(context,
|
||||
@@ -147,6 +151,10 @@ public class GmsCoreSupport {
|
||||
return !powerManager.isIgnoringBatteryOptimizations(GMS_CORE_PACKAGE_NAME);
|
||||
}
|
||||
|
||||
private static boolean isAndroidAutomotive(Context context) {
|
||||
return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
|
||||
}
|
||||
|
||||
private static String getGmsCoreDownload() {
|
||||
final var vendorGroupId = getGmsCoreVendorGroupId();
|
||||
//noinspection SwitchStatementWithTooFewBranches
|
||||
|
||||
@@ -523,6 +523,11 @@ public class Utils {
|
||||
return currentNightMode == Configuration.UI_MODE_NIGHT_YES;
|
||||
}
|
||||
|
||||
public static boolean isLandscapeOrientation() {
|
||||
final int orientation = context.getResources().getConfiguration().orientation;
|
||||
return orientation == Configuration.ORIENTATION_LANDSCAPE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Automatically logs any exceptions the runnable throws.
|
||||
*
|
||||
@@ -595,7 +600,7 @@ public class Utils {
|
||||
|| networkType == NetworkType.OTHER;
|
||||
}
|
||||
|
||||
@SuppressLint("MissingPermission") // permission already included in YouTube
|
||||
@SuppressLint({"MissingPermission", "deprecation"}) // Permission already included in YouTube.
|
||||
public static NetworkType getNetworkType() {
|
||||
Context networkContext = getContext();
|
||||
if (networkContext == null) {
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package app.revanced.extension.youtube.patches;
|
||||
|
||||
import android.widget.ImageView;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.youtube.settings.Settings;
|
||||
import app.revanced.extension.youtube.shared.PlayerType;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class ExitFullscreenPatch {
|
||||
|
||||
public enum FullscreenMode {
|
||||
DISABLED,
|
||||
PORTRAIT,
|
||||
LANDSCAPE,
|
||||
PORTRAIT_LANDSCAPE,
|
||||
}
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
public static void endOfVideoReached() {
|
||||
try {
|
||||
FullscreenMode mode = Settings.EXIT_FULLSCREEN.get();
|
||||
if (mode == FullscreenMode.DISABLED) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (PlayerType.getCurrent() == PlayerType.WATCH_WHILE_FULLSCREEN) {
|
||||
if (Utils.isLandscapeOrientation()) {
|
||||
if (mode == FullscreenMode.PORTRAIT) {
|
||||
return;
|
||||
}
|
||||
} else if (mode == FullscreenMode.LANDSCAPE) {
|
||||
return;
|
||||
}
|
||||
|
||||
ImageView fullscreenButton = PlayerControlsPatch.fullscreenButtonRef.get();
|
||||
if (fullscreenButton != null) {
|
||||
Logger.printDebug(() -> "Clicking fullscreen button");
|
||||
fullscreenButton.performClick();
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Logger.printException(() -> "endOfVideoReached failure", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,15 +4,29 @@ import android.view.View;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class PlayerControlsPatch {
|
||||
|
||||
public static WeakReference<ImageView> fullscreenButtonRef = new WeakReference<>(null);
|
||||
|
||||
private static boolean fullscreenButtonVisibilityCallbacksExist() {
|
||||
return false; // Modified during patching if needed.
|
||||
}
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
public static void setFullscreenCloseButton(ImageView imageButton) {
|
||||
fullscreenButtonRef = new WeakReference<>(imageButton);
|
||||
|
||||
if (!fullscreenButtonVisibilityCallbacksExist()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Add a global listener, since the protected method
|
||||
// View#onVisibilityChanged() does not have any call backs.
|
||||
imageButton.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||
@@ -39,7 +53,7 @@ public class PlayerControlsPatch {
|
||||
}
|
||||
|
||||
// noinspection EmptyMethod
|
||||
public static void fullscreenButtonVisibilityChanged(boolean isVisible) {
|
||||
private static void fullscreenButtonVisibilityChanged(boolean isVisible) {
|
||||
// Code added during patching.
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import static app.revanced.extension.shared.settings.Setting.migrateOldSettingTo
|
||||
import static app.revanced.extension.shared.settings.Setting.parent;
|
||||
import static app.revanced.extension.shared.settings.Setting.parentsAny;
|
||||
import static app.revanced.extension.youtube.patches.ChangeStartPagePatch.StartPage;
|
||||
import static app.revanced.extension.youtube.patches.ExitFullscreenPatch.FullscreenMode;
|
||||
import static app.revanced.extension.youtube.patches.ForceOriginalAudioPatch.ForceOriginalAudioAvailability;
|
||||
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerHideExpandCloseAvailability;
|
||||
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerHorizontalDragAvailability;
|
||||
@@ -120,6 +121,7 @@ public class Settings extends BaseSettings {
|
||||
public static final BooleanSetting DISABLE_LIKE_SUBSCRIBE_GLOW = new BooleanSetting("revanced_disable_like_subscribe_glow", FALSE);
|
||||
public static final BooleanSetting DISABLE_ROLLING_NUMBER_ANIMATIONS = new BooleanSetting("revanced_disable_rolling_number_animations", FALSE);
|
||||
public static final BooleanSetting DISABLE_SUGGESTED_VIDEO_END_SCREEN = new BooleanSetting("revanced_disable_suggested_video_end_screen", FALSE, true);
|
||||
public static final EnumSetting<FullscreenMode> EXIT_FULLSCREEN = new EnumSetting<>("revanced_exit_fullscreen", FullscreenMode.DISABLED);
|
||||
public static final BooleanSetting HIDE_AUTOPLAY_BUTTON = new BooleanSetting("revanced_hide_autoplay_button", TRUE, true);
|
||||
public static final BooleanSetting HIDE_CAPTIONS_BUTTON = new BooleanSetting("revanced_hide_captions_button", FALSE);
|
||||
public static final BooleanSetting HIDE_CAST_BUTTON = new BooleanSetting("revanced_hide_cast_button", TRUE, true);
|
||||
@@ -139,10 +141,10 @@ public class Settings extends BaseSettings {
|
||||
public static final BooleanSetting HIDE_SUBSCRIBERS_COMMUNITY_GUIDELINES = new BooleanSetting("revanced_hide_subscribers_community_guidelines", TRUE);
|
||||
public static final BooleanSetting HIDE_TIMED_REACTIONS = new BooleanSetting("revanced_hide_timed_reactions", TRUE);
|
||||
public static final BooleanSetting HIDE_VIDEO_CHANNEL_WATERMARK = new BooleanSetting("revanced_hide_channel_watermark", TRUE);
|
||||
public static final BooleanSetting PLAYBACK_SPEED_DIALOG_BUTTON = new BooleanSetting("revanced_playback_speed_dialog_button", FALSE);
|
||||
public static final BooleanSetting PLAYER_POPUP_PANELS = new BooleanSetting("revanced_hide_player_popup_panels", FALSE);
|
||||
public static final IntegerSetting PLAYER_OVERLAY_OPACITY = new IntegerSetting("revanced_player_overlay_opacity", 100, true);
|
||||
public static final BooleanSetting OPEN_VIDEOS_FULLSCREEN_PORTRAIT = new BooleanSetting("revanced_open_videos_fullscreen_portrait", FALSE);
|
||||
public static final BooleanSetting PLAYBACK_SPEED_DIALOG_BUTTON = new BooleanSetting("revanced_playback_speed_dialog_button", FALSE);
|
||||
public static final IntegerSetting PLAYER_OVERLAY_OPACITY = new IntegerSetting("revanced_player_overlay_opacity", 100, true);
|
||||
public static final BooleanSetting PLAYER_POPUP_PANELS = new BooleanSetting("revanced_hide_player_popup_panels", FALSE);
|
||||
// Miniplayer
|
||||
public static final EnumSetting<MiniplayerType> MINIPLAYER_TYPE = new EnumSetting<>("revanced_miniplayer_type", MiniplayerType.DEFAULT, true);
|
||||
private static final Availability MINIPLAYER_ANY_MODERN = MINIPLAYER_TYPE.availability(MODERN_1, MODERN_2, MODERN_3, MODERN_4);
|
||||
@@ -294,8 +296,9 @@ public class Settings extends BaseSettings {
|
||||
public static final BooleanSetting DEBUG_PROTOBUFFER = new BooleanSetting("revanced_debug_protobuffer", FALSE, parent(BaseSettings.DEBUG));
|
||||
|
||||
// Swipe controls
|
||||
public static final BooleanSetting SWIPE_BRIGHTNESS = new BooleanSetting("revanced_swipe_brightness", TRUE);
|
||||
public static final BooleanSetting SWIPE_VOLUME = new BooleanSetting("revanced_swipe_volume", TRUE);
|
||||
public static final BooleanSetting SWIPE_CHANGE_VIDEO = new BooleanSetting("revanced_swipe_change_video", FALSE, true);
|
||||
public static final BooleanSetting SWIPE_BRIGHTNESS = new BooleanSetting("revanced_swipe_brightness", FALSE);
|
||||
public static final BooleanSetting SWIPE_VOLUME = new BooleanSetting("revanced_swipe_volume", FALSE);
|
||||
public static final BooleanSetting SWIPE_PRESS_TO_ENGAGE = new BooleanSetting("revanced_swipe_press_to_engage", FALSE, true,
|
||||
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
|
||||
public static final BooleanSetting SWIPE_HAPTIC_FEEDBACK = new BooleanSetting("revanced_swipe_haptic_feedback", TRUE, true,
|
||||
|
||||
@@ -73,7 +73,7 @@ enum class PlayerType {
|
||||
onChange(currentPlayerType)
|
||||
}
|
||||
|
||||
@Volatile // value is read/write from different threads
|
||||
@Volatile // Read/write from different threads.
|
||||
private var currentPlayerType = NONE
|
||||
|
||||
/**
|
||||
|
||||
@@ -46,6 +46,7 @@ enum class VideoState {
|
||||
currentVideoState = value
|
||||
}
|
||||
|
||||
@Volatile // Read/write from different threads.
|
||||
private var currentVideoState: VideoState? = null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.view.MotionEvent
|
||||
import android.view.ViewGroup
|
||||
import app.revanced.extension.shared.Logger.printDebug
|
||||
import app.revanced.extension.shared.Logger.printException
|
||||
import app.revanced.extension.youtube.settings.Settings
|
||||
import app.revanced.extension.youtube.shared.PlayerType
|
||||
import app.revanced.extension.youtube.swipecontrols.controller.AudioVolumeController
|
||||
import app.revanced.extension.youtube.swipecontrols.controller.ScreenBrightnessController
|
||||
@@ -232,5 +233,12 @@ class SwipeControlsHostActivity : Activity() {
|
||||
@JvmStatic
|
||||
var currentHost: WeakReference<SwipeControlsHostActivity> = WeakReference(null)
|
||||
private set
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
@Suppress("unused")
|
||||
@JvmStatic
|
||||
fun allowSwipeChangeVideo(original: Boolean): Boolean = Settings.SWIPE_CHANGE_VIDEO.get()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
|
||||
org.gradle.parallel = true
|
||||
android.useAndroidX = true
|
||||
kotlin.code.style = official
|
||||
version = 5.8.0-dev.3
|
||||
version = 5.8.0-dev.4
|
||||
|
||||
@@ -461,10 +461,6 @@ public final class app/revanced/patches/reddit/customclients/joeyforreddit/detec
|
||||
public static final fun getDisablePiracyDetectionPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/reddit/customclients/redditisfun/api/FingerprintsKt {
|
||||
public static final fun baseClientIdFingerprint (Ljava/lang/String;)Lapp/revanced/patcher/Fingerprint;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/reddit/customclients/redditisfun/api/SpoofClientPatchKt {
|
||||
public static final fun getSpoofClientPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
@@ -548,7 +544,6 @@ public final class app/revanced/patches/shared/misc/checks/BaseCheckEnvironmentP
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/shared/misc/extension/ExtensionHook {
|
||||
public final fun getFingerprint ()Lapp/revanced/patcher/Fingerprint;
|
||||
public final fun invoke (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/String;)V
|
||||
}
|
||||
|
||||
@@ -1268,10 +1263,6 @@ public final class app/revanced/patches/youtube/misc/backgroundplayback/Backgrou
|
||||
public static final fun getBackgroundPlaybackPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/youtube/misc/check/CheckEnvironmentPatchKt {
|
||||
public static final fun getCheckEnvironmentPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/youtube/misc/debugging/EnableDebuggingPatchKt {
|
||||
public static final fun getEnableDebuggingPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
@@ -1408,10 +1399,6 @@ public final class app/revanced/patches/youtube/misc/zoomhaptics/ZoomHapticsPatc
|
||||
public static final fun getZoomHapticsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/youtube/shared/FingerprintsKt {
|
||||
public static final fun getRollingNumberTextViewAnimationUpdateFingerprint ()Lapp/revanced/patcher/Fingerprint;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/youtube/video/audio/ForceOriginalAudioPatchKt {
|
||||
public static final fun getForceOriginalAudioPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
fun baseClientIdFingerprint(string: String) = fingerprint {
|
||||
internal fun baseClientIdFingerprint(string: String) = fingerprint {
|
||||
strings("yyOCBp.RHJhDKd", string)
|
||||
}
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ fun sharedExtensionPatch(
|
||||
}
|
||||
|
||||
class ExtensionHook internal constructor(
|
||||
val fingerprint: Fingerprint,
|
||||
private val fingerprint: Fingerprint,
|
||||
private val insertIndexResolver: ((Method) -> Int),
|
||||
private val contextRegisterResolver: (Method) -> String,
|
||||
) {
|
||||
|
||||
@@ -1,12 +1,23 @@
|
||||
package app.revanced.patches.youtube.interaction.swipecontrols
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
import app.revanced.util.literal
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal val swipeControlsHostActivityFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
|
||||
parameters()
|
||||
custom { method, _ ->
|
||||
method.definingClass == "Lapp/revanced/extension/youtube/swipecontrols/SwipeControlsHostActivity;"
|
||||
method.definingClass == EXTENSION_CLASS_DESCRIPTOR
|
||||
}
|
||||
}
|
||||
|
||||
internal const val SWIPE_CHANGE_VIDEO_FEATURE_FLAG = 45631116L
|
||||
|
||||
internal val swipeChangeVideoFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
|
||||
parameters("L")
|
||||
literal {
|
||||
SWIPE_CHANGE_VIDEO_FEATURE_FLAG
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,8 @@ import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
|
||||
import app.revanced.patches.shared.misc.settings.preference.TextPreference
|
||||
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
|
||||
import app.revanced.patches.youtube.misc.playertype.playerTypeHookPatch
|
||||
import app.revanced.patches.youtube.misc.playservice.is_19_23_or_greater
|
||||
import app.revanced.patches.youtube.misc.playservice.is_19_25_or_greater
|
||||
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
|
||||
import app.revanced.patches.youtube.misc.settings.settingsPatch
|
||||
import app.revanced.patches.youtube.shared.mainActivityFingerprint
|
||||
@@ -17,6 +19,8 @@ import app.revanced.util.*
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.immutable.ImmutableMethod
|
||||
|
||||
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/swipecontrols/SwipeControlsHostActivity;"
|
||||
|
||||
private val swipeControlsResourcePatch = resourcePatch {
|
||||
dependsOn(
|
||||
settingsPatch,
|
||||
@@ -26,6 +30,12 @@ private val swipeControlsResourcePatch = resourcePatch {
|
||||
execute {
|
||||
addResources("youtube", "interaction.swipecontrols.swipeControlsResourcePatch")
|
||||
|
||||
if (is_19_25_or_greater) {
|
||||
PreferenceScreen.SWIPE_CONTROLS.addPreferences(
|
||||
SwitchPreference("revanced_swipe_change_video")
|
||||
)
|
||||
}
|
||||
|
||||
PreferenceScreen.SWIPE_CONTROLS.addPreferences(
|
||||
SwitchPreference("revanced_swipe_brightness"),
|
||||
SwitchPreference("revanced_swipe_volume"),
|
||||
@@ -101,5 +111,16 @@ val swipeControlsPatch = bytecodePatch(
|
||||
).toMutable()
|
||||
}
|
||||
}
|
||||
|
||||
// region patch to enable/disable swipe to change video.
|
||||
|
||||
if (is_19_23_or_greater) {
|
||||
swipeChangeVideoFingerprint.method.insertFeatureFlagBooleanOverride(
|
||||
SWIPE_CHANGE_VIDEO_FEATURE_FLAG,
|
||||
"$EXTENSION_CLASS_DESCRIPTOR->allowSwipeChangeVideo(Z)Z"
|
||||
)
|
||||
}
|
||||
|
||||
// endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
package app.revanced.patches.youtube.layout.player.fullscreen
|
||||
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
|
||||
import app.revanced.patcher.patch.bytecodePatch
|
||||
import app.revanced.patches.all.misc.resources.addResources
|
||||
import app.revanced.patches.all.misc.resources.addResourcesPatch
|
||||
import app.revanced.patches.shared.misc.settings.preference.ListPreference
|
||||
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
|
||||
import app.revanced.patches.youtube.misc.playercontrols.playerControlsPatch
|
||||
import app.revanced.patches.youtube.misc.playertype.playerTypeHookPatch
|
||||
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
|
||||
import app.revanced.patches.youtube.misc.settings.settingsPatch
|
||||
import app.revanced.patches.youtube.shared.autoRepeatFingerprint
|
||||
import app.revanced.patches.youtube.shared.autoRepeatParentFingerprint
|
||||
|
||||
@Suppress("unused")
|
||||
internal val exitFullscreenPatch = bytecodePatch(
|
||||
name = "Exit fullscreen mode",
|
||||
description = "Adds options to automatically exit fullscreen mode when a video reaches the end."
|
||||
) {
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
"19.43.41",
|
||||
"19.45.38",
|
||||
"19.46.42",
|
||||
"19.47.53",
|
||||
)
|
||||
)
|
||||
|
||||
dependsOn(
|
||||
sharedExtensionPatch,
|
||||
settingsPatch,
|
||||
addResourcesPatch,
|
||||
playerTypeHookPatch,
|
||||
playerControlsPatch
|
||||
)
|
||||
|
||||
// Cannot declare as top level since this patch is in the same package as
|
||||
// other patches that declare same constant name with internal visibility.
|
||||
@Suppress("LocalVariableName")
|
||||
val EXTENSION_CLASS_DESCRIPTOR =
|
||||
"Lapp/revanced/extension/youtube/patches/ExitFullscreenPatch;"
|
||||
|
||||
execute {
|
||||
addResources("youtube", "layout.player.fullscreen.exitFullscreenPatch")
|
||||
|
||||
PreferenceScreen.PLAYER.addPreferences(
|
||||
ListPreference(
|
||||
"revanced_exit_fullscreen",
|
||||
summaryKey = null,
|
||||
)
|
||||
)
|
||||
|
||||
autoRepeatFingerprint.match(autoRepeatParentFingerprint.originalClassDef).method.addInstruction(
|
||||
0,
|
||||
"invoke-static {}, $EXTENSION_CLASS_DESCRIPTOR->endOfVideoReached()V",
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patches.shared.misc.checks.checkEnvironmentPatch
|
||||
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
|
||||
import app.revanced.patches.youtube.shared.mainActivityOnCreateFingerprint
|
||||
|
||||
val checkEnvironmentPatch = checkEnvironmentPatch(
|
||||
internal val checkEnvironmentPatch = checkEnvironmentPatch(
|
||||
mainActivityOnCreateFingerprint = mainActivityOnCreateFingerprint,
|
||||
extensionPatch = sharedExtensionPatch,
|
||||
"com.google.android.youtube",
|
||||
|
||||
@@ -12,13 +12,23 @@ internal val playerTopControlsInflateFingerprint = fingerprint {
|
||||
literal { controlsLayoutStub }
|
||||
}
|
||||
|
||||
internal val playerControlsExtensionHookListenersExistFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC)
|
||||
returns("Z")
|
||||
parameters()
|
||||
custom { methodDef, classDef ->
|
||||
methodDef.name == "fullscreenButtonVisibilityCallbacksExist" &&
|
||||
classDef.type == EXTENSION_CLASS_DESCRIPTOR
|
||||
}
|
||||
}
|
||||
|
||||
internal val playerControlsExtensionHookFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
|
||||
accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC)
|
||||
returns("V")
|
||||
parameters("Z")
|
||||
custom { methodDef, classDef ->
|
||||
methodDef.name == "fullscreenButtonVisibilityChanged" &&
|
||||
classDef.type == "Lapp/revanced/extension/youtube/patches/PlayerControlsPatch;"
|
||||
classDef.type == EXTENSION_CLASS_DESCRIPTOR
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -189,13 +189,18 @@ fun injectVisibilityCheckCall(descriptor: String) {
|
||||
"invoke-static { p1 , p2 }, $descriptor->changeVisibility(ZZ)V",
|
||||
)
|
||||
|
||||
if (!visibilityImmediateCallbacksExistModified) {
|
||||
visibilityImmediateCallbacksExistModified = true
|
||||
visibilityImmediateCallbacksExistMethod.returnEarly(true)
|
||||
}
|
||||
|
||||
visibilityImmediateMethod.addInstruction(
|
||||
visibilityImmediateInsertIndex++,
|
||||
"invoke-static { p0 }, $descriptor->changeVisibilityImmediate(Z)V",
|
||||
)
|
||||
}
|
||||
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR =
|
||||
internal const val EXTENSION_CLASS_DESCRIPTOR =
|
||||
"Lapp/revanced/extension/youtube/patches/PlayerControlsPatch;"
|
||||
|
||||
private lateinit var inflateTopControlMethod: MutableMethod
|
||||
@@ -209,6 +214,9 @@ private var inflateBottomControlRegister: Int = -1
|
||||
private lateinit var visibilityMethod: MutableMethod
|
||||
private var visibilityInsertIndex: Int = 0
|
||||
|
||||
private var visibilityImmediateCallbacksExistModified = false
|
||||
private lateinit var visibilityImmediateCallbacksExistMethod : MutableMethod
|
||||
|
||||
private lateinit var visibilityImmediateMethod: MutableMethod
|
||||
private var visibilityImmediateInsertIndex: Int = 0
|
||||
|
||||
@@ -266,6 +274,7 @@ val playerControlsPatch = bytecodePatch(
|
||||
)
|
||||
}
|
||||
|
||||
visibilityImmediateCallbacksExistMethod = playerControlsExtensionHookListenersExistFingerprint.method
|
||||
visibilityImmediateMethod = playerControlsExtensionHookFingerprint.method
|
||||
|
||||
// A/B test for a slightly different bottom overlay controls,
|
||||
|
||||
@@ -51,7 +51,7 @@ internal val mainActivityOnCreateFingerprint = fingerprint {
|
||||
}
|
||||
}
|
||||
|
||||
val rollingNumberTextViewAnimationUpdateFingerprint = fingerprint {
|
||||
internal val rollingNumberTextViewAnimationUpdateFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("V")
|
||||
parameters("Landroid/graphics/Bitmap;")
|
||||
|
||||
@@ -1236,6 +1236,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_force_original_audio_title">فرض الصوت الأصلي</string>
|
||||
<string name="revanced_force_original_audio_summary_on">استخدام الصوت الأصلي</string>
|
||||
<string name="revanced_force_original_audio_summary_off">استخدام الصوت الافتراضي</string>
|
||||
<string name="revanced_force_original_audio_not_available">لاستخدام هذه الميزة، غيّر تقليد تدفقات البيانات إلى نوع عميل iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1237,6 +1237,7 @@ Bunu aktivləşdirmə daha yüksək video keyfiyyətləri əngəlin silə bilər
|
||||
<string name="revanced_force_original_audio_title">Orijinal səsi tələb et</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Orijinal səs istifadəsi</string>
|
||||
<string name="revanced_force_original_audio_summary_off">İlkin səs istifadəsi</string>
|
||||
<string name="revanced_force_original_audio_not_available">Bu xüsusiyyəti işlətmək üçün yayım saxtalaşdırmanı iOS ötürücü növünə dəyiş</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1237,6 +1237,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_force_original_audio_title">Вымушанае арыгінальнае аўдыё</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Выкарыстанне арыгінальнага аўдыё</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Выкарыстанне аўдыё па змаўчанні</string>
|
||||
<string name="revanced_force_original_audio_not_available">Каб выкарыстоўваць гэтую функцыю, зменіце спафінг патоку на тып кліента iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1236,6 +1236,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_force_original_audio_title">Принудително оригинално аудио</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Използване на оригинално аудио</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Използване на аудио по подразбиране</string>
|
||||
<string name="revanced_force_original_audio_not_available">За да използвате тази функция, променете имитацията на поточно предаване на тип клиент на iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1238,6 +1238,7 @@ DeArrow সম্পর্কে আরও জানতে এখানে ট
|
||||
<string name="revanced_force_original_audio_title">মূল অডিও বলপূর্বক চালু করুন</string>
|
||||
<string name="revanced_force_original_audio_summary_on">মূল অডিও ব্যবহার করছে</string>
|
||||
<string name="revanced_force_original_audio_summary_off">ডিফল্ট অডিও ব্যবহার করছে</string>
|
||||
<string name="revanced_force_original_audio_not_available">এই বৈশিষ্ট্যটি ব্যবহার করার জন্য, iOS ক্লায়েন্ট প্রকারে স্ট্রিম স্পুফিং পরিবর্তন করুন</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1233,6 +1233,7 @@ Si actives aquesta opció, es poden desbloquejar qualitats de vídeo més altes"
|
||||
<string name="revanced_force_original_audio_title">Forçar àudio original</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Utilitzant àudio original</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Utilitzant àudio predeterminat</string>
|
||||
<string name="revanced_force_original_audio_not_available">Per utilitzar aquesta funció, canvia la suplantació de flux al tipus de client iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1236,6 +1236,7 @@ Povolením této funkce lze odemknout vyšší kvality videa"</string>
|
||||
<string name="revanced_force_original_audio_title">Vynutit původní zvuk</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Používání původního zvuku</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Používání výchozího zvuku</string>
|
||||
<string name="revanced_force_original_audio_not_available">Pro použití této funkce změňte typ klienta streamu na iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1237,6 +1237,7 @@ Aktivering af dette kan låse op for højere videokvalitet"</string>
|
||||
<string name="revanced_force_original_audio_title">Tving original lyd</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Brug original lyd</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Brug standard lyd</string>
|
||||
<string name="revanced_force_original_audio_not_available">Tilføj musik til denne historie</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1231,6 +1231,7 @@ Durch Aktivieren dieser Option können höhere Videoqualitäten freigeschaltet w
|
||||
<string name="revanced_force_original_audio_title">Original Audio erzwingen</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Originales Audio verwenden</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Standardaudio verwenden</string>
|
||||
<string name="revanced_force_original_audio_not_available">Um diese Funktion zu nutzen, ändern Sie das Stream-Spoofing auf den iOS-Clienttyp</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1236,6 +1236,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_force_original_audio_title">Εξαναγκασμός αρχικού ήχου</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Χρήση αρχικού ήχου</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Χρήση προεπιλεγμένου ήχου</string>
|
||||
<string name="revanced_force_original_audio_not_available">Για να χρησιμοποιήσετε αυτήν τη δυνατότητα, αλλάξτε την παραποίηση πελάτη σε iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1217,6 +1217,7 @@ Habilitar esto puede desbloquear calidades de vídeo más altas"</string>
|
||||
<string name="revanced_force_original_audio_title">Forzar audio original</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Utilizando audio original</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Utilizando audio predeterminado</string>
|
||||
<string name="revanced_force_original_audio_not_available">Para usar esta función, cambia la suplantación de stream al tipo de cliente iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -628,10 +628,19 @@ Huomaa: Tämä ottaa pakolla pois myös videomainokset"</string>
|
||||
<string name="revanced_shorts_player_screen_title">Shorts-soitin</string>
|
||||
<string name="revanced_shorts_player_screen_summary">Piilota tai näytä Shorts-soittimen osia</string>
|
||||
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
|
||||
<string name="revanced_hide_shorts_home_title">Piilota Shortsit koti-syötteessä</string>
|
||||
<string name="revanced_hide_shorts_home_title">Piilota Shortsit kotisyötteessä</string>
|
||||
<string name="revanced_hide_shorts_home_summary_on">Piilotettu kotisyötteessä ja liittyvissä videoissa</string>
|
||||
<string name="revanced_hide_shorts_home_summary_off">Näytetään kotisyötteessä ja liittyvissä videoissa</string>
|
||||
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
|
||||
<string name="revanced_hide_shorts_subscriptions_title">Piilota Shortsit tilaukset-syötteessä</string>
|
||||
<string name="revanced_hide_shorts_subscriptions_title">Piilota Shortsit tilaussyötteessä</string>
|
||||
<string name="revanced_hide_shorts_subscriptions_summary_on">Piilotettu tilaussyötteessä</string>
|
||||
<string name="revanced_hide_shorts_subscriptions_summary_off">Näytetään tilaussyötteessä</string>
|
||||
<string name="revanced_hide_shorts_search_title">Piilota Shortsit hakutuloksissa</string>
|
||||
<string name="revanced_hide_shorts_search_summary_on">Piilotettu hakutuloksissa</string>
|
||||
<string name="revanced_hide_shorts_search_summary_off">Näytetään hakutuloksissa</string>
|
||||
<string name="revanced_hide_shorts_history_title">Piilota Shortsit katseluhistoriassa</string>
|
||||
<string name="revanced_hide_shorts_history_summary_on">Piilotettu katseluhistoriassa</string>
|
||||
<string name="revanced_hide_shorts_history_summary_off">Näytetään katseluhistoriassa</string>
|
||||
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
|
||||
<string name="revanced_hide_shorts_join_button_title">Piilota liity-painike</string>
|
||||
<string name="revanced_hide_shorts_join_button_summary_on">Liity-painike on piilotettu</string>
|
||||
@@ -1015,6 +1024,7 @@ Jos tämä ominaisuus kytketään myöhemmin pois, on suositeltavaa tyhjentää
|
||||
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
|
||||
<string name="revanced_spoof_app_version_target_title">Naamioitava kohdeversio</string>
|
||||
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Palauta vanhat Shorts-soittimen kuvakkeet</string>
|
||||
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Palauta vanhat navigointi- ja työkalupalkin kuvakkeet</string>
|
||||
<!-- 'RYD' is 'Return YouTube Dislike' -->
|
||||
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Palauita RYD Shorts-videoissa incognito-tilassa</string>
|
||||
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Palauta laaja videonopeus- ja laatuvalikko</string>
|
||||
@@ -1227,6 +1237,7 @@ Tämä voi avata korkealaatuisemmat videot"</string>
|
||||
<string name="revanced_force_original_audio_title">Pakota alkuperäinen ääni</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Käytetään alkuperäistä ääntä</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Käytetään oletusääntä</string>
|
||||
<string name="revanced_force_original_audio_not_available">Käyttääksesi tätä ominaisuutta, vaihda virtanaamiointi iOS-asiakastyyppiiin</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
@@ -1290,6 +1301,10 @@ Videon toisto ei välttämättä toimi"</string>
|
||||
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">"Tämän käyttöönotto voi parantaa akun kestoa ja korjata toiston tökkimisen.
|
||||
|
||||
AVC:n maksimiresoluutio on 1080p, Opus-äänikoodekki ei ole käytettävissä, ja videon toisto käyttää enemmän Internet-dataa kuin VP9 tai AV1."</string>
|
||||
<string name="revanced_spoof_video_streams_about_ios_tv_title">iOS-naamioinnin haittavaikutukset</string>
|
||||
<string name="revanced_spoof_video_streams_about_ios_tv_summary">"• Elokuvat tai maksulliset videot eivät välttämättä toistu
|
||||
• Tasainen äänenvoimakkuus ei ole käytettävissä
|
||||
• Videot päättyvät 1 sekuntia etuajassa"</string>
|
||||
<string name="revanced_spoof_video_streams_about_android_title">Android-naamioinnin haittavaikutukset</string>
|
||||
<string name="revanced_spoof_video_streams_about_android_summary">"• Ääniraitavalikko puuttuu
|
||||
• Tasainen äänenvoimakkuus ei ole käytettävissä
|
||||
@@ -1298,6 +1313,7 @@ AVC:n maksimiresoluutio on 1080p, Opus-äänikoodekki ei ole käytettävissä, j
|
||||
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Asiakastyyppi näytetään teknisissä tiedoissa</string>
|
||||
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Asiakastyyppi on piilotettu teknisissä tiedoissa</string>
|
||||
<string name="revanced_spoof_video_streams_language_title">VR-äänivirran oletuskieli</string>
|
||||
<string name="revanced_spoof_video_streams_language_DEFAULT">Sovelluksen kieli</string>
|
||||
<string name="revanced_spoof_video_streams_language_AR">Arabia</string>
|
||||
<string name="revanced_spoof_video_streams_language_AZ">Azerbaidžan</string>
|
||||
<string name="revanced_spoof_video_streams_language_BG">Bulgaria</string>
|
||||
|
||||
@@ -1237,6 +1237,7 @@ Ang pagpapagana nito ay maaaring magbukas ng mas mataas na kalidad ng video"</st
|
||||
<string name="revanced_force_original_audio_title">Pilitin ang original audio</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Gumagamit ng original audio</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Gumagamit ng default audio</string>
|
||||
<string name="revanced_force_original_audio_not_available">Upang magamit ang tampok na ito, baguhin ang stream spoofing sa uri ng kliyente ng iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1237,6 +1237,7 @@ L'activation de cette option peut déverrouiller des qualités vidéo plus élev
|
||||
<string name="revanced_force_original_audio_title">Force audio d’origine</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Utilisation de la piste audio d\'origine</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Utilisation de l\'audio par défaut</string>
|
||||
<string name="revanced_force_original_audio_not_available">Pour utiliser cette fonction, changez le type d\'usurpation du flux en type client iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -28,8 +28,8 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_failed_message"><h5>Is cosúil nach bhfuil an aip seo paiteanta agat.</h5><br>Seans nach bhfeidhmeoidh an aip seo i gceart, <b>d\'fhéadfadh sé a bheith díobhálach nó fiú contúirteach le húsáid</b>< br><br>Tugann na seiceálacha seo le tuiscint go bhfuil an aip seo réamhphatáilte nó faighte ó dhuine éigin eile:<br><br><small>%1$s</small><br> <b>díshuiteáil an aip seo agus paiste tú féin</b> chun a chinntiú go bhfuil tú ag úsáid aip atá bailíochtaithe agus slán.<p><br>Má dhéantar neamhaird de, ní thaispeánfar an rabhadh seo ach faoi dhó.</string>
|
||||
<string name="revanced_check_environment_not_same_patching_device">Paisteáilte ar ghléas eile</string>
|
||||
<string name="revanced_check_environment_manager_not_expected_installer">Gan a bheith suiteáilte ag ReVanced Manager</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time">Patched níos mó ná 10 nóiméad ó shin</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_days">Patáilte %s lá ó shin</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time">Paisteáilte níos mó ná 10 nóiméad ó shin</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_days">Paisteáilte %s lá ó shin</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Tá dáta tógála APK truaillithe</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
@@ -38,10 +38,10 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_settings_reset">Athshocraigh</string>
|
||||
<string name="revanced_settings_restart_title">Athnuachan agus atosaigh</string>
|
||||
<string name="revanced_settings_restart">Athosaigh</string>
|
||||
<string name="revanced_settings_import">Allmhairiú</string>
|
||||
<string name="revanced_settings_import">Iompórtáil</string>
|
||||
<string name="revanced_settings_import_copy">Cóipeáil</string>
|
||||
<string name="revanced_settings_import_reset">Athshocraigh socruithe ReVanced go réamhshocrú</string>
|
||||
<string name="revanced_settings_import_success">Socruithe %d allmhairithe</string>
|
||||
<string name="revanced_settings_import_success">Iompórtáladh %d socruithe</string>
|
||||
<string name="revanced_settings_import_failure_parse">Theip ar allmhairiú: %s</string>
|
||||
<string name="revanced_pref_import_export_title">Iompórtáil / Easpórtáil</string>
|
||||
<string name="revanced_pref_import_export_summary">Iompórtáil / Easpórtáil socruithe ReVanced</string>
|
||||
@@ -55,8 +55,8 @@ Second \"item\" text"</string>
|
||||
</patch>
|
||||
<patch id="misc.gms.gmsCoreSupportResourcePatch">
|
||||
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
|
||||
<string name="gms_core_toast_not_installed_message">Níl microG GMScore suiteáilte. Suiteáil é.</string>
|
||||
<string name="gms_core_dialog_title">Gníomhaíocht a theast</string>
|
||||
<string name="gms_core_toast_not_installed_message">Níl MicroG GmsCore suiteáilte. Suiteáil é.</string>
|
||||
<string name="gms_core_dialog_title">Gníomh riachtanach</string>
|
||||
<string name="gms_core_dialog_not_whitelisted_not_allowed_in_background_message">"Níl cead ag MicroG GmsCore rith sa chúlra.
|
||||
|
||||
Lean an treoir \"Ná maraigh mo aip\" do do ghuthán, agus cuir na treoracha i bhfeidhm ar do shuiteáil MicroG.
|
||||
@@ -77,16 +77,16 @@ Brúigh an cnaipe leanúnaí agus ligean athruithe optúimíochta."</string>
|
||||
<string name="revanced_settings_screen_01_ads_title">Fógraí</string>
|
||||
<string name="revanced_settings_screen_02_alt_thumbnails_title">Mionsamhlacha malartacha</string>
|
||||
<string name="revanced_settings_screen_03_feed_title">Fotha</string>
|
||||
<string name="revanced_settings_screen_04_player_title">Imreoir</string>
|
||||
<string name="revanced_settings_screen_04_player_title">Seinnteoir</string>
|
||||
<string name="revanced_settings_screen_05_general_title">Leagan amach ginearálta</string>
|
||||
<string name="revanced_settings_screen_06_shorts_title">Shorts</string>
|
||||
<string name="revanced_settings_screen_07_seekbar_title">Barr Seardaigh</string>
|
||||
<string name="revanced_settings_screen_08_swipe_controls_title">Rialuithe Swipe</string>
|
||||
<string name="revanced_settings_screen_11_misc_title">Ilghnóthach</string>
|
||||
<string name="revanced_settings_screen_07_seekbar_title">Barra Cuardaigh</string>
|
||||
<string name="revanced_settings_screen_08_swipe_controls_title">Rialuithe Svaidhpeála</string>
|
||||
<string name="revanced_settings_screen_11_misc_title">Ilchineálach</string>
|
||||
<string name="revanced_settings_screen_12_video_title">Físeán</string>
|
||||
</patch>
|
||||
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
|
||||
<string name="revanced_shorts_disable_background_playback_title">Díchumasaigh súgradh cúlra Shorts</string>
|
||||
<string name="revanced_shorts_disable_background_playback_title">Díchumasaigh seinnte Cúlra Shorts</string>
|
||||
<string name="revanced_shorts_disable_background_playback_summary_on">Tá súgradh cúlra Shorts díchumasaithe</string>
|
||||
<string name="revanced_shorts_disable_background_playback_summary_off">Tá súgradh cúlra Shorts cumasaithe</string>
|
||||
</patch>
|
||||
@@ -110,17 +110,17 @@ Brúigh an cnaipe leanúnaí agus ligean athruithe optúimíochta."</string>
|
||||
Ní bheidh a fhios agat faoi aon imeachtaí neamhghnácha."</string>
|
||||
</patch>
|
||||
<patch id="layout.hide.general.hideLayoutComponentsPatch">
|
||||
<string name="revanced_disable_like_subscribe_glow_title">Díchumasaigh cosúil/liostáil chnaipe glow</string>
|
||||
<string name="revanced_disable_like_subscribe_glow_summary_on">Ní ghlacfaidh an cnaipe Like agus Liostáil nuair a luaitear</string>
|
||||
<string name="revanced_disable_like_subscribe_glow_summary_off">Taispeánfaidh an cnaipe Like agus Liostáil nuair a luait</string>
|
||||
<string name="revanced_disable_like_subscribe_glow_title">Díchumasaigh lonradh na cnaipí Cosúil / Liostáil</string>
|
||||
<string name="revanced_disable_like_subscribe_glow_summary_on">Ní lonróidh an cnaipe \'Cosúil\' agus \'Liostáil\' nuair a luafaí</string>
|
||||
<string name="revanced_disable_like_subscribe_glow_summary_off">Lonróidh an cnaipe Cosúil agus Liostáil nuair a luaitear</string>
|
||||
<string name="revanced_hide_album_cards_title">Folaigh cártaí albam</string>
|
||||
<string name="revanced_hide_album_cards_summary_on">Tá cártaí albam i bhfolach</string>
|
||||
<string name="revanced_hide_album_cards_summary_off">Taispeántar cártaí albam</string>
|
||||
<string name="revanced_hide_crowdfunding_box_title">Folaigh bosca slua-mhaoiniú</string>
|
||||
<string name="revanced_hide_crowdfunding_box_summary_on">Tá bosca crowdfunding i bhfolach</string>
|
||||
<string name="revanced_hide_crowdfunding_box_summary_on">Tá bosca slua-mhaoiniú i bhfolach</string>
|
||||
<string name="revanced_hide_crowdfunding_box_summary_off">Taispeántar bosca slua-mhaoiniú</string>
|
||||
<string name="revanced_hide_floating_microphone_button_title">Cnaipe micreafón ar snámh</string>
|
||||
<string name="revanced_hide_floating_microphone_button_summary_on">Cnaipe micreafón folach</string>
|
||||
<string name="revanced_hide_floating_microphone_button_title">Folaigh an cnaipe micreafón ar snámh</string>
|
||||
<string name="revanced_hide_floating_microphone_button_summary_on">Cnaipe micreafón i bhfolach</string>
|
||||
<string name="revanced_hide_floating_microphone_button_summary_off">Taispeántar an cnaipe micreafón</string>
|
||||
<string name="revanced_hide_channel_watermark_title">Folaigh comhartha uisce cainéal</string>
|
||||
<string name="revanced_hide_channel_watermark_summary_on">Tá comhartha uisce i bhfolach</string>
|
||||
@@ -148,7 +148,7 @@ Ní bheidh a fhios agat faoi aon imeachtaí neamhghnácha."</string>
|
||||
<string name="revanced_hide_notify_me_button_summary_on">Tá an cnaipe i bhfolach</string>
|
||||
<string name="revanced_hide_notify_me_button_summary_off">Taispeántar an cnaipe</string>
|
||||
<!-- 'People also watch' should be translated using the same localized wording YouTube displays. -->
|
||||
<string name="revanced_hide_search_result_recommendations_title">Folaigh moltaí \'D\'fhéach daoine freastalaí\'</string>
|
||||
<string name="revanced_hide_search_result_recommendations_title">Folaigh moltaí \'Chonaic daoine eile freisin\'</string>
|
||||
<string name="revanced_hide_search_result_recommendations_summary_on">Tá moltaí i bhfolach</string>
|
||||
<string name="revanced_hide_search_result_recommendations_summary_off">Taispeántar moltaí</string>
|
||||
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
|
||||
@@ -177,12 +177,12 @@ Ní bheidh a fhios agat faoi aon imeachtaí neamhghnácha."</string>
|
||||
<string name="revanced_hide_movies_section_title">Folaigh rannán scannáin</string>
|
||||
<string name="revanced_hide_movies_section_summary_on">Tá an chuid Scannáin i bhfolach</string>
|
||||
<string name="revanced_hide_movies_section_summary_off">Taispeántar an rannán scannáin</string>
|
||||
<string name="revanced_hide_feed_survey_title">Folaigh suirbhéanna beatha</string>
|
||||
<string name="revanced_hide_feed_survey_summary_on">Tá suirbhéanna beatha i bhfolach</string>
|
||||
<string name="revanced_hide_feed_survey_summary_off">Taispeántar suirbhéanna beatha</string>
|
||||
<string name="revanced_hide_feed_survey_title">Folaigh suirbhéanna na fotha</string>
|
||||
<string name="revanced_hide_feed_survey_summary_on">Tá suirbhéanna fotha i bhfolach</string>
|
||||
<string name="revanced_hide_feed_survey_summary_off">Taispeántar suirbhéanna fotha</string>
|
||||
<string name="revanced_hide_community_guidelines_title">Folaigh treoirlínte pobail</string>
|
||||
<string name="revanced_hide_community_guidelines_summary_on">Tá treoirlínte pobail i bhfolach</string>
|
||||
<string name="revanced_hide_community_guidelines_summary_off">Léirítear treoirlínte pobail</string>
|
||||
<string name="revanced_hide_community_guidelines_summary_off">Taispeántar treoirlínte pobail</string>
|
||||
<string name="revanced_hide_subscribers_community_guidelines_title">Folaigh treoirlínte pobail do shíntiúsóirí</string>
|
||||
<string name="revanced_hide_subscribers_community_guidelines_summary_on">Tá treoirlínte pobail síntiúsóirí i bhfolach</string>
|
||||
<string name="revanced_hide_subscribers_community_guidelines_summary_off">Taispeántar treoirlínte pobail do shíntiúsóirí</string>
|
||||
@@ -202,19 +202,19 @@ Ní bheidh a fhios agat faoi aon imeachtaí neamhghnácha."</string>
|
||||
<string name="revanced_hide_channel_bar_summary_on">Tá barra cainéal i bhfolach</string>
|
||||
<string name="revanced_hide_channel_bar_summary_off">Taispeántar barra cainéal</string>
|
||||
<string name="revanced_hide_playables_title">Folaigh Rudaí Inimeartha</string>
|
||||
<string name="revanced_hide_playables_summary_on">Tá míreanna súgartha i bhfolach</string>
|
||||
<string name="revanced_hide_playables_summary_off">Taispeántar míreanna inimeartha</string>
|
||||
<string name="revanced_hide_playables_summary_on">Tá rudaí inimeartha i bhfolach</string>
|
||||
<string name="revanced_hide_playables_summary_off">Taispeántar rudaí inimeartha</string>
|
||||
<string name="revanced_hide_quick_actions_title">Folaigh gníomhartha gasta i lánscáileán</string>
|
||||
<string name="revanced_hide_quick_actions_summary_on">Tá gníomhartha gasta i bhfolach</string>
|
||||
<string name="revanced_hide_quick_actions_summary_off">Taispeántar gníomhartha tapa</string>
|
||||
<string name="revanced_hide_related_videos_title">Folaigh físeáin gaolmhara i ngníomhartha</string>
|
||||
<string name="revanced_hide_related_videos_summary_on">Tá físeáin bhainteacha i bhfolach</string>
|
||||
<string name="revanced_hide_related_videos_summary_on">Tá físeáin ghaolmhara i bhfolach</string>
|
||||
<string name="revanced_hide_related_videos_summary_off">Taispeántar físeáin gaolmhara</string>
|
||||
<string name="revanced_hide_image_shelf_title">Folaigh seilf íomhá sna torthaí cuardaigh</string>
|
||||
<string name="revanced_hide_image_shelf_summary_on">Tá seilf íomhá i bhfolach</string>
|
||||
<string name="revanced_hide_image_shelf_summary_off">Taispeántar seilf íomhá</string>
|
||||
<string name="revanced_hide_latest_posts_ads_title">Folaigh na postanna is déanaí</string>
|
||||
<string name="revanced_hide_latest_posts_ads_summary_on">Tá poist is déanaí i bhfolach</string>
|
||||
<string name="revanced_hide_latest_posts_ads_summary_on">Tá postanna is déanaí i bhfolach</string>
|
||||
<string name="revanced_hide_latest_posts_ads_summary_off">Taispeántar na poist is déanaí</string>
|
||||
<string name="revanced_hide_mix_playlists_title">Folaigh seinmliostaí meascán</string>
|
||||
<string name="revanced_hide_mix_playlists_summary_on">Tá seinmliostaí measctha i bhfolach</string>
|
||||
@@ -1238,6 +1238,7 @@ Is féidir le seo caighdeáin físeáin níos airde a dhíghlasáil"</string>
|
||||
<string name="revanced_force_original_audio_title">Fórsaigh fuaim bunaidh</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Ag úsáid fuaim bunaidh</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Ag úsáid fuaim réamhshocraithe</string>
|
||||
<string name="revanced_force_original_audio_not_available">Chun an ghné seo a úsáid, athraigh spoofing srutha chuig cineál cliant iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1235,6 +1235,7 @@ Ez a beállítás lehetővé teszi a magasabb videóminőségek feloldását"</s
|
||||
<string name="revanced_force_original_audio_title">Eredeti hang kikényszerítése</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Eredeti hang használata</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Alapértelmezett hang használata</string>
|
||||
<string name="revanced_force_original_audio_not_available">Ezt a funkciót iOS klienstípusra állított adatfolyam-hamisítással használhatja</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1235,6 +1235,7 @@ Mini-player-ը կարող է գրավվել էկրանից դուրս՝ դեպի
|
||||
<string name="revanced_force_original_audio_title">Բնօրինակ ձայն օգտագործել</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Բնօրինակ ձայն օգտագործվում է</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Վերջնական ձայն օգտագործվում է</string>
|
||||
<string name="revanced_force_original_audio_not_available">Անեի սյօւյր դա ժյրդեք ռասրունաքն ամ Java զեմե, սիուի կյադ եյ չոն մաiOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1235,6 +1235,7 @@ Mengaktifkan ini dapat membuka kualitas video yang lebih tinggi"</string>
|
||||
<string name="revanced_force_original_audio_title">Paksa audio asli</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Menggunakan audio asli</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Menggunakan audio bawaan</string>
|
||||
<string name="revanced_force_original_audio_not_available">Untuk menggunakan fitur ini, ubah pemalsuan aliran ke jenis klien iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1235,6 +1235,7 @@ Abilitare questa opzione può sbloccare qualità video più elevate"</string>
|
||||
<string name="revanced_force_original_audio_title">Forza l\'audio originale</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Utilizzo audio originale</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Utilizzo audio predefinito</string>
|
||||
<string name="revanced_force_original_audio_not_available">Per utilizzare questa funzione, cambia lo spoofing dello stream in tipo di client iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1109,13 +1109,15 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
|
||||
• 미니 플레이어 절반 정도를 왼쪽 밖 또는 오른쪽 밖으로 드래그하여 숨길 수 있습니다"</string>
|
||||
<string name="revanced_miniplayer_horizontal_drag_summary_off">수평 드래그 제스처를 비활성화합니다</string>
|
||||
<string name="revanced_miniplayer_hide_expand_close_title">\'닫기\' 버튼 숨기기</string>
|
||||
<string name="revanced_miniplayer_hide_expand_close_summary_on">\'닫기\' 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_miniplayer_hide_expand_close_summary_off">\'닫기\' 버튼이 표시됩니다</string>
|
||||
<string name="revanced_miniplayer_hide_expand_close_summary_on">\'닫기\' 버튼이 숨겨집니다\n\n• YouTube v19.24.xx까지 모던 스타일 1, 3에서 \'펼치기 & 닫기 버튼 숨기기\' 기능이 작동됩니다\n• YouTube v19.34.xx부터 모던 스타일 3에서만 \'닫기 버튼 숨기기\' 기능이 작동됩니다</string>
|
||||
<string name="revanced_miniplayer_hide_expand_close_summary_off">\'닫기\' 버튼이 표시됩니다\n\n• YouTube v19.24.xx까지 모던 스타일 1, 3에서 \'펼치기 & 닫기 버튼 숨기기\' 기능이 작동됩니다\n• YouTube v19.34.xx부터 모던 스타일 3에서만 \'닫기 버튼 숨기기\' 기능이 작동됩니다</string>
|
||||
<string name="revanced_miniplayer_hide_expand_close_legacy_title">\'펼치기\' & \'닫기\' 버튼 숨기기</string>
|
||||
<string name="revanced_miniplayer_hide_expand_close_legacy_summary_on">"'펼치기' & '닫기' 버튼이 숨겨집니다
|
||||
|
||||
• YouTube v19.24.xx까지 모던 스타일 1, 3에서 '펼치기 & 닫기 버튼 숨기기' 기능이 작동됩니다
|
||||
• YouTube v19.34.xx부터 모던 스타일 3에서만 '닫기 버튼 숨기기' 기능이 작동됩니다
|
||||
• 미니 플레이어를 스와이프하여 펼치거나 닫을 수 있습니다"</string>
|
||||
<string name="revanced_miniplayer_hide_expand_close_legacy_summary_off">\'펼치기\' & \'닫기\' 버튼이 표시됩니다</string>
|
||||
<string name="revanced_miniplayer_hide_expand_close_legacy_summary_off">\'펼치기\' & \'닫기\' 버튼이 표시됩니다\n\n• YouTube v19.24.xx까지 모던 스타일 1, 3에서 \'펼치기 & 닫기 버튼 숨기기\' 기능이 작동됩니다\n• YouTube v19.34.xx부터 모던 스타일 3에서만 \'닫기 버튼 숨기기\' 기능이 작동됩니다</string>
|
||||
<string name="revanced_miniplayer_hide_subtext_title">서브텍스트 숨기기</string>
|
||||
<string name="revanced_miniplayer_hide_subtext_summary_on">서브텍스트가 숨겨집니다\n\n• 왼쪽 하단에서 표시되는 \'유료 광고 포함\'과 같은 라벨</string>
|
||||
<string name="revanced_miniplayer_hide_subtext_summary_off">서브텍스트가 표시됩니다\n\n• 왼쪽 하단에서 표시되는 \'유료 광고 포함\'과 같은 라벨</string>
|
||||
@@ -1241,6 +1243,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요"</string>
|
||||
<string name="revanced_force_original_audio_title">원본 오디오 트랙 강제로 활성화하기</string>
|
||||
<string name="revanced_force_original_audio_summary_on">원본 오디오 트랙을 사용 중입니다</string>
|
||||
<string name="revanced_force_original_audio_summary_off">기본 오디오 트랙을 사용 중입니다</string>
|
||||
<string name="revanced_force_original_audio_not_available">이 기능을 사용하려면, \'스트리밍 데이터 변경하기\' 설정에서 기본 클라이언트를 iOS TV로 변경하세요</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
@@ -1298,7 +1301,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요"</string>
|
||||
<!-- 'no auth' means no authentication -->
|
||||
<string name="revanced_spoof_video_streams_client_type_android_vr_no_auth">Android VR (미인증)</string>
|
||||
<string name="revanced_spoof_video_streams_ios_force_avc_title">iOS AVC (H.264) 강제로 활성화하기</string>
|
||||
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">동영상 코덱을 AVC (H.264)로 강제로 활성화합니다\n\n• 일부 VP9 코덱 동영상에서 제거되었던 화질 값이 표시될 수 있습니다\n•최대 화질이 1080p이므로, 초고화질 동영상을 재생할 수 없습니다\n• HDR 동영상을 재생할 수 없습니다</string>
|
||||
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">동영상 코덱을 AVC (H.264)로 강제로 활성화합니다\n\n• 일부 VP9 코덱 동영상에서 제거되었던 화질 값이 표시될 수 있습니다\n• 최대 화질 값이 1080p이므로, 초고화질 동영상을 재생할 수 없습니다\n• HDR 동영상을 재생할 수 없습니다</string>
|
||||
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">동영상 코덱을 자동으로 결정합니다\n\n• 예전에 업로드된 동영상을 재생했는데 VP9 코덱 응답을 받았을 경우, 일부 화질값이 제거되어 360p와 1080p(Premium 기능)만 선택가능할 수 있거나 화질 메뉴를 선택불가능할 수 있습니다</string>
|
||||
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">"이 설정를 활성화하면 배터리 수명이 향상되고, 동영상 재생 끊김 문제가 해결될 수 있습니다
|
||||
|
||||
|
||||
@@ -1238,6 +1238,7 @@ Gali būti atrakinta aukštesnės vaizdo įrašų kokybės, bet galite patirti v
|
||||
<string name="revanced_force_original_audio_title">Priversti originalų garsą</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Naudojamas originalus garsas</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Naudojamas numatytasis garsas</string>
|
||||
<string name="revanced_force_original_audio_not_available">Norėdami naudoti šią funkciją, pakeiskite srauto imitavimą į „iOS“ kliento tipą</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1235,6 +1235,7 @@ Var tikt atbloķētas augstākas video kvalitātes, taču var rasties video atsk
|
||||
<string name="revanced_force_original_audio_title">Piespiest oriģinālo audio</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Tiek izmantots oriģinālais audio</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Tiek izmantots noklusējuma audio</string>
|
||||
<string name="revanced_force_original_audio_not_available">Lai izmantotu šo funkciju, mainiet straumes viltošanu uz iOS klienta tipu</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1237,6 +1237,7 @@ Het inschakelen hiervan kan hogere videokwaliteiten ontgrendelen"</string>
|
||||
<string name="revanced_force_original_audio_title">Forceer originele audio</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Originele audio gebruiken</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Standaard audio gebruiken</string>
|
||||
<string name="revanced_force_original_audio_not_available">Als je deze functie wilt gebruiken, zet stream-spoofing op iOS-clienttype</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1236,6 +1236,7 @@ Włączenie tego może odblokować wyższe jakości wideo"</string>
|
||||
<string name="revanced_force_original_audio_title">Wymuś oryginalny dźwięk</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Używanie oryginalnego dźwięku</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Używanie domyślnego dźwięku</string>
|
||||
<string name="revanced_force_original_audio_not_available">Aby użyć tej funkcji, zmień podszywanie strumienia na typ klienta iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1235,6 +1235,7 @@ Habilitar isso pode desbloquear qualidades de vídeo mais altas"</string>
|
||||
<string name="revanced_force_original_audio_title">Forçar áudio original</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Usando áudio original</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Usando áudio padrão</string>
|
||||
<string name="revanced_force_original_audio_not_available">Para usar este recurso, altere a falsificação de fluxo para o tipo de cliente iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1236,6 +1236,7 @@ Bật tính năng này có thể mở khóa chất lượng video cao hơn"</str
|
||||
<string name="revanced_force_original_audio_title">Forçar áudio original</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Usando áudio original</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Usando áudio padrão</string>
|
||||
<string name="revanced_force_original_audio_not_available">Para usar este recurso, altere a falsificação de fluxo para o tipo de cliente iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1237,6 +1237,7 @@ Activarea acestei opțiuni poate debloca calități video mai mari"</string>
|
||||
<string name="revanced_force_original_audio_title">Forțați sunetul original</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Utilizează audio original</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Utilizează audio implicit</string>
|
||||
<string name="revanced_force_original_audio_not_available">Pentru a utiliza această funcție, schimbați opțiunea de streaming în modul client iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1238,6 +1238,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_force_original_audio_title">Принудительно оригинальный звук</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Используется оригинальный звук</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Используется звук по умолчанию</string>
|
||||
<string name="revanced_force_original_audio_not_available">Для использования данной опции измените подмену видеопотока на тип клиента iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1225,6 +1225,7 @@ Povolením tejto možnosti môžete odomknúť vyššie kvality videa"</string>
|
||||
<string name="revanced_force_original_audio_title">Vynútiť pôvodný zvuk</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Používanie pôvodného zvuku</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Používanie predvoleného zvuku</string>
|
||||
<string name="revanced_force_original_audio_not_available">Ak chcete použiť túto funkciu, zmeňte stream spoofing na typ klienta iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1237,6 +1237,7 @@ Omogočanje tega lahko odklene višje kakovosti videa"</string>
|
||||
<string name="revanced_force_original_audio_title">Izsili izvirni zvok</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Uporaba izvirnega zvoka</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Uporaba privzetega zvoka</string>
|
||||
<string name="revanced_force_original_audio_not_available">Za uporabo te funkcije spremenite odjemalce pretakanja na vrsto odjemalca iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1235,6 +1235,7 @@ Aktivizimi i kësaj mund të zhbllokojë cilësi më të larta video"</string>
|
||||
<string name="revanced_force_original_audio_title">Forco Zërin Origjinal</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Përdorimi i Zërit Origjinal</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Përdorimi i Zërit Parazgjedhur</string>
|
||||
<string name="revanced_force_original_audio_not_available">Për të përdorur këtë funksion, ndrysho rrymën spoofing në llojin e klientit iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1236,6 +1236,7 @@ Ako ovo omogućite, mogu biti otključani viši kvaliteti videa"</string>
|
||||
<string name="revanced_force_original_audio_title">Prisili originalni zvuk</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Korišćenje originalnog zvuka</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Korišćenje podrazumevanog zvuka</string>
|
||||
<string name="revanced_force_original_audio_not_available">Da biste koristili ovu funkciju, promenite lažiranje strima na tip klijenta iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1235,6 +1235,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_force_original_audio_title">Присили оригинални звук</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Коришћење оригиналног звука</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Коришћење подразумеваног звука</string>
|
||||
<string name="revanced_force_original_audio_not_available">Да бисте користили ову функцију, промените лажирање стрима на тип клијента iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1236,6 +1236,7 @@ Att aktivera detta kan låsa upp högre videokvalitet"</string>
|
||||
<string name="revanced_force_original_audio_title">Forcera originalljud</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Använder original ljudeffekter</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Använder standardljud</string>
|
||||
<string name="revanced_force_original_audio_not_available">För att använda den här funktionen, ändra strömningsförfalskning till iOS-klienttyp</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1236,6 +1236,7 @@ Bunu etkinleştirmek daha yüksek video kalitelerini açabilir"</string>
|
||||
<string name="revanced_force_original_audio_title">Orijinal sesi zorla</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Orijinal ses kullanılıyor</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Varsayılan ses kullanılıyor</string>
|
||||
<string name="revanced_force_original_audio_not_available">Bu özelliği kullanmak için, video akışı taklidi özelliğini iOS istemci türüne değiştirin</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1235,6 +1235,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_force_original_audio_title">Примусово оригінальна звукова доріжка</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Використовується оригінальна звукова доріжка відео</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Використовується стандартна (регіональна) звукова доріжка відео</string>
|
||||
<string name="revanced_force_original_audio_not_available">Щоб скористатися цією функцією, змініть тип клієнта підробки відеопотоку на iOS</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1237,6 +1237,7 @@ Bật tính năng này có thể mở khóa chất lượng video cao hơn"</str
|
||||
<string name="revanced_force_original_audio_title">Buộc sử dụng âm thanh gốc</string>
|
||||
<string name="revanced_force_original_audio_summary_on">Sử dụng âm thanh gốc</string>
|
||||
<string name="revanced_force_original_audio_summary_off">Sử dụng âm thanh mặc định</string>
|
||||
<string name="revanced_force_original_audio_not_available">Để sử dụng tính năng này, hãy thay đổi kiểu khách hàng iOS cho chế độ giả mạo luồng</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -1239,6 +1239,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_force_original_audio_title">強制使用原始音訊</string>
|
||||
<string name="revanced_force_original_audio_summary_on">使用原始音訊</string>
|
||||
<string name="revanced_force_original_audio_summary_off">使用預設音訊</string>
|
||||
<string name="revanced_force_original_audio_not_available">如欲使用此功能,請變更串流欺騙至 iOS 客戶端類型</string>
|
||||
</patch>
|
||||
<patch id="video.quality.rememberVideoQualityPatch">
|
||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||
|
||||
@@ -148,6 +148,21 @@
|
||||
<item>17.33.42</item>
|
||||
</string-array>
|
||||
</patch>
|
||||
<patch id="layout.player.fullscreen.exitFullscreenPatch">
|
||||
<string-array name="revanced_exit_fullscreen_entries">
|
||||
<item>@string/revanced_exit_fullscreen_entry_1</item>
|
||||
<item>@string/revanced_exit_fullscreen_entry_2</item>
|
||||
<item>@string/revanced_exit_fullscreen_entry_3</item>
|
||||
<item>@string/revanced_exit_fullscreen_entry_4</item>
|
||||
</string-array>
|
||||
<string-array name="revanced_exit_fullscreen_entry_values">
|
||||
<!-- Enum names from the extension. -->
|
||||
<item>DISABLED</item>
|
||||
<item>PORTRAIT</item>
|
||||
<item>LANDSCAPE</item>
|
||||
<item>PORTRAIT_LANDSCAPE</item>
|
||||
</string-array>
|
||||
</patch>
|
||||
<patch id="layout.miniplayer.miniplayerPatch">
|
||||
<string-array name="revanced_miniplayer_type_entries">
|
||||
<item>@string/revanced_miniplayer_type_entry_0</item>
|
||||
|
||||
@@ -449,6 +449,9 @@ This feature is only available for older devices"</string>
|
||||
<string name="revanced_swipe_overlay_background_alpha_summary">The visibility of swipe overlay background</string>
|
||||
<string name="revanced_swipe_threshold_title">Swipe magnitude threshold</string>
|
||||
<string name="revanced_swipe_threshold_summary">The amount of threshold for swipe to occur</string>
|
||||
<string name="revanced_swipe_change_video_title">Enable swipe to change videos</string>
|
||||
<string name="revanced_swipe_change_video_summary_on">Swiping in fullscreen mode will change to the next/previous video</string>
|
||||
<string name="revanced_swipe_change_video_summary_off">Swiping in fullscreen mode will not change to the next/previous video</string>
|
||||
</patch>
|
||||
<patch id="layout.autocaptions.autoCaptionsPatch">
|
||||
<string name="revanced_auto_captions_title">Disable auto captions</string>
|
||||
@@ -745,6 +748,13 @@ Note: Enabling this also forcibly hides video ads"</string>
|
||||
<string name="revanced_hide_player_popup_panels_summary_on">Player popup panels are hidden</string>
|
||||
<string name="revanced_hide_player_popup_panels_summary_off">Player popup panels are shown</string>
|
||||
</patch>
|
||||
<patch id="layout.player.fullscreen.exitFullscreenPatch">
|
||||
<string name="revanced_exit_fullscreen_title">Exit fullscreen mode at end of video</string>
|
||||
<string name="revanced_exit_fullscreen_entry_1">Disabled</string>
|
||||
<string name="revanced_exit_fullscreen_entry_2">Portrait</string>
|
||||
<string name="revanced_exit_fullscreen_entry_3">Landscape</string>
|
||||
<string name="revanced_exit_fullscreen_entry_4">Portrait and landscape</string>
|
||||
</patch>
|
||||
<patch id="layout.player.fullscreen.openVideosFullscreen">
|
||||
<string name="revanced_open_videos_fullscreen_portrait_title">Open videos in fullscreen portrait</string>
|
||||
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videos open fullscreen</string>
|
||||
|
||||
Reference in New Issue
Block a user