From 7565d511c3325e870c2a43a08f084efef732aa85 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Mon, 8 Jan 2024 18:08:19 +0100 Subject: [PATCH] Clean up code --- .../eu/steffo/twom/room/MemberListItem.kt | 48 +++---------- .../java/eu/steffo/twom/room/RSVPAnswer.kt | 67 ++++++++++++++++++- ...ctivityChip.kt => RSVPAnswerFilterChip.kt} | 22 +++--- ...ChipSelector.kt => RSVPAnswerSelectRow.kt} | 63 +++++++---------- ...ityCommentField.kt => RSVPCommentField.kt} | 35 +++------- ...ityUpdateButton.kt => RSVPUpdateButton.kt} | 22 ++++-- .../twom/room/RoomActivityAnswerForm.kt | 40 ++++++++++- .../steffo/twom/room/RoomActivityChipLater.kt | 25 ------- .../steffo/twom/room/RoomActivityChipMaybe.kt | 26 ------- .../steffo/twom/room/RoomActivityChipNoway.kt | 25 ------- .../steffo/twom/room/RoomActivityChipSure.kt | 26 ------- .../steffo/twom/room/RoomActivityContent.kt | 28 ++------ .../eu/steffo/twom/theme/colorRoleUnknown.kt | 10 +-- .../theme/{iconRoleLater.kt => iconLater.kt} | 2 +- .../theme/{iconRoleMaybe.kt => iconMaybe.kt} | 2 +- .../theme/{iconRoleNoway.kt => iconNoway.kt} | 2 +- .../theme/{iconRoleSure.kt => iconSure.kt} | 2 +- .../{iconRoleUnknown.kt => iconUnknown.kt} | 2 +- 18 files changed, 191 insertions(+), 256 deletions(-) rename app/src/main/java/eu/steffo/twom/room/{RoomActivityChip.kt => RSVPAnswerFilterChip.kt} (76%) rename app/src/main/java/eu/steffo/twom/room/{RoomActivityChipSelector.kt => RSVPAnswerSelectRow.kt} (50%) rename app/src/main/java/eu/steffo/twom/room/{RoomActivityCommentField.kt => RSVPCommentField.kt} (53%) rename app/src/main/java/eu/steffo/twom/room/{RoomActivityUpdateButton.kt => RSVPUpdateButton.kt} (54%) delete mode 100644 app/src/main/java/eu/steffo/twom/room/RoomActivityChipLater.kt delete mode 100644 app/src/main/java/eu/steffo/twom/room/RoomActivityChipMaybe.kt delete mode 100644 app/src/main/java/eu/steffo/twom/room/RoomActivityChipNoway.kt delete mode 100644 app/src/main/java/eu/steffo/twom/room/RoomActivityChipSure.kt rename app/src/main/java/eu/steffo/twom/theme/{iconRoleLater.kt => iconLater.kt} (75%) rename app/src/main/java/eu/steffo/twom/theme/{iconRoleMaybe.kt => iconMaybe.kt} (74%) rename app/src/main/java/eu/steffo/twom/theme/{iconRoleNoway.kt => iconNoway.kt} (72%) rename app/src/main/java/eu/steffo/twom/theme/{iconRoleSure.kt => iconSure.kt} (74%) rename app/src/main/java/eu/steffo/twom/theme/{iconRoleUnknown.kt => iconUnknown.kt} (74%) diff --git a/app/src/main/java/eu/steffo/twom/room/MemberListItem.kt b/app/src/main/java/eu/steffo/twom/room/MemberListItem.kt index ebfe572..79386c8 100644 --- a/app/src/main/java/eu/steffo/twom/room/MemberListItem.kt +++ b/app/src/main/java/eu/steffo/twom/room/MemberListItem.kt @@ -16,16 +16,6 @@ import androidx.compose.ui.unit.dp import eu.steffo.twom.R import eu.steffo.twom.matrix.LocalSession import eu.steffo.twom.matrix.avatar.AvatarFromURL -import eu.steffo.twom.theme.colorRoleLater -import eu.steffo.twom.theme.colorRoleMaybe -import eu.steffo.twom.theme.colorRoleNoway -import eu.steffo.twom.theme.colorRoleSure -import eu.steffo.twom.theme.colorRoleUnknown -import eu.steffo.twom.theme.iconRoleLater -import eu.steffo.twom.theme.iconRoleMaybe -import eu.steffo.twom.theme.iconRoleNoway -import eu.steffo.twom.theme.iconRoleSure -import eu.steffo.twom.theme.iconRoleUnknown import org.matrix.android.sdk.api.session.getUser // TODO: Check this with brain on @@ -42,27 +32,9 @@ fun MemberListItem( val user = session?.getUser(memberId) - val colorRole = when (rsvpAnswer) { - RSVPAnswer.SURE -> colorRoleSure() - RSVPAnswer.LATER -> colorRoleLater() - RSVPAnswer.MAYBE -> colorRoleMaybe() - RSVPAnswer.NOWAY -> colorRoleNoway() - null -> colorRoleUnknown() - } - val iconRole = when (rsvpAnswer) { - RSVPAnswer.SURE -> iconRoleSure - RSVPAnswer.LATER -> iconRoleLater - RSVPAnswer.MAYBE -> iconRoleMaybe - RSVPAnswer.NOWAY -> iconRoleNoway - null -> iconRoleUnknown - } - val iconDescription = when (rsvpAnswer) { - RSVPAnswer.SURE -> stringResource(R.string.room_rsvp_sure_response) - RSVPAnswer.LATER -> stringResource(R.string.room_rsvp_later_response) - RSVPAnswer.MAYBE -> stringResource(R.string.room_rsvp_maybe_response) - RSVPAnswer.NOWAY -> stringResource(R.string.room_rsvp_noway_response) - null -> stringResource(R.string.room_rsvp_unknown_response) - } + val icon = rsvpAnswer.toIcon() + val responseResourceId = rsvpAnswer.toResponseResourceId() + val colorRole = rsvpAnswer.toStaticColorRole() ListItem( modifier = modifier.clickable { @@ -87,18 +59,16 @@ fun MemberListItem( }, trailingContent = { Icon( - imageVector = iconRole, - contentDescription = iconDescription, + imageVector = icon, + contentDescription = stringResource(responseResourceId), tint = colorRole.value, ) }, supportingContent = { - if (rsvpComment != "") { - Text( - text = rsvpComment, - color = colorRole.value, - ) - } + Text( + text = rsvpComment, + color = colorRole.value, + ) }, ) } \ No newline at end of file diff --git a/app/src/main/java/eu/steffo/twom/room/RSVPAnswer.kt b/app/src/main/java/eu/steffo/twom/room/RSVPAnswer.kt index 7cb3f2d..25776e0 100644 --- a/app/src/main/java/eu/steffo/twom/room/RSVPAnswer.kt +++ b/app/src/main/java/eu/steffo/twom/room/RSVPAnswer.kt @@ -1,8 +1,73 @@ package eu.steffo.twom.room +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.vector.ImageVector +import eu.steffo.twom.R +import eu.steffo.twom.theme.StaticColorRole +import eu.steffo.twom.theme.colorRoleLater +import eu.steffo.twom.theme.colorRoleMaybe +import eu.steffo.twom.theme.colorRoleNoway +import eu.steffo.twom.theme.colorRoleSure +import eu.steffo.twom.theme.colorRoleUnknown +import eu.steffo.twom.theme.iconLater +import eu.steffo.twom.theme.iconMaybe +import eu.steffo.twom.theme.iconNoway +import eu.steffo.twom.theme.iconSure +import eu.steffo.twom.theme.iconUnknown + enum class RSVPAnswer { SURE, LATER, MAYBE, NOWAY, -} \ No newline at end of file +} + +@Composable +fun RSVPAnswer?.toStaticColorRole(): StaticColorRole { + return when (this) { + RSVPAnswer.SURE -> colorRoleSure() + RSVPAnswer.LATER -> colorRoleLater() + RSVPAnswer.MAYBE -> colorRoleMaybe() + RSVPAnswer.NOWAY -> colorRoleNoway() + null -> colorRoleUnknown() + } +} + +fun RSVPAnswer?.toIcon(): ImageVector { + return when (this) { + RSVPAnswer.SURE -> iconSure + RSVPAnswer.LATER -> iconLater + RSVPAnswer.MAYBE -> iconMaybe + RSVPAnswer.NOWAY -> iconNoway + null -> iconUnknown + } +} + +fun RSVPAnswer.toLabelResourceId(): Int { + return when (this) { + RSVPAnswer.SURE -> R.string.room_rsvp_sure_label + RSVPAnswer.LATER -> R.string.room_rsvp_later_label + RSVPAnswer.MAYBE -> R.string.room_rsvp_maybe_label + RSVPAnswer.NOWAY -> R.string.room_rsvp_noway_label + } +} + +fun RSVPAnswer?.toResponseResourceId(): Int { + return when (this) { + RSVPAnswer.SURE -> R.string.room_rsvp_sure_response + RSVPAnswer.LATER -> R.string.room_rsvp_later_response + RSVPAnswer.MAYBE -> R.string.room_rsvp_maybe_response + RSVPAnswer.NOWAY -> R.string.room_rsvp_noway_response + null -> R.string.room_rsvp_unknown_response + } +} + +fun RSVPAnswer?.toPlaceholderResourceId(): Int { + return when (this) { + RSVPAnswer.SURE -> R.string.room_rsvp_sure_placeholder + RSVPAnswer.LATER -> R.string.room_rsvp_later_placeholder + RSVPAnswer.MAYBE -> R.string.room_rsvp_maybe_placeholder + RSVPAnswer.NOWAY -> R.string.room_rsvp_noway_placeholder + null -> R.string.room_rsvp_unknown_placeholder + } +} diff --git a/app/src/main/java/eu/steffo/twom/room/RoomActivityChip.kt b/app/src/main/java/eu/steffo/twom/room/RSVPAnswerFilterChip.kt similarity index 76% rename from app/src/main/java/eu/steffo/twom/room/RoomActivityChip.kt rename to app/src/main/java/eu/steffo/twom/room/RSVPAnswerFilterChip.kt index 8f5e096..d276a1d 100644 --- a/app/src/main/java/eu/steffo/twom/room/RoomActivityChip.kt +++ b/app/src/main/java/eu/steffo/twom/room/RSVPAnswerFilterChip.kt @@ -7,33 +7,35 @@ import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import eu.steffo.twom.theme.StaticColorRole -import eu.steffo.twom.theme.TwoMPadding @OptIn(ExperimentalMaterial3Api::class) @Composable -fun RoomActivityChip( +fun RSVPAnswerFilterChip( + modifier: Modifier = Modifier, + representing: RSVPAnswer, selected: Boolean = false, onClick: () -> Unit = {}, - text: String, - imageVector: ImageVector, - colorRole: StaticColorRole, ) { + val icon = representing.toIcon() + val colorRole = representing.toStaticColorRole() + val labelResourceId = representing.toLabelResourceId() + FilterChip( - modifier = TwoMPadding.chips, + modifier = modifier, selected = selected, onClick = onClick, leadingIcon = { Icon( - imageVector = imageVector, + imageVector = icon, contentDescription = null, ) }, label = { Text( - text = text, + text = stringResource(labelResourceId), style = MaterialTheme.typography.bodyLarge, ) }, diff --git a/app/src/main/java/eu/steffo/twom/room/RoomActivityChipSelector.kt b/app/src/main/java/eu/steffo/twom/room/RSVPAnswerSelectRow.kt similarity index 50% rename from app/src/main/java/eu/steffo/twom/room/RoomActivityChipSelector.kt rename to app/src/main/java/eu/steffo/twom/room/RSVPAnswerSelectRow.kt index 7bc1b2c..8f70a89 100644 --- a/app/src/main/java/eu/steffo/twom/room/RoomActivityChipSelector.kt +++ b/app/src/main/java/eu/steffo/twom/room/RSVPAnswerSelectRow.kt @@ -13,66 +13,53 @@ import eu.steffo.twom.theme.TwoMPadding @Composable @Preview -fun RoomActivityChipSelector( +fun RSVPAnswerSelectRow( modifier: Modifier = Modifier, value: RSVPAnswer? = null, onChange: (answer: RSVPAnswer?) -> Unit = {}, ) { + fun toggleSwitch(representing: RSVPAnswer): () -> Unit { + return { + onChange( + when (value) { + representing -> null + else -> representing + } + ) + } + } + Box( modifier = modifier .horizontalScroll(rememberScrollState()) ) { Row( modifier = Modifier - .padding(start = 8.dp, end = 8.dp) + .padding(start = 10.dp, end = 10.dp) ) { - RoomActivityChipSure( + RSVPAnswerFilterChip( modifier = TwoMPadding.chips, + representing = RSVPAnswer.SURE, selected = (value == RSVPAnswer.SURE), - onClick = { - onChange( - when (value) { - RSVPAnswer.SURE -> null - else -> RSVPAnswer.SURE - } - ) - } + onClick = toggleSwitch(RSVPAnswer.SURE) ) - RoomActivityChipLater( + RSVPAnswerFilterChip( modifier = TwoMPadding.chips, + representing = RSVPAnswer.LATER, selected = (value == RSVPAnswer.LATER), - onClick = { - onChange( - when (value) { - RSVPAnswer.LATER -> null - else -> RSVPAnswer.LATER - } - ) - } + onClick = toggleSwitch(RSVPAnswer.LATER) ) - RoomActivityChipMaybe( + RSVPAnswerFilterChip( modifier = TwoMPadding.chips, + representing = RSVPAnswer.MAYBE, selected = (value == RSVPAnswer.MAYBE), - onClick = { - onChange( - when (value) { - RSVPAnswer.MAYBE -> null - else -> RSVPAnswer.MAYBE - } - ) - } + onClick = toggleSwitch(RSVPAnswer.MAYBE) ) - RoomActivityChipNoway( + RSVPAnswerFilterChip( modifier = TwoMPadding.chips, + representing = RSVPAnswer.NOWAY, selected = (value == RSVPAnswer.NOWAY), - onClick = { - onChange( - when (value) { - RSVPAnswer.NOWAY -> null - else -> RSVPAnswer.NOWAY - } - ) - } + onClick = toggleSwitch(RSVPAnswer.NOWAY) ) } } diff --git a/app/src/main/java/eu/steffo/twom/room/RoomActivityCommentField.kt b/app/src/main/java/eu/steffo/twom/room/RSVPCommentField.kt similarity index 53% rename from app/src/main/java/eu/steffo/twom/room/RoomActivityCommentField.kt rename to app/src/main/java/eu/steffo/twom/room/RSVPCommentField.kt index 7847e23..75708f7 100644 --- a/app/src/main/java/eu/steffo/twom/room/RoomActivityCommentField.kt +++ b/app/src/main/java/eu/steffo/twom/room/RSVPCommentField.kt @@ -1,6 +1,5 @@ package eu.steffo.twom.room -import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.material3.LocalContentColor import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField @@ -10,47 +9,29 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview -import eu.steffo.twom.R -import eu.steffo.twom.theme.colorRoleLater -import eu.steffo.twom.theme.colorRoleMaybe -import eu.steffo.twom.theme.colorRoleNoway -import eu.steffo.twom.theme.colorRoleSure -import eu.steffo.twom.theme.colorRoleUnknown @Composable @Preview -fun RoomActivityCommentField( +fun RSVPCommentField( modifier: Modifier = Modifier, value: String = "", - onValueChange: (value: String) -> Unit = {}, - rsvpAnswer: RSVPAnswer? = null, + onChange: (value: String) -> Unit = {}, + currentRsvpAnswer: RSVPAnswer? = null, ) { - val colorRole = when (rsvpAnswer) { - RSVPAnswer.SURE -> colorRoleSure() - RSVPAnswer.LATER -> colorRoleLater() - RSVPAnswer.MAYBE -> colorRoleMaybe() - RSVPAnswer.NOWAY -> colorRoleNoway() - null -> colorRoleUnknown() - } + val colorRole = currentRsvpAnswer.toStaticColorRole() OutlinedTextField( - modifier = Modifier.fillMaxWidth(), + modifier = modifier, value = value, - onValueChange = onValueChange, + onValueChange = onChange, singleLine = true, shape = MaterialTheme.shapes.small, placeholder = { Text( - text = when (rsvpAnswer) { - RSVPAnswer.SURE -> stringResource(R.string.room_rsvp_sure_placeholder) - RSVPAnswer.LATER -> stringResource(R.string.room_rsvp_later_placeholder) - RSVPAnswer.MAYBE -> stringResource(R.string.room_rsvp_maybe_placeholder) - RSVPAnswer.NOWAY -> stringResource(R.string.room_rsvp_noway_placeholder) - null -> stringResource(R.string.room_rsvp_unknown_placeholder) - } + text = stringResource(currentRsvpAnswer.toPlaceholderResourceId()) ) }, - colors = if (rsvpAnswer != null) { + colors = if (currentRsvpAnswer != null) { OutlinedTextFieldDefaults.colors( focusedContainerColor = colorRole.valueContainer, unfocusedContainerColor = colorRole.valueContainer, diff --git a/app/src/main/java/eu/steffo/twom/room/RoomActivityUpdateButton.kt b/app/src/main/java/eu/steffo/twom/room/RSVPUpdateButton.kt similarity index 54% rename from app/src/main/java/eu/steffo/twom/room/RoomActivityUpdateButton.kt rename to app/src/main/java/eu/steffo/twom/room/RSVPUpdateButton.kt index 9e1ee5c..500d59d 100644 --- a/app/src/main/java/eu/steffo/twom/room/RoomActivityUpdateButton.kt +++ b/app/src/main/java/eu/steffo/twom/room/RSVPUpdateButton.kt @@ -1,5 +1,7 @@ -import androidx.compose.foundation.layout.fillMaxWidth +package eu.steffo.twom.room + import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -7,21 +9,29 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import eu.steffo.twom.R -import eu.steffo.twom.room.RSVPAnswer @Composable @Preview -fun RoomActivityUpdateButton( +fun RSVPUpdateButton( + modifier: Modifier = Modifier, + enabled: Boolean = true, onClick: () -> Unit = {}, - rsvpAnswer: RSVPAnswer? = null, + currentRsvpAnswer: RSVPAnswer? = null, ) { + val colorRole = currentRsvpAnswer.toStaticColorRole() + Button( - modifier = Modifier.fillMaxWidth(), + modifier = modifier, + enabled = enabled, onClick = onClick, shape = MaterialTheme.shapes.small, + colors = ButtonDefaults.buttonColors( + containerColor = colorRole.value, + contentColor = colorRole.onValue, + ) ) { Text( text = stringResource(R.string.room_update_label) ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/eu/steffo/twom/room/RoomActivityAnswerForm.kt b/app/src/main/java/eu/steffo/twom/room/RoomActivityAnswerForm.kt index fd74396..386e7e4 100644 --- a/app/src/main/java/eu/steffo/twom/room/RoomActivityAnswerForm.kt +++ b/app/src/main/java/eu/steffo/twom/room/RoomActivityAnswerForm.kt @@ -1,10 +1,46 @@ package eu.steffo.twom.room +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp @Composable @Preview -fun RoomActivityAnswerForm() { +fun RoomActivityAnswerForm( + currentRsvpAnswer: RSVPAnswer? = null, + currentRsvpComment: String = "", + onUpdate: (rsvpAnswer: RSVPAnswer?, rsvpComment: String) -> Unit = { _, _ -> }, +) { + var rsvpAnswer by rememberSaveable { mutableStateOf(currentRsvpAnswer) } + var rsvpComment by rememberSaveable { mutableStateOf(currentRsvpComment) } -} \ No newline at end of file + val hasChanged = (rsvpAnswer != currentRsvpAnswer || rsvpComment != currentRsvpComment) + + RSVPAnswerSelectRow( + value = rsvpAnswer, + onChange = { rsvpAnswer = it }, + ) + RSVPCommentField( + modifier = Modifier + .padding(start = 10.dp, end = 10.dp) + .fillMaxWidth(), + value = rsvpComment, + onChange = { rsvpComment = it }, + currentRsvpAnswer = rsvpAnswer, + ) + RSVPUpdateButton( + modifier = Modifier + .padding(start = 10.dp, end = 10.dp, top = 4.dp, bottom = 4.dp) + .fillMaxWidth(), + onClick = { onUpdate(rsvpAnswer, rsvpComment) }, + enabled = hasChanged, + currentRsvpAnswer = rsvpAnswer, + ) +} diff --git a/app/src/main/java/eu/steffo/twom/room/RoomActivityChipLater.kt b/app/src/main/java/eu/steffo/twom/room/RoomActivityChipLater.kt deleted file mode 100644 index 599a760..0000000 --- a/app/src/main/java/eu/steffo/twom/room/RoomActivityChipLater.kt +++ /dev/null @@ -1,25 +0,0 @@ -package eu.steffo.twom.room - -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import eu.steffo.twom.R -import eu.steffo.twom.theme.colorRoleLater -import eu.steffo.twom.theme.iconRoleLater - -@Composable -@Preview -fun RoomActivityChipLater( - modifier: Modifier = Modifier, - selected: Boolean = false, - onClick: () -> Unit = {}, -) { - RoomActivityChip( - selected = selected, - onClick = onClick, - imageVector = iconRoleLater, - text = stringResource(R.string.room_rsvp_later_label), - colorRole = colorRoleLater(), - ) -} diff --git a/app/src/main/java/eu/steffo/twom/room/RoomActivityChipMaybe.kt b/app/src/main/java/eu/steffo/twom/room/RoomActivityChipMaybe.kt deleted file mode 100644 index 50c648f..0000000 --- a/app/src/main/java/eu/steffo/twom/room/RoomActivityChipMaybe.kt +++ /dev/null @@ -1,26 +0,0 @@ -package eu.steffo.twom.room - -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import eu.steffo.twom.R -import eu.steffo.twom.theme.colorRoleMaybe -import eu.steffo.twom.theme.iconRoleMaybe - -@Composable -@Preview -fun RoomActivityChipMaybe( - modifier: Modifier = Modifier, - selected: Boolean = false, - onClick: () -> Unit = {}, -) { - // TODO: Pick a better color - RoomActivityChip( - selected = selected, - onClick = onClick, - imageVector = iconRoleMaybe, - text = stringResource(R.string.room_rsvp_maybe_label), - colorRole = colorRoleMaybe(), - ) -} diff --git a/app/src/main/java/eu/steffo/twom/room/RoomActivityChipNoway.kt b/app/src/main/java/eu/steffo/twom/room/RoomActivityChipNoway.kt deleted file mode 100644 index 31339a0..0000000 --- a/app/src/main/java/eu/steffo/twom/room/RoomActivityChipNoway.kt +++ /dev/null @@ -1,25 +0,0 @@ -package eu.steffo.twom.room - -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import eu.steffo.twom.R -import eu.steffo.twom.theme.colorRoleNoway -import eu.steffo.twom.theme.iconRoleNoway - -@Composable -@Preview -fun RoomActivityChipNoway( - modifier: Modifier = Modifier, - selected: Boolean = false, - onClick: () -> Unit = {}, -) { - RoomActivityChip( - selected = selected, - onClick = onClick, - imageVector = iconRoleNoway, - text = stringResource(R.string.room_rsvp_noway_label), - colorRole = colorRoleNoway(), - ) -} diff --git a/app/src/main/java/eu/steffo/twom/room/RoomActivityChipSure.kt b/app/src/main/java/eu/steffo/twom/room/RoomActivityChipSure.kt deleted file mode 100644 index a1cc316..0000000 --- a/app/src/main/java/eu/steffo/twom/room/RoomActivityChipSure.kt +++ /dev/null @@ -1,26 +0,0 @@ -package eu.steffo.twom.room - -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import eu.steffo.twom.R -import eu.steffo.twom.theme.colorRoleSure -import eu.steffo.twom.theme.iconRoleSure - - -@Composable -@Preview -fun RoomActivityChipSure( - modifier: Modifier = Modifier, - selected: Boolean = false, - onClick: () -> Unit = {}, -) { - RoomActivityChip( - selected = selected, - onClick = onClick, - imageVector = iconRoleSure, - text = stringResource(R.string.room_rsvp_sure_label), - colorRole = colorRoleSure(), - ) -} diff --git a/app/src/main/java/eu/steffo/twom/room/RoomActivityContent.kt b/app/src/main/java/eu/steffo/twom/room/RoomActivityContent.kt index d7ef1b2..d18aa8f 100644 --- a/app/src/main/java/eu/steffo/twom/room/RoomActivityContent.kt +++ b/app/src/main/java/eu/steffo/twom/room/RoomActivityContent.kt @@ -1,9 +1,7 @@ package eu.steffo.twom.room -import RoomActivityUpdateButton import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.padding import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -13,7 +11,6 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.unit.dp import eu.steffo.twom.R import eu.steffo.twom.matrix.LocalSession import eu.steffo.twom.theme.TwoMPadding @@ -49,26 +46,15 @@ fun RoomActivityContent( ) } - RoomActivityChipSelector( - value = rsvpAnswer, - onChange = { rsvpAnswer = it } + RoomActivityAnswerForm( + currentRsvpAnswer = rsvpAnswer, + currentRsvpComment = rsvpComment, + onUpdate = { answer, comment -> + rsvpAnswer = answer + rsvpComment = comment + } ) - Row(Modifier.padding(start = 10.dp, end = 10.dp)) { - RoomActivityCommentField( - value = rsvpComment, - onValueChange = { rsvpComment = it }, - rsvpAnswer = rsvpAnswer, - ) - } - - Row(Modifier.padding(all = 10.dp)) { - RoomActivityUpdateButton( - onClick = {}, - rsvpAnswer = rsvpAnswer, - ) - } - Row(TwoMPadding.base) { Text( text = stringResource(R.string.room_invitees_title), diff --git a/app/src/main/java/eu/steffo/twom/theme/colorRoleUnknown.kt b/app/src/main/java/eu/steffo/twom/theme/colorRoleUnknown.kt index 1174dc3..a227a30 100644 --- a/app/src/main/java/eu/steffo/twom/theme/colorRoleUnknown.kt +++ b/app/src/main/java/eu/steffo/twom/theme/colorRoleUnknown.kt @@ -1,14 +1,14 @@ package eu.steffo.twom.theme -import androidx.compose.material3.LocalContentColor +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable @Composable fun colorRoleUnknown(): StaticColorRole { return StaticColorRole( - value = LocalContentColor.current, - onValue = LocalContentColor.current, - valueContainer = LocalContentColor.current, - onValueContainer = LocalContentColor.current, + value = MaterialTheme.colorScheme.inverseSurface, + onValue = MaterialTheme.colorScheme.inverseOnSurface, + valueContainer = MaterialTheme.colorScheme.surfaceVariant, + onValueContainer = MaterialTheme.colorScheme.onSurfaceVariant, ) } diff --git a/app/src/main/java/eu/steffo/twom/theme/iconRoleLater.kt b/app/src/main/java/eu/steffo/twom/theme/iconLater.kt similarity index 75% rename from app/src/main/java/eu/steffo/twom/theme/iconRoleLater.kt rename to app/src/main/java/eu/steffo/twom/theme/iconLater.kt index 69f887d..156de3b 100644 --- a/app/src/main/java/eu/steffo/twom/theme/iconRoleLater.kt +++ b/app/src/main/java/eu/steffo/twom/theme/iconLater.kt @@ -3,4 +3,4 @@ package eu.steffo.twom.theme import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Schedule -val iconRoleLater = Icons.Outlined.Schedule +val iconLater = Icons.Outlined.Schedule diff --git a/app/src/main/java/eu/steffo/twom/theme/iconRoleMaybe.kt b/app/src/main/java/eu/steffo/twom/theme/iconMaybe.kt similarity index 74% rename from app/src/main/java/eu/steffo/twom/theme/iconRoleMaybe.kt rename to app/src/main/java/eu/steffo/twom/theme/iconMaybe.kt index 105ddb8..53129ce 100644 --- a/app/src/main/java/eu/steffo/twom/theme/iconRoleMaybe.kt +++ b/app/src/main/java/eu/steffo/twom/theme/iconMaybe.kt @@ -3,4 +3,4 @@ package eu.steffo.twom.theme import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.PauseCircle -val iconRoleMaybe = Icons.Outlined.PauseCircle +val iconMaybe = Icons.Outlined.PauseCircle diff --git a/app/src/main/java/eu/steffo/twom/theme/iconRoleNoway.kt b/app/src/main/java/eu/steffo/twom/theme/iconNoway.kt similarity index 72% rename from app/src/main/java/eu/steffo/twom/theme/iconRoleNoway.kt rename to app/src/main/java/eu/steffo/twom/theme/iconNoway.kt index 6ebdb33..14ccf28 100644 --- a/app/src/main/java/eu/steffo/twom/theme/iconRoleNoway.kt +++ b/app/src/main/java/eu/steffo/twom/theme/iconNoway.kt @@ -3,4 +3,4 @@ package eu.steffo.twom.theme import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.RemoveCircleOutline -val iconRoleNoway = Icons.Outlined.RemoveCircleOutline +val iconNoway = Icons.Outlined.RemoveCircleOutline diff --git a/app/src/main/java/eu/steffo/twom/theme/iconRoleSure.kt b/app/src/main/java/eu/steffo/twom/theme/iconSure.kt similarity index 74% rename from app/src/main/java/eu/steffo/twom/theme/iconRoleSure.kt rename to app/src/main/java/eu/steffo/twom/theme/iconSure.kt index 1098723..0e5b4ff 100644 --- a/app/src/main/java/eu/steffo/twom/theme/iconRoleSure.kt +++ b/app/src/main/java/eu/steffo/twom/theme/iconSure.kt @@ -3,4 +3,4 @@ package eu.steffo.twom.theme import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.CheckCircle -val iconRoleSure = Icons.Outlined.CheckCircle +val iconSure = Icons.Outlined.CheckCircle diff --git a/app/src/main/java/eu/steffo/twom/theme/iconRoleUnknown.kt b/app/src/main/java/eu/steffo/twom/theme/iconUnknown.kt similarity index 74% rename from app/src/main/java/eu/steffo/twom/theme/iconRoleUnknown.kt rename to app/src/main/java/eu/steffo/twom/theme/iconUnknown.kt index 7c16def..e3384c1 100644 --- a/app/src/main/java/eu/steffo/twom/theme/iconRoleUnknown.kt +++ b/app/src/main/java/eu/steffo/twom/theme/iconUnknown.kt @@ -3,4 +3,4 @@ package eu.steffo.twom.theme import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Circle -val iconRoleUnknown = Icons.Outlined.Circle +val iconUnknown = Icons.Outlined.Circle