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

Commit 28e24c90 authored by Charlotte Lu's avatar Charlotte Lu Committed by Android (Google) Code Review
Browse files

Merge "SettingsExposedDropdownMenuCheckBox requires input index." into main

parents 3faf4e64 5df0081a
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ package com.android.settingslib.spa.gallery.editor
import android.os.Bundle
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.tooling.preview.Preview
@@ -45,13 +45,13 @@ object SettingsExposedDropdownMenuBoxPageProvider : SettingsPageProvider {

    @Composable
    override fun Page(arguments: Bundle?) {
        var selectedItem by remember { mutableStateOf("item1") }
        var selectedItem by remember { mutableIntStateOf(-1) }
        val options = listOf("item1", "item2", "item3")
        RegularScaffold(title = TITLE) {
            SettingsExposedDropdownMenuBox(
                label = exposedDropdownMenuBoxLabel,
                options = options,
                selectedOptionText = selectedItem,
                selectedOptionIndex = selectedItem,
                enabled = true,
                onselectedOptionTextChange = { selectedItem = it })
        }
+6 −6
Original line number Diff line number Diff line
@@ -41,9 +41,9 @@ import com.android.settingslib.spa.framework.theme.SettingsTheme
fun SettingsExposedDropdownMenuBox(
    label: String,
    options: List<String>,
    selectedOptionText: String,
    selectedOptionIndex: Int,
    enabled: Boolean,
    onselectedOptionTextChange: (String) -> Unit,
    onselectedOptionTextChange: (Int) -> Unit,
) {
    var expanded by remember { mutableStateOf(false) }
    ExposedDropdownMenuBox(
@@ -58,8 +58,8 @@ fun SettingsExposedDropdownMenuBox(
            modifier = Modifier
                .menuAnchor()
                .fillMaxWidth(),
            value = selectedOptionText,
            onValueChange = onselectedOptionTextChange,
            value = options.getOrElse(selectedOptionIndex) { "" },
            onValueChange = { },
            label = { Text(text = label) },
            trailingIcon = {
                ExposedDropdownMenuDefaults.TrailingIcon(
@@ -81,7 +81,7 @@ fun SettingsExposedDropdownMenuBox(
                    DropdownMenuItem(
                        text = { Text(option) },
                        onClick = {
                            onselectedOptionTextChange(option)
                            onselectedOptionTextChange(options.indexOf(option))
                            expanded = false
                        },
                        contentPadding = ExposedDropdownMenuDefaults.ItemContentPadding,
@@ -103,7 +103,7 @@ private fun SettingsExposedDropdownMenuBoxsPreview() {
        SettingsExposedDropdownMenuBox(
            label = "ExposedDropdownMenuBoxLabel",
            options = options,
            selectedOptionText = item1,
            selectedOptionIndex = 0,
            enabled = true,
            onselectedOptionTextChange = {})
    }
+3 −2
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
@@ -54,7 +55,7 @@ fun SettingsExposedDropdownMenuCheckBox(
    enabled: Boolean,
    onSelectedOptionStateChange: () -> Unit,
) {
    var dropDownWidth by remember { mutableStateOf(0) }
    var dropDownWidth by remember { mutableIntStateOf(0) }
    var expanded by remember { mutableStateOf(false) }
    ExposedDropdownMenuBox(
        expanded = expanded,
+10 −9
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settingslib.spa.widget.editor

import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
@@ -40,11 +41,11 @@ class SettingsExposedDropdownMenuBoxTest {
    @Test
    fun exposedDropdownMenuBoxs_displayed() {
        composeTestRule.setContent {
            var selectedItem by remember { mutableStateOf("item1") }
            var selectedItem by remember { mutableStateOf(0) }
            SettingsExposedDropdownMenuBox(
                label = exposedDropdownMenuBoxLabel,
                options = options,
                selectedOptionText = selectedItem,
                selectedOptionIndex = selectedItem,
                enabled = true,
                onselectedOptionTextChange = { selectedItem = it })
        }
@@ -55,11 +56,11 @@ class SettingsExposedDropdownMenuBoxTest {
    @Test
    fun exposedDropdownMenuBoxs_expanded() {
        composeTestRule.setContent {
            var selectedItem by remember { mutableStateOf("item1") }
            var selectedItem by remember { mutableIntStateOf(0) }
            SettingsExposedDropdownMenuBox(
                label = exposedDropdownMenuBoxLabel,
                options = options,
                selectedOptionText = selectedItem,
                selectedOptionIndex = selectedItem,
                enabled = true,
                onselectedOptionTextChange = { selectedItem = it })
        }
@@ -74,11 +75,11 @@ class SettingsExposedDropdownMenuBoxTest {
    @Test
    fun exposedDropdownMenuBoxs_valueChanged() {
        composeTestRule.setContent {
            var selectedItem by remember { mutableStateOf("item1") }
            var selectedItem by remember { mutableIntStateOf(0) }
            SettingsExposedDropdownMenuBox(
                label = exposedDropdownMenuBoxLabel,
                options = options,
                selectedOptionText = selectedItem,
                selectedOptionIndex = selectedItem,
                enabled = true,
                onselectedOptionTextChange = { selectedItem = it })
        }