@@ -21,24 +21,21 @@ import androidx.compose.foundation.layout.Row
2121import androidx.compose.foundation.layout.Spacer
2222import androidx.compose.foundation.layout.fillMaxWidth
2323import androidx.compose.foundation.layout.height
24+ import androidx.compose.foundation.layout.padding
2425import androidx.compose.foundation.layout.size
2526import androidx.compose.foundation.layout.width
26- import androidx.compose.foundation.selection.selectable
2727import androidx.compose.material.icons.Icons
2828import androidx.compose.material.icons.filled.CheckCircle
2929import androidx.compose.material.icons.filled.RadioButtonUnchecked
30- import androidx.compose.material3.IconButtonDefaults
3130import androidx.compose.runtime.Composable
3231import androidx.compose.ui.Alignment
3332import androidx.compose.ui.Modifier
3433import androidx.compose.ui.graphics.StrokeCap
3534import androidx.compose.ui.res.pluralStringResource
36- import androidx.compose.ui.semantics.Role
37- import androidx.compose.ui.tooling.preview.Preview
3835import androidx.compose.ui.unit.dp
39- import io.element.android.libraries.designsystem.preview.ElementThemedPreview
36+ import io.element.android.libraries.designsystem.preview.DayNightPreviews
37+ import io.element.android.libraries.designsystem.preview.ElementPreview
4038import io.element.android.libraries.designsystem.theme.components.Icon
41- import io.element.android.libraries.designsystem.theme.components.IconToggleButton
4239import io.element.android.libraries.designsystem.theme.components.LinearProgressIndicator
4340import io.element.android.libraries.designsystem.theme.components.Text
4441import io.element.android.libraries.designsystem.theme.progressIndicatorTrackColor
@@ -47,41 +44,33 @@ import io.element.android.libraries.theme.ElementTheme
4744import io.element.android.libraries.ui.strings.CommonPlurals
4845
4946@Composable
50- fun PollAnswerView (
47+ internal fun PollAnswerView (
5148 answerItem : PollAnswerItem ,
52- onClick : () -> Unit ,
5349 modifier : Modifier = Modifier ,
5450) {
5551 Row (
56- modifier
57- .fillMaxWidth()
58- .selectable(
59- selected = answerItem.isSelected,
60- enabled = answerItem.isEnabled,
61- onClick = onClick,
62- role = Role .RadioButton ,
63- )
52+ modifier = modifier.fillMaxWidth(),
6453 ) {
65- IconToggleButton (
66- modifier = Modifier .size(22 .dp),
67- checked = answerItem.isSelected,
68- enabled = answerItem.isEnabled,
69- colors = IconButtonDefaults .iconToggleButtonColors(
70- contentColor = ElementTheme .colors.iconSecondary,
71- checkedContentColor = ElementTheme .colors.iconPrimary,
72- disabledContentColor = ElementTheme .colors.iconDisabled,
73- ),
74- onCheckedChange = { onClick() },
75- ) {
76- Icon (
77- imageVector = if (answerItem.isSelected) {
78- Icons .Default .CheckCircle
54+ Icon (
55+ imageVector = if (answerItem.isSelected) {
56+ Icons .Default .CheckCircle
57+ } else {
58+ Icons .Default .RadioButtonUnchecked
59+ },
60+ contentDescription = null ,
61+ modifier = Modifier
62+ .padding(0.5 .dp)
63+ .size(22 .dp),
64+ tint = if (answerItem.isEnabled) {
65+ if (answerItem.isSelected) {
66+ ElementTheme .colors.iconPrimary
7967 } else {
80- Icons .Default .RadioButtonUnchecked
81- },
82- contentDescription = null ,
83- )
84- }
68+ ElementTheme .colors.iconSecondary
69+ }
70+ } else {
71+ ElementTheme .colors.iconDisabled
72+ },
73+ )
8574 Spacer (modifier = Modifier .width(12 .dp))
8675 Column {
8776 Row {
@@ -119,65 +108,58 @@ fun PollAnswerView(
119108 }
120109}
121110
122- @Preview
111+ @DayNightPreviews
123112@Composable
124- internal fun PollAnswerDisclosedNotSelectedPreview () = ElementThemedPreview {
113+ internal fun PollAnswerDisclosedNotSelectedPreview () = ElementPreview {
125114 PollAnswerView (
126115 answerItem = aPollAnswerItem(isDisclosed = true , isSelected = false ),
127- onClick = { },
128116 )
129117}
130118
131- @Preview
119+ @DayNightPreviews
132120@Composable
133- internal fun PollAnswerDisclosedSelectedPreview () = ElementThemedPreview {
121+ internal fun PollAnswerDisclosedSelectedPreview () = ElementPreview {
134122 PollAnswerView (
135123 answerItem = aPollAnswerItem(isDisclosed = true , isSelected = true ),
136- onClick = { }
137124 )
138125}
139126
140- @Preview
127+ @DayNightPreviews
141128@Composable
142- internal fun PollAnswerUndisclosedNotSelectedPreview () = ElementThemedPreview {
129+ internal fun PollAnswerUndisclosedNotSelectedPreview () = ElementPreview {
143130 PollAnswerView (
144131 answerItem = aPollAnswerItem(isDisclosed = false , isSelected = false ),
145- onClick = { },
146132 )
147133}
148134
149- @Preview
135+ @DayNightPreviews
150136@Composable
151- internal fun PollAnswerUndisclosedSelectedPreview () = ElementThemedPreview {
137+ internal fun PollAnswerUndisclosedSelectedPreview () = ElementPreview {
152138 PollAnswerView (
153139 answerItem = aPollAnswerItem(isDisclosed = false , isSelected = true ),
154- onClick = { }
155140 )
156141}
157142
158- @Preview
143+ @DayNightPreviews
159144@Composable
160- internal fun PollAnswerEndedWinnerNotSelectedPreview () = ElementThemedPreview {
145+ internal fun PollAnswerEndedWinnerNotSelectedPreview () = ElementPreview {
161146 PollAnswerView (
162147 answerItem = aPollAnswerItem(isDisclosed = true , isSelected = false , isEnabled = false , isWinner = true ),
163- onClick = { }
164148 )
165149}
166150
167- @Preview
151+ @DayNightPreviews
168152@Composable
169- internal fun PollAnswerEndedWinnerSelectedPreview () = ElementThemedPreview {
153+ internal fun PollAnswerEndedWinnerSelectedPreview () = ElementPreview {
170154 PollAnswerView (
171155 answerItem = aPollAnswerItem(isDisclosed = true , isSelected = true , isEnabled = false , isWinner = true ),
172- onClick = { }
173156 )
174157}
175158
176- @Preview
159+ @DayNightPreviews
177160@Composable
178- internal fun PollAnswerEndedSelectedPreview () = ElementThemedPreview {
161+ internal fun PollAnswerEndedSelectedPreview () = ElementPreview {
179162 PollAnswerView (
180163 answerItem = aPollAnswerItem(isDisclosed = true , isSelected = true , isEnabled = false , isWinner = false ),
181- onClick = { }
182164 )
183165}
0 commit comments