mirror of
https://github.com/revanced/revanced-patches.git
synced 2025-12-25 18:34:07 +01:00
Compare commits
8 Commits
v5.12.0-de
...
v5.12.0-de
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
39a0b9bda6 | ||
|
|
92c38b2cb4 | ||
|
|
4732210d4b | ||
|
|
f30a49f1cb | ||
|
|
bcd157dd2b | ||
|
|
d299ea5973 | ||
|
|
a20021e290 | ||
|
|
373ca966f3 |
14
CHANGELOG.md
14
CHANGELOG.md
@@ -1,3 +1,17 @@
|
||||
# [5.12.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.12.0-dev.4...v5.12.0-dev.5) (2025-02-13)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **YouTube:** Remove obsolete 18.x targets ([#4454](https://github.com/ReVanced/revanced-patches/issues/4454)) ([a006758](https://github.com/ReVanced/revanced-patches/commit/a0067581d0f877e1b4eb1f888a25786f09676b2e))
|
||||
|
||||
# [5.12.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.12.0-dev.3...v5.12.0-dev.4) (2025-02-11)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **YouTube Music:** Support version `8.05.50` ([#4439](https://github.com/ReVanced/revanced-patches/issues/4439)) ([b31fed9](https://github.com/ReVanced/revanced-patches/commit/b31fed98901fcda1bce6f05eb0de63280c689fa0))
|
||||
|
||||
# [5.12.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.12.0-dev.2...v5.12.0-dev.3) (2025-02-11)
|
||||
|
||||
|
||||
|
||||
@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
|
||||
org.gradle.parallel = true
|
||||
android.useAndroidX = true
|
||||
kotlin.code.style = official
|
||||
version = 5.12.0-dev.3
|
||||
version = 5.12.0-dev.5
|
||||
|
||||
@@ -3,7 +3,6 @@ revanced-patcher = "21.0.0"
|
||||
# Tracking https://github.com/google/smali/issues/64.
|
||||
#noinspection GradleDependency
|
||||
smali = "3.0.5"
|
||||
gson = "2.11.0"
|
||||
# 8.3.0 causes java verifier error: https://github.com/ReVanced/revanced-patches/issues/2818.
|
||||
#noinspection GradleDependency
|
||||
agp = "8.2.2"
|
||||
@@ -11,10 +10,9 @@ annotation = "1.9.1"
|
||||
appcompat = "1.7.0"
|
||||
okhttp = "5.0.0-alpha.14"
|
||||
retrofit = "2.11.0"
|
||||
guava = "33.2.1-jre"
|
||||
guava = "33.4.0-jre"
|
||||
|
||||
[libraries]
|
||||
gson = { module = "com.google.code.gson:gson", version.ref = "gson" }
|
||||
annotation = { module = "androidx.annotation:annotation", version.ref = "annotation" }
|
||||
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
|
||||
okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
|
||||
|
||||
@@ -13,8 +13,6 @@ patches {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// Used by JsonGenerator.
|
||||
implementation(libs.gson)
|
||||
// Required due to smali, or build fails. Can be removed once smali is bumped.
|
||||
implementation(libs.guava)
|
||||
// Android API stubs defined here.
|
||||
|
||||
@@ -8,7 +8,12 @@ val hideVideoAdsPatch = bytecodePatch(
|
||||
name = "Hide music video ads",
|
||||
description = "Hides ads that appear while listening to or streaming music videos, podcasts, or songs.",
|
||||
) {
|
||||
compatibleWith("com.google.android.apps.youtube.music")
|
||||
compatibleWith(
|
||||
"com.google.android.apps.youtube.music"(
|
||||
"7.16.53",
|
||||
"8.05.50"
|
||||
)
|
||||
)
|
||||
|
||||
execute {
|
||||
navigate(showVideoAdsParentFingerprint.originalMethod)
|
||||
|
||||
@@ -1,24 +1,21 @@
|
||||
package app.revanced.patches.music.audio.exclusiveaudio
|
||||
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
|
||||
import app.revanced.patcher.patch.bytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
val enableExclusiveAudioPlaybackPatch = bytecodePatch(
|
||||
name = "Enable exclusive audio playback",
|
||||
description = "Enables the option to play audio without video.",
|
||||
) {
|
||||
compatibleWith("com.google.android.apps.youtube.music")
|
||||
compatibleWith(
|
||||
"com.google.android.apps.youtube.music"(
|
||||
"7.16.53",
|
||||
"8.05.50"
|
||||
)
|
||||
)
|
||||
|
||||
execute {
|
||||
allowExclusiveAudioPlaybackFingerprint.method.apply {
|
||||
addInstructions(
|
||||
0,
|
||||
"""
|
||||
const/4 v0, 0x1
|
||||
return v0
|
||||
""",
|
||||
)
|
||||
}
|
||||
allowExclusiveAudioPlaybackFingerprint.method.returnEarly(true)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,16 +9,15 @@ internal val allowExclusiveAudioPlaybackFingerprint = fingerprint {
|
||||
returns("Z")
|
||||
parameters()
|
||||
opcodes(
|
||||
Opcode.INVOKE_INTERFACE,
|
||||
Opcode.MOVE_RESULT_OBJECT,
|
||||
Opcode.IGET_OBJECT,
|
||||
Opcode.INVOKE_VIRTUAL,
|
||||
Opcode.MOVE_RESULT_OBJECT,
|
||||
Opcode.CHECK_CAST,
|
||||
Opcode.IF_NEZ,
|
||||
Opcode.IGET_OBJECT,
|
||||
Opcode.INVOKE_VIRTUAL,
|
||||
Opcode.MOVE_RESULT,
|
||||
Opcode.GOTO,
|
||||
Opcode.INVOKE_VIRTUAL,
|
||||
Opcode.MOVE_RESULT,
|
||||
Opcode.RETURN
|
||||
Opcode.MOVE_RESULT
|
||||
)
|
||||
}
|
||||
@@ -11,10 +11,14 @@ val permanentRepeatPatch = bytecodePatch(
|
||||
description = "Permanently remember your repeating preference even if the playlist ends or another track is played.",
|
||||
use = false,
|
||||
) {
|
||||
compatibleWith("com.google.android.apps.youtube.music")
|
||||
compatibleWith(
|
||||
"com.google.android.apps.youtube.music"(
|
||||
"7.16.53",
|
||||
"8.05.50"
|
||||
)
|
||||
)
|
||||
|
||||
execute {
|
||||
|
||||
val startIndex = repeatTrackFingerprint.patternMatch!!.endIndex
|
||||
val repeatIndex = startIndex + 1
|
||||
|
||||
|
||||
@@ -11,7 +11,12 @@ val hideCategoryBar = bytecodePatch(
|
||||
description = "Hides the category bar at the top of the homepage.",
|
||||
use = false,
|
||||
) {
|
||||
compatibleWith("com.google.android.apps.youtube.music")
|
||||
compatibleWith(
|
||||
"com.google.android.apps.youtube.music"(
|
||||
"7.16.53",
|
||||
"8.05.50"
|
||||
)
|
||||
)
|
||||
|
||||
execute {
|
||||
constructCategoryBarFingerprint.method.apply {
|
||||
|
||||
@@ -11,7 +11,12 @@ val hideGetPremiumPatch = bytecodePatch(
|
||||
name = "Hide 'Get Music Premium' label",
|
||||
description = "Hides the \"Get Music Premium\" label from the account menu and settings.",
|
||||
) {
|
||||
compatibleWith("com.google.android.apps.youtube.music")
|
||||
compatibleWith(
|
||||
"com.google.android.apps.youtube.music"(
|
||||
"7.16.53",
|
||||
"8.05.50"
|
||||
)
|
||||
)
|
||||
|
||||
execute {
|
||||
hideGetPremiumFingerprint.method.apply {
|
||||
|
||||
@@ -18,7 +18,12 @@ val removeUpgradeButtonPatch = bytecodePatch(
|
||||
name = "Remove upgrade button",
|
||||
description = "Removes the upgrade tab from the pivot bar.",
|
||||
) {
|
||||
compatibleWith("com.google.android.apps.youtube.music")
|
||||
compatibleWith(
|
||||
"com.google.android.apps.youtube.music"(
|
||||
"7.16.53",
|
||||
"8.05.50"
|
||||
)
|
||||
)
|
||||
|
||||
execute {
|
||||
pivotBarConstructorFingerprint.method.apply {
|
||||
|
||||
@@ -8,7 +8,12 @@ val bypassCertificateChecksPatch = bytecodePatch(
|
||||
name = "Bypass certificate checks",
|
||||
description = "Bypasses certificate checks which prevent YouTube Music from working on Android Auto.",
|
||||
) {
|
||||
compatibleWith("com.google.android.apps.youtube.music"("7.29.52"))
|
||||
compatibleWith(
|
||||
"com.google.android.apps.youtube.music"(
|
||||
"7.16.53",
|
||||
"8.05.50"
|
||||
)
|
||||
)
|
||||
|
||||
execute {
|
||||
checkCertificateFingerprint.method.returnEarly(true)
|
||||
|
||||
@@ -4,8 +4,10 @@ import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val checkCertificateFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("Z")
|
||||
parameters("Ljava/lang/String;")
|
||||
strings("X509", "Failed to get certificate.")
|
||||
strings(
|
||||
"X509",
|
||||
"Failed to get certificate" // Partial String match.
|
||||
)
|
||||
}
|
||||
@@ -8,7 +8,12 @@ val backgroundPlaybackPatch = bytecodePatch(
|
||||
name = "Remove background playback restrictions",
|
||||
description = "Removes restrictions on background playback, including playing kids videos in the background.",
|
||||
) {
|
||||
compatibleWith("com.google.android.apps.youtube.music")
|
||||
compatibleWith(
|
||||
"com.google.android.apps.youtube.music"(
|
||||
"7.16.53",
|
||||
"8.05.50"
|
||||
)
|
||||
)
|
||||
|
||||
execute {
|
||||
kidsBackgroundPlaybackPolicyControllerFingerprint.method.addInstruction(
|
||||
|
||||
@@ -25,7 +25,12 @@ val spoofClientPatch = bytecodePatch(
|
||||
name = "Spoof client",
|
||||
description = "Spoofs the client to fix playback.",
|
||||
) {
|
||||
compatibleWith("com.google.android.apps.youtube.music")
|
||||
compatibleWith(
|
||||
"com.google.android.apps.youtube.music"(
|
||||
"7.16.53",
|
||||
"8.05.50"
|
||||
)
|
||||
)
|
||||
|
||||
dependsOn(
|
||||
sharedExtensionPatch,
|
||||
|
||||
@@ -78,8 +78,6 @@ val hideAdsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -25,8 +25,6 @@ val hideGetPremiumPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -23,8 +23,6 @@ val videoAdsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -53,8 +53,6 @@ val copyVideoUrlPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -24,8 +24,6 @@ val removeViewerDiscretionDialogPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -68,8 +68,6 @@ val downloadsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -23,8 +23,6 @@ val disablePreciseSeekingGesturePatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -26,8 +26,6 @@ val enableSeekbarTappingPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
// 18.38.44 patches but crashes on startup.
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -35,7 +35,6 @@ val enableSlideToSeekPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -19,7 +19,7 @@ private const val EXTENSION_CLASS_DESCRIPTOR =
|
||||
val seekbarThumbnailsPatch = bytecodePatch(
|
||||
name = "Seekbar thumbnails",
|
||||
description = "Adds an option to use high quality fullscreen seekbar thumbnails. " +
|
||||
"Patching 19.16.39 or lower adds an option to restore old seekbar thumbnails.",
|
||||
"Patching 19.16.39 adds an option to restore old seekbar thumbnails.",
|
||||
) {
|
||||
dependsOn(
|
||||
sharedExtensionPatch,
|
||||
@@ -29,8 +29,6 @@ val seekbarThumbnailsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -74,8 +74,6 @@ val swipeControlsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -22,8 +22,6 @@ val autoCaptionsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -43,8 +43,6 @@ val customBrandingPatch = resourcePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -41,8 +41,6 @@ val changeHeaderPatch = resourcePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -22,8 +22,6 @@ val hideButtonsPatch = resourcePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -40,8 +40,6 @@ val navigationButtonsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -54,8 +54,6 @@ val hidePlayerOverlayButtonsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -30,8 +30,6 @@ val changeFormFactorPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -56,8 +56,6 @@ val hideEndscreenCardsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -29,8 +29,6 @@ val disableFullscreenAmbientModePatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -125,8 +125,6 @@ val hideLayoutComponentsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -57,8 +57,6 @@ val hideInfoCardsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -24,8 +24,6 @@ val hidePlayerFlyoutMenuPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -29,8 +29,6 @@ val disableRollingNumberAnimationPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
// 18.43 is the earliest target this patch works.
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -25,8 +25,6 @@ val hideSeekbarPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -30,12 +30,6 @@ internal val createShortsButtonsFingerprint = fingerprint {
|
||||
literal { reelPlayerRightCellButtonHeight }
|
||||
}
|
||||
|
||||
internal val reelConstructorFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
|
||||
opcodes(Opcode.INVOKE_VIRTUAL)
|
||||
literal { reelMultipleItemShelfId }
|
||||
}
|
||||
|
||||
internal val renderBottomNavigationBarFingerprint = fingerprint {
|
||||
returns("V")
|
||||
parameters("Ljava/lang/String;")
|
||||
|
||||
@@ -18,7 +18,6 @@ import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
|
||||
import app.revanced.patches.youtube.misc.litho.filter.addLithoFilter
|
||||
import app.revanced.patches.youtube.misc.litho.filter.lithoFilterPatch
|
||||
import app.revanced.patches.youtube.misc.navigation.navigationBarHookPatch
|
||||
import app.revanced.patches.youtube.misc.playservice.is_19_03_or_greater
|
||||
import app.revanced.patches.youtube.misc.playservice.is_19_41_or_greater
|
||||
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
|
||||
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
|
||||
@@ -27,11 +26,8 @@ import app.revanced.util.*
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
||||
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
||||
|
||||
internal var reelMultipleItemShelfId = -1L
|
||||
private set
|
||||
internal var reelPlayerRightCellButtonHeight = -1L
|
||||
private set
|
||||
internal var bottomBarContainer = -1L
|
||||
@@ -155,13 +151,6 @@ private val hideShortsComponentsResourcePatch = resourcePatch {
|
||||
"dimen",
|
||||
"reel_player_right_pivot_v2_size",
|
||||
]
|
||||
|
||||
if (!is_19_03_or_greater) {
|
||||
reelMultipleItemShelfId = resourceMappings[
|
||||
"dimen",
|
||||
"reel_player_right_cell_button_height",
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,8 +172,6 @@ val hideShortsComponentsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
@@ -199,25 +186,6 @@ val hideShortsComponentsPatch = bytecodePatch(
|
||||
hideShortsWidgetOption()
|
||||
|
||||
execute {
|
||||
// region Hide the Shorts shelf.
|
||||
|
||||
// This patch point is not present in 19.03.x and greater.
|
||||
if (!is_19_03_or_greater && reelConstructorFingerprint.methodOrNull != null) {
|
||||
reelConstructorFingerprint.method.apply {
|
||||
val insertIndex = reelConstructorFingerprint.patternMatch!!.startIndex + 2
|
||||
val viewRegister = getInstruction<TwoRegisterInstruction>(insertIndex).registerA
|
||||
|
||||
injectHideViewCall(
|
||||
insertIndex,
|
||||
viewRegister,
|
||||
FILTER_CLASS_DESCRIPTOR,
|
||||
"hideShortsShelf",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// endregion
|
||||
|
||||
// region Hide the Shorts buttons in older versions of YouTube.
|
||||
|
||||
// Some Shorts buttons are views, hide them by setting their visibility to GONE.
|
||||
|
||||
@@ -54,8 +54,6 @@ val disableSuggestedVideoEndScreenPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -21,8 +21,6 @@ val hideTimestampPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -79,53 +79,52 @@ private val miniplayerResourcePatch = resourcePatch {
|
||||
"player_overlays",
|
||||
]
|
||||
|
||||
if (is_19_16_or_greater) {
|
||||
modernMiniplayerClose = resourceMappings[
|
||||
"id",
|
||||
"modern_miniplayer_close",
|
||||
|
||||
modernMiniplayerClose = resourceMappings[
|
||||
"id",
|
||||
"modern_miniplayer_close",
|
||||
]
|
||||
|
||||
modernMiniplayerExpand = resourceMappings[
|
||||
"id",
|
||||
"modern_miniplayer_expand",
|
||||
]
|
||||
|
||||
modernMiniplayerRewindButton = resourceMappings[
|
||||
"id",
|
||||
"modern_miniplayer_rewind_button",
|
||||
]
|
||||
|
||||
modernMiniplayerForwardButton = resourceMappings[
|
||||
"id",
|
||||
"modern_miniplayer_forward_button",
|
||||
]
|
||||
|
||||
// Resource id is not used during patching, but is used by extension.
|
||||
// Verify the resource is present while patching.
|
||||
resourceMappings[
|
||||
"id",
|
||||
"modern_miniplayer_subtitle_text",
|
||||
]
|
||||
|
||||
// Only required for exactly 19.16
|
||||
if (!is_19_17_or_greater) {
|
||||
ytOutlinePictureInPictureWhite24 = resourceMappings[
|
||||
"drawable",
|
||||
"yt_outline_picture_in_picture_white_24",
|
||||
]
|
||||
|
||||
modernMiniplayerExpand = resourceMappings[
|
||||
"id",
|
||||
"modern_miniplayer_expand",
|
||||
ytOutlineXWhite24 = resourceMappings[
|
||||
"drawable",
|
||||
"yt_outline_x_white_24",
|
||||
]
|
||||
}
|
||||
|
||||
modernMiniplayerRewindButton = resourceMappings[
|
||||
"id",
|
||||
"modern_miniplayer_rewind_button",
|
||||
if (is_19_26_or_greater) {
|
||||
miniplayerMaxSize = resourceMappings[
|
||||
"dimen",
|
||||
"miniplayer_max_size",
|
||||
]
|
||||
|
||||
modernMiniplayerForwardButton = resourceMappings[
|
||||
"id",
|
||||
"modern_miniplayer_forward_button",
|
||||
]
|
||||
|
||||
// Resource id is not used during patching, but is used by extension.
|
||||
// Verify the resource is present while patching.
|
||||
resourceMappings[
|
||||
"id",
|
||||
"modern_miniplayer_subtitle_text",
|
||||
]
|
||||
|
||||
// Only required for exactly 19.16
|
||||
if (!is_19_17_or_greater) {
|
||||
ytOutlinePictureInPictureWhite24 = resourceMappings[
|
||||
"drawable",
|
||||
"yt_outline_picture_in_picture_white_24",
|
||||
]
|
||||
|
||||
ytOutlineXWhite24 = resourceMappings[
|
||||
"drawable",
|
||||
"yt_outline_x_white_24",
|
||||
]
|
||||
}
|
||||
|
||||
if (is_19_26_or_greater) {
|
||||
miniplayerMaxSize = resourceMappings[
|
||||
"dimen",
|
||||
"miniplayer_max_size",
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -146,9 +145,6 @@ val miniplayerPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
// 18.49.37 // Could be supported, but no reason when 19.16 exists and has modern types.
|
||||
// 19.14.43 // Incomplete code for modern miniplayers.
|
||||
// 19.15.36 // Different code for handling subtitle texts and not worth supporting.
|
||||
"19.16.39", // First with modern miniplayers.
|
||||
// 19.17.41 // Works without issues, but no reason to recommend over 19.16.
|
||||
// 19.18.41 // Works without issues, but no reason to recommend over 19.16.
|
||||
|
||||
@@ -21,8 +21,6 @@ val playerPopupPanelsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -12,8 +12,6 @@ val playerControlsBackgroundPatch = resourcePatch(
|
||||
) {
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -21,8 +21,6 @@ internal val exitFullscreenPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -52,8 +52,6 @@ val customPlayerOverlayOpacityPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -54,7 +54,6 @@ val returnYouTubeDislikePatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -29,8 +29,6 @@ val wideSearchbarPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -33,7 +33,6 @@ val shortsAutoplayPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -41,8 +41,6 @@ val openShortsInRegularPlayerPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -106,8 +106,6 @@ val sponsorBlockPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -21,7 +21,7 @@ val spoofAppVersionPatch = bytecodePatch(
|
||||
name = "Spoof app version",
|
||||
description = "Adds an option to trick YouTube into thinking you are running an older version of the app. " +
|
||||
"This can be used to restore old UI elements and features. " +
|
||||
"Patching 19.16.39 or lower includes additional older spoofing targets.",
|
||||
"Patching 19.16.39 includes additional older spoofing targets.",
|
||||
) {
|
||||
dependsOn(
|
||||
sharedExtensionPatch,
|
||||
@@ -32,8 +32,6 @@ val spoofAppVersionPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
// "19.25.37", // Cannot be supported because the lowest spoof target is higher.
|
||||
// "19.34.42", // Cannot be supported because the lowest spoof target is higher.
|
||||
|
||||
@@ -29,8 +29,6 @@ val changeStartPagePatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -31,8 +31,6 @@ val disableResumingShortsOnStartupPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -208,8 +208,6 @@ val themePatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -33,8 +33,6 @@ val alternativeThumbnailsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -27,8 +27,6 @@ val bypassImageRegionRestrictionsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -23,8 +23,6 @@ val announcementsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -24,8 +24,6 @@ val autoRepeatPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -48,8 +48,6 @@ val backgroundPlaybackPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -8,7 +8,6 @@ import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPref
|
||||
import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPreference.Sorting
|
||||
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
|
||||
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
|
||||
import app.revanced.patches.youtube.misc.playservice.is_19_16_or_greater
|
||||
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
|
||||
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
|
||||
import app.revanced.patches.youtube.misc.settings.settingsPatch
|
||||
@@ -32,8 +31,6 @@ val enableDebuggingPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
@@ -95,22 +92,21 @@ val enableDebuggingPatch = bytecodePatch(
|
||||
)
|
||||
}
|
||||
|
||||
if (is_19_16_or_greater) {
|
||||
experimentalLongFeatureFlagFingerprint.match(
|
||||
experimentalFeatureFlagParentFingerprint.originalClassDef
|
||||
).method.apply {
|
||||
val insertIndex = indexOfFirstInstructionOrThrow(Opcode.MOVE_RESULT_WIDE)
|
||||
|
||||
addInstructions(
|
||||
insertIndex,
|
||||
"""
|
||||
move-result-wide v0
|
||||
invoke-static/range { v0 .. v5 }, $EXTENSION_CLASS_DESCRIPTOR->isLongFeatureFlagEnabled(JJJ)J
|
||||
move-result-wide v0
|
||||
return-wide v0
|
||||
"""
|
||||
)
|
||||
}
|
||||
experimentalLongFeatureFlagFingerprint.match(
|
||||
experimentalFeatureFlagParentFingerprint.originalClassDef
|
||||
).method.apply {
|
||||
val insertIndex = indexOfFirstInstructionOrThrow(Opcode.MOVE_RESULT_WIDE)
|
||||
|
||||
addInstructions(
|
||||
insertIndex,
|
||||
"""
|
||||
move-result-wide v0
|
||||
invoke-static/range { v0 .. v5 }, $EXTENSION_CLASS_DESCRIPTOR->isLongFeatureFlagEnabled(JJJ)J
|
||||
move-result-wide v0
|
||||
return-wide v0
|
||||
"""
|
||||
)
|
||||
|
||||
experimentalStringFeatureFlagFingerprint.match(
|
||||
experimentalFeatureFlagParentFingerprint.originalClassDef
|
||||
|
||||
@@ -24,8 +24,6 @@ val spoofDeviceDimensionsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -21,8 +21,6 @@ val checkWatchHistoryDomainNameResolutionPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -35,8 +35,6 @@ val gmsCoreSupportPatch = gmsCoreSupportPatch(
|
||||
|
||||
compatibleWith(
|
||||
YOUTUBE_PACKAGE_NAME(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -30,8 +30,6 @@ val bypassURLRedirectsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -41,8 +41,6 @@ val openLinksExternallyPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -5,10 +5,13 @@ package app.revanced.patches.youtube.misc.playservice
|
||||
import app.revanced.patcher.patch.resourcePatch
|
||||
import app.revanced.util.findElementByAttributeValueOrThrow
|
||||
|
||||
@Deprecated("19.16.39 is the lowest supported version")
|
||||
var is_19_03_or_greater = false
|
||||
private set
|
||||
@Deprecated("19.16.39 is the lowest supported version")
|
||||
var is_19_04_or_greater = false
|
||||
private set
|
||||
@Deprecated("19.16.39 is the lowest supported version")
|
||||
var is_19_16_or_greater = false
|
||||
private set
|
||||
var is_19_17_or_greater = false
|
||||
|
||||
@@ -30,8 +30,6 @@ val removeTrackingQueryParameterPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -19,7 +19,6 @@ import app.revanced.patches.shared.misc.settings.settingsPatch
|
||||
import app.revanced.patches.youtube.misc.check.checkEnvironmentPatch
|
||||
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
|
||||
import app.revanced.patches.youtube.misc.fix.playbackspeed.fixPlaybackSpeedWhilePlayingPatch
|
||||
import app.revanced.patches.youtube.misc.playservice.is_19_04_or_greater
|
||||
import app.revanced.patches.youtube.misc.playservice.is_19_34_or_greater
|
||||
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
|
||||
import app.revanced.util.*
|
||||
@@ -249,13 +248,10 @@ val settingsPatch = bytecodePatch(
|
||||
}
|
||||
|
||||
// Add setting to force cairo settings fragment on/off.
|
||||
if (is_19_04_or_greater) {
|
||||
cairoFragmentConfigFingerprint.method.insertFeatureFlagBooleanOverride(
|
||||
CAIRO_CONFIG_LITERAL_VALUE,
|
||||
"$activityHookClassDescriptor->useCairoSettingsFragment(Z)Z"
|
||||
)
|
||||
}
|
||||
|
||||
cairoFragmentConfigFingerprint.method.insertFeatureFlagBooleanOverride(
|
||||
CAIRO_CONFIG_LITERAL_VALUE,
|
||||
"$activityHookClassDescriptor->useCairoSettingsFragment(Z)Z"
|
||||
)
|
||||
}
|
||||
|
||||
finalize {
|
||||
|
||||
@@ -12,8 +12,6 @@ import app.revanced.patches.youtube.misc.settings.settingsPatch
|
||||
val spoofVideoStreamsPatch = spoofVideoStreamsPatch({
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -21,8 +21,6 @@ val zoomHapticsPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -41,8 +41,6 @@ val forceOriginalAudioPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -28,8 +28,6 @@ val disableHdrPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -35,8 +35,6 @@ val rememberVideoQualityPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -19,8 +19,6 @@ val playbackSpeedPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -74,8 +74,6 @@ val restoreOldVideoQualityMenuPatch = bytecodePatch(
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.youtube"(
|
||||
"18.38.44",
|
||||
"18.49.37",
|
||||
"19.16.39",
|
||||
"19.25.37",
|
||||
"19.34.42",
|
||||
|
||||
@@ -852,9 +852,9 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_ryd_compact_layout_title">مقاس زر أعجبني</string>
|
||||
<string name="revanced_ryd_compact_layout_summary_on">زر أعجبني مصمم لأدنى عرض</string>
|
||||
<string name="revanced_ryd_compact_layout_summary_off">زر أعجبني مصمم لأفضل مظهر</string>
|
||||
<string name="revanced_ryd_estimated_like_title">إظهار الإعجابات المقدرة</string>
|
||||
<string name="revanced_ryd_estimated_like_title">عرض الإعجابات المقدرة</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_on">يتم عرض الإعجابات المقدرة</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_off">الإعجابات المقدرة مخفية</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_off">تم إخفاء الإعجابات المقدرة</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_title">عرض ملاحظة إذا كان API غير متاح</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_summary_on">يتم عرض الملاحظة في حالة عدم توفر Return YouTube Dislike</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_summary_off">لا يتم عرض الملاحظة في حالة عدم توفر Return YouTube Dislike</string>
|
||||
@@ -905,9 +905,9 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_sb_enable_voting">عرض زر التصويت</string>
|
||||
<string name="revanced_sb_enable_voting_sum_on">يتم عرض زر التصويت على المقطع</string>
|
||||
<string name="revanced_sb_enable_voting_sum_off">لا يتم عرض زر التصويت على المقطع</string>
|
||||
<string name="revanced_sb_square_layout">استخدام تصميم مربع</string>
|
||||
<string name="revanced_sb_square_layout_sum_on">الأزرار وعناصر التحكم مربعة</string>
|
||||
<string name="revanced_sb_square_layout_sum_off">الأزرار وعناصر التحكم مستديرة</string>
|
||||
<string name="revanced_sb_square_layout">استخدام التخطيط المربع</string>
|
||||
<string name="revanced_sb_square_layout_sum_on">الأزرار وعناصر التحكم مربعة الشكل</string>
|
||||
<string name="revanced_sb_square_layout_sum_off">الأزرار وعناصر التحكم مدورة الشكل</string>
|
||||
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
|
||||
<string name="revanced_sb_enable_compact_skip_button">استخدام زر التخطي المُصَغَّر</string>
|
||||
<string name="revanced_sb_enable_compact_skip_button_sum_on">زر التخطي مصمم لأدنى عرض</string>
|
||||
@@ -1134,11 +1134,11 @@ Second \"item\" text"</string>
|
||||
<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_all_subscriptions">الاشتراكات كلها</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>
|
||||
<string name="revanced_change_start_page_entry_explore">استكشف</string>
|
||||
<string name="revanced_change_start_page_entry_fashion">Fashion & Beauty</string>
|
||||
<string name="revanced_change_start_page_entry_fashion">الموضة & التجميل</string>
|
||||
<string name="revanced_change_start_page_entry_gaming">ألعاب</string>
|
||||
<string name="revanced_change_start_page_entry_history">السّجل</string>
|
||||
<string name="revanced_change_start_page_entry_library">المكتبة</string>
|
||||
@@ -1148,15 +1148,15 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_change_start_page_entry_music">الموسيقى</string>
|
||||
<string name="revanced_change_start_page_entry_news">الأخبار</string>
|
||||
<string name="revanced_change_start_page_entry_notifications">الإشعارات</string>
|
||||
<string name="revanced_change_start_page_entry_playlists">قائمة التشغيل</string>
|
||||
<string name="revanced_change_start_page_entry_playlists">قوائم التشغيل</string>
|
||||
<string name="revanced_change_start_page_entry_search">البحث</string>
|
||||
<string name="revanced_change_start_page_entry_shopping">تسوق</string>
|
||||
<string name="revanced_change_start_page_entry_sports">الرياضة</string>
|
||||
<string name="revanced_change_start_page_entry_subscriptions">الاشتراكات</string>
|
||||
<string name="revanced_change_start_page_entry_trending">المحتوى الرائج</string>
|
||||
<string name="revanced_change_start_page_entry_virtual_reality">الوقاع الاتراضي</string>
|
||||
<string name="revanced_change_start_page_entry_virtual_reality">الواقع الافتراضي</string>
|
||||
<string name="revanced_change_start_page_entry_watch_later">شاهد لاحقًا</string>
|
||||
<string name="revanced_change_start_page_entry_your_clips">كليباتك</string>
|
||||
<string name="revanced_change_start_page_entry_your_clips">فيديوهاتك</string>
|
||||
</patch>
|
||||
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
|
||||
<string name="revanced_disable_resuming_shorts_player_title">تعطيل استئناف مشغل Shorts</string>
|
||||
|
||||
@@ -836,6 +836,7 @@ Qeyd: Bunu aktivləşdirmə video reklamları da məcburi olaraq gizlədir"</str
|
||||
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
|
||||
<string name="revanced_ryd_failure_ryd_enabled_while_playing_video_then_user_voted">Ryd ilə səsvermə üçün videonu yenidən yüklə</string>
|
||||
<!-- Video likes have been set to hidden by the video uploader. -->
|
||||
<string name="revanced_ryd_video_likes_hidden_by_video_owner">Sahib tərəfindən gizlədilib</string>
|
||||
<string name="revanced_ryd_enable_summary_on">Bəyənməmələr göstərilir</string>
|
||||
<string name="revanced_ryd_enable_summary_off">Bəyənməmələr göstərilmir</string>
|
||||
<string name="revanced_ryd_shorts_title">\"Shorts\"da bəyənməmə sayını göstər</string>
|
||||
@@ -851,6 +852,9 @@ Məhdudiyyət: Bəyənməmələr gizli rejimdə görünmür"</string>
|
||||
<string name="revanced_ryd_compact_layout_title">Yığcam Bəyən Düyməsi</string>
|
||||
<string name="revanced_ryd_compact_layout_summary_on">Daha kiçik en üçün hazırlanmış Bəyən düyməsi</string>
|
||||
<string name="revanced_ryd_compact_layout_summary_off">Ən yaxşı görünüş üçün tərtib edilmiş Bəyən düyməsi</string>
|
||||
<string name="revanced_ryd_estimated_like_title">Təxmini bəyənmələri göstər</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_on">Təxmini bəyənmələr göstərilir</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_off">Təxmini bəyənmələr gizlədilir</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_title">API əlçatan deyilsə ani bildiriş göstər</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_summary_on">Return YouTube Dislike əlçatan deyilsə ani bildiriş göstər</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_summary_off">Return YouTube Dislike əlçatan deyilsə ani bildiriş göstərmə</string>
|
||||
@@ -901,6 +905,9 @@ Bu funksiya 720p və ya daha aşağı video keyfiyyəti ilə və çox sürətli
|
||||
<string name="revanced_sb_enable_voting">Səsvermə düyməsini göstər</string>
|
||||
<string name="revanced_sb_enable_voting_sum_on">Bölümə səsvermə düyməsi göstərilir</string>
|
||||
<string name="revanced_sb_enable_voting_sum_off">Bölümə səsvermə düyməsi göstərilmir</string>
|
||||
<string name="revanced_sb_square_layout">Kvadrat düzümü istifadə et</string>
|
||||
<string name="revanced_sb_square_layout_sum_on">Düymələr və idarəedicilər kvadratdır </string>
|
||||
<string name="revanced_sb_square_layout_sum_off">Düymələr və idarəedicilər dairəvidir</string>
|
||||
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
|
||||
<string name="revanced_sb_enable_compact_skip_button">Yığcam ötürmə düyməsini istifadə et</string>
|
||||
<string name="revanced_sb_enable_compact_skip_button_sum_on">Ən kiçik en üçün hazırlanmış ötürmə düyməsi</string>
|
||||
|
||||
@@ -23,20 +23,20 @@ Second \"item\" text"</string>
|
||||
<app id="shared">
|
||||
<patch id="misc.checks.checkEnvironmentPatch">
|
||||
<string name="revanced_check_environment_failed_title">Überprüfung fehlgeschlagen</string>
|
||||
<string name="revanced_check_environment_dialog_open_official_source_button">Offizielle Webseite öffnen</string>
|
||||
<string name="revanced_check_environment_dialog_open_official_source_button">Offizielle Website öffnen</string>
|
||||
<string name="revanced_check_environment_dialog_ignore_button">Ignorieren</string>
|
||||
<string name="revanced_check_environment_failed_message"><h5>Diese App wurde offenbar nicht von Ihnen gepatcht.</h5><br>Diese App funktioniert möglicherweise nicht richtig, <b>könnte schädlich oder sogar gefährlich in der Verwendung sein</b>.< br><br>Diese Prüfungen deuten darauf hin, dass diese App vorab gepatcht wurde oder von jemandem bezogen wurde sonst:<br><br><small>%1$s</small><br>Es wird dringend empfohlen, <b>diese App zu deinstallieren und selbst zu patchen</b> um sicherzustellen, dass Sie eine validierte und sichere App verwenden.<p><br>Wenn Sie diese Warnung ignorieren, wird sie nur zweimal angezeigt.</string>
|
||||
<string name="revanced_check_environment_not_same_patching_device">Auf einem anderen Gerät gepatcht</string>
|
||||
<string name="revanced_check_environment_manager_not_expected_installer">Nicht durch ReVanced Manager installiert</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time">Vor mehr als 10 Minuten gepatcht</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_days">Vor %s Tagen gepatcht</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK-Erstellungsdatum ist beschädigt</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK-Build-Datum ist fehlerhaft</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Einstellungen</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Möchtest du fortfahren?</string>
|
||||
<string name="revanced_settings_reset">Zurücksetzen</string>
|
||||
<string name="revanced_settings_restart_title">Aktualisieren und Neustart</string>
|
||||
<string name="revanced_settings_restart_title">Aktualisieren und neu starten</string>
|
||||
<string name="revanced_settings_restart">Neustart</string>
|
||||
<string name="revanced_settings_import">Importieren</string>
|
||||
<string name="revanced_settings_import_copy">Kopieren</string>
|
||||
@@ -104,7 +104,7 @@ Um neue Sprachen zu übersetzen, besuchen Sie translate.revanced.app"</string>
|
||||
<!-- Settings about dialog. -->
|
||||
<string name="revanced_settings_about_links_body">Sie verwenden ReVanced-Patches Version <i>%s</i></string>
|
||||
<string name="revanced_settings_about_links_dev_header">Anmerkung</string>
|
||||
<string name="revanced_settings_about_links_dev_body">Diese Version ist eine Vorabversion und du könntest unerwartete Probleme haben</string>
|
||||
<string name="revanced_settings_about_links_dev_body">Diese Version ist eine Vorabversion, es kann zu unerwarteten Problemen kommen</string>
|
||||
<string name="revanced_settings_about_links_header">Offizielle Links</string>
|
||||
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
|
||||
and changes made here must also be made there. -->
|
||||
@@ -116,7 +116,7 @@ Um neue Sprachen zu übersetzen, besuchen Sie translate.revanced.app"</string>
|
||||
<string name="gms_core_dialog_not_whitelisted_not_allowed_in_background_message">"MicroG GmsCore hat keine Berechtigung, im Hintergrund zu laufen.
|
||||
Folgen Sie der Anleitung \"Meine App nicht beenden\" für Ihr Telefon und wenden Sie die Anweisungen auf Ihre MicroG-Installation an.
|
||||
Dies ist erforderlich, damit die App funktioniert."</string>
|
||||
<string name="gms_core_dialog_open_website_text">Webseite öffnen</string>
|
||||
<string name="gms_core_dialog_open_website_text">Website öffnen</string>
|
||||
<string name="gms_core_dialog_not_whitelisted_using_battery_optimizations_message">"Die Batterieoptimierung von MicroG GmsCore muss deaktiviert werden, um Probleme zu vermeiden.
|
||||
Die Deaktivierung der Batterieoptimierung für MicroG hat keinen negativen Einfluss auf den Batterieverbrauch.
|
||||
Tippen Sie auf die Schaltfläche \"Fortfahren\" und erlauben Sie die Optimierungsänderungen."</string>
|
||||
|
||||
@@ -838,7 +838,7 @@ Second \"item\" text"</string>
|
||||
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
|
||||
<string name="revanced_ryd_failure_ryd_enabled_while_playing_video_then_user_voted">Επαναφορτώστε το βίντεο για να ψηφίσετε χρησιμοποιώντας το Return YouTube Dislike</string>
|
||||
<!-- Video likes have been set to hidden by the video uploader. -->
|
||||
<string name="revanced_ryd_video_likes_hidden_by_video_owner">Κρυμμένα από τον κάτοχο</string>
|
||||
<string name="revanced_ryd_video_likes_hidden_by_video_owner">Κρυμμένα από τον ιδιοκτήτη</string>
|
||||
<string name="revanced_ryd_enable_summary_on">Τα «Δεν μου αρέσει» εμφανίζονται</string>
|
||||
<string name="revanced_ryd_enable_summary_off">Τα «Δεν μου αρέσει» δεν εμφανίζονται</string>
|
||||
<string name="revanced_ryd_shorts_title">Εμφάνιση στα Shorts</string>
|
||||
@@ -854,9 +854,9 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_ryd_compact_layout_title">Κουμπί «Μου αρέσει» μικρότερου στυλ</string>
|
||||
<string name="revanced_ryd_compact_layout_summary_on">Το κουμπί «Μου αρέσει» είναι διαμορφωμένο για ελάχιστο μέγεθος</string>
|
||||
<string name="revanced_ryd_compact_layout_summary_off">Το κουμπί «Μου αρέσει» είναι διαμορφωμένο για καλύτερη εμφάνιση</string>
|
||||
<string name="revanced_ryd_estimated_like_title">Εμφάνιση εκτιμώμενων επιδοκιμασιών</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_on">Εμφανίζονται οι εκτιμώμενες επιδοκιμασίες</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_off">Οι εκτιμώμενες επιδοκιμασίες είναι κρυμμένες</string>
|
||||
<string name="revanced_ryd_estimated_like_title">Εμφάνιση των εκτιμώμενων «Μου αρέσει»</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_on">Τα εκτιμώμενα «Μου αρέσει» εμφανίζονται</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_off">Τα εκτιμώμενα «Μου αρέσει» δεν εμφανίζονται</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_title">Εμφάνιση μηνύματος αν το API δεν είναι διαθέσιμο</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_summary_on">Να εμφανίζεται μήνυμα στο κάτω μέρος της οθόνης αν το Return YouTube Dislike δεν είναι διαθέσιμο</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_summary_off">Να μην εμφανίζεται μήνυμα στο κάτω μέρος της οθόνης αν το Return YouTube Dislike δεν είναι διαθέσιμο</string>
|
||||
|
||||
@@ -852,9 +852,9 @@ Limitation : Les avertissements peuvent ne pas apparaître en mode navigation p
|
||||
<string name="revanced_ryd_compact_layout_title">Bouton J\'aime compact</string>
|
||||
<string name="revanced_ryd_compact_layout_summary_on">Bouton J\'aime optimisé pour minimiser la taille</string>
|
||||
<string name="revanced_ryd_compact_layout_summary_off">Bouton J\'aime optimisé pour l\'apparence</string>
|
||||
<string name="revanced_ryd_estimated_like_title">Afficher les mentions J\'aime estimées</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_on">Les mentions J\'aime estimées sont affichées</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_off">Les mentions J\'aime estimées sont masquées</string>
|
||||
<string name="revanced_ryd_estimated_like_title">Afficher les \"J\'aime\" estimés</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_on">Les \"J\'aime\" estimés sont affichés</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_off">Les \"J\'aime\" estimés sont masqués</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_title">Afficher un message toast si l\'API n\'est pas disponible</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_summary_on">Un message toast est affiché si Return YouTube Dislike n\'est pas disponible</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_summary_off">Aucun message toast affiché si Return YouTube Dislike n\'est pas disponible</string>
|
||||
|
||||
@@ -905,8 +905,8 @@ Questa funzione funziona meglio con una qualità video di 720p o inferiore e qua
|
||||
<string name="revanced_sb_enable_voting">Mostra il pulsante di voto</string>
|
||||
<string name="revanced_sb_enable_voting_sum_on">Il pulsante di voto del segmento è visibile</string>
|
||||
<string name="revanced_sb_enable_voting_sum_off">Il pulsante di voto del segmento è nascosto</string>
|
||||
<string name="revanced_sb_square_layout">Usa layout quadrato</string>
|
||||
<string name="revanced_sb_square_layout_sum_on">Pulsanti e controlli sono quadrati</string>
|
||||
<string name="revanced_sb_square_layout">Usa layout squadrato</string>
|
||||
<string name="revanced_sb_square_layout_sum_on">Pulsanti e controlli sono squadrati</string>
|
||||
<string name="revanced_sb_square_layout_sum_off">Pulsanti e controlli sono arrotondati</string>
|
||||
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
|
||||
<string name="revanced_sb_enable_compact_skip_button">Utilizza il pulsante Salta compatto</string>
|
||||
|
||||
@@ -181,8 +181,8 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
|
||||
<string name="revanced_hide_floating_microphone_button_summary_on">플로팅 마이크 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_floating_microphone_button_summary_off">플로팅 마이크 버튼이 표시됩니다</string>
|
||||
<string name="revanced_hide_channel_watermark_title">동영상 하단에서 채널 워터마크 숨기기</string>
|
||||
<string name="revanced_hide_channel_watermark_summary_on">워터마크가 숨겨집니다</string>
|
||||
<string name="revanced_hide_channel_watermark_summary_off">워터마크가 표시됩니다</string>
|
||||
<string name="revanced_hide_channel_watermark_summary_on">채널 워터마크가 숨겨집니다</string>
|
||||
<string name="revanced_hide_channel_watermark_summary_off">채널 워터마크가 표시됩니다</string>
|
||||
<string name="revanced_hide_horizontal_shelves_title">회전형 선반 숨기기</string>
|
||||
<string name="revanced_hide_horizontal_shelves_summary_on">"다음 선반이 숨겨집니다:
|
||||
• 다시 듣기
|
||||
@@ -320,12 +320,12 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
|
||||
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">플레이어 하단에 있는 관련 동영상에서 카테고리 바가 표시됩니다</string>
|
||||
<string name="revanced_comments_screen_title">댓글</string>
|
||||
<string name="revanced_comments_screen_summary">댓글 섹션에서 구성요소가 숨기거나 표시할 수 있습니다</string>
|
||||
<string name="revanced_hide_comments_chat_summary_title">실시간 채팅에서 \'채팅 요약\' 숨기기</string>
|
||||
<string name="revanced_hide_comments_chat_summary_summary_on">\'채팅 요약\'이 숨겨집니다</string>
|
||||
<string name="revanced_hide_comments_chat_summary_summary_off">\'채팅 요약\'이 표시됩니다</string>
|
||||
<string name="revanced_hide_comments_by_members_header_title">\'회원별 댓글\' 헤더 숨기기</string>
|
||||
<string name="revanced_hide_comments_by_members_header_summary_on">\'회원별 댓글\' 헤더가 숨겨집니다</string>
|
||||
<string name="revanced_hide_comments_by_members_header_summary_off">\'회원별 댓글\' 헤더가 표시됩니다</string>
|
||||
<string name="revanced_hide_comments_chat_summary_title">실시간 채팅에서 채팅 요약 숨기기</string>
|
||||
<string name="revanced_hide_comments_chat_summary_summary_on">채팅 요약이 숨겨집니다</string>
|
||||
<string name="revanced_hide_comments_chat_summary_summary_off">채팅 요약이 표시됩니다</string>
|
||||
<string name="revanced_hide_comments_by_members_header_title">회원별 댓글 헤더 숨기기</string>
|
||||
<string name="revanced_hide_comments_by_members_header_summary_on">회원별 댓글 헤더가 숨겨집니다</string>
|
||||
<string name="revanced_hide_comments_by_members_header_summary_off">회원별 댓글 헤더가 표시됩니다</string>
|
||||
<string name="revanced_hide_comments_section_title">댓글 섹션 숨기기</string>
|
||||
<string name="revanced_hide_comments_section_summary_on">댓글 섹션이 숨겨집니다</string>
|
||||
<string name="revanced_hide_comments_section_summary_off">댓글 섹션이 표시됩니다</string>
|
||||
@@ -410,9 +410,9 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
|
||||
<string name="revanced_hide_self_sponsor_ads_title">셀프 스폰서 카드 숨기기</string>
|
||||
<string name="revanced_hide_self_sponsor_ads_summary_on">셀프 스폰서 카드가 숨겨집니다</string>
|
||||
<string name="revanced_hide_self_sponsor_ads_summary_off">셀프 스폰서 카드가 표시됩니다</string>
|
||||
<string name="revanced_hide_products_banner_title">제품 보기 배너 숨기기</string>
|
||||
<string name="revanced_hide_products_banner_summary_on">플레이어에서 제품 보기 배너가 숨겨집니다</string>
|
||||
<string name="revanced_hide_products_banner_summary_off">플레이어에서 제품 보기 배너가 표시됩니다</string>
|
||||
<string name="revanced_hide_products_banner_title">플레이어에서 제품 보기 배너 숨기기</string>
|
||||
<string name="revanced_hide_products_banner_summary_on">제품 보기 배너가 숨겨집니다</string>
|
||||
<string name="revanced_hide_products_banner_summary_off">제품 보기 배너가 표시됩니다</string>
|
||||
<string name="revanced_hide_end_screen_store_banner_title">최종 화면에서 스토어 배너 숨기기</string>
|
||||
<string name="revanced_hide_end_screen_store_banner_summary_on">스토어 배너가 숨겨집니다</string>
|
||||
<string name="revanced_hide_end_screen_store_banner_summary_off">스토어 배너가 표시됩니다</string>
|
||||
@@ -423,9 +423,9 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
|
||||
<string name="revanced_hide_shopping_links_summary_on">쇼핑 링크가 숨겨집니다</string>
|
||||
<string name="revanced_hide_shopping_links_summary_off">쇼핑 링크가 표시됩니다</string>
|
||||
<!-- 'Visit store' should be translated with the same localized wording that YouTube displays. -->
|
||||
<string name="revanced_hide_visit_store_button_title">채널 페이지에서 \'스토어 방문\' 버튼 숨기기</string>
|
||||
<string name="revanced_hide_visit_store_button_summary_on">버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_visit_store_button_summary_off">버튼이 표시됩니다</string>
|
||||
<string name="revanced_hide_visit_store_button_title">채널 프로필에서 스토어 방문 버튼 숨기기</string>
|
||||
<string name="revanced_hide_visit_store_button_summary_on">스토어 방문 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_visit_store_button_summary_off">스토어 방문 버튼이 표시됩니다</string>
|
||||
<string name="revanced_hide_web_search_results_title">웹 검색 결과 숨기기</string>
|
||||
<string name="revanced_hide_web_search_results_summary_on">웹 검색 결과가 숨겨집니다</string>
|
||||
<string name="revanced_hide_web_search_results_summary_off">웹 검색 결과가 표시됩니다</string>
|
||||
@@ -800,7 +800,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
|
||||
<string name="revanced_hide_shorts_navigation_bar_summary_off">하단바가 표시됩니다</string>
|
||||
</patch>
|
||||
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
|
||||
<string name="revanced_disable_suggested_video_end_screen_title">최종 화면에서 \'다음 재생 추천 동영상\' 비활성화하기</string>
|
||||
<string name="revanced_disable_suggested_video_end_screen_title">최종 화면에서 다음 재생 추천 동영상 비활성화하기</string>
|
||||
<string name="revanced_disable_suggested_video_end_screen_summary_on">다음 재생 추천 동영상을 비활성화합니다</string>
|
||||
<string name="revanced_disable_suggested_video_end_screen_summary_off">다음 재생 추천 동영상을 활성화합니다</string>
|
||||
</patch>
|
||||
@@ -1429,8 +1429,8 @@ AVC의 최대 화질 값은 1080p이고, OPUS 코덱을 사용불가 및 HDR 동
|
||||
<string name="revanced_spoof_video_streams_about_no_av1">• AV1 코덱이 지원되지 않습니다</string>
|
||||
<string name="revanced_spoof_video_streams_about_kids_videos">• Kids 동영상은 로그인을 하지 않았거나 시크릿 모드에서는 재생되지 않을 수 있습니다</string>
|
||||
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">전문 통계에서 표시하기</string>
|
||||
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">\'스트리밍 데이터를 가져오는 데 사용되는 클라이언트\'가 전문 통계에서 표시됩니다</string>
|
||||
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">\'스트리밍 데이터를 가져오는 데 사용되는 클라이언트\'가 전문 통계에서 표시되지 않습니다</string>
|
||||
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">스트리밍 데이터를 가져오는 데 사용되는 클라이언트가 전문 통계에서 표시됩니다</string>
|
||||
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">스트리밍 데이터를 가져오는 데 사용되는 클라이언트가 전문 통계에서 표시되지 않습니다</string>
|
||||
<string name="revanced_spoof_video_streams_language_title">Android VR 기본 오디오 스트림 언어</string>
|
||||
</patch>
|
||||
</app>
|
||||
|
||||
@@ -836,7 +836,7 @@ Napomena: Omogućavanje ovoga prisilno sakriva i video oglase"</string>
|
||||
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
|
||||
<string name="revanced_ryd_failure_ryd_enabled_while_playing_video_then_user_voted">Osvežite video da biste glasali pomoću ReturnYouTubeDislike</string>
|
||||
<!-- Video likes have been set to hidden by the video uploader. -->
|
||||
<string name="revanced_ryd_video_likes_hidden_by_video_owner">Sakriveno od strane vlasnika</string>
|
||||
<string name="revanced_ryd_video_likes_hidden_by_video_owner">Skriveno od strane vlasnika</string>
|
||||
<string name="revanced_ryd_enable_summary_on">Nesviđanja su prikazana</string>
|
||||
<string name="revanced_ryd_enable_summary_off">Nesviđanja nisu prikazana</string>
|
||||
<string name="revanced_ryd_shorts_title">Prikaži nesviđanja na Shorts videima</string>
|
||||
@@ -852,9 +852,9 @@ Ograničenje: Nesviđanja se možda neće pojaviti u režimu bez arhiviranja"</s
|
||||
<string name="revanced_ryd_compact_layout_title">Kompaktno dugme „Sviđanje”</string>
|
||||
<string name="revanced_ryd_compact_layout_summary_on">Dugme „Sviđanje” stilizovano za minimalnu širinu</string>
|
||||
<string name="revanced_ryd_compact_layout_summary_off">Dugme „Sviđanje” stilizovano za najbolji izgled</string>
|
||||
<string name="revanced_ryd_estimated_like_title">Prikaži procenjene lajkove</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_on">Procenjeni lajkovi su prikazani</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_off">Procenjeni lajkovi su sakriveni</string>
|
||||
<string name="revanced_ryd_estimated_like_title">Prikaži procenjeni broj sviđanja</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_on">Procenjeni broj sviđanja je prikazan</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_off">Procenjeni broj sviđanja je skriven</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_title">Prikaži iskačuće obaveštenje ako API nije dostupan</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_summary_on">Iskačuće obaveštenje je prikazano, ako Return YouTube Dislike nije dostupan</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_summary_off">Iskačuće obaveštenje nije prikazano, ako Return YouTube Dislike nije dostupan</string>
|
||||
@@ -905,9 +905,9 @@ Ova funkcija najbolje radi sa kvalitetom videa od 720p ili nižim i kada koristi
|
||||
<string name="revanced_sb_enable_voting">Prikaži dugme za glasanje</string>
|
||||
<string name="revanced_sb_enable_voting_sum_on">Dugme za glasanje za segment je prikazano</string>
|
||||
<string name="revanced_sb_enable_voting_sum_off">Dugme za glasanje za segment nije prikazano</string>
|
||||
<string name="revanced_sb_square_layout">Koristi kvadratni raspored</string>
|
||||
<string name="revanced_sb_square_layout">Koristi kvadratni izgled</string>
|
||||
<string name="revanced_sb_square_layout_sum_on">Dugmad i kontrole su kvadratni</string>
|
||||
<string name="revanced_sb_square_layout_sum_off">Dugmad i kontrole su zaobljene</string>
|
||||
<string name="revanced_sb_square_layout_sum_off">Dugmad i kontrole su zaobljeni</string>
|
||||
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
|
||||
<string name="revanced_sb_enable_compact_skip_button">Koristi kompaktno dugme za preskakanje</string>
|
||||
<string name="revanced_sb_enable_compact_skip_button_sum_on">Dugme za preskakanje stilizovano za minimalnu širinu</string>
|
||||
@@ -1189,7 +1189,7 @@ Ako se kasnije isključi, preporučuje se da izbrišete podatke aplikacije da bi
|
||||
<string name="revanced_miniplayer_type_entry_6">Moderan 3</string>
|
||||
<string name="revanced_miniplayer_rounded_corners_title">Omogući zaobljene uglove</string>
|
||||
<string name="revanced_miniplayer_rounded_corners_summary_on">Uglovi su zaobljeni</string>
|
||||
<string name="revanced_miniplayer_rounded_corners_summary_off">Uglovi nisu zaobljeni</string>
|
||||
<string name="revanced_miniplayer_rounded_corners_summary_off">Uglovi su kvadratni</string>
|
||||
<string name="revanced_miniplayer_double_tap_action_title">Omogući dvostruki dodir i štipanje za promenu veličine</string>
|
||||
<string name="revanced_miniplayer_double_tap_action_summary_on">"Radnja dvostrukog dodira i štipanja za promenu veličine je omogućena
|
||||
|
||||
|
||||
@@ -836,7 +836,7 @@ Second \"item\" text"</string>
|
||||
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
|
||||
<string name="revanced_ryd_failure_ryd_enabled_while_playing_video_then_user_voted">Освежите видео да бисте гласали помоћу ReturnYouTubeDislike</string>
|
||||
<!-- Video likes have been set to hidden by the video uploader. -->
|
||||
<string name="revanced_ryd_video_likes_hidden_by_video_owner">Sakriveno od strane vlasnika</string>
|
||||
<string name="revanced_ryd_video_likes_hidden_by_video_owner">Скривено од стране власника</string>
|
||||
<string name="revanced_ryd_enable_summary_on">Несвиђања су приказана</string>
|
||||
<string name="revanced_ryd_enable_summary_off">Несвиђања нису приказана</string>
|
||||
<string name="revanced_ryd_shorts_title">Прикажи несвиђања на Shorts видеима</string>
|
||||
@@ -852,9 +852,9 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_ryd_compact_layout_title">Компактно дугме „Свиђање”</string>
|
||||
<string name="revanced_ryd_compact_layout_summary_on">Дугме „Свиђање” стилизовано за минималну ширину</string>
|
||||
<string name="revanced_ryd_compact_layout_summary_off">Дугме „Свиђање” стилизовано за најбољи изглед</string>
|
||||
<string name="revanced_ryd_estimated_like_title">Prikaži procenjeni broj sviđanja</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_on">Prikazan je procenjeni broj sviđanja</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_off">Procenjeni broj sviđanja je sakriven</string>
|
||||
<string name="revanced_ryd_estimated_like_title">Прикажи процењени број свиђања</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_on">Процењени број свиђања је приказан</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_off">Процењени број свиђања је скривен</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_title">Прикажи искачуће обавештење ако API није доступан</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_summary_on">Искачуће обавештење је приказано, ако Return YouTube Dislike није доступан</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_summary_off">Искачуће обавештење није приказано, ако Return YouTube Dislike није доступан</string>
|
||||
@@ -905,9 +905,9 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_sb_enable_voting">Прикажи дугме за гласање</string>
|
||||
<string name="revanced_sb_enable_voting_sum_on">Дугме за гласање за сегмент је приказано</string>
|
||||
<string name="revanced_sb_enable_voting_sum_off">Дугме за гласање за сегмент није приказано</string>
|
||||
<string name="revanced_sb_square_layout">Koristi kvadratni raspored</string>
|
||||
<string name="revanced_sb_square_layout_sum_on">Квадратни тастери и контроле</string>
|
||||
<string name="revanced_sb_square_layout_sum_off">Dugmad i kontrole su zaobljene</string>
|
||||
<string name="revanced_sb_square_layout">Користи квадратни изглед</string>
|
||||
<string name="revanced_sb_square_layout_sum_on">Дугмад и контроле су квадратни</string>
|
||||
<string name="revanced_sb_square_layout_sum_off">Дугмад и контроле су заобљени</string>
|
||||
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
|
||||
<string name="revanced_sb_enable_compact_skip_button">Користи компактно дугме за прескакање</string>
|
||||
<string name="revanced_sb_enable_compact_skip_button_sum_on">Дугме за прескакање стилизовано за минималну ширину</string>
|
||||
@@ -1189,7 +1189,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_miniplayer_type_entry_6">Модеран 3</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_rounded_corners_summary_off">Углови су квадратни</string>
|
||||
<string name="revanced_miniplayer_double_tap_action_title">Омогући двоструки додир и штипање за промену величине</string>
|
||||
<string name="revanced_miniplayer_double_tap_action_summary_on">"Радња двоструког додира и штипања за промену величине је омогућена
|
||||
|
||||
|
||||
@@ -854,7 +854,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_ryd_compact_layout_summary_off">Кнопку \"Подобається\" стилізовано для кращого вигляду</string>
|
||||
<string name="revanced_ryd_estimated_like_title">Показувати приблизну кількість вподобань</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_on">Приблизна кількість вподобань показується</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_off">Приблизна кількість вподобань прихована</string>
|
||||
<string name="revanced_ryd_estimated_like_summary_off">Приблизну кількість вподобань приховано</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_title">Показувати тост, якщо API не доступний</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_summary_on">Тост показується, якщо Return YouTube Dislike не доступний</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_summary_off">Тост не показується, якщо Return YouTube Dislike не доступний</string>
|
||||
@@ -905,7 +905,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_sb_enable_voting">Кнопка голосування</string>
|
||||
<string name="revanced_sb_enable_voting_sum_on">Кнопка голосування за сегмент показується в відеоплеєрі</string>
|
||||
<string name="revanced_sb_enable_voting_sum_off">Кнопка голосування за сегмент не показується в відеоплеєрі</string>
|
||||
<string name="revanced_sb_square_layout">Використовувати квадратну розмітку</string>
|
||||
<string name="revanced_sb_square_layout">Використовувати квадратний макет</string>
|
||||
<string name="revanced_sb_square_layout_sum_on">Кнопки та елементи керування квадратні</string>
|
||||
<string name="revanced_sb_square_layout_sum_off">Кнопки та елементи керування заокруглені</string>
|
||||
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
|
||||
|
||||
Reference in New Issue
Block a user