Compare commits

...

10 Commits

Author SHA1 Message Date
semantic-release-bot
7283b93cea chore: Release v5.44.0-dev.2 [skip ci]
# [5.44.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.44.0-dev.1...v5.44.0-dev.2) (2025-10-22)

### Bug Fixes

* **Google Photos - Spoof features:** Add support for Pixel 10 devices ([#6161](https://github.com/ReVanced/revanced-patches/issues/6161)) ([754b719](754b71959a))
2025-10-22 16:53:15 +00:00
Lassie111
754b71959a fix(Google Photos - Spoof features): Add support for Pixel 10 devices (#6161) 2025-10-22 20:50:10 +04:00
LisoUseInAIKyrios
c64e29ec57 refactor(YouTube - Seekbar): Remove obsolete splash screen color code 2025-10-22 11:47:39 +04:00
semantic-release-bot
b2dd008aee chore: Release v5.44.0-dev.1 [skip ci]
# [5.44.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.43.2-dev.3...v5.44.0-dev.1) (2025-10-22)

### Features

* **Samsung Radio:** Add `Disable device checks` patch ([#6145](https://github.com/ReVanced/revanced-patches/issues/6145)) ([de97562](de97562c5d))
2025-10-22 06:14:00 +00:00
rospino74
de97562c5d feat(Samsung Radio): Add Disable device checks patch (#6145) 2025-10-22 10:09:34 +04:00
semantic-release-bot
6373829fd6 chore: Release v5.43.2-dev.3 [skip ci]
## [5.43.2-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.43.2-dev.2...v5.43.2-dev.3) (2025-10-19)

### Bug Fixes

* **YouTube - Hide layout components:** Hide new kind of community post ([#6146](https://github.com/ReVanced/revanced-patches/issues/6146)) ([cfd244b](cfd244b408))
2025-10-19 14:29:38 +00:00
Bceez
cfd244b408 fix(YouTube - Hide layout components): Hide new kind of community post (#6146) 2025-10-19 18:24:45 +04:00
semantic-release-bot
e8e28e2b6a chore: Release v5.43.2-dev.2 [skip ci]
## [5.43.2-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.43.2-dev.1...v5.43.2-dev.2) (2025-10-17)

### Bug Fixes

* **YouTube Music:** Resolve patching 7.29 target ([2e4c6fd](2e4c6fdcad))
2025-10-17 21:15:51 +00:00
LisoUseInAIKyrios
2e4c6fdcad fix(YouTube Music): Resolve patching 7.29 target 2025-10-18 01:12:34 +04:00
github-actions[bot]
644d6dcb51 chore: Sync translations (#6142) 2025-10-18 01:08:27 +04:00
29 changed files with 469 additions and 389 deletions

View File

@@ -1,3 +1,31 @@
# [5.44.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.44.0-dev.1...v5.44.0-dev.2) (2025-10-22)
### Bug Fixes
* **Google Photos - Spoof features:** Add support for Pixel 10 devices ([#6161](https://github.com/ReVanced/revanced-patches/issues/6161)) ([754b719](https://github.com/ReVanced/revanced-patches/commit/754b71959a0155413eb33cf1bdc2c8976eaca634))
# [5.44.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.43.2-dev.3...v5.44.0-dev.1) (2025-10-22)
### Features
* **Samsung Radio:** Add `Disable device checks` patch ([#6145](https://github.com/ReVanced/revanced-patches/issues/6145)) ([de97562](https://github.com/ReVanced/revanced-patches/commit/de97562c5ddc8ec707761c1e04e74c4e18f9c158))
## [5.43.2-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.43.2-dev.2...v5.43.2-dev.3) (2025-10-19)
### Bug Fixes
* **YouTube - Hide layout components:** Hide new kind of community post ([#6146](https://github.com/ReVanced/revanced-patches/issues/6146)) ([cfd244b](https://github.com/ReVanced/revanced-patches/commit/cfd244b4088daacd2788ec38357ac521e4b296d5))
## [5.43.2-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.43.2-dev.1...v5.43.2-dev.2) (2025-10-17)
### Bug Fixes
* **YouTube Music:** Resolve patching 7.29 target ([2e4c6fd](https://github.com/ReVanced/revanced-patches/commit/2e4c6fdcadeef45a80733e374421d52e5e8af910))
## [5.43.2-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.43.1...v5.43.2-dev.1) (2025-10-16)

View File

@@ -0,0 +1,4 @@
dependencies {
compileOnly(project(":extensions:shared:library"))
compileOnly(project(":extensions:samsung:radio:stub"))
}

View File

@@ -0,0 +1 @@
<manifest/>

View File

@@ -0,0 +1,24 @@
package app.revanced.extension.samsung.radio.misc.fix.crash;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@SuppressWarnings("unused")
public final class FixCrashPatch {
/**
* Injection point.
* <p>
* Add the required permissions to the request list to avoid crashes on API 34+.
**/
public static final String[] fixPermissionRequestList(String[] perms) {
List<String> permsList = new ArrayList<>(Arrays.asList(perms));
if (permsList.contains("android.permission.POST_NOTIFICATIONS")) {
permsList.addAll(Arrays.asList("android.permission.RECORD_AUDIO", "android.permission.READ_PHONE_STATE", "android.permission.FOREGROUND_SERVICE_MICROPHONE"));
}
if (permsList.contains("android.permission.RECORD_AUDIO")) {
permsList.add("android.permission.FOREGROUND_SERVICE_MICROPHONE");
}
return permsList.toArray(new String[0]);
}
}

View File

@@ -0,0 +1,19 @@
package app.revanced.extension.samsung.radio.restrictions.device;
import android.os.SemSystemProperties;
import java.util.Arrays;
@SuppressWarnings("unused")
public final class BypassDeviceChecksPatch {
/**
* Injection point.
* <p>
* Check if the device has the required hardware
**/
public static final boolean checkIfDeviceIsIncompatible(String[] deviceList) {
String currentDevice = SemSystemProperties.getSalesCode();
return Arrays.asList(deviceList).contains(currentDevice);
}
}

View File

@@ -0,0 +1,17 @@
plugins {
alias(libs.plugins.android.library)
}
android {
namespace = "app.revanced.extension"
compileSdk = 34
defaultConfig {
minSdk = 24
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}

View File

@@ -0,0 +1 @@
<manifest/>

View File

@@ -0,0 +1,7 @@
package android.os;
public class SemSystemProperties {
public static String getSalesCode() {
throw new UnsupportedOperationException("Stub");
}
}

View File

@@ -87,7 +87,8 @@ public final class LayoutComponentsFilter extends Filter {
"post_shelf_slim.e",
"videos_post_responsive_root.e",
"text_post_responsive_root.e",
"poll_post_responsive_root.e"
"poll_post_responsive_root.e",
"shared_post_root.e"
);
final var subscribersCommunityGuidelines = new StringFilterGroup(

View File

@@ -1,51 +0,0 @@
package app.revanced.extension.youtube.patches.theme;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.drawable.Drawable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import app.revanced.extension.youtube.patches.HideSeekbarPatch;
import app.revanced.extension.youtube.settings.Settings;
/**
* Used by {@link SeekbarColorPatch} change the color of the seekbar.
* and {@link HideSeekbarPatch} to hide the seekbar of the feed and watch history.
*/
@SuppressWarnings("unused")
public class ProgressBarDrawable extends Drawable {
private final Paint paint = new Paint();
{
paint.setColor(SeekbarColorPatch.getSeekbarColor());
}
@Override
public void draw(@NonNull Canvas canvas) {
if (Settings.HIDE_SEEKBAR_THUMBNAIL.get()) {
return;
}
canvas.drawRect(getBounds(), paint);
}
@Override
public void setAlpha(int alpha) {
paint.setAlpha(alpha);
}
@Override
public void setColorFilter(@Nullable ColorFilter colorFilter) {
paint.setColorFilter(colorFilter);
}
@Override
public int getOpacity() {
return PixelFormat.TRANSLUCENT;
}
}

View File

@@ -4,9 +4,7 @@ import static app.revanced.extension.shared.StringRef.str;
import static app.revanced.extension.shared.Utils.clamp;
import static app.revanced.extension.youtube.patches.theme.ThemePatch.SplashScreenAnimationStyle;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.AnimatedVectorDrawable;
import com.airbnb.lottie.LottieAnimationView;
@@ -15,7 +13,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Locale;
import java.util.Scanner;
import app.revanced.extension.shared.Logger;
@@ -104,27 +101,6 @@ public final class SeekbarColorPatch {
return customSeekbarColor;
}
private static int colorChannelTo3Bits(int channel8Bits) {
final float channel3Bits = channel8Bits * 7 / 255f;
// If a color channel is near zero, then allow rounding up so values between
// 0x12 and 0x23 will show as 0x24. But always round down when the channel is
// near full saturation, otherwise rounding to nearest will cause all values
// between 0xEC and 0xFE to always show as full saturation (0xFF).
return channel3Bits < 6
? Math.round(channel3Bits)
: (int) channel3Bits;
}
@SuppressWarnings("SameParameterValue")
private static String get9BitStyleIdentifier(int color24Bit) {
final int r3 = colorChannelTo3Bits(Color.red(color24Bit));
final int g3 = colorChannelTo3Bits(Color.green(color24Bit));
final int b3 = colorChannelTo3Bits(Color.blue(color24Bit));
return String.format(Locale.US, "splash_seekbar_color_style_%d_%d_%d", r3, g3, b3);
}
/**
* injection point.
*/
@@ -135,36 +111,6 @@ public final class SeekbarColorPatch {
return original; // false = drawable style, true = lottie style.
}
/**
* Injection point.
* Old drawable style launch screen.
*/
public static void setSplashAnimationDrawableTheme(AnimatedVectorDrawable vectorDrawable) {
// Alternatively a ColorMatrixColorFilter can be used to change the color of the drawable
// without using any styles, but a color filter cannot selectively change the seekbar
// while keeping the red YT logo untouched.
// Even if the seekbar color xml value is changed to a completely different color (such as green),
// a color filter still cannot be selectively applied when the drawable has more than 1 color.
try {
// Must set the color even if custom seekbar is off,
// because the xml color was replaced with a themed value.
String seekbarStyle = get9BitStyleIdentifier(customSeekbarColor);
Logger.printDebug(() -> "Using splash seekbar style: " + seekbarStyle);
final int styleIdentifierDefault = Utils.getResourceIdentifierOrThrow(
seekbarStyle,
"style"
);
Resources.Theme theme = Utils.getContext().getResources().newTheme();
theme.applyStyle(styleIdentifierDefault, true);
vectorDrawable.applyTheme(theme);
} catch (Exception ex) {
Logger.printException(() -> "setSplashAnimationDrawableTheme failure", ex);
}
}
/**
* Injection point.
* Modern Lottie style animation.

View File

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

View File

@@ -481,7 +481,9 @@ public final class app/revanced/patches/music/misc/tracks/ForceOriginalAudioPatc
public final class app/revanced/patches/music/playservice/VersionCheckPatchKt {
public static final fun getVersionCheckPatch ()Lapp/revanced/patcher/patch/ResourcePatch;
public static final fun is_7_16_or_greater ()Z
public static final fun is_7_33_or_greater ()Z
public static final fun is_8_05_or_greater ()Z
public static final fun is_8_10_or_greater ()Z
public static final fun is_8_11_or_greater ()Z
public static final fun is_8_15_or_greater ()Z
@@ -762,6 +764,14 @@ public final class app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQuer
public static final fun getSanitizeUrlQueryPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/samsung/radio/misc/fix/crash/FixCrashPatchKt {
public static final fun getFixCrashPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/samsung/radio/restrictions/device/BypassDeviceChecksPatchKt {
public static final fun getBypassDeviceChecksPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/serviceportalbund/detection/root/RootDetectionPatchKt {
public static final fun getRootDetectionPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}

View File

@@ -47,6 +47,7 @@ val spoofFeaturesPatch = bytecodePatch(
"com.google.android.feature.PIXEL_2024_MIDYEAR_EXPERIENCE",
"com.google.android.feature.PIXEL_2024_EXPERIENCE",
"com.google.android.feature.PIXEL_2025_MIDYEAR_EXPERIENCE",
"com.google.android.feature.PIXEL_2025_EXPERIENCE",
),
title = "Features to disable",
description = "Google Pixel exclusive features to disable." +

View File

@@ -6,6 +6,7 @@ import app.revanced.patches.music.misc.extension.sharedExtensionPatch
import app.revanced.patches.music.misc.gms.musicActivityOnCreateFingerprint
import app.revanced.patches.music.misc.settings.PreferenceScreen
import app.revanced.patches.music.misc.settings.settingsPatch
import app.revanced.patches.music.playservice.is_7_16_or_greater
import app.revanced.patches.music.playservice.is_7_33_or_greater
import app.revanced.patches.music.playservice.is_8_11_or_greater
import app.revanced.patches.music.playservice.is_8_15_or_greater
@@ -18,7 +19,7 @@ import app.revanced.patches.shared.misc.spoof.spoofVideoStreamsPatch
val spoofVideoStreamsPatch = spoofVideoStreamsPatch(
extensionClassDescriptor = "Lapp/revanced/extension/music/patches/spoof/SpoofVideoStreamsPatch;",
mainActivityOnCreateFingerprint = musicActivityOnCreateFingerprint,
fixMediaFetchHotConfig = { true },
fixMediaFetchHotConfig = { is_7_16_or_greater },
fixMediaFetchHotConfigAlternative = { is_8_11_or_greater && !is_8_15_or_greater },
fixParsePlaybackResponseFeatureFlag = { is_7_33_or_greater },

View File

@@ -3,14 +3,11 @@ package app.revanced.patches.music.misc.tracks
import app.revanced.patches.music.misc.extension.sharedExtensionPatch
import app.revanced.patches.music.misc.settings.PreferenceScreen
import app.revanced.patches.music.misc.settings.settingsPatch
import app.revanced.patches.music.playservice.is_8_10_or_greater
import app.revanced.patches.music.playservice.is_8_05_or_greater
import app.revanced.patches.music.playservice.versionCheckPatch
import app.revanced.patches.music.shared.mainActivityOnCreateFingerprint
import app.revanced.patches.shared.misc.audio.forceOriginalAudioPatch
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/music/patches/ForceOriginalAudioPatch;"
@Suppress("unused")
val forceOriginalAudioPatch = forceOriginalAudioPatch(
block = {
@@ -27,8 +24,8 @@ val forceOriginalAudioPatch = forceOriginalAudioPatch(
)
)
},
fixUseLocalizedAudioTrackFlag = { is_8_10_or_greater },
fixUseLocalizedAudioTrackFlag = { is_8_05_or_greater },
mainActivityOnCreateFingerprint = mainActivityOnCreateFingerprint,
subclassExtensionClassDescriptor = EXTENSION_CLASS_DESCRIPTOR,
subclassExtensionClassDescriptor = "Lapp/revanced/extension/music/patches/ForceOriginalAudioPatch;",
preferenceScreen = PreferenceScreen.MISC,
)

View File

@@ -8,8 +8,12 @@ import kotlin.properties.Delegates
// Use notNull delegate so an exception is thrown if these fields are accessed before they are set.
var is_7_16_or_greater: Boolean by Delegates.notNull()
private set
var is_7_33_or_greater: Boolean by Delegates.notNull()
private set
var is_8_05_or_greater: Boolean by Delegates.notNull()
private set
var is_8_10_or_greater: Boolean by Delegates.notNull()
private set
var is_8_11_or_greater: Boolean by Delegates.notNull()
@@ -26,8 +30,10 @@ val versionCheckPatch = resourcePatch(
val playStoreServicesVersion = findPlayStoreServicesVersion()
// All bug fix releases always seem to use the same play store version as the minor version.
is_7_16_or_greater = 243499000 <= playStoreServicesVersion
is_7_33_or_greater = 245199000 <= playStoreServicesVersion
is_8_10_or_greater = 244799000 <= playStoreServicesVersion
is_8_05_or_greater = 250599000 <= playStoreServicesVersion
is_8_10_or_greater = 251099000 <= playStoreServicesVersion
is_8_11_or_greater = 251199000 <= playStoreServicesVersion
is_8_15_or_greater = 251530000 <= playStoreServicesVersion
}

View File

@@ -0,0 +1,34 @@
package app.revanced.patches.samsung.radio.misc.fix.crash
import app.revanced.patcher.patch.resourcePatch
import app.revanced.util.asSequence
import org.w3c.dom.Element
@Suppress("unused")
internal val addManifestPermissionsPatch = resourcePatch {
val requiredPermissions = listOf(
"android.permission.READ_PHONE_STATE",
"android.permission.FOREGROUND_SERVICE_MICROPHONE",
"android.permission.RECORD_AUDIO",
)
execute {
document("AndroidManifest.xml").use { document ->
document.getElementsByTagName("manifest").item(0).let { manifestEl ->
// Check which permissions are missing
val existingPermissionNames = document.getElementsByTagName("uses-permission").asSequence()
.mapNotNull { (it as? Element)?.getAttribute("android:name") }.toSet()
val missingPermissions = requiredPermissions.filterNot { it in existingPermissionNames }
// Then add them
for (permission in missingPermissions) {
val element = document.createElement("uses-permission")
element.setAttribute("android:name", permission)
manifestEl.appendChild(element)
}
}
}
}
}

View File

@@ -0,0 +1,18 @@
@file:Suppress("unused")
package app.revanced.patches.samsung.radio.misc.fix.crash
import app.revanced.patcher.fingerprint
import app.revanced.patches.all.misc.transformation.IMethodCall
import app.revanced.patches.all.misc.transformation.fromMethodReference
import app.revanced.util.getReference
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
internal val permissionRequestListFingerprint = fingerprint {
strings(
"android.permission.POST_NOTIFICATIONS",
"android.permission.READ_MEDIA_AUDIO",
"android.permission.RECORD_AUDIO"
)
custom { method, _ -> method.name == "<clinit>" }
}

View File

@@ -0,0 +1,42 @@
@file:Suppress("unused")
package app.revanced.patches.samsung.radio.misc.fix.crash
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.samsung.radio.restrictions.device.bypassDeviceChecksPatch
import app.revanced.util.findInstructionIndicesReversedOrThrow
import app.revanced.util.indexOfFirstInstruction
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/samsung/radio/misc/fix/crash/FixCrashPatch;"
val fixCrashPatch = bytecodePatch(
name = "Fix crashes", description = "Prevents the app from crashing because of missing system permissions."
) {
dependsOn(addManifestPermissionsPatch, bypassDeviceChecksPatch)
extendWith("extensions/samsung/radio.rve")
compatibleWith("com.sec.android.app.fm"("12.4.00.7", "12.3.00.13", "12.3.00.11"))
execute {
permissionRequestListFingerprint.method.apply {
findInstructionIndicesReversedOrThrow(Opcode.FILLED_NEW_ARRAY).forEach { filledNewArrayIndex ->
val moveResultIndex = indexOfFirstInstruction(filledNewArrayIndex, Opcode.MOVE_RESULT_OBJECT)
if (moveResultIndex < 0) return@forEach // No move-result-object found after the filled-new-array
// Get the register where the array is saved
val arrayRegister = getInstruction<OneRegisterInstruction>(moveResultIndex).registerA
// Invoke the method from the extension
addInstructions(
moveResultIndex + 1, """
invoke-static { v$arrayRegister }, ${EXTENSION_CLASS_DESCRIPTOR}->fixPermissionRequestList([Ljava/lang/String;)[Ljava/lang/String;
move-result-object v$arrayRegister
"""
)
}
}
}
}

View File

@@ -0,0 +1,55 @@
package app.revanced.patches.samsung.radio.restrictions.device
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.removeInstructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.util.findFreeRegister
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.reference.StringReference
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/samsung/radio/restrictions/device/BypassDeviceChecksPatch;"
@Suppress("unused")
val bypassDeviceChecksPatch = bytecodePatch(
name = "Bypass device checks",
description = "Removes firmware and region blacklisting. " +
"This patch will still not allow the app to run on devices that do not have the required hardware.",
) {
extendWith("extensions/samsung/radio.rve")
compatibleWith("com.sec.android.app.fm"("12.4.00.7", "12.3.00.13", "12.3.00.11"))
execute {
// Return false = The device is not blacklisted
checkDeviceFingerprint.method.apply {
// Find the first string that start with "SM-", that's the list of incompatible devices
val firstStringIndex = indexOfFirstInstructionOrThrow {
opcode == Opcode.CONST_STRING &&
getReference<StringReference>()?.string?.startsWith("SM-") == true
}
// Find the following filled-new-array (or filled-new-array/range) instruction
val filledNewArrayIndex = indexOfFirstInstructionOrThrow(firstStringIndex + 1) {
opcode == Opcode.FILLED_NEW_ARRAY || opcode == Opcode.FILLED_NEW_ARRAY_RANGE
}
// Find an available register for our use
val resultRegister = findFreeRegister(filledNewArrayIndex + 1)
// Store the array there and invoke the method that we added to the class earlier
addInstructions(
filledNewArrayIndex + 1, """
move-result-object v$resultRegister
invoke-static { v$resultRegister }, $EXTENSION_CLASS_DESCRIPTOR->checkIfDeviceIsIncompatible([Ljava/lang/String;)Z
move-result v$resultRegister
return v$resultRegister
"""
)
// Remove the instructions before our strings
removeInstructions(0, firstStringIndex)
}
}
}

View File

@@ -0,0 +1,61 @@
package app.revanced.patches.samsung.radio.restrictions.device
import app.revanced.patcher.fingerprint
import app.revanced.patches.all.misc.transformation.IMethodCall
import app.revanced.patches.all.misc.transformation.fromMethodReference
import app.revanced.util.getReference
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
internal val checkDeviceFingerprint = fingerprint {
returns("Z")
custom { method, _ ->
/* Check for methods call to:
- Landroid/os/SemSystemProperties;->getSalesCode()Ljava/lang/String;
- Landroid/os/SemSystemProperties;->getCountryIso()Ljava/lang/String;
*/
val impl = method.implementation ?: return@custom false
// Track which target methods we've found
val foundMethods = mutableSetOf<MethodCall>()
// Scan method instructions for calls to our target methods
for (instr in impl.instructions) {
val ref = instr.getReference<MethodReference>() ?: continue
val mc = fromMethodReference<MethodCall>(ref) ?: continue
if (mc == MethodCall.GetSalesCode || mc == MethodCall.GetCountryIso) {
foundMethods.add(mc)
// If we found both methods, return success
if (foundMethods.size == 2) {
return@custom true
}
}
}
// Only match if both methods are present
return@custom false
}
}
// Information about method calls we want to replace
private enum class MethodCall(
override val definedClassName: String,
override val methodName: String,
override val methodParams: Array<String>,
override val returnType: String,
) : IMethodCall {
GetSalesCode(
"Landroid/os/SemSystemProperties;",
"getSalesCode",
arrayOf(),
"Ljava/lang/String;",
),
GetCountryIso(
"Landroid/os/SemSystemProperties;",
"getCountryIso",
arrayOf(),
"Ljava/lang/String;",
),
}

View File

@@ -1,11 +1,9 @@
package app.revanced.patches.youtube.layout.seekbar
import app.revanced.patcher.Fingerprint
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.PatchException
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.resourcePatch
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
@@ -17,17 +15,13 @@ import app.revanced.patches.shared.misc.mapping.resourceMappingPatch
import app.revanced.patches.shared.misc.mapping.resourceMappings
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.playservice.is_19_34_or_greater
import app.revanced.patches.youtube.misc.playservice.is_19_46_or_greater
import app.revanced.patches.youtube.misc.playservice.is_19_49_or_greater
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
import app.revanced.patches.youtube.misc.settings.settingsPatch
import app.revanced.patches.youtube.shared.mainActivityOnCreateFingerprint
import app.revanced.util.copyXmlNode
import app.revanced.util.findElementByAttributeValueOrThrow
import app.revanced.util.findInstructionIndicesReversedOrThrow
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import app.revanced.util.inputStreamFromBundledResource
import app.revanced.util.insertLiteralOverride
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
@@ -38,9 +32,6 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
import com.android.tools.smali.dexlib2.immutable.ImmutableMethod
import com.android.tools.smali.dexlib2.immutable.ImmutableMethodParameter
import org.w3c.dom.Element
import java.io.ByteArrayInputStream
import kotlin.use
internal var reelTimeBarPlayedColorId = -1L
private set
@@ -57,8 +48,6 @@ internal var ytTextSecondaryId = -1L
internal var inlineTimeBarLiveSeekableRangeId = -1L
private set
internal const val splashSeekbarColorAttributeName = "splash_custom_seekbar_color"
private val seekbarColorResourcePatch = resourcePatch {
dependsOn(
settingsPatch,
@@ -92,21 +81,6 @@ private val seekbarColorResourcePatch = resourcePatch {
"inline_time_bar_live_seekable_range"
]
// Modify the resume playback drawable and replace the progress bar with a custom drawable.
document("res/drawable/resume_playback_progressbar_drawable.xml").use { document ->
val layerList = document.getElementsByTagName("layer-list").item(0) as Element
val progressNode = layerList.getElementsByTagName("item").item(1) as Element
if (!progressNode.getAttributeNode("android:id").value.endsWith("progress")) {
throw PatchException("Could not find progress bar")
}
val scaleNode = progressNode.getElementsByTagName("scale").item(0) as Element
val shapeNode = scaleNode.getElementsByTagName("shape").item(0) as Element
val replacementNode = document.createElement(
"app.revanced.extension.youtube.patches.theme.ProgressBarDrawable",
)
scaleNode.replaceChild(replacementNode, shapeNode)
}
ytYoutubeMagentaColorId = resourceMappings[
"color",
"yt_youtube_magenta",
@@ -115,99 +89,9 @@ private val seekbarColorResourcePatch = resourcePatch {
"attr",
"ytStaticBrandRed",
]
// Add attribute and styles for splash screen custom color.
// Using a style is the only way to selectively change just the seekbar fill color.
//
// Because the style colors must be hard coded for all color possibilities,
// instead of allowing 24 bit color the style is restricted to 9-bit (3 bits per color channel)
// and the style color closest to the users custom color is used for the splash screen.
arrayOf(
inputStreamFromBundledResource("seekbar/values", "attrs.xml")!! to "res/values/attrs.xml",
ByteArrayInputStream(create9BitSeekbarColorStyles().toByteArray()) to "res/values/styles.xml"
).forEach { (source, destination) ->
"resources".copyXmlNode(
document(source),
document(destination),
).close()
}
fun setSplashDrawablePathFillColor(xmlFileNames: Iterable<String>, vararg resourceNames: String) {
xmlFileNames.forEach { xmlFileName ->
document(xmlFileName).use { document ->
val childNodes = document.childNodes
resourceNames.forEach { elementId ->
val element = childNodes.findElementByAttributeValueOrThrow(
"android:name",
elementId
)
val attribute = "android:fillColor"
if (!element.hasAttribute(attribute)) {
throw PatchException("Could not find $attribute for $elementId")
}
element.setAttribute(attribute, "?attr/$splashSeekbarColorAttributeName")
}
}
}
}
setSplashDrawablePathFillColor(
listOf(
"res/drawable/\$startup_animation_light__0.xml",
"res/drawable/\$startup_animation_dark__0.xml"
),
"_R_G_L_10_G_D_0_P_0"
)
if (!is_19_46_or_greater) {
// Resources removed in 19.46+
setSplashDrawablePathFillColor(
listOf(
"res/drawable/\$buenos_aires_animation_light__0.xml",
"res/drawable/\$buenos_aires_animation_dark__0.xml"
),
"_R_G_L_8_G_D_0_P_0"
)
}
}
}
/**
* Generate a style xml with all combinations of 9-bit colors.
*/
private fun create9BitSeekbarColorStyles(): String = StringBuilder().apply {
append("<?xml version=\"1.0\" encoding=\"utf-8\"?>")
append("<resources>\n")
for (red in 0..7) {
for (green in 0..7) {
for (blue in 0..7) {
val name = "${red}_${green}_${blue}"
fun roundTo3BitHex(channel8Bits: Int) =
(channel8Bits * 255 / 7).toString(16).padStart(2, '0')
val r = roundTo3BitHex(red)
val g = roundTo3BitHex(green)
val b = roundTo3BitHex(blue)
val color = "#ff$r$g$b"
append(
"""
<style name="splash_seekbar_color_style_$name">
<item name="$splashSeekbarColorAttributeName">$color</item>
</style>
"""
)
}
}
}
append("</resources>")
}.toString()
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/theme/SeekbarColorPatch;"
val seekbarColorPatch = bytecodePatch(
@@ -344,21 +228,6 @@ val seekbarColorPatch = bytecodePatch(
// Hook the splash animation to set the a seekbar color.
mainActivityOnCreateFingerprint.method.apply {
val drawableIndex = indexOfFirstInstructionOrThrow {
val reference = getReference<MethodReference>()
reference?.definingClass == "Landroid/widget/ImageView;"
&& reference.name == "getDrawable"
}
val checkCastIndex = indexOfFirstInstructionOrThrow(drawableIndex, Opcode.CHECK_CAST)
val drawableRegister = getInstruction<OneRegisterInstruction>(checkCastIndex).registerA
addInstruction(
checkCastIndex + 1,
"invoke-static { v$drawableRegister }, $EXTENSION_CLASS_DESCRIPTOR->" +
"setSplashAnimationDrawableTheme(Landroid/graphics/drawable/AnimatedVectorDrawable;)V"
)
// Replace the Lottie animation view setAnimation(int) call.
val setAnimationIntMethodName = lottieAnimationViewSetAnimationIntFingerprint.originalMethod.name
findInstructionIndicesReversedOrThrow {
@@ -371,13 +240,11 @@ val seekbarColorPatch = bytecodePatch(
replaceInstruction(
index,
"invoke-static { v${instruction.registerC}, v${instruction.registerD} }, " +
"$EXTENSION_CLASS_DESCRIPTOR->setSplashAnimationLottie" +
"(Lcom/airbnb/lottie/LottieAnimationView;I)V"
"$EXTENSION_CLASS_DESCRIPTOR->setSplashAnimationLottie(Lcom/airbnb/lottie/LottieAnimationView;I)V"
)
}
}
// Add non obfuscated method aliases for `setAnimation(int)`
// and `setAnimation(InputStream, String)` so extension code can call them.
lottieAnimationViewSetAnimationIntFingerprint.classDef.methods.apply {

View File

@@ -8,9 +8,6 @@ import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
import app.revanced.patches.youtube.shared.mainActivityOnCreateFingerprint
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/patches/ForceOriginalAudioPatch;"
@Suppress("unused")
val forceOriginalAudioPatch = forceOriginalAudioPatch(
block = {
@@ -31,6 +28,6 @@ val forceOriginalAudioPatch = forceOriginalAudioPatch(
},
fixUseLocalizedAudioTrackFlag = { is_20_07_or_greater },
mainActivityOnCreateFingerprint = mainActivityOnCreateFingerprint,
subclassExtensionClassDescriptor = EXTENSION_CLASS_DESCRIPTOR,
subclassExtensionClassDescriptor = "Lapp/revanced/extension/youtube/patches/ForceOriginalAudioPatch;",
preferenceScreen = PreferenceScreen.VIDEO,
)

View File

@@ -1158,13 +1158,13 @@ UserID on kuin salasana, eikä sitä pidä jakaa kenellekään.
<string name="revanced_sb_segments_highlight_sum">Se osa videota, jota useimmat ihmiset etsivät</string>
<string name="revanced_sb_segments_intro">Tauko/Introanimaatio</string>
<string name="revanced_sb_segments_intro_sum">Aikaväli ilman varsinaista sisältöä. Voi olla tauko, staattinen kehys tai toistuva animaatio. Ei sisällä siirtymiä, jotka sisältävät tietoa</string>
<string name="revanced_sb_segments_outro">Loppukortit / Tekijätiedot</string>
<string name="revanced_sb_segments_outro">Loppukortit / -tekstit</string>
<string name="revanced_sb_segments_outro_sum">Lopputekstit tai kun YouTuben loppukortit tulevat näkyviin. Ei lopetuksille, joissa on tietoa</string>
<string name="revanced_sb_segments_hook">Koukku / Tervehdykset</string>
<string name="revanced_sb_segments_hook_sum">Kertovat trailerit tulevasta videosta, tervehdykset ja hyvästelyt. Ei sisällä osioita, jotka lisäävät lisäsisältöä</string>
<string name="revanced_sb_segments_preview">Esikatselu / Yhteenveto</string>
<string name="revanced_sb_segments_preview">Esikatselu / Kertaus</string>
<string name="revanced_sb_segments_preview_sum">Kokoelma leikkeitä, jotka osoittavat, mitä on tulossa tai mitä tapahtui videossa tai muissa sarjan videoissa, joiden kaikki informaatio toistuu muualla</string>
<string name="revanced_sb_segments_filler">Tangentti / Vitsit</string>
<string name="revanced_sb_segments_filler">Toissijaiset kohtaukset / Vitsit</string>
<string name="revanced_sb_segments_filler_sum">Epäolennaiset kohtaukset tai vitsit, joita ei tarvita videon pääsisällön ymmärtämiseen. Ei sisällä osioita, jotka tarjoavat kontekstia tai taustatietoja</string>
<string name="revanced_sb_segments_nomusic">Musiikki: Musiikiton osa</string>
<string name="revanced_sb_segments_nomusic_sum">Vain musiikkivideoille. Musiikkivideoiden osiot ilman musiikkia, jotka eivät jo kuulu toiseen kategoriaan</string>
@@ -1182,7 +1182,7 @@ UserID on kuin salasana, eikä sitä pidä jakaa kenellekään.
<string name="revanced_sb_skip_button_preview_beginning">Ohita esikatselu</string>
<string name="revanced_sb_skip_button_preview_middle">Ohita esikatselu</string>
<string name="revanced_sb_skip_button_preview_end">Ohita kertaus</string>
<string name="revanced_sb_skip_button_filler">Ohita Tangentti</string>
<string name="revanced_sb_skip_button_filler">Ohita toissijainen kohtaus</string>
<string name="revanced_sb_skip_button_nomusic">Ohita musiikiton</string>
<string name="revanced_sb_skip_button_unsubmitted">Ohita osio</string>
<string name="revanced_sb_skipped_sponsor">Sponsori ohitettiin</string>
@@ -1193,11 +1193,11 @@ UserID on kuin salasana, eikä sitä pidä jakaa kenellekään.
<string name="revanced_sb_skipped_intro_middle">Tauko ohitettiin</string>
<string name="revanced_sb_skipped_intro_end">Tauko ohitettiin</string>
<string name="revanced_sb_skipped_outro">Outro ohitettiin</string>
<string name="revanced_sb_skipped_hook">Ohitettu koukku</string>
<string name="revanced_sb_skipped_hook">Koukku ohitettiin</string>
<string name="revanced_sb_skipped_preview_beginning">Esikatselu ohitettiin</string>
<string name="revanced_sb_skipped_preview_middle">Esikatselu ohitettiin</string>
<string name="revanced_sb_skipped_preview_end">Kertaus ohitettiin</string>
<string name="revanced_sb_skipped_filler">Ohitettu tangentti</string>
<string name="revanced_sb_skipped_filler">Toissijainen kohtaus ohitettiin</string>
<string name="revanced_sb_skipped_nomusic">Musiikiton osio ohitettiin</string>
<string name="revanced_sb_skipped_unsubmitted">Lähettämätön osio ohitettiin</string>
<string name="revanced_sb_skipped_multiple_segments">Useita osioita ohitettiin</string>
@@ -1254,7 +1254,7 @@ Oletko valmis lähettämään?"</string>
<string name="revanced_sb_new_segment_edit_by_hand_parse_error">Annettu aika on virheellinen</string>
<string name="revanced_sb_stats_title">Tilastot</string>
<!-- Shown in the settings preferences, and translations can be any text length. -->
<string name="revanced_sb_stats_connection_failure">Tilastot eivät tilapäisesti saatavilla (API ei ole käytettävissä)</string>
<string name="revanced_sb_stats_connection_failure">Tilastot eivät ole tilapäisesti saatavilla (API ei ole käytettävissä)</string>
<string name="revanced_sb_stats_loading">Ladataan...</string>
<string name="revanced_sb_stats_sb_disabled">SponsorBlock ei ole käytössä</string>
<string name="revanced_sb_stats_username">Käyttäjänimesi: &lt;b&gt;%s&lt;/b&gt;</string>
@@ -1265,11 +1265,11 @@ Oletko valmis lähettämään?"</string>
<string name="revanced_sb_stats_submissions">Olet luonut &lt;b&gt;%s&lt;/b&gt; osiota</string>
<string name="revanced_sb_stats_submissions_sum">Napauta tästä nähdäksesi osiosi</string>
<string name="revanced_sb_stats_saved_zero">SponsorBlock-tulostaulu</string>
<string name="revanced_sb_stats_saved">Olet pelastanut ihmisiä &lt;b&gt;%s&lt;/b&gt; segmentiltä</string>
<string name="revanced_sb_stats_saved">Olet pelastanut ihmisiä &lt;b&gt;%s&lt;/b&gt; osiolta</string>
<string name="revanced_sb_stats_saved_sum_zero">Napauta tästä nähdäksesi globaalit tilastot ja parhaat osallistujat</string>
<string name="revanced_sb_stats_saved_sum">Se on &lt;b&gt;%s&lt;/b&gt; heidän elämistään.&lt;br&gt;Napauta tästä nähdäksesi tulostaulun</string>
<string name="revanced_sb_stats_self_saved">Olet ohittanut &lt;b&gt;%s&lt;/b&gt; osiota</string>
<string name="revanced_sb_stats_self_saved_sum">Tuo on &lt;b&gt;%s&lt;/b&gt;</string>
<string name="revanced_sb_stats_self_saved_sum">Se on &lt;b&gt;%s&lt;/b&gt;</string>
<string name="revanced_sb_stats_self_saved_reset_title">Nollataanko ohitettujen osioiden laskuri?</string>
<string name="revanced_sb_stats_saved_hour_format">%1$s tuntia %2$s minuuttia</string>
<string name="revanced_sb_stats_saved_minute_format">%1$s minuuttia %2$s sekuntia</string>

View File

@@ -24,7 +24,7 @@ Second \"item\" text"</string>
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Nom de l\'application</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Personnalisée</string>
<string name="revanced_custom_branding_name_entry_5">Personnalisé</string>
<string name="revanced_custom_branding_icon_title">Icône de l\'application</string>
<string name="revanced_custom_branding_icon_entry_1">Originale</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->

View File

@@ -555,87 +555,85 @@ Níl an ghné seo ar fáil ach do ghléasanna níos sine"</string>
<string name="revanced_external_downloader_other_item">Eile</string>
<string name="revanced_external_downloader_not_found_title">Níl an aip suiteáilte</string>
<string name="revanced_external_downloader_not_installed_warning">Níl %s suiteáilte. Suiteáil é le do thoil.</string>
<string name="revanced_external_downloader_package_not_found_warning">"Níorbh fhéidir an aip suiteáilte a aimsiú le hainm an phacáiste: %s
Deimhnigh go bhfuil ainm an phacáiste ceart agus go bhfuil an aip suiteáilte"</string>
<string name="revanced_external_downloader_empty_warning">Ní féidir le hainm an phacáiste a bheith folamh</string>
<string name="revanced_external_downloader_package_not_found_warning">"Níorbh fhéidir an aip suiteáilte a aimsiú le hainm an phacáiste: %s\n\nDeimhnigh go bhfuil ainm an phacáiste ceart agus go bhfuil an aip suiteáilte"</string>
<string name="revanced_external_downloader_empty_warning">Ní féidir ainm an phacáiste a fhágáil folamh</string>
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
<string name="revanced_disable_precise_seeking_gesture_title">Díchumasaigh comhartha cuardaigh beacht</string>
<string name="revanced_disable_precise_seeking_gesture_summary_on">comhartha míchumasaithe</string>
<string name="revanced_disable_precise_seeking_gesture_summary_off">comhartha cumasaithe</string>
<string name="revanced_disable_precise_seeking_gesture_summary_on">gotha cuardaigh chruinn díchumasaithe</string>
<string name="revanced_disable_precise_seeking_gesture_summary_off">gotha cuardaigh chruinn cumasaithe</string>
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
<string name="revanced_seekbar_tapping_title">Cumasaigh sconna chun lorg a dhéanamh</string>
<string name="revanced_seekbar_tapping_summary_on">sconna chun cuardach a dhéanamh cumasaithe</string>
<string name="revanced_seekbar_tapping_summary_off">sconna chun lorg a dhéanamh díchumasaithe</string>
<string name="revanced_seekbar_tapping_title">Cumasaigh tapáil chun cuardach a dhéanamh</string>
<string name="revanced_seekbar_tapping_summary_on">tapáil chun cuardach cumasaithe</string>
<string name="revanced_seekbar_tapping_summary_off">tapáil chun cuardach a dhíchumasaithe</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">Cumasaigh comhartha gile</string>
<string name="revanced_swipe_brightness_summary_on">"Tá swipe gile lánscáileáin cumasaithe
<string name="revanced_swipe_brightness_title">Cumasaigh gotha gile</string>
<string name="revanced_swipe_brightness_summary_on">"Tá swipeáil gile lánscáileáin cumasaithe
Coigeartaigh gile trí swipe a dhéanamh go hingearach ar thaobh na láimhe clé den scáileán"</string>
<string name="revanced_swipe_brightness_summary_off">Tá swipe gile lánscáileáin díchumasaithe</string>
<string name="revanced_swipe_volume_title">Cumasaigh comhartha toirte</string>
<string name="revanced_swipe_volume_summary_on">"Tá an haiscairt toirte lánscáileáin cumasaithe.
Coigeartaigh gile trí swipeáil go hingearach ar thaobh clé an scáileáin"</string>
<string name="revanced_swipe_brightness_summary_off">Tá svaidhpeáil gile lánscáileáin díchumasaithe</string>
<string name="revanced_swipe_volume_title">Cumasaigh gotha toirte</string>
<string name="revanced_swipe_volume_summary_on">"Tá swipeáil toirte lánscáileáin cumasaithe
Coigeartaigh an toirt trí haisceartán go hingearach ar thaobh deas an scáileáin"</string>
<string name="revanced_swipe_volume_summary_off">an haiscairt toirte lánscáileáin díchumasaithe</string>
<string name="revanced_swipe_press_to_engage_title">Cumasaigh brúigh chun haisc a chur i ngníomh</string>
<string name="revanced_swipe_press_to_engage_summary_on">Tá brúigh chun haisc a chur i ngníomh cumasaithe</string>
<string name="revanced_swipe_press_to_engage_summary_off">Tá brúigh chun haisc a chur i ngníomh díchumasaithe</string>
Coigeartaigh an toirt trí swipeáil go hingearach ar thaobh na láimhe deise den scáileán"</string>
<string name="revanced_swipe_volume_summary_off">swipeáil toirte lánscáileáin díchumasaithe</string>
<string name="revanced_swipe_press_to_engage_title">Cumasaigh gotha brúigh chun svaidhpeáil</string>
<string name="revanced_swipe_press_to_engage_summary_on">Tá brúigh chun svaidhpeáil cumasaithe</string>
<string name="revanced_swipe_press_to_engage_summary_off">Tá brúigh chun svaidhpeáil díchumasaithe</string>
<string name="revanced_swipe_haptic_feedback_title">Cumasaigh aiseolas haptic</string>
<string name="revanced_swipe_haptic_feedback_summary_on">Tá aiseolas haptic cumasaithe</string>
<string name="revanced_swipe_haptic_feedback_summary_off">Tá aiseolas haptic míchumasaithe</string>
<string name="revanced_swipe_haptic_feedback_summary_off">Tá aiseolas haptic díchumasaithe</string>
<string name="revanced_swipe_save_and_restore_brightness_title">Sábháil agus athchóirigh gile</string>
<string name="revanced_swipe_save_and_restore_brightness_summary_on">Sábháil agus cuir gile ar ais agus tú ag imeacht nó ag dul isteach i lánscáileán</string>
<string name="revanced_swipe_save_and_restore_brightness_summary_off">Ná sábháil agus athchóirigh gile agus tú ag imeacht nó ag dul isteach sa scáileán iomlán</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">Cumasaigh gotha uathoibríoch</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">Cumasaíonn scioradh síos go dtí an luach is ísle den chomhartha gile uathoibríoch</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">Ní chumasaíonn uathoibríoch a tharraingt síos go dtí an luach is ísle</string>
<string name="revanced_swipe_save_and_restore_brightness_summary_off">Ná sábháil agus ná hathchóirigh gile agus tú ag imeacht nó ag dul isteach sa lánscáileán</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">Cumasaigh gotha gile uathoibríoch</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">Cumasaíonn tú gile uathoibríoch trí shleamhnú síos go dtí an luach is ísle den ghluaiseacht gile</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">Ní chumasaítear gile uathoibríoch trí shleamhnú síos go dtí an luach is ísle</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">Uathoibríoch</string>
<string name="revanced_swipe_overlay_timeout_title">Amach forleagtha Swipe</string>
<string name="revanced_swipe_overlay_timeout_summary"> méid na milleasoicind an forleagan le feiceáil</string>
<string name="revanced_swipe_overlay_background_opacity_title">Réabhlóid thrasláiteachta na gcúlra léaráidí</string>
<string name="revanced_swipe_overlay_background_opacity_summary">Luach léaráidí idir 0-100</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">Caithfidh léaráidí traslaithe a bheith idir 0-100</string>
<string name="revanced_swipe_overlay_progress_brightness_color_title">Dath gile forleagan swipe</string>
<string name="revanced_swipe_overlay_progress_brightness_color_summary">Dath an bharra dul chun cinn do rialuithe gile</string>
<string name="revanced_swipe_overlay_progress_volume_color_title">Dath toirte forleagan swipe</string>
<string name="revanced_swipe_overlay_timeout_title">Am scoir forleagan svaidhpeála</string>
<string name="revanced_swipe_overlay_timeout_summary">An méid milleasoicind atá an forleagan le feiceáil</string>
<string name="revanced_swipe_overlay_background_opacity_title">Teimhneacht chúlra forleagan svaidhpeála</string>
<string name="revanced_swipe_overlay_background_opacity_summary">Luach teimhneachta idir 0-100</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">Teimhneacht svaidhpeála idir 0-100</string>
<string name="revanced_swipe_overlay_progress_brightness_color_title">Dath gile forleagan svaidhpeála</string>
<string name="revanced_swipe_overlay_progress_brightness_color_summary">Dath an bharra dul chun cinn le haghaidh rialuithe gile</string>
<string name="revanced_swipe_overlay_progress_volume_color_title">Dath toirte forleagan svaidhpeála</string>
<string name="revanced_swipe_overlay_progress_volume_color_summary">Dath an bharra dul chun cinn do rialuithe toirte</string>
<string name="revanced_swipe_text_overlay_size_title">Méid téacs an fhorleagain swipe</string>
<string name="revanced_swipe_text_overlay_size_summary">Méid téacs an fhorleagain swipe idir 1-30</string>
<string name="revanced_swipe_text_overlay_size_invalid_toast">Caithfidh an méid téacs a bheith idir 1-30</string>
<string name="revanced_swipe_threshold_title">Tairseach méid swipe</string>
<string name="revanced_swipe_threshold_summary">Méid an tairseach le haghaidh sruthú tarlú</string>
<string name="revanced_swipe_volume_sensitivity_title">Íogaireacht swipe toirte</string>
<string name="revanced_swipe_volume_sensitivity_summary">An méid a athraíonn an toirt in aghaidh gach swipe</string>
<string name="revanced_swipe_overlay_style_title">Stíl forleagain swipe</string>
<string name="revanced_swipe_text_overlay_size_title">Méid téacs forleagan svaidhpeála</string>
<string name="revanced_swipe_text_overlay_size_summary">Méid an téacs le haghaidh forleagan svaidhpeála idir 1-30</string>
<string name="revanced_swipe_text_overlay_size_invalid_toast">Caithfidh méid an téacs a bheith idir 1-30</string>
<string name="revanced_swipe_threshold_title">Tairseach méide svaidhpeála</string>
<string name="revanced_swipe_threshold_summary">An méid tairsí le go dtarlóidh svaidhpeáil</string>
<string name="revanced_swipe_volume_sensitivity_title">Íogaireacht svaidhpeáil toirte</string>
<string name="revanced_swipe_volume_sensitivity_summary">Cé mhéad a athraíonn an toirt in aghaidh an svaidhpeála</string>
<string name="revanced_swipe_overlay_style_title">Stíl forleagan svaidhpeála</string>
<string name="revanced_swipe_overlay_style_entry_1">Forleagan cothrománach</string>
<string name="revanced_swipe_overlay_style_entry_2">Forleagan cothrománach (íosta - barr)</string>
<string name="revanced_swipe_overlay_style_entry_3">Forleagan cothrománach (íosta - lár)</string>
<string name="revanced_swipe_overlay_style_entry_2">Forleagan cothrománach (íosmhéid - barr)</string>
<string name="revanced_swipe_overlay_style_entry_3">Forleagan cothrománach (íosmhéid - lár)</string>
<string name="revanced_swipe_overlay_style_entry_4">Forleagan ciorclach</string>
<string name="revanced_swipe_overlay_style_entry_5">Forleagan ciorclach (íosta)</string>
<string name="revanced_swipe_overlay_style_entry_5">Forleagan ciorclach (íosmhéid)</string>
<string name="revanced_swipe_overlay_style_entry_6">Forleagan ingearach</string>
<string name="revanced_swipe_overlay_style_entry_7">Forleagan ingearach (íosta)</string>
<string name="revanced_swipe_change_video_title">Cumasaigh swipe chun físeáin a athrú</string>
<string name="revanced_swipe_change_video_summary_on">Achlaigh i mód lán-scáile chun athrú go dtí an físeán chéanna/arís</string>
<string name="revanced_swipe_change_video_summary_off">Ní athróidh achlaigh i mód lán-scáile go dtí an físeán chéanna/arís</string>
<string name="revanced_swipe_overlay_style_entry_7">Forleagan ingearach (íosmhéid)</string>
<string name="revanced_swipe_change_video_title">Cumasaigh svaidhpeáil chun físeáin a athrú</string>
<string name="revanced_swipe_change_video_summary_on">Athróidh svaidhpeáil i mód lánscáileáin go dtí an chéad fhíseán eile/roimhe seo</string>
<string name="revanced_swipe_change_video_summary_off">Ní athróidh svaidhpeáil i mód lánscáileáin go dtí an chéad fhíseán eile/roimhe seo</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_disable_auto_captions_title">Díchumasaigh fotheidil uathoibríoch</string>
<string name="revanced_disable_auto_captions_title">Díchumasaigh fotheidil uathoibríocha</string>
<string name="revanced_disable_auto_captions_summary_on">Tá fotheidil uathoibríocha díchumasaithe</string>
<string name="revanced_disable_auto_captions_summary_off">Tá fotheidil uathoibríocha cumasaithe</string>
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Cnaipí gníomh</string>
<string name="revanced_hide_buttons_screen_title">Cnaipí gníomhaíochta</string>
<string name="revanced_hide_buttons_screen_summary">Folaigh nó taispeáin cnaipí faoi fhíseáin</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">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_disable_like_subscribe_glow_summary_on">bheidh na cnaipe Is maith liom agus Liostáil ag lonrú nuair a luaitear iad</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Lonróidh na cnaipe Is maith liom agus Liostáil nuair a luaitear iad</string>
<string name="revanced_hide_like_dislike_button_title">Folaigh Like agus Dislike</string>
<string name="revanced_hide_like_dislike_button_summary_on">Tá cnaipí Cosúil agus Dislike i bhfolach</string>
<string name="revanced_hide_like_dislike_button_summary_off">Taispeántar cnaipí Cosúil agus Dislike</string>
<string name="revanced_hide_like_dislike_button_summary_on">Tá cnaipí Like agus Dislike i bhfolach</string>
<string name="revanced_hide_like_dislike_button_summary_off">Taispeántar cnaipí Like agus Dislike</string>
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_share_button_title">Folaigh Comhroinn</string>
<string name="revanced_hide_share_button_summary_on">Tá cnaipe Comhroinn i bhfolach</string>
@@ -643,11 +641,11 @@ Coigeartaigh an toirt trí haisceartán go hingearach ar thaobh deas an scáile
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_stop_ads_button_title">Folaigh Stad fógraí</string>
<string name="revanced_hide_stop_ads_button_summary_on">Tá cnaipe stad fógraí i bhfolach</string>
<string name="revanced_hide_stop_ads_button_summary_off">Tá cnaipe stad fógraí taispeánta</string>
<string name="revanced_hide_stop_ads_button_summary_off">Taispeántar an cnaipe Stad fógraí</string>
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<string name="revanced_hide_comments_button_title">Folaigh Tuairimí</string>
<string name="revanced_hide_comments_button_summary_on">Tá cnaipe na dTuairimí folaithe</string>
<string name="revanced_hide_comments_button_summary_off">Tá cnaipe na dTuairimí taispeánta</string>
<string name="revanced_hide_comments_button_title">Folaigh Tráchtanna</string>
<string name="revanced_hide_comments_button_summary_on"> an cnaipe tráchtanna i bhfolach</string>
<string name="revanced_hide_comments_button_summary_off">Taispeántar an cnaipe tráchtanna</string>
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<string name="revanced_hide_report_button_title">Folaigh Tuairisc</string>
@@ -663,22 +661,22 @@ Coigeartaigh an toirt trí haisceartán go hingearach ar thaobh deas an scáile
<string name="revanced_hide_download_button_summary_off">Taispeántar cnaipe íoslódáil</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">Folaigh Borradh</string>
<string name="revanced_hide_hype_button_title">Folaigh Hype</string>
<string name="revanced_hide_hype_button_summary_on">Tá cnaipe an Hype i bhfolach</string>
<string name="revanced_hide_hype_button_summary_off">Tá an cnaipe Hype ar taispeáint</string>
<string name="revanced_hide_hype_button_summary_off">Taispeántar cnaipe Hype</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">Folaigh Cur Chun Cinn</string>
<string name="revanced_hide_promote_button_summary_on">Tá an cnaipe Cur Chun Cinn folaithe</string>
<string name="revanced_hide_promote_button_summary_off">Tá an cnaipe Cur Chun Cinn taispeánta</string>
<string name="revanced_hide_promote_button_summary_on">Tá an cnaipe cur chun cinn i bhfolach</string>
<string name="revanced_hide_promote_button_summary_off">Taispeántar an cnaipe cur chun cinn</string>
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_thanks_button_title">Folaigh Go raibh maith agat</string>
<string name="revanced_hide_thanks_button_title">Folaigh Buíochas</string>
<string name="revanced_hide_thanks_button_summary_on">Tá cnaipe buíochas i bhfolach</string>
<string name="revanced_hide_thanks_button_summary_off">Taispeántar cnaipe buíochas</string>
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<string name="revanced_hide_ask_button_title">Folaigh Fiafraigh</string>
<string name="revanced_hide_ask_button_summary_on">Tá cnaipe Fiafraigh i bhfolach</string>
<string name="revanced_hide_ask_button_summary_off">Taispeántar cnaipe Fiafraigh</string>
<string name="revanced_hide_ask_button_title">Folaigh Iarr</string>
<string name="revanced_hide_ask_button_summary_on"> an cnaipe Iarr i bhfolach</string>
<string name="revanced_hide_ask_button_summary_off">Taispeántar cnaipe Iarr</string>
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_clip_button_title">Folaigh Gearrthóg</string>
<string name="revanced_hide_clip_button_summary_on">Tá an cnaipe gearrthóg i bhfolach</string>
@@ -686,11 +684,11 @@ Coigeartaigh an toirt trí haisceartán go hingearach ar thaobh deas an scáile
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_shop_button_title">Folaigh Siopa</string>
<string name="revanced_hide_shop_button_summary_on">Tá cnaipe an tSiopa i bhfolach</string>
<string name="revanced_hide_shop_button_summary_off">Tá cnaipe an tSiopa ar taispeáint</string>
<string name="revanced_hide_shop_button_summary_off">Taispeántar an cnaipe siopa</string>
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_save_button_title">Folaigh Sábháil</string>
<string name="revanced_hide_save_button_summary_on">Tá cnaipe sábhála i bhfolach</string>
<string name="revanced_hide_save_button_summary_off">Tá cnaipe sábhála taispeánta</string>
<string name="revanced_hide_save_button_summary_off">Taispeántar an cnaipe Sábháil</string>
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<string name="revanced_navigation_buttons_screen_title">Cnaipí nascleanúna</string>
@@ -726,22 +724,22 @@ Mura dtagann aon athrú ar an socrú seo, bain triail as mód Incognito a chur a
<string name="revanced_hide_navigation_button_labels_title">Folaigh lipéid cnaipe nascleanú</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Tá lipéid i bhfolach</string>
<string name="revanced_hide_navigation_button_labels_summary_off">Taispeántar lipéid</string>
<string name="revanced_disable_translucent_status_bar_title">Díchumas trasúlacht staidéir a dhíchumas</string>
<string name="revanced_disable_translucent_status_bar_summary_on">Tá an barra stádais neamhshainiúil</string>
<string name="revanced_disable_translucent_status_bar_summary_off">Tá an barra stádais neamhshainiúil nó tríluchtúil</string>
<string name="revanced_disable_translucent_status_bar_user_dialog_message">Ar roinnt feistí, má chuirtear an ghné seo ar siúl, is féidir an barra nascleanúna córais a athrú go trédhearcach.</string>
<string name="revanced_disable_translucent_navigation_bar_light_title">Díchumas barra soiléir trasúlachta</string>
<string name="revanced_disable_translucent_navigation_bar_light_summary_on">Tá barra nascleanúna mód soiléir dochrach</string>
<string name="revanced_disable_translucent_navigation_bar_light_summary_off"> an barra nascleanúna sa mód solas neamhshainiúil nó tríluchtúil</string>
<string name="revanced_disable_translucent_navigation_bar_dark_title">Díchoigearrd an barra tríluchtúil dorcha</string>
<string name="revanced_disable_translucent_navigation_bar_dark_summary_on">Tá barra nascleanúna mód dorcha dochrach</string>
<string name="revanced_disable_translucent_navigation_bar_dark_summary_off"> an barra nascleanúna sa mód dorcha neamhshainiúil nó tríluchtúil</string>
<string name="revanced_disable_translucent_status_bar_title">Díchumasaigh barra stádais tréshoilseach</string>
<string name="revanced_disable_translucent_status_bar_summary_on">Tá an barra stádais teimhneach</string>
<string name="revanced_disable_translucent_status_bar_summary_off">Tá an barra stádais teimhneach nó tréshoilseach</string>
<string name="revanced_disable_translucent_status_bar_user_dialog_message">Ar roinnt gléasanna, is féidir leis an ngné seo a chumasú barra nascleanúna an chórais a athrú go trédhearcach.</string>
<string name="revanced_disable_translucent_navigation_bar_light_title">Díchumasaigh barra tréshoilseach solais</string>
<string name="revanced_disable_translucent_navigation_bar_light_summary_on"> an barra nascleanúna i mód solais teimhneach</string>
<string name="revanced_disable_translucent_navigation_bar_light_summary_off">Tá barra nascleanúna mód solais teimhneach nó tréshoilseach</string>
<string name="revanced_disable_translucent_navigation_bar_dark_title">Díchumasaigh barra tréshoilseach dorcha</string>
<string name="revanced_disable_translucent_navigation_bar_dark_summary_on"> an barra nascleanúna i mód dorcha teimhneach</string>
<string name="revanced_disable_translucent_navigation_bar_dark_summary_off">Tá barra nascleanúna mód dorcha teimhneach nó tréshoilseach</string>
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<string name="revanced_hide_player_flyout_title">Roghchlár Flyout</string>
<string name="revanced_hide_player_flyout_summary">Folaigh nó taispeáin míreanna roghchlár flyout an imreora</string>
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_captions_title">Fotheidil i bhfolach</string>
<string name="revanced_hide_player_flyout_captions_title">Folaigh Fotheidil</string>
<string name="revanced_hide_player_flyout_captions_summary_on">Tá roghchlár fotheidil i bhfolach</string>
<string name="revanced_hide_player_flyout_captions_summary_off">Taispeántar roghchlár fotheidil</string>
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
@@ -753,7 +751,7 @@ Mura dtagann aon athrú ar an socrú seo, bain triail as mód Incognito a chur a
<string name="revanced_hide_player_flyout_sleep_timer_summary_on">Tá an roghchlár lasc ama codlata i bhfolach</string>
<string name="revanced_hide_player_flyout_sleep_timer_summary_off">Taispeántar roghchlár an lasc ama codlata</string>
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_loop_video_title">Folaigh físeán lúb</string>
<string name="revanced_hide_player_flyout_loop_video_title">Físeán Lúb Folaigh</string>
<string name="revanced_hide_player_flyout_loop_video_summary_on">Tá roghchlár físe lúb i bhfolach</string>
<string name="revanced_hide_player_flyout_loop_video_summary_off">Taispeántar roghchlár físe lúb</string>
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
@@ -1284,7 +1282,7 @@ Maithe chun cur isteach?"</string>
<string name="revanced_change_form_factor_entry_1">Réamhshocrúch</string>
<string name="revanced_change_form_factor_entry_2">Fón</string>
<string name="revanced_change_form_factor_entry_3">Táibhléad</string>
<string name="revanced_change_form_factor_entry_4">Gluaisrothar</string>
<string name="revanced_change_form_factor_entry_4">Gluaisteán</string>
<string name="revanced_change_form_factor_user_dialog_message">"Áirítear ar na hathruithe:
Leagan amach an táibléid
@@ -1307,15 +1305,15 @@ Má dhiúltaítear é níos déanaí, moltar sonraí an aip a ghlanadh chun buga
<string name="revanced_spoof_app_version_target_entry_1">20.13.41 - Cuir an barra gníomhaíochta físe neamhchomhbhrúite ar ais</string>
<string name="revanced_spoof_app_version_target_entry_2">20.05.46 - Athchóirigh feidhmiúlacht tras-scríbhinne</string>
<string name="revanced_spoof_app_version_target_entry_3">19.35.36 - Athchóirigh sean-deilbhíní imreoir Shorts</string>
<string name="revanced_spoof_app_version_target_entry_4">19.01.34 - Athchóiriú Sean Icóin Treorach</string>
<string name="revanced_spoof_app_version_target_entry_4">19.01.34 - Athchóirigh deilbhíní nascleanúna sean</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Athraigh an leathanach tosaigh</string>
<string name="revanced_change_start_page_entry_default">Réamhshocraithe</string>
<string name="revanced_change_start_page_entry_all_subscriptions">Uile shuibhscríbhinní</string>
<string name="revanced_change_start_page_entry_default">Réamhshocrú</string>
<string name="revanced_change_start_page_entry_all_subscriptions">Gach síntiús</string>
<string name="revanced_change_start_page_entry_browse">Brabhsáil cainéil</string>
<string name="revanced_change_start_page_entry_courses">Cúrsaí / Foghlaim</string>
<string name="revanced_change_start_page_entry_explore">Déan iniúchadh</string>
<string name="revanced_change_start_page_entry_explore">Taiscéal</string>
<string name="revanced_change_start_page_entry_fashion">Faisean &amp; Áilleacht</string>
<string name="revanced_change_start_page_entry_gaming">Cluichíocht</string>
<string name="revanced_change_start_page_entry_history">Stair</string>
@@ -1332,9 +1330,9 @@ Má dhiúltaítear é níos déanaí, moltar sonraí an aip a ghlanadh chun buga
<string name="revanced_change_start_page_entry_sports">Spóirt</string>
<string name="revanced_change_start_page_entry_subscriptions">Síntiúis</string>
<string name="revanced_change_start_page_entry_trending">Ag treocht</string>
<string name="revanced_change_start_page_entry_virtual_reality">Fíor-Rialtas</string>
<string name="revanced_change_start_page_entry_watch_later">Féach ar níos déanaí</string>
<string name="revanced_change_start_page_entry_your_clips">Do chlipbhoirt</string>
<string name="revanced_change_start_page_entry_virtual_reality">Réaltacht Fhíorúil</string>
<string name="revanced_change_start_page_entry_watch_later">Féach níos déanaí</string>
<string name="revanced_change_start_page_entry_your_clips">Do ghearrthóga</string>
<string name="revanced_change_start_page_always_title">Athraigh an leathanach tosaigh i gcónaí</string>
<string name="revanced_change_start_page_always_summary_on">"Athraítear an leathanach tosaigh i gcónaí
@@ -1342,28 +1340,28 @@ Teorainn: Seans nach n-oibreoidh úsáid a bhaint as an gcnaipe cúil ar an mbar
<string name="revanced_change_start_page_always_summary_off">Ní athraítear an leathanach tosaigh ach amháin ar tosú an aip</string>
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
<string name="revanced_disable_resuming_shorts_player_title">Díchumasaigh an t-imreoir Shorts atá ag tosú arís</string>
<string name="revanced_disable_resuming_shorts_player_summary_on">Ní thosóidh an t-imreoir Shorts ar thosú an aip</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Athosóidh an t-imreoir Shorts ar thosú an aip</string>
<string name="revanced_disable_resuming_shorts_player_title">Díchumasaigh atosú seinnteoir Shorts</string>
<string name="revanced_disable_resuming_shorts_player_summary_on">atosóidh seinnteoir Shorts nuair a thosófar an aip</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Atosóidh seinnteoir Shorts nuair a thosóidh an aip arís</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">Oscail Shorts le</string>
<string name="revanced_shorts_player_type_shorts">Shorts seinnteoir</string>
<string name="revanced_shorts_player_type_regular_player">Imreoir Rialaigh</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Imreoir Rialaigh lán-scáileán</string>
<string name="revanced_shorts_player_type_regular_player">Imreoir rialta</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Lánscáileáin imreoir rialta</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Shorts Autoplay</string>
<string name="revanced_shorts_autoplay_title">Shorts Uathsheinn</string>
<string name="revanced_shorts_autoplay_summary_on">Seinnfidh Shorts go huathoibríoch</string>
<string name="revanced_shorts_autoplay_summary_off">Déanfaidh Shorts arís</string>
<string name="revanced_shorts_autoplay_background_title">Cluiche Cúlra Shorts Autoplay</string>
<string name="revanced_shorts_autoplay_background_title">Uathsheinn Shorts Cúlra sheinn</string>
<string name="revanced_shorts_autoplay_background_summary_on">Déanfar súgradh cúlra Shorts go huathoibríoch</string>
<string name="revanced_shorts_autoplay_background_summary_off">Athdhéanfar súgradh cúlra Shorts</string>
<string name="revanced_shorts_autoplay_background_summary_off">Athdhéanfar athsheinm Shorts cúlra sheinn</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Minipléir</string>
<string name="revanced_miniplayer_screen_title">Mion seinnteoir</string>
<string name="revanced_miniplayer_screen_summary">Athraigh stíl an imreora íoslaghdaithe in-aip</string>
<string name="revanced_miniplayer_type_title">Cineál Miniplayer</string>
<string name="revanced_miniplayer_type_title">Cineál Mion seinnteoir</string>
<string name="revanced_miniplayer_type_entry_0">Díchumasaithe</string>
<string name="revanced_miniplayer_type_entry_1">Réamhshocraithe</string>
<string name="revanced_miniplayer_type_entry_2">Íosta</string>

View File

@@ -28,8 +28,8 @@ Second \"item\" text"</string>
<string name="revanced_custom_branding_icon_title">アプリアイコン</string>
<string name="revanced_custom_branding_icon_entry_1">オリジナル</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced (シンプル)</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced (ロゴ拡大)</string>
<string name="revanced_custom_branding_icon_entry_3">ReVancedシンプル</string>
<string name="revanced_custom_branding_icon_entry_4">ReVancedロゴ拡大</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">カスタム</string>
</patch>
@@ -342,8 +342,8 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が
<string name="revanced_hide_transcript_section_title">文字起こしセクションを非表示</string>
<string name="revanced_hide_transcript_section_summary_on">文字起こしセクションは表示されません</string>
<string name="revanced_hide_transcript_section_summary_off">文字起こしセクションは表示されます</string>
<string name="revanced_hide_description_components_screen_title">動画の概要欄</string>
<string name="revanced_hide_description_components_screen_summary">動画の概要欄のコンポーネントを表示または非表示にします</string>
<string name="revanced_hide_description_components_screen_title">概要欄</string>
<string name="revanced_hide_description_components_screen_summary">概要欄のコンポーネントを表示または非表示にします</string>
<string name="revanced_hide_filter_bar_screen_title">フィルタバー</string>
<string name="revanced_hide_filter_bar_screen_summary">フィード、関連動画、検索結果、および再生履歴でフィルタバーを表示または非表示にします</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">フィードで非表示</string>
@@ -496,8 +496,8 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が
<string name="revanced_hide_self_sponsor_ads_summary_on">自己スポンサー カードは表示されません</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">自己スポンサー カードは表示されます</string>
<string name="revanced_hide_shopping_links_title">商品へのリンクを非表示</string>
<string name="revanced_hide_shopping_links_summary_on">動画の概要欄にある商品へのリンクは表示されません</string>
<string name="revanced_hide_shopping_links_summary_off">動画の概要欄にある商品へのリンクは表示されます</string>
<string name="revanced_hide_shopping_links_summary_on">動画の概要欄商品へのリンクは表示されません</string>
<string name="revanced_hide_shopping_links_summary_off">動画の概要欄商品へのリンクは表示されます</string>
<string name="revanced_hide_view_products_banner_title">「商品を表示」バナーを非表示</string>
<string name="revanced_hide_view_products_banner_summary_on">動画オーバーレイの「商品を表示」バナーは表示されません</string>
<string name="revanced_hide_view_products_banner_summary_off">動画オーバーレイの「商品を表示」バナーは表示されます</string>
@@ -614,12 +614,12 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が
<string name="revanced_swipe_volume_sensitivity_summary">スワイプによる音量の変化量</string>
<string name="revanced_swipe_overlay_style_title">オーバーレイのスタイル</string>
<string name="revanced_swipe_overlay_style_entry_1">横型</string>
<string name="revanced_swipe_overlay_style_entry_2">横型 (シンプル - 画面上部)</string>
<string name="revanced_swipe_overlay_style_entry_3">横型 (シンプル - 画面中央)</string>
<string name="revanced_swipe_overlay_style_entry_2">横型シンプル - 画面上部</string>
<string name="revanced_swipe_overlay_style_entry_3">横型シンプル - 画面中央</string>
<string name="revanced_swipe_overlay_style_entry_4">円形</string>
<string name="revanced_swipe_overlay_style_entry_5">円形 (シンプル)</string>
<string name="revanced_swipe_overlay_style_entry_5">円形シンプル</string>
<string name="revanced_swipe_overlay_style_entry_6">縦型</string>
<string name="revanced_swipe_overlay_style_entry_7">縦型 (シンプル)</string>
<string name="revanced_swipe_overlay_style_entry_7">縦型シンプル</string>
<string name="revanced_swipe_change_video_title">スワイプによる動画の切り替えを有効化</string>
<string name="revanced_swipe_change_video_summary_on">全画面表示中に左 / 右にスワイプすると、前 / 次の動画に切り替わります</string>
<string name="revanced_swipe_change_video_summary_off">全画面表示中に左 / 右にスワイプしても、前 / 次の動画に切り替わりません</string>
@@ -967,7 +967,7 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が
<string name="revanced_end_screen_suggested_video_summary_on">"終了画面の「関連動画」は表示されませんが、自動再生がオンの場合は関連動画が自動で再生されます
自動再生の設定は YouTube の設定で変更できます:
[設定] [再生] [次の動画を自動再生]"</string>
[設定] > [再生] > [次の動画を自動再生]"</string>
<string name="revanced_end_screen_suggested_video_summary_off">終了画面の「関連動画」は表示されます</string>
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
@@ -1159,9 +1159,9 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が
<string name="revanced_sb_segments_interaction_sum">動画内に挿入される視聴者への高評価、チャンネル登録、フォローなどの時間的に短い催促。時間的に長い催促またはイベントなどの個別具体的なものに関する催促は、「視聴者への催促」ではなく「自己宣伝」に分類すべきです</string>
<string name="revanced_sb_segments_highlight">ハイライト</string>
<string name="revanced_sb_segments_highlight_sum">動画の中で最も重要な場面</string>
<string name="revanced_sb_segments_intro">幕間 / オープニング</string>
<string name="revanced_sb_segments_intro">幕間 / オープニング (OP)</string>
<string name="revanced_sb_segments_intro_sum">実際のコンテンツを含まない区間。一時停止、静止画、繰り返しアニメーションなど。情報を含むトランジッション (場面転換) は、このカテゴリーではありません</string>
<string name="revanced_sb_segments_outro">終了画面 / クレジット</string>
<string name="revanced_sb_segments_outro">終了画面 / クレジット (ED)</string>
<string name="revanced_sb_segments_outro_sum">クレジット、または YouTube の終了画面が表示される場面。情報を含む結論、まとめ部分は、このカテゴリーには含まれません</string>
<string name="revanced_sb_segments_hook">フック / あいさつ</string>
<string name="revanced_sb_segments_hook_sum">今後の動画のナレーション付きの予告編、および開幕と別れのあいさつ。重複しない内容や情報を追加する場面は含まれません</string>
@@ -1177,10 +1177,10 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が
<string name="revanced_sb_skip_button_selfpromo">自己宣伝をスキップ</string>
<string name="revanced_sb_skip_button_interaction">催促をスキップ</string>
<string name="revanced_sb_skip_button_highlight">ハイライトまでスキップ</string>
<string name="revanced_sb_skip_button_intro_beginning">オープニングをスキップ</string>
<string name="revanced_sb_skip_button_intro_beginning">OP をスキップ</string>
<string name="revanced_sb_skip_button_intro_middle">幕間をスキップ</string>
<string name="revanced_sb_skip_button_intro_end">幕間をスキップ</string>
<string name="revanced_sb_skip_button_outro">エンディングをスキップ</string>
<string name="revanced_sb_skip_button_outro">ED をスキップ</string>
<string name="revanced_sb_skip_button_hook">フックをスキップ</string>
<string name="revanced_sb_skip_button_preview_beginning">予告編をスキップ</string>
<string name="revanced_sb_skip_button_preview_middle">予告編をスキップ</string>
@@ -1192,10 +1192,10 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が
<string name="revanced_sb_skipped_selfpromo">自己宣伝をスキップしました</string>
<string name="revanced_sb_skipped_interaction">催促をスキップしました</string>
<string name="revanced_sb_skipped_highlight">ハイライトまでスキップしました</string>
<string name="revanced_sb_skipped_intro_beginning">オープニングをスキップしました</string>
<string name="revanced_sb_skipped_intro_beginning">OP をスキップしました</string>
<string name="revanced_sb_skipped_intro_middle">幕間をスキップしました</string>
<string name="revanced_sb_skipped_intro_end">幕間をスキップしました</string>
<string name="revanced_sb_skipped_outro">エンディングをスキップしました</string>
<string name="revanced_sb_skipped_outro">ED をスキップしました</string>
<string name="revanced_sb_skipped_hook">フックをスキップしました</string>
<string name="revanced_sb_skipped_preview_beginning">予告編をスキップしました</string>
<string name="revanced_sb_skipped_preview_middle">予告編をスキップしました</string>
@@ -1309,7 +1309,7 @@ Automotive レイアウト
<string name="revanced_spoof_app_version_target_title">アプリバージョンの偽装先</string>
<string name="revanced_spoof_app_version_target_entry_1">20.13.41 - アクション ボタンの文字表示を復元</string>
<string name="revanced_spoof_app_version_target_entry_2">20.05.46 - 文字起こし機能を復元</string>
<string name="revanced_spoof_app_version_target_entry_3">19.35.36 - 古いショート プレーヤーのアイコンを復元</string>
<string name="revanced_spoof_app_version_target_entry_3">19.35.36 - ショート プレーヤーの古いアイコンを復元</string>
<string name="revanced_spoof_app_version_target_entry_4">19.01.34 - 古いナビゲーション アイコンを復元</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
@@ -1359,7 +1359,7 @@ Automotive レイアウト
<string name="revanced_shorts_autoplay_title">ショート動画の自動再生</string>
<string name="revanced_shorts_autoplay_summary_on">ショート動画は自動再生されます</string>
<string name="revanced_shorts_autoplay_summary_off">ショート動画はループ再生されます</string>
<string name="revanced_shorts_autoplay_background_title">ショート動画の自動再生バックグラウンド</string>
<string name="revanced_shorts_autoplay_background_title">ショート動画の自動再生 (バックグラウンド)</string>
<string name="revanced_shorts_autoplay_background_summary_on">バックグラウンドのショート動画は自動再生されます</string>
<string name="revanced_shorts_autoplay_background_summary_off">バックグラウンドのショート動画はループ再生されます</string>
</patch>
@@ -1433,7 +1433,7 @@ Automotive レイアウト
<string name="revanced_header_logo_entry_1">デフォルト</string>
<string name="revanced_header_logo_entry_2">標準</string>
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced (シンプル)</string>
<string name="revanced_header_logo_entry_5">ReVancedシンプル</string>
<string name="revanced_header_logo_entry_6">カスタム</string>
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
@@ -1546,13 +1546,13 @@ Automotive レイアウト
<string name="revanced_remember_video_quality_last_selected_toast_title">画質の変更時にトーストを表示</string>
<string name="revanced_remember_video_quality_last_selected_toast_summary_on">デフォルトの画質が変更された場合にトースト通知が表示されます</string>
<string name="revanced_remember_video_quality_last_selected_toast_summary_off">デフォルトの画質が変更された場合にトースト通知は表示されません</string>
<string name="revanced_video_quality_default_wifi_title">デフォルトの画質Wi-Fi</string>
<string name="revanced_video_quality_default_mobile_title">デフォルトの画質携帯回線</string>
<string name="revanced_video_quality_default_wifi_title">デフォルトの画質 (Wi-Fi)</string>
<string name="revanced_video_quality_default_mobile_title">デフォルトの画質 (携帯回線)</string>
<string name="revanced_remember_shorts_quality_last_selected_title">ショートの画質の変更を保存</string>
<string name="revanced_remember_shorts_quality_last_selected_summary_on">画質の変更はすべてのショート動画に適用されます</string>
<string name="revanced_remember_shorts_quality_last_selected_summary_off">画質の変更は現在のショート動画にのみ適用されます</string>
<string name="revanced_shorts_quality_default_wifi_title">デフォルトのショートの画質Wi-Fi</string>
<string name="revanced_shorts_quality_default_mobile_title">デフォルトのショートの画質携帯回線</string>
<string name="revanced_shorts_quality_default_wifi_title">デフォルトのショートの画質 (Wi-Fi)</string>
<string name="revanced_shorts_quality_default_mobile_title">デフォルトのショートの画質 (携帯回線)</string>
<string name="revanced_remember_video_quality_mobile">携帯回線</string>
<string name="revanced_remember_video_quality_wifi">Wi-Fi</string>
<string name="revanced_remember_video_quality_toast">デフォルトの画質の変更 (%1$s): %2$s</string>

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr format="reference|color" name="splash_custom_seekbar_color"/>
</resources>