diff --git a/app/src/main/java/jp/juggler/subwaytooter/api/entity/Acct.kt b/app/src/main/java/jp/juggler/subwaytooter/api/entity/Acct.kt index c9040735..775a83e1 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/api/entity/Acct.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/api/entity/Acct.kt @@ -45,7 +45,11 @@ class Host private constructor( val cached = hostSet[srcArg] if (cached != null) return cached val src = srcArg.removeUrlSchema() - val ascii = IDN.toASCII(src, IDN.ALLOW_UNASSIGNED).lowercase() + val ascii = if( """[^A-Za-z0-9._-]""".toRegex().find(src)!=null){ + IDN.toASCII(src, IDN.ALLOW_UNASSIGNED).lowercase() + }else{ + IDN.toASCII(src, IDN.ALLOW_UNASSIGNED).lowercase() + } val pretty = IDN.toUnicode(src, IDN.ALLOW_UNASSIGNED) val host = if (ascii == pretty) Host(ascii) else Host(ascii, pretty) hostSet[src] = host diff --git a/app/src/main/java/jp/juggler/subwaytooter/dialog/LoginForm.kt b/app/src/main/java/jp/juggler/subwaytooter/dialog/LoginForm.kt index 9edbd74d..b4d984fd 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/dialog/LoginForm.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/dialog/LoginForm.kt @@ -40,7 +40,7 @@ class LoginForm( private val log = LogCategory("LoginForm") @Suppress("RegExpSimplifiable") - val reBadLetter = """[^A-Za-z0-9:;._-]+""".toRegex() + val reBadChars = """([^\p{L}\p{N}A-Za-z0-9:;._-]+)""".toRegex() fun AppCompatActivity.showLoginForm( onClickOk: ( @@ -192,8 +192,7 @@ class LoginForm( return null } - // - reBadLetter.findAll(s).joinToString("") { it.value }.notEmpty()?.let { + reBadChars.findAll(s).joinToString("") { it.value }.notEmpty()?.let { showError(activity.getString(R.string.server_host_name_cant_contains_it, it)) return null }