From 21bcb293f598b073857fa0a10e0487506c50b06f Mon Sep 17 00:00:00 2001 From: Koitharu Date: Mon, 17 Apr 2023 14:11:35 +0300 Subject: [PATCH] Fix domain validator --- .../koitharu/kotatsu/settings/DomainValidator.kt | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/DomainValidator.kt b/app/src/main/java/org/koitharu/kotatsu/settings/DomainValidator.kt index a5f50c968..3681a72e7 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/DomainValidator.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/DomainValidator.kt @@ -1,11 +1,14 @@ package org.koitharu.kotatsu.settings +import okhttp3.HttpUrl import okhttp3.internal.toCanonicalHost import org.koitharu.kotatsu.R import org.koitharu.kotatsu.utils.EditTextValidator class DomainValidator : EditTextValidator() { + private val urlBuilder = HttpUrl.Builder() + override fun validate(text: String): ValidationResult { val trimmed = text.trim() if (trimmed.isEmpty()) { @@ -18,13 +21,7 @@ class DomainValidator : EditTextValidator() { } } - private fun checkCharacters(value: String): Boolean { - for (i in value.indices) { - val c = value[i] - if (c !in '\u0020'..'\u007e') { - return false - } - } - return true - } + private fun checkCharacters(value: String): Boolean = runCatching { + urlBuilder.host(value) + }.isSuccess }