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

Commit 9ac4a04a authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Add 4dp round corner for SettingsCardContent

Bug: 305856149
Test: visual
Change-Id: I0f590ee7798660904aa5fd24c6e0c91f7c17531c
parent a8c95e52
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -17,24 +17,32 @@
package com.android.settingslib.spa.gallery.card

import android.os.Bundle
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Error
import androidx.compose.material.icons.outlined.PowerOff
import androidx.compose.material.icons.outlined.Shield
import androidx.compose.material.icons.outlined.WarningAmber
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import com.android.settingslib.spa.framework.common.SettingsEntryBuilder
import com.android.settingslib.spa.framework.common.SettingsPageProvider
import com.android.settingslib.spa.framework.common.createSettingsPage
import com.android.settingslib.spa.framework.compose.navigator
import com.android.settingslib.spa.framework.theme.SettingsDimension
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.gallery.R
import com.android.settingslib.spa.widget.card.CardButton
import com.android.settingslib.spa.widget.card.CardModel
import com.android.settingslib.spa.widget.card.SettingsCard
import com.android.settingslib.spa.widget.card.SettingsCollapsibleCard
import com.android.settingslib.spa.widget.card.SettingsCardContent
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.scaffold.RegularScaffold
@@ -50,6 +58,7 @@ object CardPageProvider : SettingsPageProvider {
            SettingsCardWithIcon()
            SettingsCardWithoutIcon()
            SampleSettingsCollapsibleCard()
            SampleSettingsCardContent()
        }
    }

@@ -108,6 +117,32 @@ object CardPageProvider : SettingsPageProvider {
        )
    }

    @Composable
    fun SampleSettingsCardContent() {
        SettingsCard {
            SettingsCardContent {
                Box(
                    Modifier
                        .fillMaxWidth()
                        .clickable { }
                        .padding(SettingsDimension.dialogItemPadding),
                ) {
                    Text(text = "Abc")
                }
            }
            SettingsCardContent {
                Box(
                    Modifier
                        .fillMaxWidth()
                        .clickable { }
                        .padding(SettingsDimension.dialogItemPadding),
                ) {
                    Text(text = "123")
                }
            }
        }
    }

    fun buildInjectEntry(): SettingsEntryBuilder {
        return SettingsEntryBuilder.createInject(owner = createSettingsPage())
            .setUiLayoutFn {
+2 −0
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.ui.unit.dp

object SettingsShape {
    val CornerExtraSmall = RoundedCornerShape(4.dp)

    val CornerMedium = RoundedCornerShape(12.dp)

    val CornerExtraLarge = RoundedCornerShape(28.dp)
+28 −9
Original line number Diff line number Diff line
@@ -36,10 +36,13 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.unit.dp
import com.android.settingslib.spa.debug.UiModePreviews
import com.android.settingslib.spa.framework.theme.SettingsDimension
import com.android.settingslib.spa.framework.theme.SettingsShape.CornerExtraLarge
import com.android.settingslib.spa.framework.theme.SettingsShape.CornerExtraSmall
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.widget.ui.SettingsBody
import com.android.settingslib.spa.widget.ui.SettingsTitle
@@ -49,7 +52,7 @@ fun SettingsCard(content: @Composable ColumnScope.() -> Unit) {
    Card(
        shape = CornerExtraLarge,
        colors = CardDefaults.cardColors(
            containerColor = SettingsTheme.colorScheme.surface,
            containerColor = Color.Transparent,
        ),
        modifier = Modifier
            .fillMaxWidth()
@@ -61,6 +64,20 @@ fun SettingsCard(content: @Composable ColumnScope.() -> Unit) {
    )
}

@Composable
fun SettingsCardContent(content: @Composable ColumnScope.() -> Unit) {
    Card(
        shape = CornerExtraSmall,
        colors = CardDefaults.cardColors(
            containerColor = SettingsTheme.colorScheme.surface,
        ),
        modifier = Modifier
            .fillMaxWidth()
            .padding(vertical = 1.dp),
        content = content,
    )
}

@Composable
fun SettingsCard(model: CardModel) {
    SettingsCard {
@@ -70,6 +87,7 @@ fun SettingsCard(model: CardModel) {

@Composable
internal fun SettingsCardImpl(model: CardModel) {
    SettingsCardContent {
        Column(
            modifier = Modifier.padding(SettingsDimension.itemPaddingStart),
            verticalArrangement = Arrangement.spacedBy(SettingsDimension.itemPaddingAround)
@@ -80,6 +98,7 @@ internal fun SettingsCardImpl(model: CardModel) {
            Buttons(model.buttons)
        }
    }
}

@Composable
private fun CardIcon(imageVector: ImageVector?) {
+4 −7
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Error
import androidx.compose.material.icons.outlined.PowerOff
import androidx.compose.material.icons.outlined.Shield
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
@@ -54,18 +53,16 @@ import com.android.settingslib.spa.widget.ui.SettingsTitleSmall
fun SettingsCollapsibleCard(
    title: String,
    imageVector: ImageVector,
    models: List<CardModel>
    models: List<CardModel>,
) {
    var expanded by rememberSaveable { mutableStateOf(false) }
    SettingsCard {
        SettingsCardContent {
            Header(title, imageVector, models.size, expanded) { expanded = it }
        }
        AnimatedVisibility(expanded) {
            Column {
                for (model in models) {
                    HorizontalDivider(
                        thickness = SettingsDimension.paddingSmall,
                        color = MaterialTheme.colorScheme.surface,
                    )
                    SettingsCardImpl(model)
                }
            }