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

Commit c714abee authored by YK Hung's avatar YK Hung Committed by Android (Google) Code Review
Browse files

Merge "[Spa] Add contentDescription for CardButton" into main

parents 0bfa4b4b 5e7cbd4f
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@ import androidx.compose.ui.graphics.vector.ImageVector


data class CardButton(
data class CardButton(
    val text: String,
    val text: String,
    val contentDescription: String? = null,
    val onClick: () -> Unit,
    val onClick: () -> Unit,
)
)


+7 −1
Original line number Original line Diff line number Diff line
@@ -45,6 +45,8 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.takeOrElse
import androidx.compose.ui.graphics.takeOrElse
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.dp
import com.android.settingslib.spa.debug.UiModePreviews
import com.android.settingslib.spa.debug.UiModePreviews
import com.android.settingslib.spa.framework.theme.SettingsDimension
import com.android.settingslib.spa.framework.theme.SettingsDimension
@@ -182,7 +184,11 @@ private fun Buttons(buttons: List<CardButton>, color: Color) {


@Composable
@Composable
private fun Button(button: CardButton, color: Color) {
private fun Button(button: CardButton, color: Color) {
    TextButton(onClick = button.onClick) {
    TextButton(
        onClick = button.onClick,
        modifier =
            Modifier.semantics { button.contentDescription?.let { this.contentDescription = it } }
    ) {
        Text(text = button.text, color = color)
        Text(text = button.text, color = color)
    }
    }
}
}
+23 −8
Original line number Original line Diff line number Diff line
@@ -36,8 +36,7 @@ import org.junit.runner.RunWith


@RunWith(AndroidJUnit4::class)
@RunWith(AndroidJUnit4::class)
class SettingsCardTest {
class SettingsCardTest {
    @get:Rule
    @get:Rule val composeTestRule = createComposeRule()
    val composeTestRule = createComposeRule()


    private val context: Context = ApplicationProvider.getApplicationContext()
    private val context: Context = ApplicationProvider.getApplicationContext()


@@ -76,9 +75,7 @@ class SettingsCardTest {
                CardModel(
                CardModel(
                    title = "",
                    title = "",
                    text = "",
                    text = "",
                    buttons = listOf(
                    buttons = listOf(CardButton(text = TEXT) {}),
                        CardButton(text = TEXT) {}
                    ),
                )
                )
            )
            )
        }
        }
@@ -94,9 +91,7 @@ class SettingsCardTest {
                CardModel(
                CardModel(
                    title = "",
                    title = "",
                    text = "",
                    text = "",
                    buttons = listOf(
                    buttons = listOf(CardButton(text = TEXT) { buttonClicked = true }),
                        CardButton(text = TEXT) { buttonClicked = true }
                    ),
                )
                )
            )
            )
        }
        }
@@ -106,6 +101,25 @@ class SettingsCardTest {
        assertThat(buttonClicked).isTrue()
        assertThat(buttonClicked).isTrue()
    }
    }


    @Test
    fun settingsCard_buttonHaveContentDescription() {
        composeTestRule.setContent {
            SettingsCard(
                CardModel(
                    title = "",
                    text = "",
                    buttons = listOf(CardButton(
                        text = TEXT,
                        contentDescription = CONTENT_DESCRIPTION,
                        ) {}
                    ),
                )
            )
        }

        composeTestRule.onNodeWithContentDescription(CONTENT_DESCRIPTION).assertIsDisplayed()
    }

    @Test
    @Test
    fun settingsCard_dismiss() {
    fun settingsCard_dismiss() {
        composeTestRule.setContent {
        composeTestRule.setContent {
@@ -130,5 +144,6 @@ class SettingsCardTest {
    private companion object {
    private companion object {
        const val TITLE = "Title"
        const val TITLE = "Title"
        const val TEXT = "Text"
        const val TEXT = "Text"
        const val CONTENT_DESCRIPTION = "content-description"
    }
    }
}
}