Focus on edit text + open keyboard when landing on screen

This commit is contained in:
Maxime NATUREL 2022-09-20 15:26:37 +02:00
parent 5498a7e96e
commit bd9b843df7
2 changed files with 5 additions and 0 deletions

View File

@ -19,6 +19,7 @@ package im.vector.app.features.settings.devices.v2.rename
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.WindowManager
import com.airbnb.mvrx.Mavericks
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.addFragment
@ -37,6 +38,7 @@ class RenameSessionActivity : VectorBaseActivity<ActivitySimpleBinding>() {
super.onCreate(savedInstanceState)
if (isFirstCreation()) {
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
addFragment(
container = views.simpleFragmentContainer,
fragmentClass = RenameSessionFragment::class.java,

View File

@ -24,6 +24,7 @@ import androidx.core.widget.doOnTextChanged
import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.showKeyboard
import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentSessionRenameBinding
import javax.inject.Inject
@ -59,6 +60,7 @@ class RenameSessionFragment :
}
private fun initEditText() {
views.renameSessionEditText.showKeyboard(andRequestFocus = true)
views.renameSessionEditText.doOnTextChanged { text, _, _, _ ->
viewModel.handle(RenameSessionAction.EditLocally(text.toString()))
}
@ -86,6 +88,7 @@ class RenameSessionFragment :
override fun invalidate() = withState(viewModel) { state ->
if (renameEditTextInitialized.not()) {
views.renameSessionEditText.setText(state.editedDeviceName)
views.renameSessionEditText.setSelection(views.renameSessionEditText.length())
renameEditTextInitialized = true
}
views.renameSessionSave.isEnabled = state.editedDeviceName.isNotEmpty()