From ef465f7530c7c01b4a09f655903453f64c377414 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernat=20Borr=C3=A1s?= Date: Tue, 21 Jan 2025 10:21:14 +0100 Subject: [PATCH] Semantics clear for radio --- .../settings/sample/shared/SettingsScreen.kt | 7 ------- .../compose/settings/ui/SettingsRadioButton.kt | 18 +++++++++++------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/samples/shared/src/commonMain/kotlin/com/alorma/compose/settings/sample/shared/SettingsScreen.kt b/samples/shared/src/commonMain/kotlin/com/alorma/compose/settings/sample/shared/SettingsScreen.kt index e800d109..af31977d 100644 --- a/samples/shared/src/commonMain/kotlin/com/alorma/compose/settings/sample/shared/SettingsScreen.kt +++ b/samples/shared/src/commonMain/kotlin/com/alorma/compose/settings/sample/shared/SettingsScreen.kt @@ -109,13 +109,6 @@ private fun SettingsCheckboxSampleSection(showIcon: Boolean) { icon = iconSampleOrNull(showIcon), onCheckedChange = { state.value = it }, ) - SettingsCheckbox( - state = state.value, - title = { Text(text = "Checkbox 2") }, - subtitle = { Text(text = "Checkbox subtitle 2") }, - icon = iconSampleOrNull(showIcon), - onCheckedChange = { state.value = it }, - ) } } diff --git a/ui-tiles/src/commonMain/kotlin/com/alorma/compose/settings/ui/SettingsRadioButton.kt b/ui-tiles/src/commonMain/kotlin/com/alorma/compose/settings/ui/SettingsRadioButton.kt index 7dcfc3d2..3db2e95b 100644 --- a/ui-tiles/src/commonMain/kotlin/com/alorma/compose/settings/ui/SettingsRadioButton.kt +++ b/ui-tiles/src/commonMain/kotlin/com/alorma/compose/settings/ui/SettingsRadioButton.kt @@ -7,6 +7,9 @@ import androidx.compose.material3.RadioButtonDefaults import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.semantics.Role +import androidx.compose.ui.semantics.SemanticsPropertyReceiver +import androidx.compose.ui.semantics.clearAndSetSemantics +import androidx.compose.ui.semantics.semantics import androidx.compose.ui.unit.Dp import com.alorma.compose.settings.ui.base.internal.LocalSettingsGroupEnabled import com.alorma.compose.settings.ui.base.internal.SettingsTileColors @@ -29,16 +32,16 @@ fun SettingsRadioButton( ), tonalElevation: Dp = SettingsTileDefaults.Elevation, shadowElevation: Dp = SettingsTileDefaults.Elevation, + semanticProperties: (SemanticsPropertyReceiver.() -> Unit) = {}, onClick: () -> Unit, ) { SettingsTileScaffold( - modifier = - Modifier.toggleable( - enabled = enabled, - value = state, - role = Role.RadioButton, - onValueChange = { onClick() }, - ).then(modifier), + modifier = Modifier.toggleable( + enabled = enabled, + value = state, + role = Role.RadioButton, + onValueChange = { onClick() }, + ).semantics(properties = semanticProperties).then(modifier), enabled = enabled, title = title, subtitle = subtitle, @@ -48,6 +51,7 @@ fun SettingsRadioButton( shadowElevation = shadowElevation, ) { RadioButton( + modifier = Modifier.clearAndSetSemantics { }, enabled = enabled, selected = state, onClick = onClick,