diff --git a/app/src/main/java/com/nextcloud/talk/polls/ui/PollVoteFragment.kt b/app/src/main/java/com/nextcloud/talk/polls/ui/PollVoteFragment.kt index f6fbd2541..44c2a4098 100644 --- a/app/src/main/java/com/nextcloud/talk/polls/ui/PollVoteFragment.kt +++ b/app/src/main/java/com/nextcloud/talk/polls/ui/PollVoteFragment.kt @@ -73,10 +73,10 @@ class PollVoteFragment( parentViewModel.viewState.observe(viewLifecycleOwner) { state -> if (state is PollMainViewModel.PollVoteState) { initPollOptions(state.poll) - // binding.pollVoteHiddenHint.visibility = View.GONE + initCloseButton(state.showCloseButton) } else if (state is PollMainViewModel.PollVoteHiddenState) { initPollOptions(state.poll) - // binding.pollVoteHiddenHint.visibility = View.VISIBLE + initCloseButton(state.showCloseButton) } } @@ -98,7 +98,7 @@ class PollVoteFragment( } // todo observe viewmodel checked, set view checked with it - binding.submitVote.setOnClickListener { + binding.pollVoteSubmitButton.setOnClickListener { viewModel.vote(roomToken, pollId, binding.radioGroup.checkedRadioButtonId) } } @@ -113,6 +113,17 @@ class PollVoteFragment( } } + private fun initCloseButton(showCloseButton: Boolean) { + if (showCloseButton) { + _binding?.pollVoteClosePollButton?.visibility = View.VISIBLE + _binding?.pollVoteClosePollButton?.setOnClickListener { + parentViewModel.closePoll() + } + } else { + _binding?.pollVoteClosePollButton?.visibility = View.GONE + } + } + override fun onDestroyView() { super.onDestroyView() _binding = null diff --git a/app/src/main/java/com/nextcloud/talk/polls/viewmodels/PollMainViewModel.kt b/app/src/main/java/com/nextcloud/talk/polls/viewmodels/PollMainViewModel.kt index 35f166344..909f108a6 100644 --- a/app/src/main/java/com/nextcloud/talk/polls/viewmodels/PollMainViewModel.kt +++ b/app/src/main/java/com/nextcloud/talk/polls/viewmodels/PollMainViewModel.kt @@ -36,8 +36,16 @@ class PollMainViewModel @Inject constructor(private val repository: PollReposito sealed interface ViewState object InitialState : ViewState - open class PollVoteState(val poll: Poll) : ViewState - open class PollVoteHiddenState(val poll: Poll) : ViewState + open class PollVoteState( + val poll: Poll, + val showCloseButton: Boolean + ) : ViewState + + open class PollVoteHiddenState( + val poll: Poll, + val showCloseButton: Boolean + ) : ViewState + open class PollResultState( val poll: Poll, val showParticipants: Boolean, @@ -103,15 +111,17 @@ class PollMainViewModel @Inject constructor(private val repository: PollReposito } override fun onComplete() { + val showCloseButton = poll.status == Poll.STATUS_OPEN && isPollCreatedByCurrentUser(poll) + if (votedForOpenHiddenPoll(poll)) { - _viewState.value = PollVoteHiddenState(poll) + _viewState.value = PollVoteHiddenState(poll, showCloseButton) } else if (editPoll && poll.status == Poll.STATUS_OPEN) { - _viewState.value = PollVoteState(poll) + _viewState.value = PollVoteState(poll, showCloseButton) editPoll = false } else if (poll.status == Poll.STATUS_CLOSED || poll.votedSelf?.isNotEmpty() == true) { setPollResultState(poll) } else if (poll.votedSelf.isNullOrEmpty()) { - _viewState.value = PollVoteState(poll) + _viewState.value = PollVoteState(poll, showCloseButton) } else { Log.w(TAG, "unknown poll state") } diff --git a/app/src/main/res/layout/dialog_poll_results.xml b/app/src/main/res/layout/dialog_poll_results.xml index 211dfb61a..06443366b 100644 --- a/app/src/main/res/layout/dialog_poll_results.xml +++ b/app/src/main/res/layout/dialog_poll_results.xml @@ -41,19 +41,17 @@ android:id="@+id/poll_results_close_poll_button" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="16dp" - android:text="Close" - android:theme="@style/Button.Primary" + android:text="@string/polls_close_poll" + style="@style/OutlinedButton" + android:layout_marginEnd="@dimen/standard_margin" app:cornerRadius="@dimen/button_corner_radius" app:layout_constraintEnd_toStartOf="@+id/edit_vote_button" app:layout_constraintTop_toBottomOf="@+id/poll_results_list_wrapper" /> - + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cab13f522..644436c16 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -539,6 +539,7 @@ Poll results - %1$s votes Add Option + Close Poll Attachments