diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
index e25f676205..512312f62a 100644
--- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
+++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
@@ -61,6 +61,7 @@ import eu.kanade.tachiyomi.util.system.setDefaultSettings
import eu.kanade.tachiyomi.util.system.toast
import kotlinx.coroutines.launch
import logcat.LogPriority
+import okhttp3.Headers
import rikka.sui.Sui
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
@@ -267,6 +268,13 @@ class SettingsAdvancedScreen : SearchableSettings {
context.toast(R.string.error_user_agent_string_blank)
return@EditTextPreference false
}
+ try {
+ // OkHttp checks for valid values internally
+ Headers.Builder().add("User-Agent", it)
+ } catch (_: IllegalArgumentException) {
+ context.toast(R.string.error_user_agent_string_invalid)
+ return@EditTextPreference false
+ }
context.toast(R.string.requires_app_restart)
true
},
diff --git a/i18n/src/main/res/values/strings.xml b/i18n/src/main/res/values/strings.xml
index 08d6c4b082..df7fe818eb 100644
--- a/i18n/src/main/res/values/strings.xml
+++ b/i18n/src/main/res/values/strings.xml
@@ -498,6 +498,7 @@
DNS over HTTPS (DoH)
Default user agent string
User agent string can not be blank
+ Invalid user agent string
Reset default user agent string
Requires app restart to take effect
Cookies cleared