From ba6cc7170bcb9dfc13487691574faf343cca0a2a Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Wed, 20 Jul 2022 13:10:20 +0200 Subject: [PATCH] initially add 2 option fields and focus question field Signed-off-by: Marcel Hibbe --- .../polls/adapters/PollCreateOptionViewHolder.kt | 2 +- .../polls/adapters/PollCreateOptionsItemListener.kt | 4 ++++ .../talk/polls/ui/PollCreateDialogFragment.kt | 12 ++++++++++++ .../talk/polls/viewmodels/PollCreateViewModel.kt | 2 +- app/src/main/res/layout/dialog_poll_create.xml | 6 ++++-- 5 files changed, 22 insertions(+), 4 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 edb223103..6d40969dc 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 @@ -49,7 +49,7 @@ class PollCreateOptionViewHolder( binding.pollOptionText.setText(pollCreateOptionItem.pollOption) if (focus) { - binding.pollOptionText.requestFocus() + itemsListener.requestFocus(binding.pollOptionText) } binding.pollOptionDelete.setOnClickListener { diff --git a/app/src/main/java/com/nextcloud/talk/polls/adapters/PollCreateOptionsItemListener.kt b/app/src/main/java/com/nextcloud/talk/polls/adapters/PollCreateOptionsItemListener.kt index 30c83fc9a..a057592bd 100644 --- a/app/src/main/java/com/nextcloud/talk/polls/adapters/PollCreateOptionsItemListener.kt +++ b/app/src/main/java/com/nextcloud/talk/polls/adapters/PollCreateOptionsItemListener.kt @@ -20,9 +20,13 @@ package com.nextcloud.talk.polls.adapters +import android.widget.EditText + interface PollCreateOptionsItemListener { fun onRemoveOptionsItemClick(pollCreateOptionItem: PollCreateOptionItem, position: Int) fun onOptionsItemTextChanged(pollCreateOptionItem: PollCreateOptionItem) + + fun requestFocus(textField: EditText) } 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 3a397aa72..2333d3313 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 @@ -29,6 +29,7 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.EditText import android.widget.Toast import androidx.appcompat.app.AlertDialog import androidx.fragment.app.DialogFragment @@ -89,6 +90,9 @@ class PollCreateDialogFragment : DialogFragment(), PollCreateOptionsItemListener setupListeners() setupStateObserver() + + viewModel.addOption() + viewModel.addOption() } private fun setupListeners() { @@ -159,6 +163,14 @@ class PollCreateDialogFragment : DialogFragment(), PollCreateOptionsItemListener viewModel.optionsItemTextChanged() } + override fun requestFocus(textField: EditText) { + if (binding.pollCreateQuestion.text.isBlank()) { + binding.pollCreateQuestion.requestFocus() + } else { + textField.requestFocus() + } + } + /** * Fragment creator */ diff --git a/app/src/main/java/com/nextcloud/talk/polls/viewmodels/PollCreateViewModel.kt b/app/src/main/java/com/nextcloud/talk/polls/viewmodels/PollCreateViewModel.kt index fcb38635c..e78184b3e 100644 --- a/app/src/main/java/com/nextcloud/talk/polls/viewmodels/PollCreateViewModel.kt +++ b/app/src/main/java/com/nextcloud/talk/polls/viewmodels/PollCreateViewModel.kt @@ -113,7 +113,7 @@ class PollCreateViewModel @Inject constructor(private val repository: PollReposi roomToken, _question, _options.value!!.map { it.pollOption }, resultMode, maxVotes ) - ?.doOnSubscribe { disposable = it } + .doOnSubscribe { disposable = it } ?.subscribeOn(Schedulers.io()) ?.observeOn(AndroidSchedulers.mainThread()) ?.subscribe(PollObserver()) diff --git a/app/src/main/res/layout/dialog_poll_create.xml b/app/src/main/res/layout/dialog_poll_create.xml index d1d1b73a1..9f954a325 100644 --- a/app/src/main/res/layout/dialog_poll_create.xml +++ b/app/src/main/res/layout/dialog_poll_create.xml @@ -33,10 +33,12 @@ android:textStyle="bold" android:text="@string/polls_question" /> - + android:layout_height="wrap_content" + android:inputType="text" + tools:ignore="Autofill,LabelFor"/>