From a4c48b11d65d41311f725093c4da55689a80a8e8 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Thu, 23 Jun 2022 15:11:48 +0200 Subject: [PATCH] fix radiobuttons Signed-off-by: Marcel Hibbe --- .../java/com/nextcloud/talk/polls/ui/PollVoteFragment.kt | 9 ++++----- .../nextcloud/talk/polls/viewmodels/PollVoteViewModel.kt | 8 ++++++-- 2 files changed, 10 insertions(+), 7 deletions(-) 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 7fd31739a..8853461e6 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 @@ -94,13 +94,10 @@ class PollVoteFragment( } binding.pollVoteRadioGroup.setOnCheckedChangeListener { group, checkedId -> - // todo set selected in viewmodel. - Log.d("bb", "click") + viewModel.selectOption(checkedId, true) } - // todo observe viewmodel checked, set view checked with it binding.pollVoteSubmitButton.setOnClickListener { - // viewModel.vote(roomToken, pollId, binding.pollVoteRadioGroup.checkedRadioButtonId) viewModel.vote(roomToken, pollId) } } @@ -116,6 +113,8 @@ class PollVoteFragment( }?.forEachIndexed { index, radioButton -> radioButton.id = index binding.pollVoteRadioGroup.addView(radioButton) + + radioButton.isChecked = viewModel.selectedOptions.contains(index) == true } } else { binding.voteOptionsCheckboxesWrapper.removeAllViews() @@ -128,7 +127,7 @@ class PollVoteFragment( checkBox.isChecked = viewModel.selectedOptions.contains(index) == true checkBox.setOnCheckedChangeListener { buttonView, isChecked -> if (isChecked) { - viewModel.selectOption(index) + viewModel.selectOption(index, false) } else { viewModel.deSelectOption(index) } diff --git a/app/src/main/java/com/nextcloud/talk/polls/viewmodels/PollVoteViewModel.kt b/app/src/main/java/com/nextcloud/talk/polls/viewmodels/PollVoteViewModel.kt index 67ffb5fbb..329850090 100644 --- a/app/src/main/java/com/nextcloud/talk/polls/viewmodels/PollVoteViewModel.kt +++ b/app/src/main/java/com/nextcloud/talk/polls/viewmodels/PollVoteViewModel.kt @@ -54,8 +54,12 @@ class PollVoteViewModel @Inject constructor(private val repository: PollReposito _selectedOptions = selectedOptions } - fun selectOption(option: Int) { - _selectedOptions = _selectedOptions.plus(option) + fun selectOption(option: Int, isRadioBox: Boolean) { + if (isRadioBox) { + _selectedOptions = listOf(option) + } else { + _selectedOptions = _selectedOptions.plus(option) + } } fun deSelectOption(option: Int) {