Adds auto keyboard popup to dialogs (#4667)
Adds auto keyboard popup to ListsActivity, FollowedTagsActivity, EditFilterActivity, CaptionDialog, and AddPollDialog.kt, and AddHashtagDialog in TabPreferenceActivity. These are all dialog screens which editing texts are the main purposes --------- Co-authored-by: Weblate <42475313+nailyk-weblate@users.noreply.github.com> Co-authored-by: Anonymous <noreply@weblate.org> Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com> Co-authored-by: Manuel <mannivuwiki@gmail.com> Co-authored-by: Eric <ekhfcxwuvxqfdb@hldrive.com> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
This commit is contained in:
parent
6a8bb044bb
commit
3c25b76853
6 changed files with 43 additions and 2 deletions
|
|
@ -23,6 +23,7 @@ import android.os.Bundle
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.WindowManager
|
||||
import android.widget.PopupMenu
|
||||
import androidx.activity.viewModels
|
||||
import androidx.annotation.StringRes
|
||||
|
|
@ -136,11 +137,14 @@ class ListsActivity : BaseActivity() {
|
|||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.show()
|
||||
|
||||
dialog.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
|
||||
|
||||
binding.nameText.let { editText ->
|
||||
editText.doOnTextChanged { s, _, _, _ ->
|
||||
dialog.getButton(Dialog.BUTTON_POSITIVE).isEnabled = s?.isNotBlank() == true
|
||||
}
|
||||
editText.setText(list?.title)
|
||||
editText.requestFocus()
|
||||
editText.text?.let { editText.setSelection(it.length) }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ package com.keylesspalace.tusky
|
|||
import android.graphics.Color
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import android.widget.FrameLayout
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
|
|
@ -267,6 +268,7 @@ class TabPreferenceActivity : BaseActivity(), ItemInteractionListener, ListSelec
|
|||
|
||||
dialog.show()
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).isEnabled = validateHashtag(editText.text)
|
||||
dialog.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
|
||||
editText.requestFocus()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import android.view.LayoutInflater
|
|||
import android.view.WindowManager
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.textfield.TextInputEditText
|
||||
import com.keylesspalace.tusky.R
|
||||
import com.keylesspalace.tusky.databinding.DialogAddPollBinding
|
||||
import com.keylesspalace.tusky.entity.NewPoll
|
||||
|
|
@ -106,6 +107,14 @@ fun showAddPollDialog(
|
|||
|
||||
dialog.show()
|
||||
|
||||
dialog.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
|
||||
binding.pollChoices.post {
|
||||
val firstItemView = binding.pollChoices.layoutManager?.findViewByPosition(0)
|
||||
val editText = firstItemView?.findViewById<TextInputEditText>(R.id.optionEditText)
|
||||
editText?.requestFocus()
|
||||
editText?.setSelection(editText.length())
|
||||
}
|
||||
|
||||
// make the dialog focusable so the keyboard does not stay behind it
|
||||
dialog.window?.clearFlags(
|
||||
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM
|
||||
|
|
|
|||
|
|
@ -62,6 +62,11 @@ class CaptionDialog : DialogFragment() {
|
|||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
val imageView = binding.imageDescriptionView
|
||||
imageView.maxZoom = 6f
|
||||
val imageDescriptionText = binding.imageDescriptionText
|
||||
imageDescriptionText.post {
|
||||
imageDescriptionText.requestFocus()
|
||||
imageDescriptionText.setSelection(imageDescriptionText.length())
|
||||
}
|
||||
|
||||
binding.imageDescriptionText.hint = resources.getQuantityString(
|
||||
R.plurals.hint_describe_for_visually_impaired,
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.keylesspalace.tusky.components.filters
|
|||
import android.content.Context
|
||||
import android.content.DialogInterface.BUTTON_POSITIVE
|
||||
import android.os.Bundle
|
||||
import android.view.WindowManager
|
||||
import android.widget.AdapterView
|
||||
import androidx.activity.viewModels
|
||||
import androidx.core.view.size
|
||||
|
|
@ -211,7 +212,7 @@ class EditFilterActivity : BaseActivity() {
|
|||
private fun showAddKeywordDialog() {
|
||||
val binding = DialogFilterBinding.inflate(layoutInflater)
|
||||
binding.phraseWholeWord.isChecked = true
|
||||
MaterialAlertDialogBuilder(this)
|
||||
val dialog = MaterialAlertDialogBuilder(this)
|
||||
.setTitle(R.string.filter_keyword_addition_title)
|
||||
.setView(binding.root)
|
||||
.setPositiveButton(android.R.string.ok) { _, _ ->
|
||||
|
|
@ -225,6 +226,12 @@ class EditFilterActivity : BaseActivity() {
|
|||
}
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.show()
|
||||
|
||||
dialog.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
|
||||
|
||||
val editText = binding.phraseEditText
|
||||
editText.requestFocus()
|
||||
editText.setSelection(editText.length())
|
||||
}
|
||||
|
||||
private fun showEditKeywordDialog(keyword: FilterKeyword) {
|
||||
|
|
@ -232,7 +239,7 @@ class EditFilterActivity : BaseActivity() {
|
|||
binding.phraseEditText.setText(keyword.keyword)
|
||||
binding.phraseWholeWord.isChecked = keyword.wholeWord
|
||||
|
||||
MaterialAlertDialogBuilder(this)
|
||||
val dialog = MaterialAlertDialogBuilder(this)
|
||||
.setTitle(R.string.filter_edit_keyword_title)
|
||||
.setView(binding.root)
|
||||
.setPositiveButton(R.string.filter_dialog_update_button) { _, _ ->
|
||||
|
|
@ -246,6 +253,12 @@ class EditFilterActivity : BaseActivity() {
|
|||
}
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.show()
|
||||
|
||||
dialog.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
|
||||
|
||||
val editText = binding.phraseEditText
|
||||
editText.requestFocus()
|
||||
editText.setSelection(editText.length())
|
||||
}
|
||||
|
||||
private fun validateSaveButton() {
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import android.content.DialogInterface
|
|||
import android.content.SharedPreferences
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.WindowManager
|
||||
import android.widget.AutoCompleteTextView
|
||||
import androidx.activity.viewModels
|
||||
import androidx.fragment.app.DialogFragment
|
||||
|
|
@ -194,6 +195,8 @@ class FollowedTagsActivity :
|
|||
showBotBadge = false
|
||||
)
|
||||
)
|
||||
autoCompleteTextView.requestFocus()
|
||||
autoCompleteTextView.setSelection(autoCompleteTextView.length())
|
||||
|
||||
return MaterialAlertDialogBuilder(requireActivity())
|
||||
.setTitle(R.string.dialog_follow_hashtag_title)
|
||||
|
|
@ -207,6 +210,11 @@ class FollowedTagsActivity :
|
|||
.create()
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
dialog?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun newInstance(): FollowTagDialog = FollowTagDialog()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue