From 735d1caaf9e8926fd9423eed7001c47703f5c26f Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sun, 15 Dec 2024 10:29:52 +0400 Subject: [PATCH] refactor into DisableAutoAudioTracksPatch --- .../shared/settings/BaseSettings.java | 6 +- .../shared/spoof/AudioStreamLanguage.java | 5 - .../shared/spoof/SpoofVideoStreamsPatch.java | 5 +- .../shared/spoof/requests/PlayerRoutes.java | 6 +- .../ChangeDefaultAudioLanguagePatch.java | 71 ------ .../patches/DisableAutoAudioTracksPatch.java | 41 ++++ .../extension/youtube/settings/Settings.java | 3 +- .../ReVancedPreferenceFragment.java | 4 +- patches/api/patches.api | 4 +- .../misc/spoof/SpoofVideoStreamsPatch.kt | 4 + ...atch.kt => DisableAutoAudioTracksPatch.kt} | 17 +- .../resources/addresources/values/arrays.xml | 228 +++++++++--------- .../resources/addresources/values/strings.xml | 116 ++++----- 13 files changed, 237 insertions(+), 273 deletions(-) delete mode 100644 extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ChangeDefaultAudioLanguagePatch.java create mode 100644 extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/DisableAutoAudioTracksPatch.java rename patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/{ChangeDefaultAudioLanguagePatch.kt => DisableAutoAudioTracksPatch.kt} (92%) diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/BaseSettings.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/BaseSettings.java index 7072ea07af..ad1741d9d9 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/BaseSettings.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/BaseSettings.java @@ -3,8 +3,9 @@ import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static app.revanced.extension.shared.settings.Setting.parent; -import static app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.ForceiOSAVCAvailability; +import static app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.SpoofiOSAvailability; +import app.revanced.extension.shared.spoof.AudioStreamLanguage; import app.revanced.extension.shared.spoof.ClientType; /** @@ -21,8 +22,9 @@ public class BaseSettings { public static final IntegerSetting CHECK_ENVIRONMENT_WARNINGS_ISSUED = new IntegerSetting("revanced_check_environment_warnings_issued", 0, true, false); public static final BooleanSetting SPOOF_VIDEO_STREAMS = new BooleanSetting("revanced_spoof_video_streams", TRUE, true, "revanced_spoof_video_streams_user_dialog_message"); + public static final EnumSetting SPOOF_VIDEO_STREAMS_LANGUAGE = new EnumSetting<>("revanced_spoof_video_streams_language", AudioStreamLanguage.DEFAULT, new SpoofiOSAvailability()); public static final BooleanSetting SPOOF_VIDEO_STREAMS_IOS_FORCE_AVC = new BooleanSetting("revanced_spoof_video_streams_ios_force_avc", FALSE, true, - "revanced_spoof_video_streams_ios_force_avc_user_dialog_message", new ForceiOSAVCAvailability()); + "revanced_spoof_video_streams_ios_force_avc_user_dialog_message", new SpoofiOSAvailability()); public static final EnumSetting SPOOF_VIDEO_STREAMS_CLIENT_TYPE = new EnumSetting<>("revanced_spoof_video_streams_client", ClientType.ANDROID_VR, true, parent(SPOOF_VIDEO_STREAMS)); } diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/AudioStreamLanguage.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/AudioStreamLanguage.java index c5455ae4c5..bce49c0a05 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/AudioStreamLanguage.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/AudioStreamLanguage.java @@ -8,11 +8,6 @@ public enum AudioStreamLanguage { */ DEFAULT, - /** - * Original language of the video. - */ - ORIGINAL, - /** * Current language the app is set to. */ diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/SpoofVideoStreamsPatch.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/SpoofVideoStreamsPatch.java index 4016c8ef99..9e61eca990 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/SpoofVideoStreamsPatch.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/SpoofVideoStreamsPatch.java @@ -165,10 +165,11 @@ public static byte[] removeVideoPlaybackPostBody(Uri uri, int method, byte[] pos return postData; } - public static final class ForceiOSAVCAvailability implements Setting.Availability { + public static final class SpoofiOSAvailability implements Setting.Availability { @Override public boolean isAvailable() { - return BaseSettings.SPOOF_VIDEO_STREAMS.get() && BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ClientType.IOS; + return BaseSettings.SPOOF_VIDEO_STREAMS.get() + && BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ClientType.IOS; } } } diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/requests/PlayerRoutes.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/requests/PlayerRoutes.java index bc49490d38..9832a08a7f 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/requests/PlayerRoutes.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/requests/PlayerRoutes.java @@ -5,11 +5,11 @@ import java.io.IOException; import java.net.HttpURLConnection; -import java.util.Locale; import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.requests.Requester; import app.revanced.extension.shared.requests.Route; +import app.revanced.extension.shared.settings.BaseSettings; import app.revanced.extension.shared.spoof.ClientType; final class PlayerRoutes { @@ -37,9 +37,7 @@ static String createInnertubeBody(ClientType clientType) { JSONObject context = new JSONObject(); JSONObject client = new JSONObject(); - // Changing the app language does not force the app to completely restart, - // so the default needs to be the current language and not a static field. - client.put("hl", Locale.getDefault().toLanguageTag()); + client.put("hl", BaseSettings.SPOOF_VIDEO_STREAMS_LANGUAGE.get().getIso639_1()); client.put("clientName", clientType.clientName); client.put("clientVersion", clientType.clientVersion); client.put("deviceModel", clientType.deviceModel); diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ChangeDefaultAudioLanguagePatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ChangeDefaultAudioLanguagePatch.java deleted file mode 100644 index 622e627421..0000000000 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ChangeDefaultAudioLanguagePatch.java +++ /dev/null @@ -1,71 +0,0 @@ -package app.revanced.extension.youtube.patches; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import app.revanced.extension.shared.Logger; -import app.revanced.extension.shared.spoof.AudioStreamLanguage; -import app.revanced.extension.youtube.settings.Settings; - -@SuppressWarnings("unused") -public class ChangeDefaultAudioLanguagePatch { - - private static final String DEFAULT_AUDIO_TRACKS_IDENTIFIER = "original"; - - /** - * Audio track identifier. - * - * Examples: - * fr-FR.10 - * it.10 - */ - private static final Pattern AUDIO_TRACK_ID_PATTERN = - Pattern.compile("^([a-z]{2})(-[A-Z]{2})?.*"); - - /** - * Injection point. - */ - public static boolean isDefaultAudioStream(boolean isDefault, String audioTrackId, String audioTrackDisplayName) { - try { - if (audioTrackId.isEmpty()) { - // Older app targets can have empty audio tracks and these might be placeholders. - // The real audio tracks are called after these. - return isDefault; - } - - AudioStreamLanguage defaultLanguage = Settings.AUDIO_DEFAULT_LANGUAGE.get(); - if (defaultLanguage == AudioStreamLanguage.DEFAULT) { - return isDefault; // Do nothing. - } - - Logger.printDebug(() -> "default: " + String.format("%-5s", isDefault) + " id: " - + String.format("%-8s", audioTrackId) + " name:" + audioTrackDisplayName); - - if (defaultLanguage == AudioStreamLanguage.ORIGINAL) { - final boolean isOriginal = audioTrackDisplayName.contains(DEFAULT_AUDIO_TRACKS_IDENTIFIER); - if (isOriginal) { - Logger.printDebug(() -> "Using audio: " + audioTrackId); - } - - return isOriginal; - } - - Matcher matcher = AUDIO_TRACK_ID_PATTERN.matcher(audioTrackId); - if (!matcher.matches()) { - Logger.printException(() -> "Cannot set default audio, unknown track: " + audioTrackId); - return isDefault; - } - - String desiredIso639 = defaultLanguage.getIso639_1(); - if (desiredIso639.equals(matcher.group(1)) - || desiredIso639.equals(matcher.group(2))) { - Logger.printDebug(() -> "Using audio: " + audioTrackId); - return true; - } - } catch (Exception ex) { - Logger.printException(() -> "isAudioStreamAsDefault failure", ex); - } - - return isDefault; - } -} diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/DisableAutoAudioTracksPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/DisableAutoAudioTracksPatch.java new file mode 100644 index 0000000000..43469fd6b2 --- /dev/null +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/DisableAutoAudioTracksPatch.java @@ -0,0 +1,41 @@ +package app.revanced.extension.youtube.patches; + +import app.revanced.extension.shared.Logger; +import app.revanced.extension.youtube.settings.Settings; + +@SuppressWarnings("unused") +public class DisableAutoAudioTracksPatch { + + private static final String DEFAULT_AUDIO_TRACKS_IDENTIFIER = "original"; + + /** + * Injection point. + */ + public static boolean isDefaultAudioStream(boolean isDefault, String audioTrackId, String audioTrackDisplayName) { + try { + if (!Settings.DISABLE_AUTO_AUDIO_TRACKS.get()) { + return isDefault; + } + + if (audioTrackDisplayName.isEmpty()) { + // Older app targets can have empty audio tracks and these might be placeholders. + // The real audio tracks are called after these. + return isDefault; + } + + Logger.printDebug(() -> "default: " + String.format("%-5s", isDefault) + " id: " + + String.format("%-8s", audioTrackId) + " name:" + audioTrackDisplayName); + + final boolean isOriginal = audioTrackDisplayName.contains(DEFAULT_AUDIO_TRACKS_IDENTIFIER); + if (isOriginal) { + Logger.printDebug(() -> "Using audio: " + audioTrackId); + } + + return isOriginal; + } catch (Exception ex) { + Logger.printException(() -> "isDefaultAudioStream failure", ex); + } + + return isDefault; + } +} diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java index 1bc1ddea04..73179027e3 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java @@ -34,7 +34,6 @@ import app.revanced.extension.shared.settings.Setting; import app.revanced.extension.shared.settings.StringSetting; import app.revanced.extension.shared.settings.preference.SharedPrefCategory; -import app.revanced.extension.shared.spoof.AudioStreamLanguage; import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.DeArrowAvailability; import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.StillImagesAvailability; import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.ThumbnailOption; @@ -54,7 +53,7 @@ public class Settings extends BaseSettings { public static final StringSetting CUSTOM_PLAYBACK_SPEEDS = new StringSetting("revanced_custom_playback_speeds", "0.25\n0.5\n0.75\n0.9\n0.95\n1.0\n1.05\n1.1\n1.25\n1.5\n1.75\n2.0\n3.0\n4.0\n5.0", true); // Audio - public static final EnumSetting AUDIO_DEFAULT_LANGUAGE = new EnumSetting<>("revanced_audio_default_language", AudioStreamLanguage.DEFAULT); + public static final BooleanSetting DISABLE_AUTO_AUDIO_TRACKS = new BooleanSetting("revanced_disable_auto_audio_tracks", TRUE); // Ads public static final BooleanSetting HIDE_BUTTONED_ADS = new BooleanSetting("revanced_hide_buttoned_ads", TRUE); diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedPreferenceFragment.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedPreferenceFragment.java index 24bb9d1315..7be29bd3e4 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedPreferenceFragment.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedPreferenceFragment.java @@ -109,9 +109,9 @@ protected void initialize() { CustomPlaybackSpeedPatch.initializeListPreference(playbackPreference); } - preference = findPreference(Settings.AUDIO_DEFAULT_LANGUAGE.key); + preference = findPreference(Settings.SPOOF_VIDEO_STREAMS_LANGUAGE.key); if (preference instanceof ListPreference languagePreference) { - sortListPreferenceByValues(languagePreference, 3); + sortListPreferenceByValues(languagePreference, 2); } } catch (Exception ex) { Logger.printException(() -> "initialize failure", ex); diff --git a/patches/api/patches.api b/patches/api/patches.api index 21c40715d5..2fc61a12dd 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -1392,8 +1392,8 @@ public final class app/revanced/patches/youtube/shared/FingerprintsKt { public static final fun getRollingNumberTextViewAnimationUpdateFingerprint ()Lapp/revanced/patcher/Fingerprint; } -public final class app/revanced/patches/youtube/video/audio/ChangeDefaultAudioLanguagePatchKt { - public static final fun getChangeDefaultAudioLanguagePatch ()Lapp/revanced/patcher/patch/BytecodePatch; +public final class app/revanced/patches/youtube/video/audio/DisableAutoAudioTracksPatchKt { + public static final fun getDisableAutoAudioTracksPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } public final class app/revanced/patches/youtube/video/information/VideoInformationPatchKt { diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/spoof/SpoofVideoStreamsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/spoof/SpoofVideoStreamsPatch.kt index a9c945f754..45bdfc0c89 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/spoof/SpoofVideoStreamsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/spoof/SpoofVideoStreamsPatch.kt @@ -40,6 +40,10 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch({ "revanced_spoof_video_streams_client", summaryKey = null, ), + ListPreference( + "revanced_spoof_video_streams_language", + summaryKey = null + ), SwitchPreference("revanced_spoof_video_streams_ios_force_avc"), // Preference requires a title but the actual text is chosen at runtime. NonInteractivePreference( diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/ChangeDefaultAudioLanguagePatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/DisableAutoAudioTracksPatch.kt similarity index 92% rename from patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/ChangeDefaultAudioLanguagePatch.kt rename to patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/DisableAutoAudioTracksPatch.kt index 57f7a2b7ff..455b925fda 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/ChangeDefaultAudioLanguagePatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/DisableAutoAudioTracksPatch.kt @@ -9,7 +9,7 @@ import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable import app.revanced.patches.all.misc.resources.addResources import app.revanced.patches.all.misc.resources.addResourcesPatch -import app.revanced.patches.shared.misc.settings.preference.ListPreference +import app.revanced.patches.shared.misc.settings.preference.SwitchPreference import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.misc.settings.settingsPatch @@ -26,12 +26,12 @@ import com.android.tools.smali.dexlib2.immutable.ImmutableMethod import com.android.tools.smali.dexlib2.immutable.ImmutableMethodParameter private const val EXTENSION_CLASS_DESCRIPTOR = - "Lapp/revanced/extension/youtube/patches/ChangeDefaultAudioLanguagePatch;" + "Lapp/revanced/extension/youtube/patches/DisableAutoAudioTracksPatch;" @Suppress("unused") -val changeDefaultAudioLanguagePatch = bytecodePatch( - name = "Change default audio language", - description = "Adds an option to set a default audio language.", +val disableAutoAudioTracksPatch = bytecodePatch( + name = "Disable auto audio tracks", + description = "Adds an option to disable audio tracks from being automatically enabled.", ) { dependsOn( sharedExtensionPatch, @@ -53,13 +53,10 @@ val changeDefaultAudioLanguagePatch = bytecodePatch( ) execute { - addResources("youtube", "video.audio.changeDefaultAudioTrackPatch") + addResources("youtube", "video.audio.disableAutoAudioTracksPatch") PreferenceScreen.VIDEO.addPreferences( - ListPreference( - "revanced_audio_default_language", - summaryKey = null - ) + SwitchPreference("revanced_disable_auto_audio_tracks") ) fun Method.firstFormatStreamingModelCall( diff --git a/patches/src/main/resources/addresources/values/arrays.xml b/patches/src/main/resources/addresources/values/arrays.xml index ef86eae874..5ac5a6124d 100644 --- a/patches/src/main/resources/addresources/values/arrays.xml +++ b/patches/src/main/resources/addresources/values/arrays.xml @@ -11,6 +11,118 @@ ANDROID_VR IOS + + @string/revanced_spoof_video_streams_language_DEFAULT + @string/revanced_spoof_video_streams_language_APP_LANGUAGE + @string/revanced_spoof_video_streams_language_AR + @string/revanced_spoof_video_streams_language_AZ + @string/revanced_spoof_video_streams_language_BG + @string/revanced_spoof_video_streams_language_BN + @string/revanced_spoof_video_streams_language_CA + @string/revanced_spoof_video_streams_language_CS + @string/revanced_spoof_video_streams_language_DA + @string/revanced_spoof_video_streams_language_DE + @string/revanced_spoof_video_streams_language_EL + @string/revanced_spoof_video_streams_language_EN + @string/revanced_spoof_video_streams_language_ES + @string/revanced_spoof_video_streams_language_ET + @string/revanced_spoof_video_streams_language_FA + @string/revanced_spoof_video_streams_language_FI + @string/revanced_spoof_video_streams_language_FR + @string/revanced_spoof_video_streams_language_GU + @string/revanced_spoof_video_streams_language_HI + @string/revanced_spoof_video_streams_language_HR + @string/revanced_spoof_video_streams_language_HU + @string/revanced_spoof_video_streams_language_ID + @string/revanced_spoof_video_streams_language_IT + @string/revanced_spoof_video_streams_language_JA + @string/revanced_spoof_video_streams_language_KK + @string/revanced_spoof_video_streams_language_KO + @string/revanced_spoof_video_streams_language_LT + @string/revanced_spoof_video_streams_language_LV + @string/revanced_spoof_video_streams_language_MK + @string/revanced_spoof_video_streams_language_MN + @string/revanced_spoof_video_streams_language_MR + @string/revanced_spoof_video_streams_language_MS + @string/revanced_spoof_video_streams_language_MY + @string/revanced_spoof_video_streams_language_NL + @string/revanced_spoof_video_streams_language_OR + @string/revanced_spoof_video_streams_language_PA + @string/revanced_spoof_video_streams_language_PL + @string/revanced_spoof_video_streams_language_PT_BR + @string/revanced_spoof_video_streams_language_PT_PT + @string/revanced_spoof_video_streams_language_RO + @string/revanced_spoof_video_streams_language_RU + @string/revanced_spoof_video_streams_language_SK + @string/revanced_spoof_video_streams_language_SL + @string/revanced_spoof_video_streams_language_SR + @string/revanced_spoof_video_streams_language_SV + @string/revanced_spoof_video_streams_language_SW + @string/revanced_spoof_video_streams_language_TA + @string/revanced_spoof_video_streams_language_TE + @string/revanced_spoof_video_streams_language_TH + @string/revanced_spoof_video_streams_language_TR + @string/revanced_spoof_video_streams_language_UK + @string/revanced_spoof_video_streams_language_UR + @string/revanced_spoof_video_streams_language_VI + @string/revanced_spoof_video_streams_language_ZH + + + DEFAULT + APP_LANGUAGE + AR + AZ + BG + BN + CA + CS + DA + DE + EL + EN + ES + ET + FA + FI + FR + GU + HI + HR + HU + ID + IT + JA + KK + KO + LT + LV + MK + MN + MR + MS + MY + NL + OR + PA + PL + PT_BR + PT_PT + RO + RU + SK + SL + SR + SV + SW + TA + TE + TH + TR + UK + UR + VI + ZH + @@ -160,122 +272,6 @@ 144 - - - @string/revanced_audio_default_language_DEFAULT - @string/revanced_audio_default_language_ORIGINAL - @string/revanced_audio_default_language_APP_LANGUAGE - @string/revanced_audio_default_language_AR - @string/revanced_audio_default_language_AZ - @string/revanced_audio_default_language_BG - @string/revanced_audio_default_language_BN - @string/revanced_audio_default_language_CA - @string/revanced_audio_default_language_CS - @string/revanced_audio_default_language_DA - @string/revanced_audio_default_language_DE - @string/revanced_audio_default_language_EL - @string/revanced_audio_default_language_EN - @string/revanced_audio_default_language_ES - @string/revanced_audio_default_language_ET - @string/revanced_audio_default_language_FA - @string/revanced_audio_default_language_FI - @string/revanced_audio_default_language_FR - @string/revanced_audio_default_language_GU - @string/revanced_audio_default_language_HI - @string/revanced_audio_default_language_HR - @string/revanced_audio_default_language_HU - @string/revanced_audio_default_language_ID - @string/revanced_audio_default_language_IT - @string/revanced_audio_default_language_JA - @string/revanced_audio_default_language_KK - @string/revanced_audio_default_language_KO - @string/revanced_audio_default_language_LT - @string/revanced_audio_default_language_LV - @string/revanced_audio_default_language_MK - @string/revanced_audio_default_language_MN - @string/revanced_audio_default_language_MR - @string/revanced_audio_default_language_MS - @string/revanced_audio_default_language_MY - @string/revanced_audio_default_language_NL - @string/revanced_audio_default_language_OR - @string/revanced_audio_default_language_PA - @string/revanced_audio_default_language_PL - @string/revanced_audio_default_language_PT_BR - @string/revanced_audio_default_language_PT_PT - @string/revanced_audio_default_language_RO - @string/revanced_audio_default_language_RU - @string/revanced_audio_default_language_SK - @string/revanced_audio_default_language_SL - @string/revanced_audio_default_language_SR - @string/revanced_audio_default_language_SV - @string/revanced_audio_default_language_SW - @string/revanced_audio_default_language_TA - @string/revanced_audio_default_language_TE - @string/revanced_audio_default_language_TH - @string/revanced_audio_default_language_TR - @string/revanced_audio_default_language_UK - @string/revanced_audio_default_language_UR - @string/revanced_audio_default_language_VI - @string/revanced_audio_default_language_ZH - - - DEFAULT - ORIGINAL - APP_LANGUAGE - AR - AZ - BG - BN - CA - CS - DA - DE - EL - EN - ES - ET - FA - FI - FR - GU - HI - HR - HU - ID - IT - JA - KK - KO - LT - LV - MK - MN - MR - MS - MY - NL - OR - PA - PL - PT_BR - PT_PT - RO - RU - SK - SL - SR - SV - SW - TA - TE - TH - TR - UK - UR - VI - ZH - - diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index 2ce8e0c4ed..a099b4fb45 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -1226,63 +1226,10 @@ Enabling this can unlock higher video qualities" Haptics are disabled Haptics are enabled - - Default audio stream language - Default - Original video language - App language - Arabic - Azerbaijani - Bulgarian - Bengali - Catalan - Czech - Danish - German - Greek - English - Spanish - Estonian - Persian - Finnish - French - Gujarati - Hindi - Croatian - Hungarian - Indonesian - Italian - Japanese - Kazakh - Korean - Lithuanian - Latvian - Macedonian - Mongolian - Marathi - Malay - Burmese - Dutch - Odia - Punjabi - Polish - Portuguese (Brazil) - Portuguese (Portugal) - Romanian - Russian - Slovak - Slovene - Serbian - Swedish - Swahili - Tamil - Telugu - Thai - Turkish - Ukrainian - Urdu - Vietnamese - Chinese + + Disable forced auto audio tracks + Forced auto audio track are disabled + Forced auto audio tracks are not disabled @@ -1352,6 +1299,61 @@ AVC has a maximum resolution of 1080p, Opus audio codec is not available, and vi "• Kids videos may not play • Audio track menu is missing • Stable volume is not available" + Default audio stream language + Default + App language + Arabic + Azerbaijani + Bulgarian + Bengali + Catalan + Czech + Danish + German + Greek + English + Spanish + Estonian + Persian + Finnish + French + Gujarati + Hindi + Croatian + Hungarian + Indonesian + Italian + Japanese + Kazakh + Korean + Lithuanian + Latvian + Macedonian + Mongolian + Marathi + Malay + Burmese + Dutch + Odia + Punjabi + Polish + Portuguese (Brazil) + Portuguese (Portugal) + Romanian + Russian + Slovak + Slovene + Serbian + Swedish + Swahili + Tamil + Telugu + Thai + Turkish + Ukrainian + Urdu + Vietnamese + Chinese