Skip to content
Snippets Groups Projects
Commit a59e583b authored by Kamal Bramwell's avatar Kamal Bramwell
Browse files

Merge branch 'FE-954_username_input_repeats' into 'development'

FE-954: Username input field repeats

See merge request elixxir/client-android!83
parents 4ce8269f 01258bba
Branches
Tags
2 merge requests!84Version 2.92 build 629,!83FE-954: Username input field repeats
...@@ -113,12 +113,12 @@ class UsernameRegistration @AssistedInject constructor( ...@@ -113,12 +113,12 @@ class UsernameRegistration @AssistedInject constructor(
override val usernameFilters: Array<InputFilter> = override val usernameFilters: Array<InputFilter> =
arrayOf( arrayOf(
InputFilter { source, start, end, _, _, _ -> // InputFilter { source, start, end, _, _, _ ->
val input = source?.subSequence(start, end) // val input = source?.subSequence(start, end)
val filtered = source?.subSequence(start, end) // val filtered = source?.subSequence(start, end)
?.replace(Regex(USERNAME_FILTER_REGEX), "") // ?.replace(Regex(USERNAME_FILTER_REGEX), "")
if (filtered == input) null else filtered // if (filtered == input) null else filtered
}, // },
InputFilter.LengthFilter(MAX_USERNAME_LENGTH) InputFilter.LengthFilter(MAX_USERNAME_LENGTH)
) )
...@@ -179,19 +179,25 @@ class UsernameRegistration @AssistedInject constructor( ...@@ -179,19 +179,25 @@ class UsernameRegistration @AssistedInject constructor(
this.equals(PLAY_STORE_DEMO_USERNAME, true) this.equals(PLAY_STORE_DEMO_USERNAME, true)
private fun String?.isValidUsername(): Boolean { private fun String?.isValidUsername(): Boolean {
if (isNullOrEmpty() || !isMinimumLength()) { return when {
isNullOrEmpty() || !isMinimumLength() -> {
minimumLengthError() minimumLengthError()
return false false
} }
matches(USERNAME_VALIDATION_REGEX.toRegex()) -> {
return if (this.matches(USERNAME_VALIDATION_REGEX.toRegex())) {
error.value = null error.value = null
true true
} else { }
contains(Regex(USERNAME_FILTER_REGEX)) -> {
invalidCharsInUsernameError()
false
}
else -> {
invalidUsernameError() invalidUsernameError()
false false
} }
} }
}
private fun String.isMinimumLength() = length > MIN_USERNAME_LENGTH private fun String.isMinimumLength() = length > MIN_USERNAME_LENGTH
...@@ -203,6 +209,12 @@ class UsernameRegistration @AssistedInject constructor( ...@@ -203,6 +209,12 @@ class UsernameRegistration @AssistedInject constructor(
error.value = application.getString(R.string.registration_error_username_invalid) error.value = application.getString(R.string.registration_error_username_invalid)
} }
private fun invalidCharsInUsernameError() {
error.postValue(
application.getString(R.string.registration_error_username_invalid_chars)
)
}
private fun registerUsername(username: String, isDemoAcct: Boolean = false) { private fun registerUsername(username: String, isDemoAcct: Boolean = false) {
if (!loggedIn) { if (!loggedIn) {
getOrCreateSession() getOrCreateSession()
......
...@@ -519,6 +519,7 @@ ...@@ -519,6 +519,7 @@
<string name="label_edit">Edit</string> <string name="label_edit">Edit</string>
<string name="notification_group_request_text">Group request received</string> <string name="notification_group_request_text">Group request received</string>
<string name="registration_error_username_invalid">Username must start and end with an alphanumeric character.</string> <string name="registration_error_username_invalid">Username must start and end with an alphanumeric character.</string>
<string name="registration_error_username_invalid_chars">Username contains invalid characters.</string>
<string name="settings_confirm_delete_button">Confirm Delete</string> <string name="settings_confirm_delete_button">Confirm Delete</string>
<string name="settings_delete_account_confirm_username_hint">Username</string> <string name="settings_delete_account_confirm_username_hint">Username</string>
<string name="settings_account_recovery_dialog_title">Please note</string> <string name="settings_account_recovery_dialog_title">Please note</string>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment