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