diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditActivity.kt index 3d6364714966494139cd2476077f79e35ec53a8c..1aa9d65f9b99fbeac16f7c955a136f8d36094639 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditActivity.kt @@ -102,25 +102,25 @@ class AccountEditActivity : DaggerAppCompatActivity() { } nameValidator = object : TextValidator( - nameWrapper::setError, resources.getString(R.string.hint_invalid_name) + this, nameWrapper::setError, resources.getString(R.string.hint_invalid_name) ) { override fun validate(text: Editable) = text.isNotBlank() } hostValidator = object : TextValidator( - hostWrapper::setError, resources.getString(R.string.hint_invalid_host) + this, hostWrapper::setError, resources.getString(R.string.hint_invalid_host) ) { override fun validate(text: Editable) = text.toString().matches(Patterns.DOMAIN_NAME) } portValidator = object : TextValidator( - portWrapper::setError, resources.getString(R.string.hint_invalid_port) + this, portWrapper::setError, resources.getString(R.string.hint_invalid_port) ) { override fun validate(text: Editable) = text.toString().toIntOrNull() in (0 until 65536) } userValidator = object : TextValidator( - userWrapper::setError, resources.getString(R.string.hint_invalid_user) + this, userWrapper::setError, resources.getString(R.string.hint_invalid_user) ) { override fun validate(text: Editable) = text.isNotBlank() } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupConnectionSlide.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupConnectionSlide.kt index 8eeddd2db636ba8686f00f8ae663530b8ebf5a7e..8335989c33eadf4e98e7a49219a8a598fa9b5979 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupConnectionSlide.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupConnectionSlide.kt @@ -71,7 +71,7 @@ class AccountSetupConnectionSlide : SlideFragment() { val view = inflater.inflate(R.layout.setup_account_connection, container, false) ButterKnife.bind(this, view) hostValidator = object : TextValidator( - hostWrapper::setError, resources.getString(R.string.hint_invalid_host) + requireActivity(), hostWrapper::setError, resources.getString(R.string.hint_invalid_host) ) { override fun validate(text: Editable) = text.toString().matches(Patterns.DOMAIN_NAME) @@ -79,7 +79,7 @@ class AccountSetupConnectionSlide : SlideFragment() { override fun onChanged() = updateValidity() } portValidator = object : TextValidator( - portWrapper::setError, resources.getString(R.string.hint_invalid_port) + requireActivity(), portWrapper::setError, resources.getString(R.string.hint_invalid_port) ) { override fun validate(text: Editable) = text.toString().toIntOrNull() in (0 until 65536) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupNameSlide.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupNameSlide.kt index 30e6c6a5b1c039c6b9c8e0c3d0367e1993e63e93..a2529953c37216793502b2047cd2de821300f694 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupNameSlide.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupNameSlide.kt @@ -60,7 +60,7 @@ class AccountSetupNameSlide : SlideFragment() { val view = inflater.inflate(R.layout.setup_account_name, container, false) ButterKnife.bind(this, view) nameValidator = object : TextValidator( - nameWrapper::setError, resources.getString(R.string.hint_invalid_name) + requireActivity(), nameWrapper::setError, resources.getString(R.string.hint_invalid_name) ) { override fun validate(text: Editable) = text.isNotBlank() diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupUserSlide.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupUserSlide.kt index 6238b088f1851e8db396ccaf82197f77cbdf1ae4..c09bd2b1e200dc9f12ef3d4899b611ac7f15c95d 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupUserSlide.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupUserSlide.kt @@ -69,7 +69,7 @@ class AccountSetupUserSlide : SlideFragment() { val view = inflater.inflate(R.layout.setup_account_user, container, false) ButterKnife.bind(this, view) userValidator = object : TextValidator( - userWrapper::setError, resources.getString(R.string.hint_invalid_user) + requireActivity(), userWrapper::setError, resources.getString(R.string.hint_invalid_user) ) { override fun validate(text: Editable) = text.isNotBlank() diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/user/UserSetupIdentitySlide.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/user/UserSetupIdentitySlide.kt index f997f7dbc6278f12a3fb93a1b39fa9eb62cf30fa..75e5aeb3b1b6d5cc4be8a93de82116122049a8e3 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/user/UserSetupIdentitySlide.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/user/UserSetupIdentitySlide.kt @@ -80,7 +80,7 @@ class UserSetupIdentitySlide : SlideFragment() { val view = inflater.inflate(R.layout.setup_user_identity, container, false) ButterKnife.bind(this, view) nickValidator = object : TextValidator( - nickWrapper::setError, resources.getString(R.string.hint_invalid_nick) + requireActivity(), nickWrapper::setError, resources.getString(R.string.hint_invalid_nick) ) { override fun validate(text: Editable) = text.isNotEmpty() && text.matches(Patterns.IRC_NICK) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/user/UserSetupNetworkSlide.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/user/UserSetupNetworkSlide.kt index f6dab7357e1e6f34d0877ba3198c22d9b87ef2fd..f9d0450ba47e617e59c8bd1b90071f91e6da5727 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/user/UserSetupNetworkSlide.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/user/UserSetupNetworkSlide.kt @@ -124,14 +124,14 @@ class UserSetupNetworkSlide : SlideFragment() { val view = inflater.inflate(R.layout.setup_user_network, container, false) ButterKnife.bind(this, view) nameValidator = object : TextValidator( - nameWrapper::setError, resources.getString(R.string.hint_invalid_name) + requireActivity(), nameWrapper::setError, resources.getString(R.string.hint_invalid_name) ) { override fun validate(text: Editable) = text.isNotBlank() override fun onChanged() = updateValidity() } hostValidator = object : TextValidator( - hostWrapper::setError, resources.getString(R.string.hint_invalid_host) + requireActivity(), hostWrapper::setError, resources.getString(R.string.hint_invalid_host) ) { override fun validate(text: Editable) = text.toString().matches(Patterns.DOMAIN_NAME) @@ -139,7 +139,7 @@ class UserSetupNetworkSlide : SlideFragment() { override fun onChanged() = updateValidity() } portValidator = object : TextValidator( - portWrapper::setError, resources.getString(R.string.hint_invalid_port) + requireActivity(), portWrapper::setError, resources.getString(R.string.hint_invalid_port) ) { override fun validate(text: Editable) = text.toString().toIntOrNull() in (0 until 65536) diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/TextValidator.kt b/app/src/main/java/de/kuschku/quasseldroid/util/TextValidator.kt index b4ad8989d3f4fb8fe3d8d1e15588dee5220d943a..ddffa3c428ade2420c5f5ba2a4f27ad86dddabf3 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/TextValidator.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/TextValidator.kt @@ -19,14 +19,18 @@ package de.kuschku.quasseldroid.util +import android.app.Activity import android.text.Editable import android.text.TextWatcher -abstract class TextValidator(private val errorListener: (String?) -> Unit, +abstract class TextValidator(private val activity: Activity, + private val errorListener: (String?) -> Unit, private val error: String) : TextWatcher { override fun afterTextChanged(p0: Editable) { isValid = validate(p0) - errorListener(if (isValid) null else error) + activity.runOnUiThread { + errorListener(if (isValid) null else error) + } onChanged() }