From 4802268e2982510d528e819014c974202940636f Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Fri, 25 May 2018 00:54:00 +0200 Subject: [PATCH] Fixes crash from #110 --- .../ui/setup/accounts/edit/AccountEditActivity.kt | 8 ++++---- .../setup/accounts/setup/AccountSetupConnectionSlide.kt | 4 ++-- .../ui/setup/accounts/setup/AccountSetupNameSlide.kt | 2 +- .../ui/setup/accounts/setup/AccountSetupUserSlide.kt | 2 +- .../quasseldroid/ui/setup/user/UserSetupIdentitySlide.kt | 2 +- .../quasseldroid/ui/setup/user/UserSetupNetworkSlide.kt | 6 +++--- .../java/de/kuschku/quasseldroid/util/TextValidator.kt | 8 ++++++-- 7 files changed, 18 insertions(+), 14 deletions(-) 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 3d6364714..1aa9d65f9 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 8eeddd2db..8335989c3 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 30e6c6a5b..a2529953c 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 6238b088f..c09bd2b1e 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 f997f7dbc..75e5aeb3b 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 f6dab7357..f9d0450ba 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 b4ad8989d..ddffa3c42 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() } -- GitLab