Also request focus (keyboard is not shown on my device :/)

This commit is contained in:
Benoit Marty 2020-09-01 10:45:48 +02:00
parent 99343294c6
commit 35f854de5d
3 changed files with 10 additions and 3 deletions

View file

@ -27,12 +27,14 @@ import com.google.android.material.textfield.TextInputLayout
import im.vector.app.R
import im.vector.app.core.epoxy.VectorEpoxyHolder
import im.vector.app.core.extensions.setTextOrHide
import im.vector.app.core.extensions.showKeyboard
@EpoxyModelClass(layout = R.layout.item_settings_edit_text)
abstract class SettingsEditTextItem : EpoxyModelWithHolder<SettingsEditTextItem.Holder>() {
@EpoxyAttribute var hint: String? = null
@EpoxyAttribute var value: String? = null
@EpoxyAttribute var requestFocus = false
@EpoxyAttribute var descriptionText: String? = null
@EpoxyAttribute var errorText: String? = null
@EpoxyAttribute var inProgress: Boolean = false
@ -74,6 +76,9 @@ abstract class SettingsEditTextItem : EpoxyModelWithHolder<SettingsEditTextItem.
if (value != null) {
holder.editText.setText(value)
}
if (requestFocus) {
holder.editText.showKeyboard(andRequestFocus = true)
}
}
class Holder : VectorEpoxyHolder() {

View file

@ -136,8 +136,9 @@ class ThreePidsSettingsController @Inject constructor(
id("addingEmail")
inputType(InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS)
hint(stringProvider.getString(R.string.medium_email))
if (data.editTextReinitiator?.isTrue() == true) {
if (data.editTextReinitiator.isTrue()) {
value("")
requestFocus(true)
}
errorText(data.uiState.error)
interactionListener(object : SettingsEditTextItem.Listener {
@ -199,8 +200,9 @@ class ThreePidsSettingsController @Inject constructor(
id("addingMsisdn")
inputType(InputType.TYPE_CLASS_PHONE)
hint(stringProvider.getString(R.string.medium_phone_number))
if (data.editTextReinitiator?.isTrue() == true) {
if (data.editTextReinitiator.isTrue()) {
value("")
requestFocus(true)
}
errorText(data.uiState.error)
interactionListener(object : SettingsEditTextItem.Listener {

View file

@ -28,6 +28,6 @@ data class ThreePidsSettingsViewState(
val threePids: Async<List<ThreePid>> = Uninitialized,
val pendingThreePids: Async<List<ThreePid>> = Uninitialized,
val msisdnValidationRequests: Map<String, Async<Unit>> = emptyMap(),
val editTextReinitiator: ReadOnceTrue? = null,
val editTextReinitiator: ReadOnceTrue = ReadOnceTrue(),
val msisdnValidationReinitiator: Map<ThreePid, ReadOnceTrue> = emptyMap()
) : MvRxState