From 8aada10f0d32a80fe7372f0c4c52b7e09d236fe3 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 3 Sep 2020 15:21:21 +0200 Subject: [PATCH] Show M_WEAK_PASSWORD error in the password field --- .../matrix/android/sdk/api/failure/MatrixError.kt | 2 ++ .../im/vector/app/features/login/LoginFragment.kt | 14 ++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/failure/MatrixError.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/failure/MatrixError.kt index ff68107ffc..77a5dc4f85 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/failure/MatrixError.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/failure/MatrixError.kt @@ -132,6 +132,8 @@ data class MatrixError( const val M_CANNOT_LEAVE_SERVER_NOTICE_ROOM = "M_CANNOT_LEAVE_SERVER_NOTICE_ROOM" /** (Not documented yet) */ const val M_WRONG_ROOM_KEYS_VERSION = "M_WRONG_ROOM_KEYS_VERSION" + /** (Not documented yet) */ + const val M_WEAK_PASSWORD = "M_WEAK_PASSWORD" const val M_TERMS_NOT_SIGNED = "M_TERMS_NOT_SIGNED" diff --git a/vector/src/main/java/im/vector/app/features/login/LoginFragment.kt b/vector/src/main/java/im/vector/app/features/login/LoginFragment.kt index a2c458dd67..3ee0d6d9df 100644 --- a/vector/src/main/java/im/vector/app/features/login/LoginFragment.kt +++ b/vector/src/main/java/im/vector/app/features/login/LoginFragment.kt @@ -33,13 +33,13 @@ import im.vector.app.core.extensions.exhaustive import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.showPassword import im.vector.app.core.extensions.toReducedUrl -import org.matrix.android.sdk.api.failure.Failure -import org.matrix.android.sdk.api.failure.MatrixError -import org.matrix.android.sdk.api.failure.isInvalidPassword import io.reactivex.Observable import io.reactivex.functions.BiFunction import io.reactivex.rxkotlin.subscribeBy import kotlinx.android.synthetic.main.fragment_login.* +import org.matrix.android.sdk.api.failure.Failure +import org.matrix.android.sdk.api.failure.MatrixError +import org.matrix.android.sdk.api.failure.isInvalidPassword import javax.inject.Inject /** @@ -234,7 +234,13 @@ class LoginFragment @Inject constructor() : AbstractLoginFragment() { } override fun onError(throwable: Throwable) { - loginFieldTil.error = errorFormatter.toHumanReadable(throwable) + // Show M_WEAK_PASSWORD error in the password field + if (throwable is Failure.ServerError + && throwable.error.code == MatrixError.M_WEAK_PASSWORD) { + passwordFieldTil.error = errorFormatter.toHumanReadable(throwable) + } else { + loginFieldTil.error = errorFormatter.toHumanReadable(throwable) + } } override fun updateWithState(state: LoginViewState) {