Cleanup errors and close keyboard at each login step
This commit is contained in:
parent
491a38a79f
commit
5edfb78721
@ -29,6 +29,7 @@ import com.airbnb.mvrx.withState
|
||||
import com.jakewharton.rxbinding3.widget.textChanges
|
||||
import im.vector.riotx.R
|
||||
import im.vector.riotx.core.error.ErrorFormatter
|
||||
import im.vector.riotx.core.extensions.hideKeyboard
|
||||
import im.vector.riotx.core.extensions.showPassword
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.functions.BiFunction
|
||||
@ -79,6 +80,8 @@ class LoginFragment @Inject constructor(
|
||||
|
||||
@OnClick(R.id.loginSubmit)
|
||||
fun submit() {
|
||||
cleanupUi()
|
||||
|
||||
val login = loginField.text?.trim().toString()
|
||||
val password = passwordField.text?.trim().toString()
|
||||
|
||||
@ -89,6 +92,12 @@ class LoginFragment @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
private fun cleanupUi() {
|
||||
loginSubmit.hideKeyboard()
|
||||
loginFieldTil.error = null
|
||||
passwordFieldTil.error = null
|
||||
}
|
||||
|
||||
private fun setupUi() {
|
||||
val resId = when (loginViewModel.signMode) {
|
||||
SignMode.Unknown -> error("developer error")
|
||||
@ -128,7 +137,6 @@ class LoginFragment @Inject constructor(
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
private fun setupSubmitButton() {
|
||||
Observable
|
||||
.combineLatest(
|
||||
|
@ -33,6 +33,7 @@ import im.vector.matrix.android.api.failure.Failure
|
||||
import im.vector.matrix.android.api.failure.MatrixError
|
||||
import im.vector.riotx.R
|
||||
import im.vector.riotx.core.error.ErrorFormatter
|
||||
import im.vector.riotx.core.extensions.hideKeyboard
|
||||
import im.vector.riotx.core.extensions.isEmail
|
||||
import im.vector.riotx.core.extensions.setTextOrHide
|
||||
import kotlinx.android.parcel.Parcelize
|
||||
@ -135,7 +136,8 @@ class LoginGenericTextInputFormFragment @Inject constructor(private val errorFor
|
||||
}
|
||||
|
||||
@OnClick(R.id.loginGenericTextInputFormSubmit)
|
||||
fun onSubmitClicked() {
|
||||
fun submit() {
|
||||
cleanupUi()
|
||||
val text = loginGenericTextInputFormTextInput.text.toString()
|
||||
|
||||
if (text.isEmpty()) {
|
||||
@ -158,6 +160,11 @@ class LoginGenericTextInputFormFragment @Inject constructor(private val errorFor
|
||||
}
|
||||
}
|
||||
|
||||
private fun cleanupUi() {
|
||||
loginGenericTextInputFormSubmit.hideKeyboard()
|
||||
loginGenericTextInputFormSubmit.error = null
|
||||
}
|
||||
|
||||
private fun getCountryCodeOrShowError(text: String): String? {
|
||||
// We expect an international format for the moment (see https://github.com/vector-im/riotX-android/issues/693)
|
||||
if (text.startsWith("+")) {
|
||||
|
@ -27,6 +27,7 @@ import com.airbnb.mvrx.withState
|
||||
import com.jakewharton.rxbinding3.widget.textChanges
|
||||
import im.vector.riotx.R
|
||||
import im.vector.riotx.core.error.ErrorFormatter
|
||||
import im.vector.riotx.core.extensions.hideKeyboard
|
||||
import im.vector.riotx.core.extensions.isEmail
|
||||
import im.vector.riotx.core.extensions.showPassword
|
||||
import io.reactivex.Observable
|
||||
@ -35,6 +36,7 @@ import io.reactivex.rxkotlin.subscribeBy
|
||||
import kotlinx.android.synthetic.main.fragment_login.passwordField
|
||||
import kotlinx.android.synthetic.main.fragment_login.passwordFieldTil
|
||||
import kotlinx.android.synthetic.main.fragment_login.passwordReveal
|
||||
import kotlinx.android.synthetic.main.fragment_login_generic_text_input_form.*
|
||||
import kotlinx.android.synthetic.main.fragment_login_reset_password.*
|
||||
import javax.inject.Inject
|
||||
|
||||
@ -71,7 +73,7 @@ class LoginResetPasswordFragment @Inject constructor(
|
||||
}
|
||||
)
|
||||
.subscribeBy {
|
||||
resetPasswordEmail.error = null
|
||||
resetPasswordEmailTil.error = null
|
||||
passwordFieldTil.error = null
|
||||
resetPasswordSubmit.isEnabled = it
|
||||
}
|
||||
@ -80,12 +82,20 @@ class LoginResetPasswordFragment @Inject constructor(
|
||||
|
||||
@OnClick(R.id.resetPasswordSubmit)
|
||||
fun submit() {
|
||||
cleanupUi()
|
||||
|
||||
val email = resetPasswordEmail.text.toString()
|
||||
val password = passwordField.text.toString()
|
||||
|
||||
loginViewModel.handle(LoginAction.ResetPassword(email, password))
|
||||
}
|
||||
|
||||
private fun cleanupUi() {
|
||||
resetPasswordSubmit.hideKeyboard()
|
||||
resetPasswordEmailTil.error = null
|
||||
passwordFieldTil.error = null
|
||||
}
|
||||
|
||||
private fun setupPasswordReveal() {
|
||||
passwordShown = false
|
||||
|
||||
|
@ -29,6 +29,7 @@ import com.airbnb.mvrx.withState
|
||||
import com.jakewharton.rxbinding3.widget.textChanges
|
||||
import im.vector.riotx.R
|
||||
import im.vector.riotx.core.error.ErrorFormatter
|
||||
import im.vector.riotx.core.extensions.hideKeyboard
|
||||
import im.vector.riotx.core.utils.openUrlInExternalBrowser
|
||||
import kotlinx.android.synthetic.main.fragment_login_server_url_form.*
|
||||
import javax.inject.Inject
|
||||
@ -88,7 +89,7 @@ class LoginServerUrlFormFragment @Inject constructor(
|
||||
}
|
||||
|
||||
@OnClick(R.id.loginServerUrlFormLearnMore)
|
||||
fun learMore() {
|
||||
fun learnMore() {
|
||||
openUrlInExternalBrowser(requireActivity(), MODULAR_LINK)
|
||||
}
|
||||
|
||||
@ -99,6 +100,8 @@ class LoginServerUrlFormFragment @Inject constructor(
|
||||
@SuppressLint("SetTextI18n")
|
||||
@OnClick(R.id.loginServerUrlFormSubmit)
|
||||
fun submit() {
|
||||
cleanupUi()
|
||||
|
||||
// Static check of homeserver url, empty, malformed, etc.
|
||||
var serverUrl = loginServerUrlFormHomeServerUrl.text.toString()
|
||||
|
||||
@ -116,6 +119,11 @@ class LoginServerUrlFormFragment @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
private fun cleanupUi() {
|
||||
loginServerUrlFormSubmit.hideKeyboard()
|
||||
loginServerUrlFormHomeServerUrlTil.error = null
|
||||
}
|
||||
|
||||
override fun onRegistrationError(throwable: Throwable) {
|
||||
// Cannot happen here, but just in case
|
||||
AlertDialog.Builder(requireActivity())
|
||||
|
@ -93,13 +93,6 @@ class LoginTermsFragment @Inject constructor(
|
||||
?.takeIf { it.isNotBlank() }
|
||||
?.let {
|
||||
openUrlInExternalBrowser(requireContext(), it)
|
||||
|
||||
// This code crashed, because user is not authenticated yet
|
||||
//val intent = VectorWebViewActivity.getIntent(requireContext(),
|
||||
// localizedFlowDataLoginTerms.localizedUrl!!,
|
||||
// localizedFlowDataLoginTerms.localizedName!!,
|
||||
// WebViewMode.DEFAULT)
|
||||
//startActivity(intent)
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user