diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/language/LanguageSelectorPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/language/LanguageSelectorPatch.kt index e2ec32e96..89fa03314 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/language/LanguageSelectorPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/language/LanguageSelectorPatch.kt @@ -2,7 +2,7 @@ package app.revanced.patches.youtube.misc.language import app.revanced.extensions.exception import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.annotation.CompatiblePackage @@ -10,11 +10,12 @@ import app.revanced.patcher.patch.annotation.Patch import app.revanced.patches.youtube.misc.language.fingerprints.GeneralPrefsFingerprint import app.revanced.patches.youtube.misc.language.fingerprints.GeneralPrefsLegacyFingerprint import app.revanced.patches.youtube.utils.settings.SettingsPatch +import app.revanced.util.integrations.Constants.MISC_PATH import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction @Patch( - name = "Language switch", - description = "Add language switch toggle.", + name = "Enable language switch", + description = "Enable/disable language switch toggle.", dependencies = [SettingsPatch::class], compatiblePackages = [ CompatiblePackage( @@ -53,14 +54,25 @@ object LanguageSelectorPatch : BytecodePatch( val targetIndex = it.scanResult.patternScanResult!!.endIndex val targetRegister = getInstruction(targetIndex).registerA - addInstruction( - targetIndex, - "const/4 v$targetRegister, 0x1" + addInstructions( + targetIndex, """ + invoke-static {}, $MISC_PATH/LanguageSelectorPatch;->enableLanguageSwitch()Z + move-result v$targetRegister + """ ) } } - SettingsPatch.updatePatchStatus("language-switch") + /** + * Add settings + */ + SettingsPatch.addPreference( + arrayOf( + "SETTINGS: ENABLE_LANGUAGE_SWITCH" + ) + ) + + SettingsPatch.updatePatchStatus("enable-language-switch") } } diff --git a/src/main/resources/youtube/settings/host/values/strings.xml b/src/main/resources/youtube/settings/host/values/strings.xml index 8da8b868a..9edc4cc71 100644 --- a/src/main/resources/youtube/settings/host/values/strings.xml +++ b/src/main/resources/youtube/settings/host/values/strings.xml @@ -111,6 +111,9 @@ Only available to some users who can use the speed overlay" External browser is disabled External browser is enabled Enable external browser + Language switch is disabled + Language switch is enabled + Enable language switch New comment popup panels is disabled New comment popup panels is enabled Enable new comment popup panels diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml index 2f3e9fca8..05553f8e2 100644 --- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -251,6 +251,9 @@ + + @@ -355,6 +358,7 @@ + @@ -414,7 +418,6 @@ -