Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c3f30078 authored by Chaohui Wang's avatar Chaohui Wang Committed by Android (Google) Code Review
Browse files

Merge "[Spa] Set SettingsDropdownCheckBox role to Checkbox" into main

parents 3f9cece7 b2ffd7d6
Loading
Loading
Loading
Loading
+29 −15
Original line number Diff line number Diff line
@@ -19,14 +19,19 @@ package com.android.settingslib.spa.widget.editor
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.selection.toggleable
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Checkbox
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.material3.minimumInteractiveComponentSize
import androidx.compose.runtime.Composable
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.semantics.Role
import androidx.compose.ui.tooling.preview.Preview
import com.android.settingslib.spa.framework.theme.SettingsDimension
import com.android.settingslib.spa.framework.theme.SettingsOpacity.alphaForEnabled
@@ -109,23 +114,32 @@ private fun checkboxItemOnClick(
private fun CheckboxItem(
    option: SettingsDropdownCheckOption,
    onClick: (SettingsDropdownCheckOption) -> Unit,
) {
    TextButton(
        onClick = { onClick(option) },
        modifier = Modifier.fillMaxWidth(),
) {
    Row(
            modifier = Modifier.fillMaxWidth(),
        modifier = Modifier
            .fillMaxWidth()
            .minimumInteractiveComponentSize()
            .toggleable(
                value = option.selected.value,
                enabled = option.changeable,
                role = Role.Checkbox,
                onValueChange = { onClick(option) },
            )
            .padding(ButtonDefaults.TextButtonContentPadding),
        horizontalArrangement = Arrangement.spacedBy(SettingsDimension.itemPaddingAround),
            verticalAlignment = Alignment.CenterVertically
        verticalAlignment = Alignment.CenterVertically,
    ) {
        Checkbox(
            checked = option.selected.value,
            onCheckedChange = null,
            enabled = option.changeable,
        )
            Text(text = option.text, modifier = Modifier.alphaForEnabled(option.changeable))
        }
        Text(
            text = option.text,
            modifier = Modifier.alphaForEnabled(option.changeable),
            color = MaterialTheme.colorScheme.primary,
            style = MaterialTheme.typography.labelLarge,
        )
    }
}