From 09ddc86c40dba65995f64b5ec2f6123daea5e25c Mon Sep 17 00:00:00 2001 From: Andy Scherzinger Date: Thu, 28 Jul 2022 22:22:51 +0200 Subject: [PATCH] Optimize layout and make it accessible Signed-off-by: Andy Scherzinger --- .../adapters/PollCreateOptionViewHolder.kt | 18 ++++++-- .../adapters/PollCreateOptionsAdapter.kt | 2 +- .../talk/polls/ui/PollCreateDialogFragment.kt | 6 +-- .../main/res/layout/dialog_poll_create.xml | 43 +++++++++++++------ .../res/layout/poll_create_options_item.xml | 27 +++++++++--- app/src/main/res/values/dimens.xml | 1 + app/src/main/res/values/strings.xml | 3 ++ 7 files changed, 72 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/polls/adapters/PollCreateOptionViewHolder.kt b/app/src/main/java/com/nextcloud/talk/polls/adapters/PollCreateOptionViewHolder.kt index 6d40969dc..91afdd16c 100644 --- a/app/src/main/java/com/nextcloud/talk/polls/adapters/PollCreateOptionViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/polls/adapters/PollCreateOptionViewHolder.kt @@ -24,6 +24,7 @@ import android.annotation.SuppressLint import android.text.Editable import android.text.TextWatcher import androidx.recyclerview.widget.RecyclerView +import com.nextcloud.talk.R import com.nextcloud.talk.databinding.PollCreateOptionsItemBinding import com.nextcloud.talk.utils.EmojiTextInputEditText @@ -43,13 +44,13 @@ class PollCreateOptionViewHolder( ) { textListener?.let { - binding.pollOptionText.removeTextChangedListener(it) + binding.pollOptionTextEdit.removeTextChangedListener(it) } - binding.pollOptionText.setText(pollCreateOptionItem.pollOption) + binding.pollOptionTextEdit.setText(pollCreateOptionItem.pollOption) if (focus) { - itemsListener.requestFocus(binding.pollOptionText) + itemsListener.requestFocus(binding.pollOptionTextEdit) } binding.pollOptionDelete.setOnClickListener { @@ -57,7 +58,16 @@ class PollCreateOptionViewHolder( } textListener = getTextWatcher(pollCreateOptionItem, itemsListener) - binding.pollOptionText.addTextChangedListener(textListener) + binding.pollOptionTextEdit.addTextChangedListener(textListener) + binding.pollOptionTextInputLayout.hint = String.format( + binding.pollOptionTextInputLayout.resources.getString(R.string.polls_option_hint), + position + 1 + ) + + binding.pollOptionDelete.contentDescription = String.format( + binding.pollOptionTextInputLayout.resources.getString(R.string.polls_option_delete), + position + 1 + ) } private fun getTextWatcher( diff --git a/app/src/main/java/com/nextcloud/talk/polls/adapters/PollCreateOptionsAdapter.kt b/app/src/main/java/com/nextcloud/talk/polls/adapters/PollCreateOptionsAdapter.kt index 39c8f7d7f..e827a56a6 100644 --- a/app/src/main/java/com/nextcloud/talk/polls/adapters/PollCreateOptionsAdapter.kt +++ b/app/src/main/java/com/nextcloud/talk/polls/adapters/PollCreateOptionsAdapter.kt @@ -29,7 +29,7 @@ class PollCreateOptionsAdapter( private val clickListener: PollCreateOptionsItemListener ) : RecyclerView.Adapter() { - internal var list: ArrayList = ArrayList() + internal var list: ArrayList = ArrayList() override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PollCreateOptionViewHolder { val itemBinding = PollCreateOptionsItemBinding.inflate(LayoutInflater.from(parent.context), parent, false) diff --git a/app/src/main/java/com/nextcloud/talk/polls/ui/PollCreateDialogFragment.kt b/app/src/main/java/com/nextcloud/talk/polls/ui/PollCreateDialogFragment.kt index cdaa8fa58..e94f1e750 100644 --- a/app/src/main/java/com/nextcloud/talk/polls/ui/PollCreateDialogFragment.kt +++ b/app/src/main/java/com/nextcloud/talk/polls/ui/PollCreateDialogFragment.kt @@ -102,7 +102,7 @@ class PollCreateDialogFragment : DialogFragment(), PollCreateOptionsItemListener dismiss() } - binding.pollCreateQuestion.addTextChangedListener(object : TextWatcher { + binding.pollCreateQuestionTextEdit.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable) { // unused atm } @@ -161,8 +161,8 @@ class PollCreateDialogFragment : DialogFragment(), PollCreateOptionsItemListener } override fun requestFocus(textField: EditText) { - if (binding.pollCreateQuestion.text.isBlank()) { - binding.pollCreateQuestion.requestFocus() + if (binding.pollCreateQuestionTextEdit.text?.isBlank() == true) { + binding.pollCreateQuestionTextEdit.requestFocus() } else { textField.requestFocus() } diff --git a/app/src/main/res/layout/dialog_poll_create.xml b/app/src/main/res/layout/dialog_poll_create.xml index f48baaa2a..da0fe5f7f 100644 --- a/app/src/main/res/layout/dialog_poll_create.xml +++ b/app/src/main/res/layout/dialog_poll_create.xml @@ -32,33 +32,51 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:paddingTop="@dimen/dialog_padding"> + android:paddingTop="@dimen/dialog_padding_top_bottom"> - + android:hint="@string/polls_question_hint" + android:minHeight="@dimen/min_size_clickable_area" + app:boxStrokeColor="@color/colorPrimary" + app:errorTextAppearance="@style/ErrorAppearance" + app:hintTextColor="@color/colorPrimary"> - - + + + + + + + + app:icon="@drawable/ic_add_grey600_24px" /> + android:paddingBottom="@dimen/dialog_padding_top_bottom"> - + app:boxStrokeColor="@color/colorPrimary" + app:errorTextAppearance="@style/ErrorAppearance" + app:hintTextColor="@color/colorPrimary"> + + + + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 9962226da..9f4ad1f17 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -60,6 +60,7 @@ 8dp 400dp 24dp + 18dp 180dp 110dp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ec961c518..bffdd4c13 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -543,7 +543,10 @@ You can\'t vote with more options for this poll. Results Question + Your question Options + Option %1$s + Delete option %1$s Settings Private poll Multiple answers