From d6df0e451c585de1179ff8558ead6cead0636ad7 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 4 Mar 2020 10:37:31 +0100 Subject: [PATCH] Detect spaces in password if user fail to login (#1038) --- CHANGES.md | 1 + .../vector/riotx/features/login/LoginFragment.kt | 14 +++++++++++++- vector/src/main/res/values/strings_riotX.xml | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 37ff98758b..0184981252 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ Features ✨: Improvements 🙌: - Add support for `/plain` command (#12) + - Detect spaces in password if user fail to login (#1038) Bugfix 🐛: - Fix crash on attachment preview screen (#1088) diff --git a/vector/src/main/java/im/vector/riotx/features/login/LoginFragment.kt b/vector/src/main/java/im/vector/riotx/features/login/LoginFragment.kt index 3e45eeb406..01cc19fa5b 100644 --- a/vector/src/main/java/im/vector/riotx/features/login/LoginFragment.kt +++ b/vector/src/main/java/im/vector/riotx/features/login/LoginFragment.kt @@ -209,7 +209,14 @@ class LoginFragment @Inject constructor() : AbstractLoginFragment() { } else { // Trick to display the error without text. loginFieldTil.error = " " - passwordFieldTil.error = errorFormatter.toHumanReadable(state.asyncLoginAction.error) + if (error is Failure.ServerError + && error.error.code == MatrixError.M_FORBIDDEN + && error.error.message == "Invalid password" + && spaceInPassword()) { + passwordFieldTil.error = getString(R.string.auth_invalid_login_param_space_in_password) + } else { + passwordFieldTil.error = errorFormatter.toHumanReadable(error) + } } } // Success is handled by the LoginActivity @@ -226,4 +233,9 @@ class LoginFragment @Inject constructor() : AbstractLoginFragment() { is Success -> Unit } } + + /** + * Detect if password ends or starts with spaces + */ + private fun spaceInPassword() = passwordField.text.toString().let { it.trim() != it } } diff --git a/vector/src/main/res/values/strings_riotX.xml b/vector/src/main/res/values/strings_riotX.xml index 69d821c0ca..579fdae874 100644 --- a/vector/src/main/res/values/strings_riotX.xml +++ b/vector/src/main/res/values/strings_riotX.xml @@ -29,4 +29,5 @@ Sends a message as plain text, without interpreting it as markdown + Incorrect username and/or password. The entered password starts or ends with spaces, please check it.