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 com.jakewharton.rxbinding3.widget.textChanges
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.error.ErrorFormatter
|
import im.vector.riotx.core.error.ErrorFormatter
|
||||||
|
import im.vector.riotx.core.extensions.hideKeyboard
|
||||||
import im.vector.riotx.core.extensions.showPassword
|
import im.vector.riotx.core.extensions.showPassword
|
||||||
import io.reactivex.Observable
|
import io.reactivex.Observable
|
||||||
import io.reactivex.functions.BiFunction
|
import io.reactivex.functions.BiFunction
|
||||||
@ -79,6 +80,8 @@ class LoginFragment @Inject constructor(
|
|||||||
|
|
||||||
@OnClick(R.id.loginSubmit)
|
@OnClick(R.id.loginSubmit)
|
||||||
fun submit() {
|
fun submit() {
|
||||||
|
cleanupUi()
|
||||||
|
|
||||||
val login = loginField.text?.trim().toString()
|
val login = loginField.text?.trim().toString()
|
||||||
val password = passwordField.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() {
|
private fun setupUi() {
|
||||||
val resId = when (loginViewModel.signMode) {
|
val resId = when (loginViewModel.signMode) {
|
||||||
SignMode.Unknown -> error("developer error")
|
SignMode.Unknown -> error("developer error")
|
||||||
@ -128,7 +137,6 @@ class LoginFragment @Inject constructor(
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun setupSubmitButton() {
|
private fun setupSubmitButton() {
|
||||||
Observable
|
Observable
|
||||||
.combineLatest(
|
.combineLatest(
|
||||||
|
@ -33,6 +33,7 @@ import im.vector.matrix.android.api.failure.Failure
|
|||||||
import im.vector.matrix.android.api.failure.MatrixError
|
import im.vector.matrix.android.api.failure.MatrixError
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.error.ErrorFormatter
|
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.isEmail
|
||||||
import im.vector.riotx.core.extensions.setTextOrHide
|
import im.vector.riotx.core.extensions.setTextOrHide
|
||||||
import kotlinx.android.parcel.Parcelize
|
import kotlinx.android.parcel.Parcelize
|
||||||
@ -135,7 +136,8 @@ class LoginGenericTextInputFormFragment @Inject constructor(private val errorFor
|
|||||||
}
|
}
|
||||||
|
|
||||||
@OnClick(R.id.loginGenericTextInputFormSubmit)
|
@OnClick(R.id.loginGenericTextInputFormSubmit)
|
||||||
fun onSubmitClicked() {
|
fun submit() {
|
||||||
|
cleanupUi()
|
||||||
val text = loginGenericTextInputFormTextInput.text.toString()
|
val text = loginGenericTextInputFormTextInput.text.toString()
|
||||||
|
|
||||||
if (text.isEmpty()) {
|
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? {
|
private fun getCountryCodeOrShowError(text: String): String? {
|
||||||
// We expect an international format for the moment (see https://github.com/vector-im/riotX-android/issues/693)
|
// We expect an international format for the moment (see https://github.com/vector-im/riotX-android/issues/693)
|
||||||
if (text.startsWith("+")) {
|
if (text.startsWith("+")) {
|
||||||
|
@ -27,6 +27,7 @@ import com.airbnb.mvrx.withState
|
|||||||
import com.jakewharton.rxbinding3.widget.textChanges
|
import com.jakewharton.rxbinding3.widget.textChanges
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.error.ErrorFormatter
|
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.isEmail
|
||||||
import im.vector.riotx.core.extensions.showPassword
|
import im.vector.riotx.core.extensions.showPassword
|
||||||
import io.reactivex.Observable
|
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.passwordField
|
||||||
import kotlinx.android.synthetic.main.fragment_login.passwordFieldTil
|
import kotlinx.android.synthetic.main.fragment_login.passwordFieldTil
|
||||||
import kotlinx.android.synthetic.main.fragment_login.passwordReveal
|
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 kotlinx.android.synthetic.main.fragment_login_reset_password.*
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@ -71,7 +73,7 @@ class LoginResetPasswordFragment @Inject constructor(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
.subscribeBy {
|
.subscribeBy {
|
||||||
resetPasswordEmail.error = null
|
resetPasswordEmailTil.error = null
|
||||||
passwordFieldTil.error = null
|
passwordFieldTil.error = null
|
||||||
resetPasswordSubmit.isEnabled = it
|
resetPasswordSubmit.isEnabled = it
|
||||||
}
|
}
|
||||||
@ -80,12 +82,20 @@ class LoginResetPasswordFragment @Inject constructor(
|
|||||||
|
|
||||||
@OnClick(R.id.resetPasswordSubmit)
|
@OnClick(R.id.resetPasswordSubmit)
|
||||||
fun submit() {
|
fun submit() {
|
||||||
|
cleanupUi()
|
||||||
|
|
||||||
val email = resetPasswordEmail.text.toString()
|
val email = resetPasswordEmail.text.toString()
|
||||||
val password = passwordField.text.toString()
|
val password = passwordField.text.toString()
|
||||||
|
|
||||||
loginViewModel.handle(LoginAction.ResetPassword(email, password))
|
loginViewModel.handle(LoginAction.ResetPassword(email, password))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun cleanupUi() {
|
||||||
|
resetPasswordSubmit.hideKeyboard()
|
||||||
|
resetPasswordEmailTil.error = null
|
||||||
|
passwordFieldTil.error = null
|
||||||
|
}
|
||||||
|
|
||||||
private fun setupPasswordReveal() {
|
private fun setupPasswordReveal() {
|
||||||
passwordShown = false
|
passwordShown = false
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ import com.airbnb.mvrx.withState
|
|||||||
import com.jakewharton.rxbinding3.widget.textChanges
|
import com.jakewharton.rxbinding3.widget.textChanges
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.error.ErrorFormatter
|
import im.vector.riotx.core.error.ErrorFormatter
|
||||||
|
import im.vector.riotx.core.extensions.hideKeyboard
|
||||||
import im.vector.riotx.core.utils.openUrlInExternalBrowser
|
import im.vector.riotx.core.utils.openUrlInExternalBrowser
|
||||||
import kotlinx.android.synthetic.main.fragment_login_server_url_form.*
|
import kotlinx.android.synthetic.main.fragment_login_server_url_form.*
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@ -88,7 +89,7 @@ class LoginServerUrlFormFragment @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@OnClick(R.id.loginServerUrlFormLearnMore)
|
@OnClick(R.id.loginServerUrlFormLearnMore)
|
||||||
fun learMore() {
|
fun learnMore() {
|
||||||
openUrlInExternalBrowser(requireActivity(), MODULAR_LINK)
|
openUrlInExternalBrowser(requireActivity(), MODULAR_LINK)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,6 +100,8 @@ class LoginServerUrlFormFragment @Inject constructor(
|
|||||||
@SuppressLint("SetTextI18n")
|
@SuppressLint("SetTextI18n")
|
||||||
@OnClick(R.id.loginServerUrlFormSubmit)
|
@OnClick(R.id.loginServerUrlFormSubmit)
|
||||||
fun submit() {
|
fun submit() {
|
||||||
|
cleanupUi()
|
||||||
|
|
||||||
// Static check of homeserver url, empty, malformed, etc.
|
// Static check of homeserver url, empty, malformed, etc.
|
||||||
var serverUrl = loginServerUrlFormHomeServerUrl.text.toString()
|
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) {
|
override fun onRegistrationError(throwable: Throwable) {
|
||||||
// Cannot happen here, but just in case
|
// Cannot happen here, but just in case
|
||||||
AlertDialog.Builder(requireActivity())
|
AlertDialog.Builder(requireActivity())
|
||||||
|
@ -93,13 +93,6 @@ class LoginTermsFragment @Inject constructor(
|
|||||||
?.takeIf { it.isNotBlank() }
|
?.takeIf { it.isNotBlank() }
|
||||||
?.let {
|
?.let {
|
||||||
openUrlInExternalBrowser(requireContext(), it)
|
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