Merge pull request #7790 from vector-im/feature/ons/fix_rename_session_keyboard_visibility
Automatically show keyboard after learn more bottom sheet is dismissed (PSG-1105)
This commit is contained in:
commit
9fd6fe321d
|
@ -0,0 +1 @@
|
|||
Automatically show keyboard after learn more bottom sheet is dismissed
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
package im.vector.app.features.settings.devices.v2.more
|
||||
|
||||
import android.content.DialogInterface
|
||||
import android.os.Bundle
|
||||
import android.os.Parcelable
|
||||
import android.view.LayoutInflater
|
||||
|
@ -42,6 +43,8 @@ class SessionLearnMoreBottomSheet : VectorBaseBottomSheetDialogFragment<BottomSh
|
|||
|
||||
override val showExpanded = true
|
||||
|
||||
var onDismiss: (() -> Unit)? = null
|
||||
|
||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): BottomSheetSessionLearnMoreBinding {
|
||||
return BottomSheetSessionLearnMoreBinding.inflate(inflater, container, false)
|
||||
}
|
||||
|
@ -57,6 +60,11 @@ class SessionLearnMoreBottomSheet : VectorBaseBottomSheetDialogFragment<BottomSh
|
|||
}
|
||||
}
|
||||
|
||||
override fun onDismiss(dialog: DialogInterface) {
|
||||
super.onDismiss(dialog)
|
||||
onDismiss?.invoke()
|
||||
}
|
||||
|
||||
override fun invalidate() = withState(viewModel) { viewState ->
|
||||
super.invalidate()
|
||||
views.bottomSheetSessionLearnMoreTitle.text = viewState.title
|
||||
|
@ -65,11 +73,12 @@ class SessionLearnMoreBottomSheet : VectorBaseBottomSheetDialogFragment<BottomSh
|
|||
|
||||
companion object {
|
||||
|
||||
fun show(fragmentManager: FragmentManager, args: Args) {
|
||||
fun show(fragmentManager: FragmentManager, args: Args): SessionLearnMoreBottomSheet {
|
||||
val bottomSheet = SessionLearnMoreBottomSheet()
|
||||
bottomSheet.isCancelable = true
|
||||
bottomSheet.setArguments(args)
|
||||
bottomSheet.show(fragmentManager, "SessionLearnMoreBottomSheet")
|
||||
return bottomSheet
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ import android.os.Bundle
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.ViewTreeObserver
|
||||
import androidx.core.widget.doOnTextChanged
|
||||
import com.airbnb.mvrx.fragmentViewModel
|
||||
import com.airbnb.mvrx.withState
|
||||
|
@ -62,12 +63,24 @@ class RenameSessionFragment :
|
|||
}
|
||||
|
||||
private fun initEditText() {
|
||||
views.renameSessionEditText.showKeyboard(andRequestFocus = true)
|
||||
showKeyboard()
|
||||
views.renameSessionEditText.doOnTextChanged { text, _, _, _ ->
|
||||
viewModel.handle(RenameSessionAction.EditLocally(text.toString()))
|
||||
}
|
||||
}
|
||||
|
||||
private fun showKeyboard() {
|
||||
val focusChangeListener = object : ViewTreeObserver.OnWindowFocusChangeListener {
|
||||
override fun onWindowFocusChanged(hasFocus: Boolean) {
|
||||
if (hasFocus) {
|
||||
views.renameSessionEditText.showKeyboard(andRequestFocus = true)
|
||||
}
|
||||
views.renameSessionEditText.viewTreeObserver.removeOnWindowFocusChangeListener(this)
|
||||
}
|
||||
}
|
||||
views.renameSessionEditText.viewTreeObserver.addOnWindowFocusChangeListener(focusChangeListener)
|
||||
}
|
||||
|
||||
private fun initSaveButton() {
|
||||
views.renameSessionSave.debouncedClicks {
|
||||
viewModel.handle(RenameSessionAction.SaveModifications)
|
||||
|
@ -89,7 +102,9 @@ class RenameSessionFragment :
|
|||
title = getString(R.string.device_manager_learn_more_session_rename_title),
|
||||
description = getString(R.string.device_manager_learn_more_session_rename),
|
||||
)
|
||||
SessionLearnMoreBottomSheet.show(childFragmentManager, args)
|
||||
SessionLearnMoreBottomSheet
|
||||
.show(childFragmentManager, args)
|
||||
.onDismiss = { showKeyboard() }
|
||||
}
|
||||
|
||||
private fun observeViewEvents() {
|
||||
|
|
Loading…
Reference in New Issue